- यह सच है कि LLM tools डेवलपर उत्पादकता बढ़ाते हैं
- लेकिन लंबे समय में इन tools पर निर्भरता बढ़ने से खुद समस्याएँ हल करने की क्षमता कमजोर हो जाती है
- code लिखने की प्रक्रिया से मिलने वाला संतोष कम हो जाता है, और समस्या हल करने के बजाय AI के जवाब का इंतज़ार होने लगता है
डेवलपमेंट के प्रति जुनून और चुनौती लेने की भावना का कमजोर होना
- कुछ लोग coding का आनंद ही नहीं लेते → ऐसे मामलों में हो सकता है कि development field उनके लिए सही न हो
- जिन बेहतरीन engineers से मैं मिला हूँ, वे weekend पर भी अपनी इच्छा से tools या software बनाते हैं और innovation का पीछा करते हैं
- system performance में सुधार के लिए बुनियादी समझ ज़रूरी है, वरना वह सिर्फ़ बिना दिशा के कोशिशें बनकर रह जाता है
'Copilot Lag' घटना
- 'Copilot Lag' का मतलब है AI के अगले निर्देश का इंतज़ार करने वाली अवस्था
- यह कुछ वैसा है जैसे कोई junior developer अपने senior के निर्देश का इंतज़ार करे
- GitHub Copilot इस्तेमाल करते-करते बुनियादी language elements और syntax तक भूलने लगते हैं
- अल्पकालिक speed gain की वजह से दीर्घकालिक knowledge कमजोर पड़ जाती है
LLM सीखने की प्रक्रिया में बाधा बन सकता है
- Thorsten Ball की "Writing An Interpreter In Go" पढ़ते समय Copilot ने code generate करके दिया, लेकिन उसे खुद दोबारा लिख पाने की क्षमता नहीं बन पाई
- memory management या data-oriented design जैसे महत्वपूर्ण concepts छूट सकते हैं
- AI द्वारा बनाया गया code ऊपर से सही लग सकता है, लेकिन अगर मूल सिद्धांत समझ में न आएँ तो उसका कोई अर्थ नहीं
LLM का प्रभावी उपयोग कैसे करें
- LLM को search engine की तरह उपयोगी ढंग से इस्तेमाल किया जा सकता है
- जैसे Stack Overflow search करते हैं, वैसे ही LLM के जवाबों को reference के तौर पर देखा जा सकता है
- लेकिन LLM असली experts के ज्ञान को ज्यों का त्यों नहीं दर्शाता; वह सीखे हुए patterns और token sequences के आधार पर जवाब बनाता है → इसलिए गलतियाँ बहुत होती हैं
- LLM के जवाब को सीधे स्वीकार न करें, बल्कि यह विश्लेषण करें कि वह यह approach क्यों सुझा रहा है
- जब कुछ पता न हो, तो खुद जाँचें और सीखें
- नई language (Zig आदि) सीखते समय सीखी गई बातों के notes बनाना उपयोगी होता है
- notes सीखने के reference material बन सकते हैं, और दूसरों के साथ share करने में भी मदद करते हैं
निष्कर्ष
- AI tools उपयोगी हैं, लेकिन उन पर आँख बंद करके निर्भर रहने से उल्टा नुकसान हो सकता है
- AI द्वारा सुझाए गए समाधान के सिद्धांत को समझना और खुद सीखने की मानसिकता रखना महत्वपूर्ण है
- आखिरकार सबसे महत्वपूर्ण बात यह है कि tools पर निर्भर हुए बिना बुनियादी problem-solving क्षमता को बनाए रखा जाए
29 टिप्पणियां
हम्म... मुझे लगता है कि शुरुआत से ही फर्क इस बात के नज़रिए का है कि AI को एक tool माना जाए या intelligence। मैं इस लेख से सहमत नहीं हो सकता, क्योंकि जैसा कि नीचे की टिप्पणी में कहा गया है, developer को सिर्फ code level पर देखना ही अपने-आप में गलत सोच है। अतीत में जब ब्रिटेन में Industrial Revolution हुआ था, तब किसानों ने भी शोर मचाया था कि हम भूखे मर जाएंगे, लेकिन नतीजे में उससे और ज़्यादा नौकरियाँ पैदा हुईं और मानवता को बहुत लाभ मिला। इसी तरह, जब पहले computer आए थे, तब भी कहा जाता था कि computer की वजह से लोग धीरे-धीरे मूर्ख हो जाएंगे, लेकिन नतीजा यह हुआ कि ज़्यादा काम कम समय में हल होने लगे और लोग और ज़्यादा smart हो गए।
अभी भी high-level problem solving के लिए, deep research सहित LLMs उपयोगी नहीं हैं। (उदाहरण के लिए, paper-level algorithm development)
अत्यधिक optimization, और ऐसी coding जिसमें विभिन्न system characteristics और technical issues को समझना ज़रूरी हो, उनमें भी अभी इंसानी हाथ की ज़रूरत है। डेवलपर सिर्फ साधारण programmer नहीं, बल्कि problem solver है। कभी न कभी end-to-end problem solving भी संभव हो जाएगी, लेकिन अभी यह typing और simple programming में लगने वाला समय बचाकर ज़्यादा कठिन समस्याओं तक पहुँचने के तरीकों में निवेश करने देता है, इसलिए productivity के लिहाज़ से यह सकारात्मक लगता है।
कब से ऐसा होने लगा, पता नहीं, लेकिन लगता है कि मैं इसे अक्सर code review जैसी अवधारणा की तरह इस्तेमाल कर रहा हूँ। मैं code के सुझाव लेता हूँ, code की दिशा पर बात करता हूँ, बेहतर तरीकों पर सोचकर सुझाव देता हूँ, और जब मुझे संतोषजनक नतीजा मिलता है तो उसे अपनाता हूँ।
पूरे application logic और business logic के बारे में इंसानों को ही सोचना चाहिए।
अगर डेवलपर्स को सिर्फ कोडिंग तक सीमित कर दिया जाए, तो ऐसी चिंता सामने आती है। असल में डेवलपर्स इससे कहीं ज़्यादा काम करते हैं; कोडिंग वाले हिस्से के लिए AI पर निर्भर होने को कोई उन्हें बेवकूफ बनना मान सकता है, लेकिन इसे इस तरह भी देखा जा सकता है कि इससे वे दूसरे हिस्सों पर ज़्यादा ध्यान दे पाते हैं।
द्यु-द्या-ई... मैं एक बेवकूफ डेवलपर हूँ...
Unity के बारे में भी कहा जाता था कि वह game developers को बेवकूफ़ बना देता है, लेकिन कोई भी बेवकूफ़ नहीं बना; उल्टा सबने और भी बहुत कुछ सीखा और बस काम ही बढ़ गया lol
काम ही और बढ़ गया... ये कैसे हो गया..
यह कहना कि यह डेवलपर्स को बेवकूफ बना रहा है... इससे सहमत होना मुश्किल है.
AI अपनाने के बाद प्रोडक्टिविटी सच में बहुत तेज़ी से बढ़ी है।
यहाँ एक बेवकूफ़ है
आजकल ऐसा माहौल है कि अगर आप इस बात से सहमत न हों कि आजकल AI से सब कुछ किया जा सकता है, तो लोग आपको बुरा-भला कहने लगते हैं।
अगर बात ऐसी लाइब्रेरी फीचर्स की हो जिनके बारे में पता नहीं था, या ऐसे shell scripts की जो तुरंत याद नहीं आते, तो ठीक है। लेकिन इनमें पहले से deprecated हो चुके फीचर्स या मौजूद ही नहीं होने वाले functions भी मिल जाते हैं, और फिर debugging में सारा समय निकल जाता है.
> LLM के जवाब को ज्यों का त्यों स्वीकार नहीं करना चाहिए; यह भी समझना चाहिए कि वह उस तरह का approach क्यों सुझा रहा है.
मुझे लगता है, यही बात सबसे अहम है.
मुझे लगता है कि टूल हमेशा सोच का विस्तार भी लाते हैं और साथ ही सोच को तोड़ते भी हैं। सोच के इस विघटन के ज़रिए हमें उच्च-स्तरीय सोच के विस्तार की ओर बढ़ पाना चाहिए, लेकिन जब ऐसी तैयारी नहीं होती, तब इस तरह की समस्याएँ हमेशा साथ आती दिखती हैं.
इसलिए, आखिरकार टूल के इस्तेमाल के साथ इस तरह की चिंताएँ हमेशा जुड़ी रहती हैं। मुझे लगता है कि ये एकदम ज़रूरी प्रक्रियाएँ हैं। बस इसे ठुकरा देना या अंधाधुंध इस्तेमाल करना सही नहीं है; बल्कि यह सोचना बेहतर है कि इस टूल का अच्छा उपयोग कैसे किया जाए, और ऐसे टूल की मदद से मूल रूप से अधिक महत्वपूर्ण हिस्सों पर resources कैसे लगाए जा सकते हैं। मेरा मानना है कि इसी फ़ोकस के साथ इसका इस्तेमाल करना उचित है.
(cursor का usage महीने में 1,000 बार से ऊपर जाते हुए...)
श्री किम। मैं हिम्मत करके एक सलाह देना चाहता हूँ। और कुछ नहीं, बस Excel function? का बहुत ज़्यादा इस्तेमाल मत कीजिए। अगर सुविधा है, तो जोखिम भी बढ़ता है। गाय को काटने के लिए वैसी ही धार होती है, लेकिन मुर्गी काटने के लिए क्या सच में चाकू चाहिए? आसान तरीका ही सही जवाब हो सकता है।
ऊपर वाला लेख तो Excel function के GPT version जैसा है lol
मेरी राय में मानसिक गणना तेज़ हो सकती है, और calculator उपयोगी हो सकता है। कंप्यूटर तो क्या मवेशी काटने वाली छुरी जैसा औज़ार नहीं है, यही कहना चाहता हूँ.
मैं अब फिर कभी chatGPT का इस्तेमाल नहीं करूँगा
मैंने भी इसी तरह की एक पोस्ट लिखी थी।
यह साफ़ है कि productivity बढ़ती है, लेकिन मेरा मानना है कि अपने दिमाग़ को पूरी तरह इसके हवाले कर देने जैसी आदत से बचना चाहिए।
मैं अब भी Cursor और Anthropic का बड़ा समर्थक हूँ, लेकिन किसी बिंदु पर मैंने देखा कि जिस agent mode को लेकर मैं बहुत उत्साहित था, उसे धीरे-धीरे कम इस्तेमाल कर रहा हूँ। अब मैं पहले ask mode में architecture और implementation method के बारे में पूछता हूँ, और जब पूरी तरह आश्वस्त हो जाता हूँ तभी AI के change suggestions को एक-एक करके स्वीकार करता हूँ।
ऐसा इसलिए बदला, क्योंकि बहुत बड़ा नहीं होने वाला एक मॉड्यूल — लेकिन हमारे काम के project में काफ़ी महत्वपूर्ण — को 2 engineers ने अपने-अपने agent mode का इस्तेमाल करके refactor किया और उसमें नई संरचना जोड़ी, और फिर एक समय ऐसा आया जब architecture को व्यवस्थित करने के इरादे से लिखा गया code वास्तव में readability और structure दोनों को और ज़्यादा खराब कर बैठा।
मैं भी इसे ऐसे ही इस्तेमाल करता हूँ। अगर कोई भाषा सचमुच पूरी तरह नई हो, तो मैं agent mode इस्तेमाल करता हूँ, लेकिन अगर भाषा जानी-पहचानी हो, तो पहले यह देखता हूँ कि कोड तर्कसंगत है या नहीं।
AI डेवलपर्स को बेवकूफ़ बना रहा है, ऐसा कहने से ज़्यादा…
बेवकूफ़ डेवलपर, AI इस्तेमाल करके भी बेवकूफ़ डेवलपर ही रहता है…
Garbage in Garbage out
बिल्कुल सही कहा आपने lol
मैं सहमत हूँ। यह न तो पूरी तरह बुरी चीज़ है और न ही पूरी तरह अच्छी, बल्कि लगता है कि यह बस एक और उपयोगी productivity tool जुड़ गया है।
मैं सहमत हूँ।
मैं पहले से ही अक्सर कहता आया हूँ कि डेवलपर कहलाने वाले सभी लोग एक जैसे डेवलपर नहीं होते।
लगता है यह बात सही है...
कहने का अंदाज़ भले ही थोड़ा सख्त है, लेकिन बात पूरी तरह गलत भी नहीं है। जैसे कि अच्छे सवालों से अच्छे जवाब निकलते हैं, उसी तरह...
मुझे लगता है कि लेखक अंधाधुंध सिर्फ़ AI टूल्स पर निर्भर होकर उनका इस्तेमाल करने की बात कर रहे थे।
मेरी व्यक्तिगत राय यह है कि अगर AI के उपयोग से काम की दक्षता बढ़ी है,
तो उसका सक्रिय रूप से इस्तेमाल करके दोहराए जाने वाले कामों को कम करना,
और इस तरह मिले समय को बड़े दायरे वाले क्षेत्रों में (जैसे: backend डेवलपर का frontend या app development तक विस्तार)
या architecture design जैसी अधिक विकासोन्मुख दिशा में लगाना बेहतर होगा।
पूरे लेख की बात देखें तो लगता है कि लेखक भी इस राय से सहमत होंगे,
लेकिन कभी-कभी ऐसे डेवलपर्स भी होते हैं जो AI को ही पूरी तरह नकार देते हैं, इसलिए कुछ पंक्तियाँ जवाब में लिख दीं.. हा हा
.
मैं भी सहमत हूँ। यह पढ़कर वह लेख याद आ गया जिसमें कहा गया था कि Excel के function इस्तेमाल नहीं करने चाहिए।
मुझे लगता है कि जो फीचर्स मौजूद हैं, उनका अच्छी तरह उपयोग करके उनकी उपयोगिता और बढ़ा दी जाए तो वही फ़ायदेमंद है.
सहमत हूँ. ^^
Hacker News की राय