𝗜 𝗦𝘁𝗼𝗽𝗽𝗲𝗱 𝗪𝗿𝗶𝘁𝗶𝗻𝗴 𝗖𝗼𝗱𝗲. 𝗠𝘆 𝗔𝗽𝗽 𝗦𝘁𝗶𝗹𝗹 𝗦𝗵𝗶𝗽𝗽𝗲𝗱 𝗶𝗻 𝟯 𝗗𝗮𝘆𝘀.
ಮೂರು ತಿಂಗಳ ಹಿಂದೆ, ನಾನು ಒಂದು ಫುಲ್-ಸ್ಟಾಕ್ SaaS ಡ್ಯಾಶ್ಬೋರ್ಡ್ ನಿರ್ಮಿಸಿದೆ. ನಾನು ಕೇವಲ ಸುಮಾರು 200 ಸಾಲುಗಳ ಕೋಡ್ ಬರೆದಿದ್ದೆ. ಉಳಿದದ್ದೆಲ್ಲವೂ AI-generated, AI-reviewed ಮತ್ತು AI-refactored ಆಗಿತ್ತು.
ಆ್ಯಪ್ ಈಗ ಪ್ರೊಡಕ್ಷನ್ನಲ್ಲಿದೆ. ಬಳಕೆದಾರರು ಅದಕ್ಕಾಗಿ ಹಣ ಪಾವತಿಸುತ್ತಿದ್ದಾರೆ. ಬಗ್ಗಳ (bugs) ಬಗ್ಗೆ ಚಿಂತಿಸುತ್ತಾ ನಾನು ತಡರಾತ್ರಿಯವರೆಗೆ ಎಚ್ಚರವಾಗಿಯೇ ಇರುವುದಿಲ್ಲ.
ಇದು ಬಡಾಯಿಮಾತಲ್ಲ. ಇದು ಒಂದು ಎಚ್ಚರಿಕೆ.
ಡೆವಲಪರ್ ಪಾತ್ರವು ವೇಗವಾಗಿ ಬದಲಾಗುತ್ತಿದೆ. AI ಜೊತೆ ಹೋರಾಡುವವರು ಗೆಲ್ಲುವುದಿಲ್ಲ; ಬದಲಾಗಿ ಈ ಬದಲಾವಣೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವವರೇ ಗೆಲ್ಲುತ್ತಾರೆ.
AI-native ಡೆವಲಪ್ಮೆಂಟ್ ಎಂಬುದು ಒಂದು ಹೊಸ ಮಾನಸಿಕ ಮಾದರಿ. ಇದು ಕೇವಲ autocomplete ಅಲ್ಲ. ಇದು AI ಅನ್ನು ಒಬ್ಬ ಸಹಯೋಗಿಯಂತೆ (collaborator) ಪರಿಗಣಿಸುವುದು. ಇಂಪ್ಲಿಮೆಂಟೇಶನ್ (implementation) ಜವಾಬ್ದಾರಿ AI ನದ್ದು. ಆರ್ಕಿಟೆಕ್ಚರ್ (architecture), ಉದ್ದೇಶ (intent) ಮತ್ತು ನಿರ್ಧಾರ ತೆಗೆದುಕೊಳ್ಳುವಿಕೆ (judgment) ನಿಮ್ಮ ಜವಾಬ್ದಾರಿ.
ಈ ಬದಲಾವಣೆ ಹೀಗಿದೆ:
- ಹಳೆಯ ಮಾದರಿ: ನೀವು ಕೋಡ್ ಬರೆಯುತ್ತೀರಿ. AI ಅದನ್ನು ವೇಗವಾಗಿ ಬರೆಯಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.
- ಹೊಸ ಮಾದರಿ: ನೀವು 'ಏನು' ಮತ್ತು 'ಏಕೆ' ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತೀರಿ. 'ಹೇಗೆ' ಎಂಬುದನ್ನು AI ನಿರ್ವಹಿಸುತ್ತದೆ. ನೀವು ಅದನ್ನು ಪರಿಶೀಲಿಸಿ (validate) ನಿಯಂತ್ರಿಸುತ್ತೀರಿ (steer).
AI ಕೋಡ್ ಬರೆದರೆ, ಕೇವಲ ಕೋಡಿಂಗ್ ಕೌಶಲ್ಯಗಳು ನಿಮ್ಮನ್ನು ಅನಿವಾರ್ಯವಾಗಿಸುವುದಿಲ್ಲ (irreplaceable). ಮೆಟಾ-ಕೌಶಲ್ಯಗಳು (Meta-skills) ನಿಮ್ಮನ್ನು ಅನಿವಾರ್ಯವಾಗಿಸುತ್ತವೆ.
AI ಪ್ಯಾಟರ್ನ್ಗಳಲ್ಲಿ (patterns) ಅದ್ಭುತವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಆದರೆ ಅವುಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವಲ್ಲಿ ಅದು ದಕ್ಷತೆಯಿಲ್ಲ. AI ಗೆ ಇವುಗಳು ತಿಳಿದಿಲ್ಲ:
- ನಿಮಗೆ ಸರ್ವರ್ ಆಕ್ಷನ್ (server action) ಬೇಕೆ ಅಥವಾ API ರೂಟ್ (API route) ಬೇಕೆ ಎಂಬುದು.
- ಸ್ಟೇಟ್ (state) ಅನ್ನು Zustand ನಲ್ಲಿ ಇಡಬೇಕೆ ಅಥವಾ URL ಪ್ಯಾರಾಮೀಟರ್ನಲ್ಲಿ ಇಡಬೇಕೆ ಎಂಬುದು.
- ನಿಮಗೆ ಮೊನೊರೆಪೋ (monorepo) ಬೇಕೆ ಎಂಬುದು.
ಇವು ನಿರ್ಧಾರ ತೆಗೆದುಕೊಳ್ಳುವ ಪ್ರಕ್ರಿಯೆಗಳು (judgment calls). ಇವುಗಳಿಗೆ ನಿಮ್ಮ ತಂಡ ಮತ್ತು ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರಮಾಣದ (scale) ಬಗ್ಗೆ ಮಾಹಿತಿ ಬೇಕಾಗುತ್ತದೆ. ಆ ಮಾಹಿತಿ ನಿಮ್ಮ ಬಳಿ ಇದೆ, ಆದರೆ AI ಬಳಿ ಇಲ್ಲ.
ಒಬ್ಬ ಜೂನಿಯರ್ ಮತ್ತು ಸೀನಿಯರ್ AI ಡೆವಲಪರ್ ನಡುವಿನ ವ್ಯತ್ಯಾಸವೇ 'ಪ್ರಾಂಪ್ಟ್' (prompt).
- ದುರ್ಬಲ ಪ್ರಾಂಪ್ಟ್: Write a rate limiter.
- ಬಲಿಷ್ಠ ಪ್ರಾಂಪ್ಟ್: Write a Redis-backed rate limiter middleware for a Next.js API route. Limit to 10 requests per minute per IP. Return a 429 error. Skip rate limiting for admin users. Log throttled requests to a Prisma table.
ಎರಡನೇ ಪ್ರಾಂಪ್ಟ್ ನಿಮಗೆ ಪ್ರೊಡಕ್ಷನ್-ರೆಡಿ (production-ready) ಕೋಡ್ ನೀಡುತ್ತದೆ. ನಿಖರತೆ (Precision) ಈಗ ಅತ್ಯುತ್ತಮ ಇಂಜಿನಿಯರಿಂಗ್ ಕೌಶಲ್ಯವಾಗಿದೆ.
ನೀವು ವಿಫಲತೆಯ ಸಾಧ್ಯತೆಗಳ ಬಗ್ಗೆಯೂ (failure modes) ಎಚ್ಚರವಿರಲಿ. AI ಕೋಡ್ ನೋಡಲು ಸರಿಯಾಗಿ ಕಾಣಿಸಬಹುದು, ಆದರೆ ಅದು ಸೂಕ್ಷ್ಮವಾಗಿ ತಪ್ಪಾಗಿರಬಹುದು. ಅದು ಟೆಸ್ಟ್ಗಳನ್ನು ಪಾಸು ಮಾಡಬಹುದು, ಆದರೆ ಅದರೊಳಗೆ ಸೆಕ್ಯೂರಿಟಿ ಹೋಲ್ (security hole) ಅಥವಾ ರೇಸ್ ಕಂಡೀಷನ್ (race condition) ಇರಬಹುದು. ಒಬ್ಬ ಜೂನಿಯರ್ ಡೆವಲಪರ್ ನೀಡಿದ ಕೋಡ್ ಅನ್ನು ನೀವು ಹೇಗೆ ವಿಮರ್ಶಿಸುತ್ತೀರೋ, ಹಾಗೆಯೇ AI ನೀಡಿದ ಔಟ್ಪುಟ್ ಅನ್ನು ವಿಮರ್ಶಿಸಿ.
AI ಬಗ್ಗೆ ಭಯಪಡುವ ಡೆವಲಪರ್ಗಳು ತಪ್ಪು ವಿಷಯದ ಮೇಲೆ ಗಮನ ಹರಿಸುತ್ತಾರೆ. ಅವರು ಕಡಿಮೆ ಕೋಡ್ ಬರೆಯುವ ಬಗ್ಗೆ ಚಿಂತಿಸುತ್ತಾರೆ. ಆದರೆ ನಿಜವಾದ ಅಪಾಯವೆಂದರೆ ಕೋಡ್ನ ಸುತ್ತಲಿನ ಕೌಶಲ್ಯಗಳನ್ನು ಅಪ್ಗ್ರೇಡ್ ಮಾಡಿಕೊಳ್ಳಲು ವಿಫಲವಾಗುವುದು.
ಗುರಿ ಡೆವಲಪರ್ ಆಗುವುದನ್ನು ನಿಲ್ಲಿಸುವುದಲ್ಲ; ಬದಲಾಗಿ ಒಬ್ಬ ಉತ್ತಮ ಡೆವಲಪರ್ ಆಗುವುದು.
ನಾನು ಈ ಕೆಳಗಿನ ವಿಷಯಗಳ ಮೇಲೆ ಸಮಯ ವ್ಯಯಿಸಿದ ಕಾರಣ ಆ್ಯಪ್ 3 ದಿನಗಳಲ್ಲಿ ಲಾಂಚ್ವಾಯಿತು:
- ಡೇಟಾ ಮಾಡೆಲ್ (data model).
- ಯೂಸರ್ ಫ್ಲೋ (user flow).
- ಎಡ್ಜ್ ಕೇಸ್ಗಳು (edge cases).
- ಬಿಸಿನೆಸ್ ಲಾಜಿಕ್ (business logic).
ಈಗ ಕೆಲಸವೇ ಇದು.
ನಿಮ್ಮ ಪ್ರಸ್ತುತ AI-to-handwritten code ಅನುಪಾತ ಎಷ್ಟು? ಕಾಮೆಂಟ್ನಲ್ಲಿ ತಿಳಿಸಿ.