प्रोग्रामिंग में गहरी सीख: क्या, क्यों और कैसे

अस्वीकरण: यह लेख ईगोर याकोविशेन, सेका संपादक के प्रमुख डेवलपर और IIDF ट्रैकर के सहयोग से Skillbox द्वारा लिखा गया था।



आजकल, बुनियादी स्तर पर कार्यक्रम सीखना अपेक्षाकृत आसान है। उदाहरण के लिए, अमेरिकी बेघर लियो ग्रैंड, जिनके पास केवल तीन महीने में प्राथमिक शिक्षा थी, अपने स्वयं के मोबाइल एप्लिकेशन बनाने में सक्षम थे, जिन्हें ट्रीज़ फॉर कार कहा जाता था।

प्रोग्रामिंग भी क्यों सीखें? कई उत्तर हो सकते हैं, विकास करने की इच्छा से और मोटी कमाई की इच्छा के साथ समाप्त हो सकते हैं। लेकिन मान लीजिए कि हमने सीखा कि कैसे कोड किया जाए और एक निश्चित स्तर पर पहुंच जाए। काम है, पैसा भी लगता है, जीवन से संतुष्टि (आंशिक या पूर्ण) मिलती है। ऐसा लगता है कि आप रुक सकते हैं और बस अपनी उपलब्धियों का आनंद ले सकते हैं। वास्तव में, बंद मत करो। क्यों? हम इस बारे में बात करेंगे

आखिर क्यों सुधार हुआ?


यदि आप अपनी चुनी हुई विशेषता में सुधार नहीं करते हैं, तो थोड़ी देर के बाद आप खुद को एक ट्रोग्लोडाइट के रूप में पा सकते हैं, जो एक गुफा में बंद है, जो दूर के भविष्य की लेविटेटिंग इमारतों से घिरा हुआ है। हम्म, अच्छी तरह से, या एक एआई के साथ "सभ्यता" की कल्पना करें जिसके पास पहले से ही परमाणु हथियार हैं और एक खिलाड़ी अभी भी कस्तूरी की मदद से लड़ रहा है।

एक प्रोग्रामर के लिए, इस तरह की तुलना बहुत प्रासंगिक है, क्योंकि शाब्दिक रूप से हर दिन नए प्लेटफॉर्म, फ्रेमवर्क, हार्डवेयर दिखाई देते हैं, जिसके लिए आपको कुछ नया लिखने की आवश्यकता होती है। यदि आप एक ही व्यवसाय में कई वर्षों से लगे हुए हैं, तो रोजगार के साथ कठिनाइयां पैदा हो सकती हैं और उस जीवन के साथ बहुत संतुष्टि हो सकती है जिसके बारे में हमने ऊपर बात की थी।

यहां तक ​​कि अगर हम अपेक्षाकृत सरल कार्य करते हैं - उदाहरण के लिए, Microsoft Office के लिए VBScript पर स्क्रिप्ट बनाकर प्रक्रियाओं का स्थानीय स्वचालन, तो हम इस मामले में भी रोकने में सक्षम नहीं होंगे: कार्यालय सूट बदलता है, कुछ फ़ंक्शन जोड़े जाते हैं और हटा दिए जाते हैं, VBScript ही बदल जाती है। कुछ साल - और आज के समाधान उपयुक्त नहीं हैं। हम रूबी या जावास्क्रिप्ट जैसी प्रोग्रामिंग भाषाओं के बारे में क्या कह सकते हैं, जो प्रौद्योगिकी विकास में सबसे आगे हैं।

नई प्रौद्योगिकियों के साथ रखने के लिए (या, यदि आप एक शुरुआत कर रहे हैं, तो तुरंत कुछ प्रासंगिक करें, और मरने के समाधान नहीं सीखें) - एक स्किलबॉक्स प्रोग्रामिंग पाठ्यक्रमों में से एक के लिए साइन अप करें। हालांकि, हमारे बाकी क्षेत्र भी संबंधित कौशल को पंप करने और सहकर्मियों और कार्य प्रक्रियाओं को बेहतर ढंग से समझने के लिए आपके लिए उपयोगी हो सकते हैं।



मामले? मेरे पास है


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

लेकिन कुछ समय बाद, आईफोन के आगमन और स्टीव जॉब्स द्वारा स्लोगन "फ्लैश हम समर्थन नहीं करेंगे" की घोषणा के साथ, इस तकनीक को धीरे-धीरे छोड़ दिया गया। समय के साथ, Apple ने अन्य प्लेटफार्मों के लिए सूट और डेवलपर्स का पालन किया।

