நீங்கள் ஆவணங்களைப் (Docs) படிப்பதை நிறுத்திவிட்டீர்கள், அதனால் இப்போது உங்களுக்கு அமைப்புகள் (Systems) புரியவில்லை

நான் பல்கலைக்கழகத்தில் கணினி அறிவியல் பயிலவில்லை. நான் புவி இயற்பியல் (geophysics) பயின்றேன்.

நான் வாசிப்பதன் மூலமே மென்பொருளைக் கற்றுக்கொண்டேன். நான் ஆவணங்கள் (documentation), மூலக் குறியீடு (source code) மற்றும் GitHub issues ஆகியவற்றைப் படித்தேன். பழைய வலைப்பதிவுகள் (blog posts) மற்றும் RFC திரெட்களைப் படித்தேன். நான் எந்தப் பூட்கேம்ப் (bootcamp) பயிற்சியையும் பயன்படுத்தவில்லை. ஒரு உலாவியும் (browser) மூலப் பொருட்களுமே எனக்குத் தேவைப்பட்டன.

நான் Cloudflare Workers-ஐக் கற்றுக்கொண்டபோது, என்னிடம் எந்தப் பாடத்திட்டமும் (course) இல்லை. என்னிடம் ஆவணங்களும் (docs) மற்றும் changelog மட்டுமே இருந்தன. அதிகாலை 1 மணிக்குச் செயலிழந்த ஒரு deployment-ஐச் சரிசெய்ய, நான் binding configuration-ஐ மூன்று முறை படித்தேன். பல ஆண்டுகளுக்கு முந்தைய GitHub திரெட்களில் நான் பதில்களைக் கண்டறிந்தேன்.

ஒரு விஷயம் எனக்குப் புரியும் வரை, அந்தத் தகவல்களுடன் அமர்ந்து நான் கற்றுக்கொண்டேன்.

இப்போது, நான் ஒரு புதிய முறையைக் காண்கிறேன். ஒரு பகுதி ஏன் குழப்பமாக இருக்கிறது என்று மக்கள் கேட்பதில்லை. மாறாக, 'X'-க்கான குறியீட்டைத் தாருங்கள் என்று கேட்கிறார்கள். ஒரு செயல்பாட்டை (behavior) கண்டறிய அவர்கள் மூலக் குறியீட்டைத் தேடிப் பார்ப்பதில்லை. ஒரு function என்ன செய்கிறது என்று மட்டுமே கேட்கிறார்கள்.

முன்பு இலக்கு புரிந்துகொள்வதாக இருந்தது. இப்போது இலக்கு வெளியீடு (output) பெறுவதாக உள்ளது. மக்கள் இதைத் திறமை (efficiency) என்று அழைக்கிறார்கள். ஆனால் உண்மையில் இது ஒரு கடன் (debt).

'half-open state' என்றால் என்னவென்று தெரியாமலேயே நீங்கள் ஒரு circuit breaker-ஐ உருவாக்க முடியும். அது உங்கள் சோதனையில் (test) வேலை செய்யும். ஆனால் ஆறு வாரங்களுக்குப் பிறகு அதிகப்படியான சுமையின் (heavy load) கீழ், அது production சூழலில் தோல்வியடையும். உங்களிடம் ஒரு மன மாதிரி (mental model) இல்லாததால் நீங்கள் தோல்வியடைகிறீர்கள். 'ஏன்' (why) என்பதைத் தெரியாமல், 'என்ன' (what) என்பதை மட்டும் நீங்கள் பெற்றுவிட்டீர்கள்.

'ஏன்' என்பது மட்டுமே முக்கியமான பகுதி.

ஆவணங்களைப் படிப்பது ஒரு மன மாதிரியை (mental model) உருவாக்குகிறது. அடிக்குறிப்புகளில் (footnotes) உள்ள சமரசங்கள் (tradeoffs) மற்றும் விளிம்பு நிலைச் சூழல்களை (edge cases) நீங்கள் காண முடியும். நீங்கள் வாசிக்கும்போது ஏற்படும் சிரமமே கற்றல் நிகழும் இடமாகும்.

நான் Bookmark Brain-ஐ உருவாக்கியபோது, Cloudflare Vectorize-ஐப் புரிந்துகொள்ள வேண்டியிருந்தது. நான் வெறும் API-ஐ மட்டும் பயன்படுத்தவில்லை. embedding dimensions, index behavior மற்றும் query distance metrics ஆகியவற்றை ஆய்வு செய்தேன். நான் HNSW ஆய்வறிக்கையைப் (paper) படித்தேன். குழப்பம் அறிவாக மாறும் வரை நான் அதனுடன் போராடினேன்.

