कंप्यूटिंग के लिए उपकरण बनाने का पहला प्रयासमैकेनिकल (विशेष रूप से हार्डवेयर) इकाइयों के साथ जुड़ा हुआ है। बाद में, समान विचारों को तथाकथित "हार्ड लॉजिक" के साथ सिस्टम के रूप में लागू किया गया था, अर्थात्। एक विशुद्ध रूप से हार्डवेयर कार्यान्वयन भी था। ऐसे उपकरणों में एक महत्वपूर्ण कमी थी - वे केवल एक प्रकार की समस्याओं को हल कर सकते थे और ऑपरेशन के दौरान संशोधित नहीं किए जा सकते थे।
इसलिए, विकास की एक तार्किक निरंतरताकंप्यूटिंग सिस्टम ऐसे उपकरणों का निर्माण था जिन्हें एक मनमानी समस्या को हल करने के लिए लचीले ढंग से समायोजित किया जा सकता है। और यह केवल उन सॉफ्टवेयर और उपकरणों के उपयोग से संभव है जो इन कार्यक्रमों के नियंत्रण में चलते हैं।
सॉफ्टवेयर का निर्माण एक और हो गया हैकंप्यूटर प्रौद्योगिकी के क्षेत्र में एक बड़ी सफलता। यह हार्डवेयर के लिए जरूरी है। प्रोग्रामिंग विकास के दशकों में, विभिन्न प्रकार के सॉफ़्टवेयर बनाए गए हैं। इनमें सिस्टम, एप्लिकेशन और टूलिंग प्रोग्राम शामिल हैं।
सिस्टम प्रोग्राम प्रदान करने के लिए डिज़ाइन किए गए हैंसिस्टम की संचालन क्षमता, हार्डवेयर और कार्यक्रमों की पारस्परिक क्रिया, कंप्यूटर और उपयोगकर्ता की सहभागिता। इनमें ऑपरेटिंग सिस्टम, ड्राइवर, यूटिलिटीज, सर्विस प्रोग्राम और अन्य प्रकार के सॉफ्टवेयर शामिल हैं। वर्तमान में, सबसे व्यापक ऑपरेटिंग सिस्टम विंडोज और यूनिक्स परिवार हैं।
विभिन्न प्रकार के सॉफ्टवेयर,संबंधित से संबंधित, उपयोगकर्ता को विभिन्न प्रकार के कार्यों को हल करने की अनुमति देता है - विशेष डेटा के साथ जटिल मेटामॉर्फोसिस टाइप करने से। आवेदन कार्यक्रमों में शामिल हैं: पाठ और ग्राफिक संपादक, स्प्रेडशीट, गेम, अनुवादक आदि। उपयोगकर्ता अपनी जरूरतों के आधार पर, एप्लिकेशन प्रोग्राम के सेट को स्वयं परिभाषित करता है।
सॉफ्टवेयर का एक बहुत कुछ नहीं है,लेकिन सब कुछ उचित सीमा के भीतर होना चाहिए। एक तरफ, कंप्यूटर पर जितने अधिक प्रोग्राम इंस्टॉल किए जाते हैं, उतना ही बहुमुखी है। दूसरी ओर, इन कार्यक्रमों में अधिक संसाधनों की आवश्यकता होती है और सिस्टम प्रदर्शन को काफी कम कर सकते हैं।
कुछ साल पहले, यह बहुत लोकप्रिय थाशुरुआती या कुछ सॉफ्टवेयर उत्पादों पर उपयोगकर्ताओं के लिए कंप्यूटर पाठ्यक्रम। हालांकि एक उन्नत उपयोगकर्ता के लिए, किसी भी प्रकार का सॉफ़्टवेयर सहायता प्रणाली का उपयोग करने में महारत हासिल करने के लिए उपलब्ध है।
इंस्ट्रूमेंटल सॉफ्टवेयर हैऐसे कार्यक्रम जिनसे आप अन्य कार्यक्रम बना सकते हैं। इन कार्यक्रमों को प्रोग्रामिंग लैंग्वेज कहा जाता है और इसमें प्रोग्राम कोड एडिटर, ट्रांसलेटर और लिंकर होते हैं। पहले दो प्रकारों के विपरीत, टूलिंग सॉफ़्टवेयर का उपयोग करने के लिए कुछ पेशेवर कौशल की आवश्यकता होती है। टूलकिट के उदाहरण डेल्फी, पास्कल, सी ++ और अन्य हैं।
इसलिए, विभिन्न प्रकार के सॉफ़्टवेयर के विभिन्न उद्देश्य और जटिलता के अलग-अलग डिग्री हैं।