इसे करने के तरीके सीखना (Learning the Ropes) काम करना (Getting Work) प्रोग्राम तैयार करना (Developing a Program)
सॉफ्टवेयर डेवलपमेंट के बेसिक दो टाइप होते हैं: एप्लिकेशन डेवलपमेंट (Applications Development) और सिस्टम डेवलपमेंट (Systems Development)। एप्लिकेशन डेवलपमेंट में सारा फोकस, यूजर की जरूरत के अनुसार, प्रोग्राम को तैयार करने पर होता है। इनमें मोबाइल फोन एप्स से लेकर, हाइ-प्रोडक्शन वीडियो गेम्स तक, और एंटरप्राइज़-लेवल अकाउंटिंग सॉफ्टवेयर तक शामिल हैं। सिस्टम डेवलपमेंट में सारा फोकस, लाइफ-साइकल डेवलपमेंट का इस्तेमाल करते हुए किसी ऑपरेटिंग सिस्टम को तैयार करने और उसे मेंटेन करने के ऊपर होता है। सिस्टम डेवलपमेंट में अक्सर ही नेटवर्क ओपरेटेबिलिटी और डेटा सिक्योरिटी शामिल की जाती है। नए-नए आइडिया तो किसी के भी दिमाग में आ सकते हैं, लेकिन एक डेवलपर, इन आइडियाज को हकीकत में बदलने की काबिलियत रखता है। भले ही आप सॉफ्टवेयर की डिजाइनिंग के ऊपर काम करने का क्यों न सोच रहे हों, लेकिन फिर भी आपको कोडिंग के बारे में कुछ थोड़ी-बहुत जानकारी तो जरूर होना चाहिए और आपको बेसिक प्रोटोटाइप्स (prototypes) तैयार करते भी आना चाहिए। ऐसी न जाने कितनी ही सारी प्रोग्रामिंग लेंग्वेज मौजूद हैं, जिन्हें आप सीख सकते हैं। उनमें से कुछ ज्यादा जरूरी और उपयोगी लेंग्वेज में ये नाम शामिल हैं:   C - C एक काफी पुरानी, लेकिन अभी भी इस्तेमाल की जाने वाली लेंग्वेज है, और ये इस लिस्ट में मौजूद ज़्यादातर लेंग्वेज की आधार भी है। C का इस्तेमाल लो-लेवल प्रोग्राम्स बनाने में किया जाता है और ये कंप्यूटर के हार्डवेयर के साथ भी काफी करीब से काम करती है। C++ - ये C का ही ऑब्जेक्ट-ओरिएंटेड़ (object-oriented) वर्जन है और ये दुनियाभर की मशहूर प्रोग्रामिंग लेंग्वेज में से एक है। C++ के जरिये, क्रोम (Chrome), फायरफॉक्स (Firefox), फोटोशॉप (Photoshop) और भी कई दूसरे प्रोग्राम को तैयार किया गया है। इसके साथ ही ये लेंग्वेज वीडियो गेम्स तैयार करने के लिए भी काफी मशहूर है। C++ डेवलपर्स की हमेशा ही बहुत ज्यादा डिमांड रहती है। जावा (Java) - ये C++ लेंग्वेज का ही एक विकसित रूप है, और इसे इसकी पोर्टेबिलिटी के गुण के वजह से काफी ज्यादा इस्तेमाल किया जाता है। लगभग सारे सिस्टम पर जावा वर्च्युअल मशीन (Java Virtual Machine) को रन किया जा सकता है, जो जावा सॉफ्टवेयर रन करने की सुविधा देता है। इसे वीडियो गेम्स में और बिजनेस सॉफ्टवेयर में काफी ज्यादा इस्तेमाल किया जाता है और बहुत से लोग, इसे एक जरूरी लेंग्वेज की तरह इस्तेमाल करने की सलाह देते हैं। C# - C# एक विंडोज-बेस्ड (Windows-based) लेंग्वेज है, जो कि माइक्रोसॉफ्ट (Microsoft) के .NET फ्रेमवर्क का ही एक हिस्सा है। ये जावा (Java) और C++ से काफी ज्यादा संबंधित होती है और अगर आप जावा सीख लेते हैं, तो फिर आप बड़ी आसानी से C# को भी समझ सकते हैं। ये लेंग्वेज खासतौर पर विंडोज पर या विंडोज सॉफ्टवेयर पर काम कर रहे डेवलपर्स के लिए काफी उपयोगी होती है। ओब्जेक्टिव सी (Objective-C) - ये C की फ़ैमिली से ही आती है, और इसे खासतौर पर एप्पल (Apple) सिस्टम्स के लिए डिजाइन किया गया है। इसे आईफोन (iPhone) और आईपैड (iPad) एप्स के लिए बेहद लोकप्रिय माना जाता है। ये एक फ्रीलांसर की तरह सीखने लायक काफी अच्छी लेंग्वेज है।  पाइथन (Python) - सीखने के लिए यह एक अविश्वसनीय रूप से आसान भाषा है, सबसे आसान है। पाइथन वेब डेवलपमेंट में काफी माहिर है। पीएचपी (PHP) - ये पूरी तरह से सॉफ्टवेयर डेवलपमेंट के लिए नहीं होती, लेकिन अगर आप वेब डेवलपमेंट के क्षेत्र में कुछ करना चाहते हैं, तो ऐसे में पीएचपी सीखना आपके लिए जरूरी हो जाता है। पीएचपी डेवलपर्स के लिए हमेशा ही बहुत सारा काम मौजूद होता है, लेकिन इसमें सॉफ्टवेयर डेवलपमेंट जितना धनलाभ नहीं होता। बहुत सारे बुकस्टोर्स में प्रोग्रामिंग की बुक्स का एक पूरा सेक्शन होता है, और इसके साथ ही आपको अमेज़ोन (Amazon) पर और अन्य दूसरी ई-शॉप्स पर ऐसी ही न जाने कितनी ही चीज़ें मिल जाएंगी। एक अच्छी तरह से लिखी हुई प्रोग्रामिंग बुक आपके लिए सबसे अच्छा स्त्रोत रहेगी और साथ ही किसी प्रोजेक्ट पर काम करते हुए, जरूरत पड़ने पर आप इसे आसानी से भी एक्सेस कर सकेंगे। बुक्स के अलावा, इंटरनेट पर आपको ऐसी ही न जाने कितनी गाइड्स और ट्यूटोरियल्स मिल जाएंगे। CodeAcademy, Code.org, Bento, Udacity, Udemy, Khan Academy, W3Schools, और ऐसी न जाने कितनी ही तरह की साइट्स पर अपनी चुनी हुई लेंग्वेज के लिए गाइड्स की तलाश करने की कोशिश करें। वैसे तो सॉफ्टवेयर डेवलपमेंट में आने के लिए आपको एक पूरी डिग्री लेने की कोई जरूरत नहीं है, लेकिन फिर भी अपने आसपास मौजूद किसी लर्निंग सेंटर से या लोकल कम्यूनिटी कॉलेज से कुछ क्लासेस ले लेने से आपका कुछ नहीं बिगड़ने वाला। इससे आपको सामने से इन्सट्रक्शन मिलने का लाभ तो मिलेगा ही, साथ ही आपको कुछ ऐसी प्रॉब्लम्स सॉल्व करने की चुनौतियाँ भी मिलेंगी, जो शायद आपको अकेले में, खुद से सीखने से न मिलतीं।  क्लास करने के लिए पैसों की जरूरत होती है, तो इसलिए कोई भी क्लास लगाने से पहले इस बात की पुष्टि जरूर कर लें, कि उस क्लास में आपको वही सीखने को मिल रहा है, जिसे आप सीखना चाहते हैं। जैसे कि बहुत सारे डेवलपर्स उनकी स्किल्स के बलबूते पर ही इस इंडस्ट्री में आने के लायक बन पाते हैं, अगर आप भी किसी यूनिवर्सिटी से, कंप्यूटर साइंस में चार साल की एक बेचलर की डिग्री पा लेंगे, तो आप भी अपनी खुद की पहचान बनाने में कामयाब हो जाएंगे। एक डिग्री में आपको कुछ और ज्यादा जानकारी मिल सकती है और साथ ही आपको मैथ और लॉजिक जैसी कुछ और एक्स्ट्रा क्लासेस करने को भी मिल जाएंगी। इससे पहले कि आप आपकी प्रोग्रामिंग स्किल्स को रियल वर्ल्ड जॉब्स के ऊपर लगाना शुरू करें, कुछ प्रोजेक्ट्स के ऊपर सिर्फ अपने लिए काम करके देखें। अपनी प्रोग्रामिंग लेंग्वेज का इस्तेमाल करते हुए, खुद को कुछ प्रॉब्लम्स सॉल्व करने की चुनौती दें। इससे न सिर्फ आपको स्किल्स बढ़ाने में मदद मिलेगी, बल्कि ये आपके रिज्यूमे को भी अच्छा बनाने में मदद मिलेगी।  उदाहरण के लिए, ऑर्गनाइज़ रहने के लिए कंप्यूटर के कैलेंडर का इस्तेमाल करने के बजाय, अपने खुद के कैलेंडर को डिजाइन करके देखें! आप अगर वीडियो गेम डेवलपमेंट में दिलचस्पी लेते हैं, तो कुछ ऐसे सिंपल गेम्स को बनाने की कोशिश करें, जिनमें ग्राफिक्स या कॉम्प्लेक्स मेकेनिज़्म के ऊपर ज्यादा फोकस नहीं किया जाता हो। इसके बजाय, इन्हें मजेदार और यूनिक बनाने के ऊपर ध्यान दें। आपके द्वारा तैयार किए हुए छोटे-छोटे गेम्स का कलेक्शन, आपके पोर्टफोलियो पर काफी अच्छा नजर आएगा। इंटरनेट दूसरे डेवलपर्स के साथ जुडने का एक काफी अच्छा जरिया है। अगर आप खुद को, अपने प्रोजेक्ट में कहीं बीच में अटका हुआ पाते हैं, तो StackOverflow जैसी साइट्स पर मदद की माँग करें। वहाँ पर आपके द्वारा काफी इंटेलिजेंट तरीके से पूछने की पुष्टि कर लें और साथ ही आप ऐसा भी साबित होना चाहिए, कि आपने अपनी तरफ से जितना हो सकती थी, उतनी कोशिश करके देख ली है। अपने घरेलू प्रोजेक्ट के ऊपर, फिर चाहे एक घंटे ही सही, लेकिन रोजाना काम जरूर करें। ये आपको फ्रेश बनाए रखने में और नियमित रूप से नई-नई टेकनिक्स सीखते रहने में मदद करेगा। बहुत सारे डेवलपर्स को इसी तरह से रोजना उनकी प्रोग्रामिंग लेंग्वेज के ऊपर काम करते रहने के बाद इसे सीखने में सफलता मिली है। कोडिंग करने के लिए, रोजाना कुछ वक़्त तय कर लें या फिर इसे पूरा करने की एक डेडलाइन सेट कर लें। हफ्ते में हर रोज अपने प्रोजेक्ट के ऊपर काम करने की कोशिश करें, ताकि आप वीकेंड पर रिलैक्स फील कर सकें। हालाँकि इनमें बहुत ज्यादा फायदा नहीं मिलता और साथ ही इनके ऊपर एक फुल-टाइम जॉब की तुलना में ज्यादा भरोसा भी नहीं किया जा सकता, लेकिन आप एक साथ बहुत सारे कांट्रैक्ट जॉब्स लेकर, अपने पोर्टफोलियो में एक वजन जरूर ला सकते हैं। काम पाने के लिए, Elance और ODesk (जिसे अब "Upwork" के नाम से भी जाना जाता है) जैसी साइट्स पर जाएँ। वैसे तो कांट्रैक्ट पाने के लिए पहचान बनाई जाना काफी मुश्किल है, लेकिन जैसे ही आपको आपका पहला कांट्रैक्ट मिलेगा, आपकी मुश्किल काफी हद तक आसान हो जाएगी।  कांट्रैक्ट और फ्रीलांस जॉब्स के लिए Hacker News भी एक अच्छा जरिया है। इसमें "Ask" सेक्शन पर जाकर देखें। हालाँकि आपको कांट्रैक्ट जॉब को पाने के लिए ज़रा कम भाव रखने का खयाल जरूर आ सकता है, लेकिन अपनी सर्विसेज को ऐसे न बेचें। इस तरह से न सिर्फ आखिर में आपके पास में आपकी काबिलियत के हिसाब से कम कीमत पर ज्यादा काम रह जाएगा, साथ ही आप आपके फील्ड के दूसरे लोगों को भी नाराज कर देंगे, जिससे आपके लोगों से ताल-मेल कम हो जाएंगे। कांट्रैक्ट जॉब में किया हुआ अच्छा काम कभी-कभी एक फुल-टाइम पोजीशन भी दिला देता है। इसलिए हमेशा अपनी ओर से अच्छा काम करने की कोशिश ही किया करें! आप से जितना हो सके, उतना ज्यादा कोन्वेंशन (conventions) और हैक-ए-थॉन्स (hack-a-thons) अटेंड करें। इससे न सिर्फ आपके सामने सॉल्व करने लायक और ज्यादा कोड और प्रॉब्लम्स मिलेंगी, ये आपको इंडस्ट्री में मौजूद और भी दूसरे लोगों से मिलने में मदद भी करेगा। अपने बेसमेंट में अकेले काम कर रहे प्रोग्रामर के बारे में आप क्या सोचते हैं, इसके बावजूद, फुल-टाइम डेवलपर्स एक टीम का हिस्सा हैं और उनके लिए नेटवर्किंग किसी अन्य क्षेत्र के जितनी ही जरूरी होती है। एक बार आपके पास में कुछ कांट्रैक्ट जॉब्स आ जाएँ, फिर आप एक फुल-टाइम जॉब पाने के लिए अपने रिज्यूमे और पोर्टफोलियो को बड़े ऑर्गनाइजेशन में भेज सकते हैं। मोंस्टर (Monster) और इंडीड (Indeed) के अलावा, ऐसी काफी सारी डेवलपर-विशेष जॉब साइट मौजूद हैं, जिनके ऊपर आप ध्यान दे सकते हैं, जिनमें GitHub Jobs, StackOverflow Job Board, AngelList, CrunchBoard, Hirelite, और Hacker News के नाम शामिल हैं। एक अच्छा सॉफ्टवेयर डेवलपर, अक्सर एक से ज्यादा लेंग्वेज में गुणी होता है। जब आपके द्वारा सीखी हुई ज़्यादातर स्किल्स काम पर लग जाएँ, तब अपने खाली वक़्त का इस्तेमाल अपने ज्ञान को बढ़ाने में और दूसरी एक या दो लेंग्वेज के बेसिक्स सीखने में लगाएँ। इससे आपको किसी नए प्रोजेक्ट पर काम करने में काफी आसानी होगी और साथ ही ये आपको एक ज्यादा आकर्षक जॉब कैंडीडेट भी बना देगा। हर एक शुरुआती सॉफ्टवेयर डेवलपमेंट जॉब आपको शुरुआत में ही छह फिगर की सैलरी नहीं देने वाला है। असल में, इनमें से कोई भी नहीं देता। हालाँकि सॉफ्टवेयर डेवलपमेंट के बारे में एक अच्छी बात ये हैं, कि इसका मार्केट काफी ज्यादा स्ट्रॉंग है। अगर आपको ऐसा लगता है, कि आप कहीं पर रहकर ज्यादा कमाई नहीं कर पा रहे हैं, तो इस फील्ड में किसी नई कंपनी में (अगर आपके पास में स्किल्स हैं, तो) एक नई पोजीशन पर जाना भी उतना ही आसान है। अपने रिटायरमेंट प्लान के ऊपर ध्यान देने के बजाय, अपने पहले के कुछ जॉब्स को अपने लिए जरूरी एक्सपीरियंस की तरह समझें। एक अच्छा प्रोग्राम एक ऐसी टास्क परफ़ोर्म करता है, जो यूजर के लिए लाइफ को आसान बना सके। आप जिस टास्क को परफ़ोर्म कराना चाहते हैं, उससे जुड़े हुए मौजूदा सॉफ्टवेयर की तलाश करें और देखें अगर ऐसी कोई प्रोसेस मौजूद हो, जो कुछ और ज्यादा आसान या स्मूद बन सके। एक सफल प्रोग्राम वही होता है, जिसमें यूजर को काफी सारी उपयोगिता या लाभ नजर आएँ।  अपनी डेली टास्क को अपने कंप्यूटर पर जाँचें। क्या ऐसा कोई तरीका है, जिससे आप प्रोग्राम की मदद से, टास्क के किसी हिस्से को ऑटोमेट कर सकते हैं? हर एक आइडिया को लिखते जाएँ। भले ही आपको उस वक़्त पर कितने ही फालतू या कितने भी बचकाना क्यों न नजर आ रहे हों, लेकिन ये बाद में जाकर कुछ बहुत उपयोगी या हो सकता है, कि किसी शानदार चीज़ में बादल जाएँ। दूसरे प्रोग्राम्स की जांच करें। वो क्या करते हैं? वो किस तरह से और भी बेहतर बन सकते हैं? उनमें क्या कमी है? इन सवालों के जवाब देकर आपको अपने ही बेहतरी के लिए, कुछ अच्छे आइडिया मिलने में मदद मिलेगी। इस डॉक्यूमेंट में सारे फीचर्स के बारे में और आप इस प्रोजेक्ट से क्या पाने की उम्मीद रखते हैं, के बारे में एक आउटलाइन तैयार होगी। डेवलपमेंट प्रोसेस के दौरान, डिजाइन डॉक्यूमेंट को देखने से आपको अपने प्रोजेक्ट को एक सही दिशा में बनाए रखने में और अपना ध्यान बनाए रखने में मदद मिलेगी। डॉक्यूमेंट लिखने में मदद पाने के लिए, इस गाइड को देखें। ये एक ऐसा बेसिक प्रोग्राम होता है, जिसमें वो सारी फंक्शनालिटी दर्शाई हुई होती हैं, जिन्हें आप पाने का लक्ष्य कर रहे हैं। एक प्रोटोटाइप एक छोटा सा प्रोग्राम होता है और तब तक इसे दोहराते रहना चाहिए, जब तक कि आपको कोई एक ऐसा डिज़ाइन न मिल जाए, जो आपके लिए काम करता है। उदाहरण के लिए, अगर आप एक कैलेंडर प्रोग्राम तैयार कर रहे हैं, तो आपका प्रोटोटाइप एक बेसिक कैलेंडर (सही डेट्स के साथ!) और इसमें इवैंट्स एड करने के एक तरीके की तरह होगा।  डेवलपमेंट साइकल के दौरान, जब आपको अपनी प्रॉब्लम्स को सॉल्व करने के नए तरीके मिलेंगे या फिर आगे जाकर जब आपके मन में शामिल करने लायक कुछ नए आइडियाज मिलेंगे, तब आपका प्रोटोटाइप कई बार बदलेगा। प्रोटोटाइप को बहुत अच्छा होने की कोई जरूरत नहीं है। असल में, आर्ट और डिजाइन तो ऐसी चीज़ें होनी चाहिए, जिनके ऊपर आपको सबसे आखिर में ध्यान देना चाहिए। कैलेंडर वाले उदाहरण का इस्तेमाल करते हुए, आपके प्रोटोटाइप को सिर्फ टेक्स्ट की तरह ही होना चाहिए। बग्स (Bugs), ज़्यादातर सभी डेवलपर्स के लिए एक अभिशाप की तरह काम करते हैं। कोड में हुई गलतियाँ और इसके कुछ न सोचे हुए उपयोग, तैयार हुए प्रोडक्ट में सारी परेशानियाँ खड़ी करते हैं। जब आप आपके प्रोजेक्ट के ऊपर काम करना जारी रखें, तब इसे जितना हो सके, उतना टेस्ट करते रहें। आप इसे ब्रेक करने के लिए जो भी कुछ कर सकें, करें और फिर इसे बाद में ब्रेक होने से बचाए रखने के लिए कोशिश करें। आपके प्रोग्राम को टेस्ट करने और आपको इसके रिजल्ट दे सकने के लिए फ्रेंड्स और फैमिली को तैयार रखें। फीडबेक मिलने के सारे तरीके, आपकी डेवलपमेंट प्रोसेस में मदद मिलेगी।  अगर आपके प्रोग्राम में डेट्स का इस्तेमाल किया जा रहा है, तो फिर गलत डेट डालकर जाँचें। पुरानी डेट्स या फिर आगे आने वाली डेट्स प्रोग्राम में गलत या अजीब रिएक्शन पैदा कर सकती हैं। गलत तरह के वेरिएबल्स एंटर करके देखें। उदाहरण के लिए, अगर आपके पास में एक ऐसा फॉर्म है, जिसमें यूजर की एज माँगी जाती है, तो फिर इसकी जगह पर शब्द एंटर कर दें और देखें फिर आगे प्रोग्राम में क्या होता है। अगर आपके प्रोग्राम में ग्राफ़िकल इंटरफेस है, तो हर एक चीज़ पर क्लिक करें। जब आप पहली वाली स्क्रीन पर वापस आते हैं या फिर बटन्स को गलत क्रम में क्लिक करते हैं, तब क्या होता है? वैसे तो प्रोटोटाइप और डेवलपमेंट फेज के दौरान एक रफ प्रोजेक्ट बनाना सही है, अगर आप दूसरे लोगों के द्वारा भी इसे इस्तेमाल कराना चाहते हैं, तो फिर आपको इसे अच्छा बनाने में कुछ वक़्त देना पड़ेगा। इसका मतलब कि आपको मेन्यूज के लोजिकली फ़्लो होने की पुष्टि करनी है, यूजर इंटरफेस (User Interface या UI) के क्लीन होने की पुष्टि करनी है और ये भी देखना है, कि यहाँ पर कोई स्पष्ट या काम को रोकने वाला बग मौजूद नहीं है और साथ ही इसके एक अच्छे से तैयार हुई बॉडी में कवर होने की पुष्टि भी करना है।  यूआई (UI) डिजाइन और फंक्शनालिटी काफी कठिन और कॉम्प्लेक्स हो सकती हैं। लोगों का पूरा करियर यूआई डिजाइनिंग में बन जाते हैं। अपने पर्सनल प्रोजेक्ट के आसानी से इस्तेमाल हो सकने लायक होने और आँखों के लिए आसान होने की पुष्टि करें। बिना बजट और टीम के एक प्रोफेशनल यूआई का बना पाना नामुमकिन है। अगर आपका बजट अच्छा है, तो ऐसे में आपके लिए ऐसे न जाने कितने ही फ्रीलांस ग्राफिक्स डिजाइनर मौजूद हैं, जो एक कांटैक्ट के आधार पर आपके लिए एक यूआई डिजाइन करके दे सकते हैं। अगर आपके पास में एक ऐसा सॉलिड प्रोजेक्ट है, आपको जिसके आगे जाकर एक बहुत बड़ी चीज़ बनने की उम्मीद है, तो एक अच्छा यूआई डिजाइनर चुन लें और उन्हें भी अपनी टीम का एक हिस्सा बना लें। GitHub एक ओपन-सोर्स कम्यूनिटी है, जो आपको अपने कोड को दूसरों के साथ शेयर करने की सुविधा देती है। ये आपको आपके कोड के ऊपर एक दूसरा नजरिया पाने में मदद करेगा और साथ इससे उन दूसरे लोगों को भी लाभ होगा, जो लोग अपनी प्रॉब्लम के लिए एक सोल्यूशन की तलाश कर रहे हैं, जो कि आपके पास मौजूद है। GitHub एक अच्छा लर्निंग रिसोर्स होने के साथ ही आपके पोर्टफोलियो को बेहतर बनाने का भी एक अच्छा रास्ता है। जब आपका प्रोडक्ट पूरा हो गया हो, फिर आप तय कर सकते हैं, कि आपको इसे डिस्ट्रीब्यूट करना है या नहीं। आजकल इसे करने के न जाने कितने ही सारे रास्ते मौजूद हैं, जो कि पूरी तरह से आपके सॉफ्टवेयर पर निर्भर करते हैं।  पर्सनल वेबसाइट के जरिये इसे डिस्ट्रीब्यूट करना, किसी भी छोटी सी टीम या इंडिपेंडेंट डेवलपर्स के द्वारा अपने सॉफ्टवेयर को डिस्ट्रीब्यूट करने का एक आम तरीका है। आपके सारे फीचर्स के अच्छी तरह से डॉक्यूमेंट किए जाने की पुष्टि करें और साथ ही इसमें कुछ स्क्रीनशॉट्स और ट्यूटोरियल भी शामिल कर लें। अगर आप अपने सॉफ्टवेयर को बेच रहे हैं, तो पुष्टि कर लें, कि आपके पास में एक अच्छा डिजिटल पेमेंट सिस्टम और एक ऐसा सर्वर है, जिस पर से आप आपके सॉफ्टवेयर को डिस्ट्रीब्यूट कर सकते हैं। अगर आप किसी खास डिवाइस या ऑपरेटिंग सिस्टम के लिए सॉफ्टवेयर को तैयार कर रहे हैं, तो ऐसे में ऐसे बहुत सारे डिजिटल स्टोर्स मौजूद हैं, जिन्हें आप इस्तेमाल कर सकते हैं। उदाहरण के लिए, अगर आप एंड्रॉइड डिवाइस के लिए सॉफ्टवेयर बना रहे हैं, तो आप आपके एप को गूगल प्ले स्टोर (Google Play Store) से, अमेजोन एप स्टोर (Amazon App Store) से, या आपकी अपनी पर्सनल वेबसाइट से बेच सकते हैं।
पहले तय करें, कि आपकी दिलचस्पी किस बेसिक टाइप के सॉफ्टवेयर को डेवलप करने में है: एक प्रोग्रामिंग लेंग्वेज सीख लें: अपने लिए सीखने लायक स्त्रोतों की तलाश करें: कुछ क्लासेस कर लें: घरेलू प्रोजेक्ट के ऊपर काम करें: सवाल करें: रोजाना प्रैक्टिस करें: कांट्रैक्ट जॉब्स लें: जितना ज्यादा हो सके, उतना अपना नेटवर्क बढ़ा लें: फुल-टाइम पोजीशन के लिए अप्लाय करें: अपने स्किलसेट को बदलते रहें: सैलरी की चिंता न करें: आइडियाज की तलाश करें: एक डिजाइन डॉक्यूमेंट लिखें: एक प्रोटोटाइप (prototype) तैयार करें: इसे बार-बार जाँचते रहें: अपने प्रोजेक्ट को तैयार करें: अपने प्रोजेक्ट को GitHub पर रख दें: अपने सॉफ्टवेयर को डिस्ट्रीब्यूट करें:
https://www.wikihow.com/Develop-Software https://www.wikihow.com/Develop-Software https://www.wikihow.com/Develop-Software
Learning the Ropes Getting Work Developing a Program