यह स्पष्ट है कि यह सब बहुत जल्दी नहीं हुआ, लेकिन फ्लैशर्स ने बदलाव को महसूस किया। किसी ने लगभग तुरंत काम के नए क्षेत्रों की तलाश शुरू कर दी और अन्य प्रोग्रामिंग भाषाओं को सीखना शुरू कर दिया। खैर, कोई भी वह करता रहा जो वह करता था, और आखिरकार काम से बाहर रहा, क्योंकि फिर से प्रयास करने का समय नहीं था।

सीएमएस बिट्रिक्स विशेषज्ञों के बीच एक ऐसी ही समस्या उत्पन्न हो सकती है जो इस प्रणाली के आधार पर एक ही प्रकार की साइटें बनाते हैं और वे मूल रूप से प्रोग्रामिंग में प्रशिक्षित नहीं थे। यदि कुछ होता है और बिट्रिक्स अब इतना लोकप्रिय नहीं है, तो पूर्व "प्रोग्रामर" काम से बाहर रहेंगे, क्योंकि उन्होंने अपना विकास कौशल विकसित नहीं किया था, लेकिन लंबे समय तक ऐसा ही किया था।

Polyglot प्रोग्रामर या संकीर्ण प्रोफ़ाइल विशेषज्ञ?


जब एक प्रोग्रामर कौशल के एक निश्चित स्तर तक पहुंच गया है, तो सवाल उठता है: कहां पर आगे बढ़ना है? कुछ, प्रोग्रामिंग भाषाओं में से किसी एक में कुछ अनुभव प्राप्त करने के बाद, दूसरा और फिर तीसरा अध्ययन शुरू करते हैं।

लेकिन समस्या यह है कि हमारा समय संकीर्ण विशेषज्ञता का युग है। किसी भी प्रोग्रामिंग भाषा में सीखने के लिए आवश्यक जानकारी की मात्रा इतनी बड़ी है कि किसी अन्य चीज़ में विशेषज्ञ बनना बहुत मुश्किल है - बस पर्याप्त समय नहीं हो सकता है। किसी एक भाषा में अपेक्षाकृत अच्छी तरह से लिखना शुरू करने के लिए, आपको तीन साल (किसी को 10,000 घंटे की बात करना) चाहिए। लेकिन एक चुने हुए क्षेत्र में एक शांत समर्थक बनने के लिए, इसमें अधिक, बहुत अधिक समय लगता है।

इसका मतलब यह बिल्कुल नहीं है कि 2, 3, 5 भाषाएं या अधिक जानने वाले कोई पॉलीग्लॉट प्रोग्रामर नहीं हैं। वे हैं, लेकिन ऐसे लोग काफी दुर्लभ हैं। इसके अलावा, कई भाषाओं का ज्ञान इस बात की गारंटी नहीं है कि एक व्यक्ति पूरी तरह से सब कुछ समझ जाएगा। बिल्कुल नहीं: ज्यादातर मामलों में, प्रोग्रामर बस "खुद को उठाता है" और खुद को एक शांत सार्वभौमिक समझेगा। लेकिन उसे एक विशिष्ट कार्य दें - और उसका ज्ञान बस इसे हल करने के लिए पर्याप्त नहीं हो सकता है।

सुनहरे मतलब से चिपके रहना बेहतर है - प्रोग्रामिंग भाषाओं में से किसी एक को समझना बहुत अच्छा है, मुख्य रूप से, और यदि आप सामान्य विकास के लिए, दूसरों को थोड़ा सीखना चाहते हैं। अतिरिक्त कौशल ने अभी तक किसी को चोट नहीं पहुंचाई है।

वास्तव में क्या चुनना है?


छवि

विकास और सुधार के लिए सही दिशा चुनने के लिए, आपको थोड़ा दूरदर्शी होने की आवश्यकता है। दूसरे शब्दों में, आपको यह समझने की आवश्यकता है कि निकट भविष्य में कौन सी तकनीक और प्रोग्रामिंग भाषाएं उनसे जुड़ी होंगी।

ऐसा क्षेत्र चुनना सबसे अच्छा है जहां आज बहुत से पेशेवर नहीं हैं, और मुख्यधारा बनने से पहले ही एक समर्थक के रूप में आवश्यक अनुभव और ज्ञान प्राप्त करना शुरू कर देते हैं।

जावास्क्रिप्ट एक उदाहरण है। अब यह भाषा बहुत लोकप्रिय है, यह सभी के होंठों पर शाब्दिक है। लेकिन इसके विकास की शुरुआत में, जेएस एक आला उत्पाद था। जिन लोगों ने तुरंत इस क्षेत्र में विकास करना शुरू कर दिया है, वे शांत हो गए हैं और मांग के बाद विशेषज्ञ हैं जो (हाँ, इसके बिना नहीं) बहुत प्राप्त करते हैं। अब उस पर सब कुछ लिखा है: फ्रंटएंड, बैकएंड, यहां तक ​​कि मोबाइल एप्लिकेशन भी। यह भाषा लगभग किसी भी कार्य को हल करने के लिए सबसे विविध जटिलता के अनुप्रयोगों को जानने के लिए पर्याप्त है।

