मैं हाथ से कोड लिखते समय ज़्यादा खुश रहता हूँ
(abhinavomprakash.com)- LLM-आधारित code generation tools का बार-बार उपयोग करने के बाद, लेखक ने खुद कोड लिखते समय मिलने वाला flow और आनंद फिर से खोजा
- कोड लिखना सिर्फ़ एक उत्पादकता वाली गतिविधि नहीं, बल्कि problem space को समझने और सोच को परिष्कृत करने की प्रक्रिया है, और auto-generation इसमें बाधा डालता है
- ऐसे कोड की शुद्धता जाँचना जिसे आपने खुद नहीं लिखा है कठिन होता है, और संदर्भ को भीतर तक समझना केवल खुद लिखते समय ही संभव होता है
- LLM का सीमित उपयोग करके संदर्भ को मैन्युअली देना और उसे केवल आंशिक code edits तथा test generation के लिए इस्तेमाल करना, सोच पर अपनी पकड़ बनाए रखने में मदद करता है
- यह लेख उत्पादकता से अधिक सोच की गहराई और खुशी को प्राथमिकता देता है, और ज़ोर देता है कि अगर कोई tool सोच में बाधा डालता है तो उससे सावधान रहना चाहिए
LLM code generation के उपयोग का अनुभव और उससे पैदा हुई शंका
- लेखक ने कई बार claude-code इस्तेमाल किया, लेकिन हर बार उदासी और निष्क्रियता महसूस की और अंततः उसे हटा दिया
- auto-generated code “ठीक-ठाक दिखता” था, लेकिन इससे अपने काम के अर्थ का एहसास कम हो जाता था
- हर बार tool का उपयोग बंद करने पर लेखक ने फिर से coding का आनंद पाया
- coding सिर्फ़ implementation नहीं, बल्कि problem space को explore करने और असफलताओं से सीखने की प्रक्रिया है
- किसी API को सच में समझने के लिए उसे खुद इस्तेमाल करना पड़ता है; सिर्फ documentation पढ़ना काफ़ी नहीं
- कोड लिखने की क्रिया खुद सोच को ठोस रूप देने का साधन है
सोच और शुद्धता का संबंध
> "अगर आप लिखे बिना सिर्फ़ सोचते हैं, तो आप केवल यह भ्रम पालते हैं कि आप सोच रहे हैं।" - Leslie Lamport
- ऐसे कोड की शुद्धता जाँचना जिसे आपने खुद नहीं लिखा है, कहीं ज़्यादा कठिन है
- खुद लिखने की प्रक्रिया में समस्या का संदर्भ भीतर तक बैठ जाता है, और यह code quality को समझने के लिए ज़रूरी है
- LLM पर निर्भर रहने से यह प्रक्रिया छूट जाती है, जिससे problem domain की समझ कमज़ोर पड़ती है
‘Vibe coding’ की लत और उसके दुष्प्रभाव
- LLM code generation में तुरंत dopamine reward देने वाली लत जैसी विशेषता होती है
- यह भ्रम पैदा होता है कि “बस prompt थोड़ा और बदल दूँ तो सही हो जाएगा”
- यह तरीका सोच की जड़ता बढ़ाता है, दिमाग़ को निष्क्रिय बनाता है, और साधारण कामों के लिए भी LLM पर निर्भरता बढ़ा देता है
- उदाहरण के तौर पर, एक साधारण find-and-replace काम भी LLM को देने पर ज़्यादा समय लगा
- चाहे generated code कितना भी अधिक हो, अंततः review और समझने की ज़िम्मेदारी इंसान की ही रहती है, और यही उल्टा bottleneck बन सकता है
tools किस तरह सोच को आकार देते हैं
- “tools तटस्थ नहीं होते” इस दृष्टिकोण से, जो tool सोच में बाधा डाले, वह बुरा tool है
- knowledge workers की मुख्य क्षमता गहराई से सोचने की क्षमता है, और जो तकनीक इसे बाधित करे उससे सावधान रहना चाहिए
- फिर भी, लेखक LLM को पूरी तरह नकारने के बजाय, इसे इरादतन और सीमित तरीके से इस्तेमाल करता है
- ज़रूरी files कॉपी करके संदर्भ दिया जाता है, और इसका उपयोग केवल code के कुछ हिस्सों में बदलाव या test लिखने के लिए किया जाता है
- इससे generated बदलावों का दायरा छोटा रहता है, और codebase की समग्र संरचना को खुद समझा जा सकता है
- यह निष्क्रिय generation नहीं बल्कि ‘thoughtful generation’ में बदल जाता है, जिससे दिमाग़ की सक्रियता और flow state बनाए रखना संभव होता है
खुशी और उत्पादकता के बीच संतुलन
- ज़िंदगी छोटी है, इसलिए खुशी को प्राथमिकता देनी चाहिए
- पूरे feature को auto-generate करने से उत्पादकता बढ़ सकती है, लेकिन अगर उससे अस्तित्वगत बेचैनी और उदासी पैदा होती है, तो लंबे समय में वह अलाभकारी है
- लेखक मानता है कि आप उसकी भावनाओं से सहमत भी हो सकते हैं और नहीं भी,
“अलग तरह से चुनने से मत डरिए”
अभी कोई टिप्पणी नहीं है.