- LLM को लेकर software engineers मोटे तौर पर दो खेमों में बंटे हुए हैं
- कुछ लोग मानते हैं कि यह इंडस्ट्री को हिला देने वाली क्रांतिकारी तकनीक है
- वहीं दूसरी ओर कुछ लोगों का मानना है कि यह सिर्फ़ बढ़ा-चढ़ाकर पेश किया गया एक मृगतृष्णा है
- लेखक व्यक्तिगत रूप से महसूस करते हैं कि वे LLM का उपयोग उपयोगी तरीके से कर रहे हैं, और इसे प्रभावी ढंग से इस्तेमाल करने के अपने तरीके साझा करते हैं
प्रोडक्शन कोड लिखना
- कोड लिखते समय वे हमेशा Copilot autocomplete फीचर का उपयोग करते हैं
- ज़्यादातर autocomplete सुझाव function arguments या type input जैसी दोहराई जाने वाली boilerplate चीज़ों से जुड़े होते हैं
- अपने मुख्य कार्यक्षेत्र (जैसे Ruby on Rails) में उन्हें लगता है कि वे खुद जो कोड लिखते हैं, वह बेहतर होता है
- कम विशेषज्ञता वाले क्षेत्रों में वे Copilot द्वारा सुझाए गए logic को थोड़ा अधिक स्वीकार करते हैं
- उदाहरण: जब Golang या C जैसी भाषाओं में छोटे tactical बदलाव करने हों
- कम परिचित भाषाओं की syntax या idiomatic code style को वे Copilot की मदद से जल्दी समझ लेते हैं
- चूंकि उस क्षेत्र में उनकी विशेषज्ञता कम होती है, इसलिए वे ज़रूर उस क्षेत्र के expert से review करवाते हैं
- इस तरह वे “स्मार्ट इंटर्न” स्तर तक कुछ काम कर पाते हैं, लेकिन validation प्रक्रिया से गुज़रना अनिवार्य है
एकबारगी कोड लिखना
- जो one-off code प्रोडक्शन में deploy नहीं होना है, उसे लिखते समय वे LLM का कहीं अधिक सक्रिय रूप से उपयोग करते हैं
- रिसर्च के लिए एक बार चलाकर फेंक देने वाले कोड में maintenance की ज़रूरत कम होती है
- उदाहरण: API से public data लाना, उसे classify करना, और regular expression लगाकर हल्का validation करना
- इस मामले में उनका कहना है कि LLM की वजह से वे 2~4 गुना तेज़ी से काम कर पाए
- एक बार इस्तेमाल करके फेंक देने वाले कोड लिखने में LLM बहुत प्रभावी है
नए क्षेत्र सीखना
- इसे वे सबसे अधिक उपयोगी use case मानते हैं: LLM को on-demand tutor की तरह इस्तेमाल करना
- उदाहरण: जब वे पहली बार Unity सीख रहे थे, तो उन्होंने ChatGPT-4o जैसे मॉडल से लगातार सवाल पूछे
- सिर्फ़ “X कैसे काम करता है?” ही नहीं, बल्कि “X का Y से क्या संबंध है?” जैसे follow-up सवाल भी पूछे जा सकते हैं
- “क्या मैंने सही समझा है?” जैसे सवालों से अपनी समझ की जाँच भी कर सकते हैं
- सीखने के दौरान लिखे गए notes को वे सीधे copy-paste करके review के लिए भी इस्तेमाल करते हैं
- hallucination को लेकर चिंता
- GPT-3.5 के बाद से उन्हें आम तौर पर hallucination बहुत प्रमुख समस्या नहीं लगी
- वे जिन क्षेत्रों को रोज़मर्रा में सीखना चाहते थे, उनमें से ज़्यादातर पहले से अच्छी तरह स्थापित क्षेत्र थे, इसलिए गलत जवाब का जोखिम कम था
- अब तक LLM की वजह से उन्होंने कोई गलत जानकारी नहीं सीखी
आख़िरी कोशिश के तौर पर bug fix
- जब वे बुरी तरह अटक जाते हैं, तब Copilot या Claude जैसे टूल को पूरी file और error message दिखाकर मदद मांगते हैं
- ज़्यादातर मामलों में LLM भ्रमित हो जाता है और ठीक समाधान नहीं दे पाता
- फिर भी कुछ बार ऐसा हुआ कि LLM ने ऐसी बात पकड़ ली जो उनकी नज़र से छूट गई थी, और समय बच गया
- चूंकि इसका प्रदर्शन उम्मीद जितना अच्छा नहीं होता, इसलिए वे कई बार कोशिश करने के बजाय सिर्फ़ एक बार ही पूछते हैं
टाइपो और तर्क संबंधी गलतियाँ सुधारना
- वे अपने लेखन (ADRs, तकनीकी सारांश, internal docs आदि) को पूरी तरह LLM से लिखवाते नहीं हैं
- उन्हें लगता है कि वे स्वयं अधिक स्पष्टता से लिख सकते हैं, और LLM की विशिष्ट लेखन शैली उन्हें पसंद नहीं है
- grammar review या typo correction के लिए वे कभी-कभी draft को LLM में डालकर feedback लेते हैं
- LLM spelling errors अच्छी तरह पकड़ लेता है, और कभी-कभी दिलचस्प दृष्टिकोण भी सुझाता है
- बार-बार revision suggestions लेने के बजाय, वे एक बार “बड़े ढांचे” के स्तर पर feedback देखना पसंद करते हैं
सारांश
- LLM के उपयोग के क्षेत्र
- Copilot के जरिए “smart autocomplete”
- कम परिचित क्षेत्र में छोटे tactical बदलाव (expert review अनिवार्य)
- एक बार इस्तेमाल कर फेंक देने वाला research code लिखना
- नई तकनीक या domain सीखते समय लगातार सवाल पूछना
- अटकने पर आख़िरी उपाय के रूप में bug सुलझाने की कोशिश
- अंग्रेज़ी दस्तावेज़ के draft में समग्र spelling/typo और logical errors सुधारना
- वे क्षेत्र जहाँ अभी LLM का उपयोग नहीं करते
- जिन क्षेत्रों को वे अच्छी तरह जानते हैं, वहाँ पूरा Pull Request लिखवाना
- ADR जैसे तकनीकी दस्तावेज़ पूरा का पूरा लिखवाना
- बड़े codebase के भीतर जटिल architecture को समझना
6 टिप्पणियां
यह... स्टाफ इंजीनियर...?
लगता है आप वाकई GitHub के Staff Engineer हैं।
मुझे भी यह staff engineer के स्तर का नहीं लगता... मुझे तो बस assistant level ही सही लगता है।
शीर्षक में अनुवाद की गलती है; "staff engineer की तरह" नहीं, बल्कि "staff engineer के रूप में" है
👍!!
Hacker News राय
"staff engineer" के नज़रिए से LLMs मुहावरेदार कोड लिखने या सिखाने में बहुत कमजोर हैं, और उल्टा code review में ज़्यादा समय लगवाते हैं। LLMs से कोड लिखवाने पर खराब practices सीखने, कोड की मात्रा और boilerplate बढ़ाने, और अनिश्चित परिणामों पर निर्भर हो जाने का जोखिम रहता है। LLMs idea generation या अविश्वसनीय जानकारी की खोज में उपयोगी हो सकते हैं, लेकिन code generation पर निर्भर रहना पागलपन है.
bug fix करते समय Copilot में पूरी file attach करके और error message paste करके मदद माँगने का एक तरीका है। "reasoning" models इससे कहीं बेहतर नतीजे देते हैं, और पूरे codebase को paste करके error message समझाने पर वे अक्सर समस्या की जड़ तक पहुँच जाते हैं.
LLMs boilerplate code या auto-complete के लिए उपयोगी हैं, लेकिन जटिल कामों में उनकी सीमाएँ हैं। क्योंकि वे business logic नहीं समझते। लेकिन corporate documents जल्दी लिखने में वे बहुत उपयोगी हैं.
GitHub में काम करते हुए Copilot पर सीधे काम करने का अनुभव है.
अगर आप static type language और अच्छा IDE इस्तेमाल करते हैं, तो "smart auto complete" फीचर कम उपयोगी लग सकता है। Intellij का auto-complete ज़्यादातर मामलों में मन पढ़ लेने जैसा लगता है.
software engineers में LLMs को लेकर नकारात्मक भावनाएँ क्यों हैं, इस पर एक आत्मचिंतन। बहुत से लोग चीज़ों को absolute standard से जज करते हैं, और इससे tools का प्रभावी इस्तेमाल करने की उनकी क्षमता सीमित हो जाती है.
Python project maintenance में AI का उपयोग कैसे करें। यह दूसरी भाषाओं के तरीकों को Python में बदलने में मदद करता है.
utility code लिखने के लिए ChatGPT का उपयोग करने का अनुभव अच्छा रहा। code review में यह अक्सर मामूली मुद्दों की ओर इशारा करता है, लेकिन सुधार के बिंदु ढूँढ़ने में फिर भी मूल्यवान है.
VSCode से Cursor पर स्विच करने के बाद Sonnet के साथ agent mode प्रभावशाली लगा। अगर कोई अनुभवी developer इसे guide करे, तो यह productivity बढ़ाने में बहुत मदद कर सकता है.
LLMs का उपयोग दस्तावेज़ों की typo और logical mistakes ठीक करने में मदद के लिए किया गया। Graphite Reviewer का उपयोग करके इसे इस तरह tune किया गया कि वह वास्तविक bugs और गलतियों पर ध्यान दे। AI परफेक्ट नहीं है, लेकिन code correction tool के रूप में उपयोगी है.