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