- डेवलपर्स द्वारा AI का उपयोग करने के दो प्रमुख पैटर्न हैं
- Bootstrapper:
- Bolt, v0, screenshot-to-code AI जैसे टूल्स का उपयोग करके जल्दी शुरुआती प्रोटोटाइप बनाते हैं।
- डिज़ाइन या कॉन्सेप्ट को शुरुआती बिंदु बनाकर AI की मदद से शुरुआती codebase तैयार करते हैं, और कुछ घंटों या कुछ दिनों में काम करने वाला प्रोटोटाइप विकसित कर लेते हैं
- Iterator:
- Cursor, Cline, Copilot, WindSurf जैसे टूल्स को रोज़मर्रा के development में इस्तेमाल करके code completion, जटिल refactoring, testing और documentation generation करते हैं
अनुभवी डेवलपर्स और शुरुआती डेवलपर्स के बीच AI उपयोग का अंतर
- अनुभवी डेवलपर्स: AI द्वारा सुझाए गए कोड को लगातार refactor करते हैं, edge cases संभालते हैं, type definitions को मज़बूत करते हैं, और architecture decisions की समीक्षा करते हैं
- शुरुआती डेवलपर्स: AI के output को जैसा है वैसा स्वीकार करने की प्रवृत्ति रखते हैं, जिससे ऐसे कोड का जोखिम पैदा होता है जो 'ताश के पत्तों से बने घर' की तरह वास्तविक वातावरण में समस्याएँ पैदा कर सकता है
AI टूल्स का विरोधाभास: ज्ञान का विरोधाभास
- अनुभवी डेवलपर्स: जिन कामों को वे पहले से जानते हैं, उन्हें AI के ज़रिए तेज़ करते हैं
- शुरुआती डेवलपर्स: क्या करना है, यह सीखने के लिए AI का उपयोग करने की कोशिश करते हैं
- नतीजा: दक्षता के स्तर के अनुसार AI उपयोग की प्रभावशीलता में बड़ा अंतर आता है
गैर-विशेषज्ञों के लिए AI coding टूल्स में 70% समस्या
- शुरुआती प्रगति: AI टूल्स की मदद से मनचाहा फीचर का 70% बहुत जल्दी लागू किया जा सकता है
- बाकी 30%: छोटे bugs ठीक करने की कोशिश में नई समस्याएँ पैदा होती हैं, और उन्हें सुलझाने के दौरान और भी समस्याएँ पैदा होने का दुष्चक्र बन सकता है
AI टूल्स का प्रभावी उपयोग करने की रणनीतियाँ
- AI draft pattern: AI से बुनियादी implementation तैयार कराएँ और फिर उसे manually review व refactor करें
- AI को learning tool की तरह उपयोग करना: लगातार बातचीत के ज़रिए AI द्वारा बनाए गए कोड को समझें, साथ में बुनियादी programming concepts सीखें, और धीरे-धीरे अपना ज्ञान बढ़ाएँ
- AI की सीमाओं को पहचानना: AI टूल्स prototype development, learning support और idea validation में उपयोगी हैं, लेकिन production-ready और maintainable software बनाने के लिए अब भी वास्तविक engineering knowledge की ज़रूरत है
एजेंटिक software engineering का उदय
- Agentic systems: केवल निर्देशों का जवाब देने से आगे बढ़कर, ऐसे सिस्टम बन रहे हैं जो योजना बना सकते हैं, execute कर सकते हैं और iterate कर सकते हैं
- भविष्य की दिशा: AI डेवलपर्स की जगह लेने के बजाय, एक अधिक सक्रिय सहयोगी के रूप में विकसित हो रहा है जो मानवीय मार्गदर्शन और विशेषज्ञता का सम्मान करते हुए पहल करके समस्याओं को हल करता है
- AI पहले से ज्ञात patterns को implement करने, ideas का जल्दी prototype बनाने और अलग-अलग approaches तलाशने में उपयोगी है
- यह दोहराए जाने वाले और रोज़मर्रा के coding tasks को automate करके अधिक दिलचस्प समस्याओं पर ध्यान केंद्रित करने में मदद करता है
AI टूल्स का उपयोग करते समय सावधानियाँ
- User experience का महत्व: AI की मदद से जल्दी demo बनाया जा सकता है, लेकिन अगर error messages, edge cases और UI states को बारीकी से नहीं संभाला गया, तो वास्तविक उपयोगकर्ताओं को असुविधा हो सकती है
- शिल्पकारी का पुनर्जागरण:
- AI ने software development को तेज़ बना दिया है, लेकिन इससे वास्तविक consumer-quality अनुभव बनाने की कला खोने का जोखिम भी है।
- AI टूल्स रोज़मर्रा के coding tasks संभालकर डेवलपर्स को महत्वपूर्ण details पर ध्यान देने में मदद कर सकते हैं।
निष्कर्ष
- AI की भूमिका:
- AI का काम सिर्फ़ ज़्यादा कोड तेज़ी से लिखना नहीं, बल्कि बेहतर software बनाने में मदद करना है
- AI software quality को नाटकीय रूप से बेहतर नहीं बनाता।
- software development के कठिन हिस्सों में अब भी मानवीय judgment की ज़रूरत होती है।
- AI बेहतर solutions खोजने के लिए तेज़ exploration संभव बनाता है, लेकिन यह अच्छे software practices की जगह नहीं ले सकता।
- मानवीय ज़िम्मेदारी: AI का समझदारी से उपयोग करना, engineering principles को बनाए रखना और software quality बेहतर करना अब भी इंसानों की ज़िम्मेदारी है
12 टिप्पणियां
तकनीक का उपयोग करना अच्छी बात है, लेकिन बहुत से लोग सोचने का काम भी उसी पर छोड़ देते हैं, और यह बात खासकर शिक्षा जैसी जगहों पर और ज़्यादा दिखती है, इसलिए चिंता होती है। सच कहूँ तो मैं ऐसे लोगों के साथ काम नहीं करना चाहूँगा।
शायद यह उस बहस जैसा ही है कि IDE डेवलपर्स को बिगाड़ देता है..
ग्राहकों द्वारा जनरेट किए गए AI कोड को ठीक करते-करते थक गया हूँ
जब AI खुद निर्णय लेने लगता है, तो इसका कोई जवाब नहीं दिखता।
AI को feedback देते रहो तो लगता है कि चीज़ें बेहतर हो रही हैं… लेकिन किसी बिंदु पर आकर सब बिगड़ जाता है। उस पल को पकड़ने का तरीका आना चाहिए। और जब वह पल आए, तो तय करना होगा कि AI को छोड़ना है या फिर से शुरुआत करनी है।
production-ready(मुख्य लेख में: production-ready) का अनुवाद क्या करने पर सबसे स्वाभाविक लगेगा?वास्तविक सेवा के लिए पूरी तरह तैयार स्तर
प्रोडक्ट-स्तर
लॉन्च के लिए तैयार!
मैं आमतौर पर इसे
출시 가능या출시 준비된के रूप में अनुवाद करता/करती हूँ."लॉन्च के लिए तैयार" अच्छा लग रहा है!
"(वास्तविक उपयोग या ग्राहक-उपयोग के लिए) डिप्लॉय करने के लिए तैयार" काफ़ी हद तक ऐसा कैसा रहेगा?
वास्तविक उपयोग में परखी गई चीज़ कैसी होगी?
लगता है कि प्रोडक्शन में परखी हुई चीज़ के लिए अक्सर
battle testedअभिव्यक्ति का इस्तेमाल किया जाता है।Hacker News की राय
AI ने अतीत के कई टूल्स की तरह programming के कुछ हिस्सों को replace करने की कोशिश की है। लेकिन मूल काम के लिए अब भी इंसानी दिमाग की ज़रूरत होती है
AI टीम के एक उत्साही junior developer जैसा है
AI tools का उपयोग करके नए tools तेज़ी से विकसित किए जा सके
junior developers के लिए AI दोधारी तलवार है
"भरोसा करो, लेकिन verify भी करो" वाला pattern महत्वपूर्ण है
AI तेज़ी से code लिख सकता है, लेकिन learning process तेज़ नहीं हो जाता
Copilot जटिल कामों में fail हो जाता है
GenAI अच्छी तरह ज्ञात requirements वाले solutions में गहराई वाले नतीजे दे सकता है
AI के काम को verify करना महत्वपूर्ण है
जिन लोगों का कहना है कि AI से productivity बहुत बढ़ गई है, ऐसे लोगों से वास्तव में मिलना मुश्किल है