प्रोग्रामिंग लैंग्वेज, फ्रेमवर्क आदि में ट्रेंड पकड़ने का अच्छा तरीका है। - बड़ी कंपनियों के उत्पादों में कुछ उपकरणों के उपयोग को ट्रैक करें। यदि एक निगम एक आला उत्पाद में संलग्न करना शुरू कर देता है, तो इसे अपने उत्पादों में पेश करता है, तो यह विचार करने योग्य है कि क्यों। यदि यह दुर्घटना नहीं है, तो सबसे अधिक संभावना है कि यह जल्द ही प्रोग्रामिंग में मुख्यधारा बन सकता है।

आधुनिक प्रोग्रामिंग के तीन व्हेल: जावास्क्रिप्ट, पायथन, जावा


यदि हम पहले से ही पसंद के बारे में बात कर रहे हैं, तो यह विशिष्ट उदाहरण देने के लायक है। इसलिए, जावा स्क्रिप्ट और पायथन भाषाएँ वर्तमान में सबसे अधिक आशाजनक हैं। पहला है क्योंकि यह सार्वभौमिक है। दूसरा कारण यह है कि यह सबसे सरल (अपेक्षाकृत) में से एक है और एक ही समय में ट्रेंडी भाषाओं में महारत हासिल करने के लिए: मशीन लर्निंग, न्यूरल नेटवर्क, एआई के क्षेत्र से परियोजनाएं इस पर लिखी गई हैं। अजगर में, पूरे या हिस्से में, ड्रॉपबॉक्स, Google और यैंडेक्स के विभिन्न उत्पाद।

जावा भी एक सार्वभौमिक भाषा बनी हुई है जिसका उपयोग, विशेष रूप से, एंड्रॉइड के लिए एप्लिकेशन लिखने के लिए किया जाता है।

गुरु कैसे बनें?


सिद्धांत रूप में, यह इतना मुश्किल नहीं है। मुख्य बात मूल बातें, एक लचीला दिमाग, दृढ़ता और व्यावहारिकता की समझ है। हाँ, यह राजधानी है। तथ्य यह है कि कोई भी सिद्धांत, कोई फर्क नहीं पड़ता कि आप इसका अध्ययन कैसे करते हैं, अगर कोई व्यावहारिक अनुभव नहीं है, तो पेशेवर बनने में मदद मिलेगी। यह उन भाषाओं की तरह है जिन्हें लोग बोलते हैं: आप सैकड़ों विदेशी शब्दों को याद कर सकते हैं, व्याकरण के नियमों को पढ़ सकते हैं, लेकिन यदि आप बोलते और लिखते नहीं हैं, तो यह सब निष्क्रियता में चला जाता है, और समय के साथ यह पूरी तरह से भूल जाता है।

इसलिए, उन लोगों के लिए दो मुख्य सिफारिशें हैं जो अपने चुने हुए क्षेत्र में सुधार करना चाहते हैं:

  • किसी और का कोड पढ़ें।
  • अपना कोड लिखें।

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

छवि

अब ऐसी सेवाएं हैं जिन्हें प्रोग्रामर के लिए ट्विच कहा जा सकता है। उनमें से एक livecoding.tv है। संसाधन पर पंजीकृत प्रोग्रामर वास्तविक समय में कोड के प्रदर्शन के साथ अपने कार्यक्रम लिखते हैं।

और, ज़ाहिर है, हमें एक सिद्धांत भी चाहिए। ज्ञान भंडार को फिर से भरने के लिए, आपको बहुत कुछ पढ़ने की जरूरत है, और न केवल प्रोग्रामिंग में, बल्कि संबंधित विषयों में भी।

निष्कर्ष के रूप में, हम "ऐलिस इन वंडरलैंड" से उद्धरण याद कर सकते हैं (यहां तक ​​कि पूर्वस्कूली इसे भी जानते हैं, हाँ, लेकिन यह कथन के मूल्य को नकार नहीं सकता है): "हमें केवल रहने के लिए तेजी से दौड़ने की जरूरत है, लेकिन कहीं जाने के लिए, हमें चाहिए कम से कम दो बार तेज दौड़ें! ” वास्तव में, तकनीक की तेजी से भागती दुनिया में, आपको एक अच्छा प्रोग्रामर बने रहने के लिए एक ठोस प्रयास करने की आवश्यकता है। और बेहतर होने के लिए, आपको दो बार काम करने और अध्ययन करने की आवश्यकता है, यदि तीन गुना अधिक नहीं।

Source: https://habr.com/ru/post/hi415509/


All Articles