लायब्ररी तयार करण्यासाठी वाचणे थांबवा. समस्या सोडवण्यासाठी वाचायला सुरुवात करा.
बहुतेक इंजिनिअरिंग रीडिंग लिस्ट्स ज्ञान गोळा करण्यावर लक्ष केंद्रित करतात. आधुनिक इंजिनिअरिंगमध्ये अडथळे (bottlenecks) सोडवल्याबद्दल मोबदला मिळतो.
एका ज्युनिअर इंजिनिअरने मला नुकतीच "Top 10 Books for Engineers" अशी एक लिस्ट दाखवली. ती दहा वर्षांपूर्वीच्या लिस्ट्ससारखीच दिसत होती. ती त्याच जुन्या गृहितकावर आधारित होती.
ते गृहीतक म्हणजे पुरेशी पुस्तके वाचल्याने तुम्ही एक चांगले इंजिनिअर बनता. उच्च कामगिरी करणाऱ्या टीम्स अशा प्रकारे शिकत नाहीत.
सर्वोत्तम इंजिनिअर्स त्यांच्या मर्यादांच्या (constraints) आधारे लर्निंग प्लॅन्स तयार करतात.
स्टँडर्ड रीडिंग लिस्ट्स असे मानतात की सर्व ज्ञानाला मूल्य असते. प्रत्यक्षात, इंजिनिअरिंगमधील मूल्य हे संदर्भावर (context) अवलंबून असते.
• डेटाबेसच्या समस्यांना तोंड देणाऱ्या बॅकएंड इंजिनिअरला Agile वरील पुस्तकाची गरज नसते. • AI inference वर खूप जास्त खर्च करणाऱ्या टीमला कोणत्याही सामान्य craftsmanship पुस्तकाची गरज नसते. • लेटन्सीच्या (latency) समस्यांना तोंड देणाऱ्या स्टार्टअपला लीडरशिप फ्रेमवर्कची गरज नसते.
या लोकांना त्यांच्यासमोर असलेल्या विशिष्ट अडथळ्यावर (bottleneck) उपाय हवे असतात. रीडिंग लिस्ट्स पूर्णत्वासाठी (completeness) ऑप्टिमाइझ केल्या जातात. इंजिनिअरिंगमध्ये सुसंगततेला (relevance) महत्त्व दिले जाते.
डेटाबेस आणि नेटवर्किंग सारखे मूलभूत घटक (fundamentals) अजूनही महत्त्वाचे आहेत. पण ते आता पुरेसे नाहीत.
आधुनिक सिस्टिम्स नवीन मर्यादा घेऊन येतात. AI inference खर्च हे याचे एक मोठे उदाहरण आहे. पारंपारिक लिस्ट्समध्ये या समस्यांचा क्वचितच समावेश असतो.
आव्हान आता केवळ योग्य सॉफ्टवेअर लिहिण्याचे उरलेले नाही. आव्हान आहे प्रोबॅबिलिस्टिक (probabilistic) घटकांवर आधारित विश्वसनीय सिस्टिम्स तयार करण्याचे.
भूतकाळात, इंजिनिअर्स डिटरमिनिस्टिक (deterministic) सिस्टिम्सवर काम करत असत. एकाच इनपुटमुळे नेहमी सारखेच आउटपुट मिळत असे.
आज, सिस्टिम्सचे वर्तन वेगळे असते. एक प्रॉम्प्ट (prompt) वेगवेगळे प्रतिसाद देते. एक एजंट (agent) वेगवेगळे मार्ग अवलंबतो. मॉडेल अपडेट केल्यावर तुम्ही तुमचा कोड न बदलताही त्याचे वर्तन बदलू शकते.
नवीन प्रश्न हे आहेत: • तुम्ही गुणवत्तेचे मूल्यमापन कसे करता? • तुम्ही या बदलांचे व्यवस्थापन कसे करता?
हे केवळ 'एज केसेस' (edge cases) नाहीत. ही दैनंदिन इंजिनिअरिंगची कामे आहेत.
सक्षम इंजिनिअर्स पुस्तके सुरुवातीपासून शेवटपर्यंत वाचत नाहीत. ते मेकॅनिझम (mechanisms) समजून घेण्यासाठी वाचतात. ते अडथळा शोधतात, त्याची कार्यपद्धती ओळखतात आणि त्यांना जे आवश्यक आहे तेच शिकतात.
• जर लेटन्सी (latency) जास्त असेल, तर बॅचिंगचा (batching) अभ्यास करा. • जर कॉन्टेक्स्ट (context) ही समस्या असेल, तर रिट्रिव्हलचा (retrieval) अभ्यास करा. • जर एजंट्स फेल होत असतील, तर इव्हॅल्युएशनचा (evaluation) अभ्यास करा.
यामुळे शिकणे थेट प्रोडक्शनशी जोडले जाते. ज्ञान हे एक साधन (leverage) बनते.
ही लर्निंग लूप वापरा:
- अडथळा (bottleneck) ओळखा.
- त्या समस्येसाठी विशिष्ट रिसोर्स शोधा.
- तो उपाय लागू करा.
रीडिंग लिस्ट पूर्ण करण्याचा प्रयत्न करणे थांबवा. सिस्टिम सुधारण्याचा प्रयत्न करायला सुरुवात करा.
तुमचे पुढचे पुस्तक वाचण्यापूर्वी, स्वतःला विचारा: माझ्या सिस्टममधील सर्वात मोठी मर्यादा काय आहे?
ती लॅटन्सी, खर्च, विश्वासार्हता की ऑब्झर्व्हेबिलिटी आहे?
त्या बॉटलनेकवर मात करणारा स्त्रोत शोधा. इंजिनीअरिंग ही वाचनाची स्पर्धा नाही. ते मर्यादा सोडवण्याचे एक व्यावसायिक क्षेत्र आहे.
तुमची सिस्टमच ठरवते की तुम्ही पुढे काय शिकायचे.