प्रोग्रामिंग एक एल्गोरिथ्म लेने और इसे एक संकेतन, एक प्रोग्रामिंग भाषा में एन्कोडिंग करने की प्रक्रिया है, ताकि इसे कंप्यूटर द्वारा निष्पादित किया जा सके। यद्यपि कई प्रोग्रामिंग भाषाएं और कई अलग-अलग प्रकार के कंप्यूटर मौजूद हैं, महत्वपूर्ण पहला कदम समाधान की आवश्यकता है। एल्गोरिथ्म के बिना कोई कार्यक्रम नहीं हो सकता है।
कंप्यूटर विज्ञान प्रोग्रामिंग का अध्ययन नहीं है। हालाँकि, प्रोग्रामिंग एक कंप्यूटर वैज्ञानिक क्या करता है, इसका एक महत्वपूर्ण हिस्सा है। प्रोग्रामिंग अक्सर वह तरीका है जिससे हम अपने समाधान के लिए एक प्रतिनिधित्व बनाते हैं। इसलिए, यह भाषा का प्रतिनिधित्व और इसे बनाने की प्रक्रिया अनुशासन का एक मूलभूत हिस्सा बन जाती है।
एप्लिकेशन बनाते समय प्रोग्रामिंग लैंग्वेज शब्दार्थ और वाक्यविन्यास का उपयोग किया जाता है। इस प्रकार, प्रोग्रामिंग के लिए एप्लिकेशन डोमेन, एल्गोरिदम और प्रोग्रामिंग भाषा विशेषज्ञता का ज्ञान आवश्यक है डेवलपर द्वारा प्रोग्रामिंग लैंग्वेज लॉजिक अलग है। उच्च स्तर से, अच्छे कोड का मूल्यांकन कारकों के साथ किया जा सकता है जैसे।
एल्गोरिदम समस्या के उदाहरण और समस्या उत्पन्न करने के लिए आवश्यक चरणों के समूह का प्रतिनिधित्व करने के लिए आवश्यक डेटा के संदर्भ में एक समस्या के समाधान का वर्णन करता है। प्रोग्रामिंग भाषाओं को प्रक्रिया और डेटा दोनों का प्रतिनिधित्व करने के लिए एक उल्लेखनीय तरीका प्रदान करना चाहिए। इसके लिए, भाषाएं नियंत्रण निर्माण और डेटा प्रकार प्रदान करती हैं।
नियंत्रण निर्माण एल्गोरिथम चरणों को एक सुविधाजनक अभी तक अस्पष्ट तरीके से प्रतिनिधित्व करने की अनुमति देता है। कम से कम, एल्गोरिदम को ऐसे निर्माणों की आवश्यकता होती है जो क्रमिक प्रसंस्करण, निर्णय लेने के लिए चयन और दोहराव नियंत्रण के लिए पुनरावृत्ति का निर्माण करते हैं। जब तक भाषा इन बुनियादी बयानों को प्रदान करती है, तब तक इसका उपयोग एल्गोरिथ्म प्रतिनिधित्व के लिए किया जा सकता है।
कंप्यूटर में सभी डेटा आइटम बाइनरी अंकों के तार के रूप में दर्शाए जाते हैं। इन तारों को अर्थ देने के लिए, हमें डेटा प्रकारों की आवश्यकता है। डेटा प्रकार इस बाइनरी डेटा के लिए एक व्याख्या प्रदान करते हैं ताकि हम उस डेटा के बारे में सोच सकें जो समस्या के समाधान के संबंध में समझ में आता है। ये निम्न-स्तरीय, बिल्ट-इन डेटा प्रकार (जिसे कभी-कभी आदिम डेटा प्रकार कहा जाता है) एल्गोरिदम विकास के लिए बिल्डिंग ब्लॉक प्रदान करता है।
उदाहरण के लिए, अधिकांश प्रोग्रामिंग भाषाएं पूर्णांक के लिए डेटा प्रकार प्रदान करती हैं। कंप्यूटर की मेमोरी में बाइनरी अंकों के स्ट्रिंग्स को पूर्णांकों के रूप में व्याख्या की जा सकती है और विशिष्ट अर्थ दिए जा सकते हैं जिन्हें हम सामान्यतः पूर्णांक (जैसे 23, 654 और -19) के साथ जोड़ते हैं। इसके अलावा, एक डेटा प्रकार उन ऑपरेशनों का विवरण भी प्रदान करता है जिनमें डेटा आइटम भाग ले सकते हैं। पूर्णांक के साथ, जोड़, घटाव और गुणा जैसे ऑपरेशन आम हैं। हम उम्मीद करते हैं कि संख्यात्मक प्रकार के डेटा इन अंकगणितीय कार्यों में भाग ले सकते हैं।
हमारे लिए अक्सर जो कठिनाई पैदा होती है वह यह है कि समस्याएँ और उनके समाधान बहुत जटिल हैं। ये सरल, भाषा-प्रदान किए गए निर्माण और डेटा प्रकार, हालांकि निश्चित रूप से जटिल समाधानों का प्रतिनिधित्व करने के लिए पर्याप्त हैं, आमतौर पर एक नुकसान है क्योंकि हम समस्या-समाधान प्रक्रिया के माध्यम से काम करते हैं। हमें इस जटिलता को नियंत्रित करने और समाधान के निर्माण में सहायता करने के तरीकों की आवश्यकता है।
प्रोग्रामिंग एक रचनात्मक प्रक्रिया है जो किसी कार्य को करने के लिए कंप्यूटर को निर्देश देती है। हॉलीवुड ने प्रोग्रामर की छवि को उबेर तकनीक के रूप में स्थापित करने में मदद की है जो कंप्यूटर पर बैठकर सेकंड में किसी भी पासवर्ड को तोड़ सकते हैं। वास्तविकता बहुत कम दिलचस्प है।