அந்த அறிவே எனது அமைப்புகளை production சூழலில் இயங்க வைக்கிறது. அதிகாலை 2 மணிக்கு ஏதேனும் செயலிழந்தால், எனக்கு வழிகாட்ட ஒரு மன மாதிரி என்னிடம் உள்ளது. நான் வெறும் prompts-களை மட்டும் பயன்படுத்தியிருந்தால், என்னிடம் ஒரு டெமோ (demo) மட்டுமே இருந்திருக்கும், ஆனால் என்னால் பகுத்தறியக்கூடிய ஒரு அமைப்பு (system) இருந்திருக்காது.

இது பொறியியலில் (engineering) ஒரு பிரிவினையை உருவாக்குகிறது.

  • Code reviews-இல்: ஒரு டெவலப்பர் ORM ஆவணங்களைப் படித்திருப்பதால், N+1 சிக்கலை உடனடியாகக் கண்டறிவார். மற்றொரு டெவலப்பர் குறியீட்டை உருவாக்கிக்கொண்டே இருந்ததால், அதைத் தவறவிடுவார்.
  • Architecture-இல்: ஒரு டெவலப்பர் Kafka partitions மற்றும் offsets-களைப் புரிந்துகொள்வார். மற்றொருவருக்கு அதன் சொற்கள் மட்டுமே தெரியும், ஆனால் கட்டமைப்பு (structure) தெரியாது.
  • Debugging-இல்: Debugging என்பது உங்கள் மன மாதிரியின் (mental model) செயல்பாடாகும். அது இல்லையென்றால், நீங்கள் எதையோ மாற்றிவிட்டு எல்லாம் சரியாகிவிடும் என்று நம்புவதைத் தவிர வேறொன்றும் செய்ய முடியாது.

AI-ஆல் ஒரு முழுமையான கட்டமைப்பை (architecture) கையாள முடியாது. அது உங்கள் codebase முழுவதையும் ஒரு பெரிய பார்வையில் பார்ப்பதில்லை. AI மூலம் உருவாக்கப்பட்ட caching layers அனைத்துச் சோதனைகளையும் கடந்து, பின்னர் production சூழலில் செயலிழப்பதைப் பார்த்திருக்கிறேன்; ஏனெனில் race conditions-களை எந்த மனிதரும் புரிந்து கொள்ளவில்லை.

இந்தத் தனித்தன்மை AI பயன்படுத்துவதைப் பற்றியது அல்ல. நீங்கள் அதை எப்படிப் பயன்படுத்துகிறீர்கள் என்பதைப் பற்றியது.

நீங்கள் சமரசங்களைப் (tradeoffs) புரிந்துகொள்ளப் பயன்படுத்துகிறீர்களா? அல்லது புரிந்துகொள்வதைத் தவிர்க்கப் பயன்படுத்துகிறீர்களா?

சிறந்த டெவலப்பர்கள் வேகமாகச் செயல்படுவது மட்டுமல்ல. அவர்கள் இன்னும் changelogs மற்றும் மூலக் குறியீட்டைப் படித்துக் கொண்டிருக்கிறார்கள். prompting மூலம் உருவாக்க முடியாத ஒரு மன மாதிரியை அவர்கள் உருவாக்குகிறார்கள்.

ஆவணங்களைப் படிப்பது ஒரு பயிற்சி. அது உங்கள் உற்பத்தித் திறனில் (productivity) ஏற்படும் சுமையல்ல. அமைப்பு செயலிழக்கும்போது உங்களை ஈடுசெய்ய முடியாதவராக மாற்றுவது அதுவேயாகும்.

நீங்கள் வாசிப்பதைத் தவிர்த்தால், நீங்கள் சிந்திப்பதையும் தவிர்த்துவிடுகிறீர்கள். நீங்கள் எந்த ஆதாரமும் இல்லாமல் production சூழலில் சிக்கிக்கொள்ளும் வரை இது உங்களுக்குத் தெரியாது.

Source: https://dev.to/dannwaneri/you-stopped-reading-the-docs-now-you-dont-understand-the-systems-go1

Optional learning community: https://t.me/GyaanSetuAi