நான் குறியீடு எழுதுவதை நிறுத்தினேன். எனது செயலி 3 நாட்களில் பயன்பாட்டிற்கு வந்தது.
மூன்று மாதங்களுக்கு முன்பு, நான் ஒரு full-stack SaaS dashboard-ஐ உருவாக்கினேன். அதில் auth, ஒரு database, ஒரு REST API மற்றும் ஒரு UI இருந்தது.
நான் சுமார் 200 வரிகள் குறியீடு எழுதினேன். மீதமுள்ளவற்றை AI செய்தது. AI குறியீட்டை எழுதியது, அதை ஆய்வு செய்தது மற்றும் சரி செய்தது.
அந்தச் செயலி இப்போது நேரலையில் (live) உள்ளது. பயனர்கள் அதற்காகப் பணம் செலுத்துகிறார்கள். எனக்குப் புரியாத பிழைகளை (bugs) சரிசெய்ய நான் நள்ளிரவு 2 மணிக்கு விழித்திருக்க வேண்டியதில்லை.
இது பெருமைக்காகச் சொல்லப்படுவதல்ல. இது ஒரு எச்சரிக்கை.
ஒரு டெவலப்பரின் பங்கு வேகமாக மாறிவருகிறது. இதில் வெற்றி பெறும் டெவலப்பர்கள் இந்த மாற்றத்தை எதிர்க்க மாட்டார்கள். அவர்கள் அதை வழிநடத்துவார்கள்.
AI-ஐ ஒரு autocomplete கருவியாகக் கருதுவதை நிறுத்துங்கள். அது பழைய முறை.
AI-native development என்பது ஒரு புதிய சிந்தனை முறை (mental model). நீங்கள் வேகமாக எழுதுவதற்காக AI-ஐப் பயன்படுத்துவதில்லை. நீங்கள் architecture மற்றும் முடிவெடுத்தல் (judgment) ஆகியவற்றைக் கவனிக்கும்போது, implementation-ஐக் கையாள AI-ஐப் பயன்படுத்துகிறீர்கள்.
இந்த மாற்றம் இவ்வாறு அமையும்:
- பழைய முறை: நீங்கள் குறியீடு எழுதுகிறீர்கள். AI நீங்கள் வேகமாகத் தட்டச்சு செய்ய உதவுகிறது.
- புதிய முறை: நீங்கள் "என்ன" மற்றும் "ஏன்" என்பதை வரையறுக்கிறீர்கள். AI "எப்படி" என்பதைச் செய்கிறது. நீங்கள் அதைச் சரிபார்த்து வழிநடத்துகிறீர்கள்.
எனது செயலியை உருவாக்க நான் இதே பணிப்பாய்வை (workflow) பயன்படுத்தினேன்:
- Next.js மற்றும் Prisma போன்ற தரப்படுத்தப்பட்ட கருவிகளைப் பயன்படுத்தி திட்டத்திற்கு அடித்தளம் அமைத்தல் (Scaffold).
- தரவு மாதிரியை (data model) எளிய ஆங்கிலத்தில் விவரித்தல்.
- AI-ஐ schema-வை உருவாக்க விடுதல்.
- server actions மற்றும் logic-களை உருவாக்க விரிவான prompts-களைப் பயன்படுத்துதல்.
நான் functions-களை எழுதவில்லை. அவற்றை ஆய்வு செய்தேன். அவற்றைச் சோதித்தேன். பிழைச் செய்திகளை (error messages) சரிசெய்தேன்.
அதுதான் புதிய வேலை.
AI குறியீட்டை எழுதினால், உங்கள் மதிப்பு meta-skills-லிருந்து வருகிறது. AI வடிவங்களில் (patterns) சிறந்தது. ஆனால் முடிவெடுப்பதில் அது பலவீனமானது.
AI-ஆல் இவற்றைத் தீர்மானிக்க முடியாது:
- உங்களுக்கு ஒரு server action தேவையா அல்லது ஒரு API route தேவையா என்பது.
- உங்கள் state எங்கு இருக்க வேண்டும் என்பது.
- நீங்கள் ஒரு monorepo-வைப் பயன்படுத்த வேண்டுமா என்பது.
இந்த முடிவுகளுக்கு சூழல் (context) தேவைப்படுகிறது. AI-க்கு சூழல் தெரியாது. அது உங்களிடம் உள்ளது.
இப்போது ஒரு junior மற்றும் senior developer-க்கு இடையிலான வித்தியாசம் prompt துல்லியம் (precision) ஆகும்.
- பலவீனமான prompt: "Write a rate limiter."
- வலிமையான prompt: "Write a Redis-backed rate limiter for a Next.js API route. Limit to 10 requests per minute per IP. Return a 429 error when exceeded. Skip admins. Log events to Prisma."
இரண்டாவது prompt உடனடியாகப் பயன்பாட்டிற்குத் தயாரான (production-ready) குறியீட்டைத் தரும்.
நீங்கள் அமைதியான தோல்விகளையும் (silent failures) கவனிக்க வேண்டும். AI குறியீடு பெரும்பாலும் சரியாகத் தோன்றும், ஆனால் அதில் நுணுக்கமான பிழைகள் (subtle bugs) இருக்கலாம். AI வெளியீட்டை ஒரு junior developer-விடமிருந்து வரும் pull request போலக் கருதுங்கள். அதைச் சந்தேகத்துடன் ஆய்வு செய்யுங்கள்.
குறைவான குறியீடு எழுதுவதற்கு முக்கியத்துவம் அளிக்காதீர்கள். குறியீட்டைச் சுற்றியுள்ள திறன்களை மேம்படுத்துவதில் கவனம் செலுத்துங்கள்.
டெவலப்பர் A அனைத்தையும் கையால் எழுதி மெதுவாகச் செயல்படுகிறார். டெவலப்பர் B விவரங்களுக்கு AI-ஐப் பயன்படுத்துகிறார் மற்றும் system design-க்காக நேரத்தைச் செலவிடுகிறார்.
டெவலப்பர் B தான் புதிய தரநிலை.
இந்த வாரம் இதை முயற்சி செய்து பாருங்கள்:
- எந்தவொரு குறியீட்டையும் (code) தொடங்குவதற்கு முன், ஒரு அம்சத்திற்கான (feature) முழுமையான விவரக்குறிப்பை (spec) எழுதுங்கள்.
- அந்த விவரக்குறிப்பையே உங்கள் prompt ஆகப் பயன்படுத்தவும்.
- ஒரு மூத்த பொறியாளர் ஒரு இளநிலை பொறியாளரின் வேலையை மதிப்பாய்வு செய்வது போல, வெளியீட்டை (output) மதிப்பாய்வு செய்யுங்கள்.
இலக்கு ஒரு டெவலப்பராக இருப்பதை நிறுத்துவதல்ல; மாறாக, ஒரு சிறந்த டெவலப்பராக மாறுவதே ஆகும்.
விருப்பத்தேர்வு கற்றல் சமூகம்: https://t.me/GyaanSetuAi