Montana State University के कंप्यूटर इंजीनियरिंग विभाग के प्रोफेसर और htmx के निर्माता Carson Gross ने "क्या AI के दौर में भी प्रोग्रामिंग को करियर के रूप में अपनाना चाहिए?" इस सवाल का जवाब "Yes, and…(हाँ, और…)" के रूप में देने वाला एक निबंध लिखा है।
"Yes" — हाँ
- प्रोग्रामिंग का सार है कंप्यूटर का उपयोग करके समस्या-समाधान + जटिलता पर नियंत्रण। ऐसा भविष्य कल्पना करना कठिन है जिसमें यह क्षमता कम मूल्यवान हो जाए
- लेकिन AI जूनियरों के लिए जोखिम भरा है। अगर वे खुद कोड नहीं लिखेंगे, तो वे कोड पढ़ भी नहीं पाएँगे
- अगर कोड पढ़ना नहीं आता, तो "जादूगर के शिष्य वाला जाल" पैदा होता है — ऐसी प्रणालियाँ बनाना जिन्हें न आप समझते हों, न नियंत्रित कर पाते हों
कोडिंग→प्रॉम्प्टिंग, assembly→high-level language जैसा नहीं है
- compiler deterministic होता है, लेकिन LLM नहीं
- high-level language ने accidental complexity को हटाया था, लेकिन LLM से बना कोड अक्सर उल्टा accidental complexity बढ़ा देता है
AI कोड generator नहीं, बल्कि एक बेहतरीन TA है
- अगर इसे concepts और techniques समझने में मदद करने वाले partner की तरह इस्तेमाल किया जाए, तो यह बौद्धिक विकास के लिए प्रभावी है
- accidental complexity की वजह से आने वाली रुकावटों को पार करने में यह खास तौर पर उपयोगी है
AGENTS.mdफ़ाइल साझा करके AI को code generator नहीं बल्कि TA की भूमिका में सेट किया जा सकता है
"and…" — और
pure coding skill शायद कम महत्वपूर्ण हो जाए
- उसकी जगह ये skills ज्यादा महत्वपूर्ण हो सकती हैं:
- communication ability — LLM के साथ भी और लोगों के साथ भी, साफ़ तौर पर लिखने और संवाद करने की क्षमता। किताबें पढ़ना और निबंध लिखना मददगार है
- business understanding — "प्रोग्रामर की ज़रूरत नहीं" वाला business पक्ष का नज़रिया और "business लोगों की ज़रूरत नहीं" वाला programmer पक्ष का नज़रिया, दोनों ही अल्पदर्शी हैं। AI वास्तविक समस्याओं को अधिक गहराई से समझने का अवसर देता है
- system architecting — बड़े सिस्टम की जटिलता को नियंत्रित करने की क्षमता। हालांकि, अधिकतर खराब architect के पास coding का अनुभव कम था
सीनियर vs जूनियर: LLM का उपयोग कैसे करें
- सीनियर: code analysis, सोच को व्यवस्थित करने, छोटे code snippets बनाने, नापसंद कोड (regex, CSS) बनाने, exploratory code, test सुझाव आदि के लिए उपयोग। लेकिन पूरी solution generate करने को नहीं कहते। API design कभी नहीं सौंपते
- जूनियर: vibe coding के प्रलोभन का विरोध करना चाहिए। गति से अधिक समझ को प्राथमिकता देना लंबे समय में फायदेमंद है। जल्द ही कंपनियाँ भी vibe coding से होने वाली complexity explosion की समस्या समझ जाएँगी
नौकरी खोजने की सलाह — 4F रणनीति
- ऑनलाइन job sites लगभग लॉटरी जैसी हैं
- 4F: Family(परिवार), Friends(दोस्त), Family of Friends(दोस्तों के परिवार)
- ज़रूरी नहीं कि वह कोई बड़ी tech कंपनी ही हो। 100 से अधिक लोगों वाली अधिकांश कंपनियों में development organization होता है
- Costco मुख्यालय का उदाहरण: पारिवारिक नेटवर्क से प्रवेश, analyst के रूप में शुरुआत, और अगर उस पर programming skill जोड़ दी जाए तो आपकी उपयोगिता बहुत बढ़ जाती है
निष्कर्ष
प्रोग्रामिंग की बुनियाद, खासकर अच्छा कोड लिखने और जटिलता को नियंत्रित करने की क्षमता, हमेशा महत्वपूर्ण रहेगी। नौकरी बाज़ार की मंदी अस्थायी है। और कंपनियों से: जूनियरों को खुद कोड लिखने दीजिए।
31 टिप्पणियां
अगर आर्किटेक्चर की समझ नहीं है, तो vibe coding का कोई मतलब नहीं..
कोई भी ketchup लगाकर pasta बना सकता है
लेकिन असली Italian pasta हर कोई नहीं बना सकता
अगर Italian pasta $20 का है और ketchup लगा pasta $2 का, तो मैं बाद वाला खाऊँगा, लेकिन...
यूज़र 2 डॉलर वाली चीज़ के लिए पैसे नहीं देते।
लगता है आप बात का मूल बिंदु समझ नहीं पाए।
हाँ, मैं मानता हूँ कि मैंने मुख्य लेख पढ़े बिना ही टिप्पणी कर दी;;
होटल या प्रोफेशनल रेस्तरां में केचप लगी पास्ता का अस्तित्व ही संभव नहीं होता।
लेकिन अगर इसे घर पर जैसे-तैसे काम चलाने वाला खाना समझें, तो केचप लगी पास्ता का मतलब बनता है...
मुझे किसी खास दिन chef के बनाए Italian pasta खाना है
मसला pasta नहीं है; जब low-end wine $2 की होती है, तब high-end wine की कीमत कई करोड़ won तक होती है, फिर भी उसकी मांग लगातार बनी रहती है।
मैं भी अगर कोई खास दिन हो तो Italian pasta खाऊँगा, लेकिन रोज़मर्रा में(?) तो...
बहुत शानदार पंक्ति है। सिर्फ 3 लाइनों में बात साफ़-सुथरे तरीके से समेट दी गई है।
हम engineer हैं। Engineer वही है जो उन चीज़ों को समझे और उनकी ज़िम्मेदारी ले, जिन्हें मैं संभालता हूँ और जिनके लिए प्रस्ताव देता हूँ। यह दावा करना कि ऐसी चीज़ों की ज़रूरत नहीं है, बस इतना दिखाता है कि आप खुद ऐसे माहौल में काम कर रहे हैं। AI इस मूल स्वभाव को बदलता नहीं है, बल्कि उसे और अधिक चरम रूप में सामने लाता है। अगर PR को समझे बिना भी बिल्कुल कोई समस्या नहीं है, तो फिर वह अब PR नहीं रह जाता।
अगर कंपनी में बॉस अपने अधीनस्थ के काम को समझ ही नहीं पाता, तो क्या वह काम सौंप सकता है?
समझे बिना भी हो जाएगा? जो हो रहा है, क्या वह उसकी ज़िम्मेदारी उठा पाएगा?
मानव की बनाई चीज़ों में हमेशा से ज़्यादातर 'मानव का इरादा' महत्वपूर्ण रहा है। इम्प्लीमेंटेशन ख़ुद नहीं, बल्कि
जैसे calculator आ जाने पर हम math पढ़ना बंद नहीं कर देते...
मुझे लगता है कि अपने क्षेत्र के बदले न जाने की उम्मीद करने से ज़्यादा यथार्थवादी यह है कि हम सब जितना जल्दी हो सके साथ में बदले जाएँ। शायद हम सब इसे धुंधले तौर पर महसूस तो कर ही रहे हैं।
जैसे assembly language जाने बिना भी coding की जा सकती है,
वैसे ही लगता है कि rust जाने बिना भी coding करना संभव हो जाएगा।
आखिरकार इंसान भी हर बार coding करते समय अलग-अलग code लिखते हैं।
हर व्यक्ति का तरीका भी अलग होता है।
लेकिन वे सब Rust developer ही हैं।
मेरा मानना है कि AI की complexity की समस्या आखिरकार AI ही हल करेगा। यह भ्रम और अहंकार छोड़ देना चाहिए कि कुछ काम सिर्फ इंसान ही कर सकता है।
मौजूदा जैसे LLM स्ट्रक्चर में यह संभव नहीं है। इसके लिए बिल्कुल अलग paradigm की ज़रूरत है।
फिर भी इस बीच इंसानों को तो खाना-कमाना है न, हुह
उम्मीद है कि आप सब इस संक्रमण काल को अच्छे से पार कर लें।
AI की प्रगति के साथ प्रोजेक्ट्स में भी वास्तव में लोगों की संख्या घटाई जा रही है। एक व्यक्ति कम होते ही अगर मैनेजर business के साथ-साथ AI का अच्छी तरह उपयोग नहीं कर पाता, तो लगता है कि वह भी छंटनी के दायरे में आ जाता है।
सिर्फ़ हर हाल में लोगों की संख्या घटाने की कोशिश करने के बजाय, उन लोगों को किसी और दिशा में लगाकर नए काम या वे काम करवाना बेहतर होगा जो अब तक नहीं हो पाए थे। अचानक कटौती करना बहुत ही अल्पदृष्टि वाला कदम है।
अब तक LLM/Agentic Coding एक बेहतरीन tool है, लेकिन बेहतरीन Engineer नहीं। जैसे Agentic coding में अच्छा Plan महत्वपूर्ण होता है, वैसे ही अंततः उपयोगकर्ता के पास code को समझने और उस पर निर्णय लेने की क्षमता होनी चाहिए। उदाहरण के लिए, fastrender और CCC ने Agentic Coding की संभावनाएँ दिखाईं, लेकिन साथ ही इसकी स्पष्ट सीमाएँ भी दिखाईं।
मैं इसे अलग तरह से पूछना चाहता हूँ.... "क्या हम अपने बच्चों को यह पेशा अपनाने की सलाह देंगे?"
मेरे आसपास बहुत से लोगों के बीच अपने बच्चों को कंप्यूटर साइंस में भेजना एक ट्रेंड था। अब लगता है कि यह काफी बदल गया है.
मुझे लगता है कि vibe coding के बाद लोगों के लिए development की पढ़ाई करना आसान नहीं रहेगा। पढ़ाई बहुत ज़्यादा inefficient हो जाएगी.... क्योंकि सिर्फ़ क्लिक करके संतुष्ट हो जाना बहुत आसान है।
वाइब कोडिंग सिर्फ़ एक परिणाम तैयार करना भर है, और मुझे लगता है कि उस implementation के नतीजे को समझना और न समझना — इन दोनों के बीच का फ़र्क वाकई बहुत बड़ा होगा। मेरा मानना है कि वह समझ आपने जिस "डेवलपमेंट की पढ़ाई" की बात की है, उसी से आती है.
उल्टा, AI के विकास की वजह से कुछ भी सीखने की लागत काफ़ी कम हो गई है, इसलिए लगता है कि यह और भी ज़्यादा चीज़ें सीखने के लिए एक बहुत अच्छा समय है.
Vibe coding से चलने वाला code बनाया जा सकता है, लेकिन आखिर में उसकी review इंसानों को ही करनी होती है, और सिर्फ vibe coding के भरोसे ऐसा code बनाना आसान नहीं है जिसे maintain करना भी आसान हो और जो scalable भी हो।
और आखिरकार इंसानों को ही उसकी समीक्षा करनी पड़ती है, जिसमें और ज़्यादा समय लगता है, इसलिए उत्पादकता वहीं की वहीं रहने के बारे में भी कुछ शोध परिणाम हैं।
व्यक्ति के ऐसे प्रयास भी महत्वपूर्ण हैं, लेकिन राष्ट्रीय स्तर पर सदस्यों के बीच चर्चा के माध्यम से सामाजिक सिस्टम के लिए समर्थन की भी आवश्यकता है।
मैं भी इससे पूरी तरह सहमत हूँ। मैं अपने जूनियर्स से यह बात अक्सर कहता हूँ, लेकिन कई बार सोचता हूँ कि कहीं यह उन्हें सिर्फ़ पुरानी पीढ़ी की नसीहत जैसा न लगे।
यह बात बहुत ज़्यादा relatable लगती है।