- जब मैंने पहली बार AI code tools का इस्तेमाल किया, तो उनकी हैरान करने वाली क्षमता और efficiency से प्रभावित हुआ।
- खासकर C++ compile errors का analysis करने में उन्होंने मदद की, और यह लगभग जादू जैसा लगा।
- GitHub Copilot और अलग-अलग LLM-आधारित editor integration tools का इस्तेमाल करते-करते वे मेरे development workflow का हिस्सा बन गए।
- लेकिन 2024 के अंत तक मैंने अपने code editor से सभी LLM integration features हटा दिए।
- मैं अब भी कभी-कभी AI का इस्तेमाल करता हूँ, लेकिन उसे अपने मुख्य workflow में शामिल नहीं करता।
Tesla FSD जैसा एक समान अनुभव
- 2019~2021 के दौरान Tesla कार चलाते समय मैंने FSD का अक्सर इस्तेमाल किया।
- हाईवे पर FSD इस्तेमाल करने से ड्राइविंग पर मेरा ध्यान धीरे-धीरे कम होने लगा।
- FSD पर निर्भरता की वजह से अपनी ड्राइविंग क्षमता कमजोर होने लगी।
- बाद में सामान्य कार चलाते समय फिर से पूरा ध्यान वापस पाने में समय लगा।
AI code editor इस्तेमाल करने का अनुभव
- AI tools का इस्तेमाल जितना बढ़ा, काम की रफ्तार उतनी तेज हुई, लेकिन बुनियादी कौशल उतने कमजोर हुए।
- side projects में AI tools उपलब्ध न होने पर असुविधा महसूस हुई और आत्मविश्वास भी कम हुआ।
- function definitions, test code लिखने जैसी बुनियादी चीजों में भी कठिनाई होने लगी।
- AI पर निर्भर होते-होते implementation decisions खुद लेने में भरोसा कम हो गया।
- आखिरकार महसूस हुआ कि जटिल कामों में मेरी क्षमता सचमुच घट गई है।
सहज तकनीकी समझ का खोना
- जर्मन शब्द ‘Fingerspitzengefühl’ का अर्थ है वह सहज निर्णय क्षमता जो किसी अनुभवी व्यक्ति में होती है।
- code लिखने में भी, किसी language और framework से गहराई से परिचित होने पर ऐसी समझ विकसित होती है।
- pointer usage, standard library चुनना, assert का इस्तेमाल जैसी बारीक technical choices में यह समझ अहम होती है।
- AI tools इस समझ को कमजोर कर देते हैं।
- code की quality और maintainability को देखते हुए मानवीय अंतर्ज्ञान बहुत महत्वपूर्ण है।
AI tools के बिना भी development संभव है
- यह डर कि AI tools के बिना काम ही नहीं हो पाएगा, बढ़ा-चढ़ाकर कहा गया है।
- वास्तव में बड़े projects या legacy systems में AI इतना उपयोगी नहीं होता।
- जिन projects में internal tools, frameworks, या internal DSL का इस्तेमाल होता है, वहाँ LLM ज़्यादा मदद नहीं करते।
- security-sensitive code (JWT, RBAC आदि) AI के भरोसे नहीं छोड़ना चाहिए।
- security वह क्षेत्र है जिसे आपको खुद समझना और जिसकी जिम्मेदारी खुद लेनी चाहिए।
- अगर AI code लिखने से लेकर PR review और deployment तक सब संभाले, तो security समस्याएँ तेजी से बढ़ेंगी।
AI इस्तेमाल करने की सीमा तय करना
- AI उपयोगी है, लेकिन उसे editor में integrate करके इस्तेमाल करने के तरीके से मैं बचता हूँ।
- मैं खुद context देता हूँ, ज़रूरी code लेता हूँ, और उसे manually लागू करता हूँ।
- उदाहरण: test conversion, SIMD calculations conversion, compressed data decoding आदि।
- इस तरीके से code के प्रति जिम्मेदारी महसूस होती है और लागत भी कम होती है।
- सीखने के लिए AI का इस्तेमाल फायदेमंद है: assembly code, shaders, network code आदि की व्याख्या माँगने पर यह खास तौर पर उपयोगी होता है।
- अपने व्यक्तिगत ब्लॉग में मैं AI-generated content का इस्तेमाल नहीं करता और मानव-निर्मित सामग्री को प्राथमिकता देता हूँ।
जो काम पसंद है, उसे जारी रखना
- efficiency और productivity के अलावा, उस काम को जारी रखना भी ज़रूरी है जिसे आप पसंद करते हैं।
- जैसे chess में AI जीत सकता है, फिर भी लोग उसे खेलना पसंद करते हैं; उसी तरह programming भी आनंद की वजह से जारी रह सकती है।
- सिर्फ बेहतर करने के लिए नहीं, बल्कि क्योंकि आप इसे पसंद करते हैं, programming जारी रखना महत्वपूर्ण है।
नए developers के लिए सलाह
- AI पर निर्भर रहने वाले ‘permanent junior’ मत बनिए।
- खुद code लिखने की क्षमता विकसित कीजिए और system के सिद्धांतों को गहराई से समझिए।
- under the hood चलने वाली संरचनाओं का अध्ययन करते हुए अपनी क्षमता बढ़ाना महत्वपूर्ण है।
- AI सिर्फ एक tool है; वह अपने-आप में कोई पूर्ण समाधान नहीं है।
- कभी-कभी AI के बिना काम करने का अभ्यास भी ज़रूरी है।
- सिर्फ ‘vibe coding’ से आप एक सक्षम developer नहीं बन सकते।
- अगर आप AI के बिना coding नहीं कर सकते, तो आप वास्तव में coding नहीं कर रहे हैं।
निष्कर्ष
- AI का मतलब है गति के बदले ज्ञान की कुछ कीमत चुकाना।
- कभी-कभी यह trade-off मूल्यवान हो सकता है, लेकिन fundamentals की training अनिवार्य है।
- सक्षम developers बार-बार basics का अभ्यास करते हैं।
- AI अभी नौकरियाँ पूरी तरह replace करने से बहुत दूर है, और कंपनियाँ अक्सर FOMO पैदा करके investment आकर्षित करना चाहती हैं।
- AI सिर्फ एक tool है, सोचने का विकल्प नहीं।
- हमेशा जिज्ञासु बने रहना और सीखते रहना महत्वपूर्ण है।
16 टिप्पणियां
कुशल डेवलपर की बुनियादी समझ क्या कंप्यूटर के आविष्कार के बाद से बदली नहीं है?
मैं भी cote की तैयारी करते हुए बस आदतन Cursor ही चलाता रहा, यहाँ तक कि typing से ज़्यादा Tab ही दबाने लगा... haha फिर अच्छे मन से वापस vscode पर लौट आया।
AI टूल बनाने वाले लोग भी शायद इस समस्या को अच्छी तरह जानते होंगे। बस इस पर चुप्पी साधे हुए हैं
अगर आप AI पर बिना सोचे-समझे निर्भर हो जाएँ, तो यह वैसा ही हो सकता है जैसे कोई अक्षम मैनेजर जिसे architecture की भी समझ न हो, जो खुद code की एक लाइन भी न लिख सके, सिर्फ अपने जूनियर कर्मचारियों से काम करवाए, code में छिपे जोखिमों को भी न समझे, और समस्या आने पर उसका हल भी न ढूंढ पाए। फर्क बस इतना होगा कि इस्तेमाल का tool मानव बुद्धि से बदलकर कृत्रिम बुद्धिमत्ता हो जाएगा।
गंदे, थकाऊ मेहनत वाले कोडिंग काम के लिए इससे बेहतर कुछ नहीं है...
मैं कुल मिलाकर इससे सहमत हूँ। मुझे लगता है कि अभी भी ऐसे क्षेत्र हैं जहाँ इस तरह की समझ की ज़रूरत होती है, और किसी चीज़ को पहचानना और न पहचानना—इन दोनों के बीच का फ़र्क काफ़ी बड़ा होता है। इसे एक टूल की तरह इस्तेमाल करें, लेकिन मेरा मानना है कि उसके बारे में पर्याप्त जागरूकता भी होनी चाहिए।
AI code editor इस्तेमाल करने का अनुभव, सहज समझ का खो जाना, और नए डेवलपर्स को दी गई सलाह—ये तीनों बातें काफ़ी गहराई से जुड़ती हैं।
कंप्यूटर भी इस्तेमाल न करें, फिर क्यों करें..
हाहाहा, पूरी तरह सहमत।
हाहाहाहाहाहाहाहाहा
क्या यह 2025 संस्करण का "किम डेरी, फ़ंक्शन मत इस्तेमाल करि...ए" होगा हाहा
लेख को देखकर ऐसा नहीं लगता कि वह यह कह रहा है कि इसे मेहनत वाले कामों में इस्तेमाल न करें; बल्कि बात यह लगती है कि अपनी सोच-विचार की प्रक्रिया AI पर न छोड़ें।
हाहा +1 है
धीरे-धीरे... ऐसे हालात आ रहे हैं जहाँ जानबूझकर अभ्यास की ज़रूरत पड़ती है... :)
???: "putty और vi का इस्तेमाल करते रहिए"
Hacker News राय
मेरा मानना है कि कौशल दो तरह के होते हैं: स्वतंत्र कौशल और आधारभूत कौशल
अब मैं Cursor जैसे editor-स्तर के AI tools का उपयोग नहीं करता, और inline text completion तथा chat के जरिए समस्याएँ हल करता हूँ
ज़्यादातर coding मैं हाथ से करता हूँ, लेकिन research को समृद्ध करने के लिए semantic search में LLM का उपयोग करता हूँ
मैंने code completion बंद कर दिया है; सुझावों को पढ़ना मानसिक बोझ लगता है
Nicholas Carr की किताब बताती है कि automation पर निर्भरता बढ़ने के साथ कौशल कैसे घटते हैं
यह "हर developer को Assembly क्यों सीखनी चाहिए" जैसे लेखों से मिलता-जुलता है
मैं सिर्फ Rider के साथ आने वाली line-completion AI का उपयोग करता हूँ
AI tools जीवन को अधिक सुविधाजनक बनाते हैं
कौशल का ह्रास दोनों दिशाओं में काम करता है
किसी खास समस्या को खोजते समय मैं Google search की जगह इसका उपयोग करता हूँ