क्या आपने Rails योग्यता चार्ट देखा है?
CodeFellows के ब्रूक रिगियो ने इसे एक साथ रखा ताकि एक आधुनिक Rails डेवलपर को जिन सभी अवधारणाओं को जानना चाहिए, उन्हें दिखाया जा सके। एक नज़र डालें:

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