మీరు డాక్యుమెంటేషన్ చదవడం ఆపేసారు, అందుకే మీకు సిస్టమ్స్ అర్థం కావడం లేదు

నేను యూనివర్సిటీలో కంప్యూటర్ సైన్స్ చదవలేదు. నేను జియోఫిజిక్స్ (geophysics) చదివాను.

నేను చదవడం ద్వారా సాఫ్ట్‌వేర్‌ను నేర్చుకున్నాను. నేను డాక్యుమెంటేషన్, సోర్స్ కోడ్ మరియు GitHub ఇష్యూలను చదివాను. పాత బ్లాగ్ పోస్ట్‌లు మరియు RFC థ్రెడ్‌లను చదివాను. నేను ఎలాంటి బూట్‌క్యాంప్ (bootcamp) వాడలేదు. నేను కేవలం బ్రౌజర్ మరియు అందుబాటులో ఉన్న సమాచారాన్ని (raw material) ఉపయోగించాను.

నేను Cloudflare Workers నేర్చుకున్నప్పుడు, నా దగ్గర ఎటువంటి కోర్సు లేదు. నా దగ్గర ఉన్నది కేవలం డాక్స్ (docs) మరియు చేంజ్ లాగ్ (changelog) మాత్రమే. తెల్లవారుజామున 1 గంటకు విఫలమైన డిప్లాయ్‌మెంట్‌ను సరిచేయడానికి నేను బైండింగ్ కాన్ఫిగరేషన్‌ను మూడుసార్లు చదివాను. సంవత్సరాల క్రితం నాటి GitHub థ్రెడ్‌లలో నేను సమాధానాలను కనుగొన్నాను.

విషయం పూర్తిగా అర్థమయ్యే వరకు ఆ సమాచారంతో కూర్చుని నేర్చుకున్నాను.

ఇప్పుడు, నేను ఒక కొత్త ధోరణిని గమనిస్తున్నాను. ఒక విభాగం ఎందుకు అయోమయంగా ఉందో ప్రజలు అడగడం లేదు. వారు 'X' కోసం కోడ్ అడుగుతున్నారు. ప్రవర్తనను (behavior) తెలుసుకోవడానికి వారు సోర్స్ కోడ్‌ను పరిశీలించడం లేదు. ఒక ఫంక్షన్ ఏమి చేస్తుందో అని మాత్రమే అడుగుతున్నారు.

ఒకప్పుడు లక్ష్యం అవగాహన (comprehension) ఉండేది. ఇప్పుడు లక్ష్యం అవుట్‌పుట్ (output). ప్రజలు దీనిని సామర్థ్యం (efficiency) అని పిలుస్తారు. కానీ నిజానికి ఇది ఒక అప్పు (debt).

'half-open state' అంటే ఏమిటో తెలియకుండానే మీరు ఒక సర్క్యూట్ బ్రేకర్ (circuit breaker)ను జనరేట్ చేయవచ్చు. అది మీ టెస్టింగ్‌లో పనిచేస్తుంది. కానీ ఆరు వారాల తర్వాత భారీ లోడ్ (heavy load) వచ్చినప్పుడు ప్రొడక్షన్‌లో విఫలమవుతుంది. మీకు మెంటల్ మోడల్ (mental model) లేకపోవడం వల్ల మీరు విఫలమవుతారు. మీరు 'ఎందుకు' (why) తెలియకుండా కేవలం 'ఏమిటి' (what) అనే దానిని మాత్రమే పొందారు.

'ఎందుకు' అనే అంశం మాత్రమే ముఖ్యం.

డాక్యుమెంటేషన్ చదవడం వల్ల ఒక మెంటల్ మోడల్ ఏర్పడుతుంది. మీరు ఫుట్‌నోట్స్‌లో ఉండే ట్రేడ్‌ఆఫ్స్ (tradeoffs) మరియు ఎడ్జ్ కేస్‌లను (edge cases) చూడగలరు. మీరు చదువుతున్నప్పుడు ఎదురయ్యే ఇబ్బందులే (friction) నేర్చుకోవడానికి దోహదపడతాయి.

నేను Bookmark Brain నిర్మించినప్పుడు, నాకు Cloudflare Vectorize గురించి అవగాహన ఉండాలి. నేను కేవలం APIని మాత్రమే ఉపయోగించలేదు. నేను ఎంబెడ్డింగ్ డైమెన్షన్స్ (embedding dimensions), ఇండెక్స్ బిహేవియర్ (index behavior) మరియు క్వెరీ డిస్టెన్స్ మెట్రిక్స్ (query distance metrics) గురించి అధ్యయనం చేశాను. నేను HNSW పేపర్‌ను చదివాను. అయోమయం జ్ఞానంగా మారే వరకు నేను దానిపై దృష్టి పెట్టాను.

ఆ జ్ఞానం నా సిస్టమ్స్‌ను ప్రొడక్షన్‌లో నడపడానికి సహాయపడుతుంది. తెల్లవారుజామున 2 గంటలకు ఏదైనా విఫలమైతే, నన్ను నడిపించడానికి నా దగ్గర ఒక మెంటల్ మోడల్ ఉంది. నేను కేవలం ప్రాంప్ట్‌లను (prompts) మాత్రమే ఉపయోగించి ఉంటే, నా దగ్గర ఒక డెమో మాత్రమే ఉండేది, కానీ నేను విశ్లేషించగలిగే (reason about) సిస్టమ్ ఉండేది కాదు.

ఇది ఇంజనీరింగ్‌లో ఒక విభజనను సృష్టిస్తుంది.

  • కోడ్ రివ్యూలలో: ఒక డెవలపర్ ORM డాక్స్ చదివినందున N+1 సమస్యను వెంటనే గుర్తిస్తారు. మరొక డెవలపర్ కేవలం కోడ్‌ను జనరేట్ చేసినందున దానిని గమనించలేరు.
  • ఆర్కిటెక్చర్‌లో: ఒక డెవలపర్ Kafka partitions మరియు offsets గురించి అర్థం చేసుకుంటారు. మరొకరికి కేవలం పదజాలం మాత్రమే తెలుసు కానీ నిర్మాణం (structure) తెలియదు.
  • డీబగ్గింగ్‌లో: డీబగ్గింగ్ అనేది మీ మెంటల్ మోడల్‌పై ఆధారపడి ఉంటుంది. అది లేకపోతే, మీరు కేవలం چیزలను మార్చి, అంతా బాగుంటుందని ఆశించడం తప్ప ఏమీ చేయలేరు.

AI మొత్తం ఆర్కిటెక్చర్‌ను అర్థం చేసుకోలేదు. ఇది మీ కోడ్‌బేస్ అంతటా ఉన్న పూర్తి చిత్రాన్ని (big picture) చూడలేదు. AI ద్వారా జనరేట్ చేయబడిన క్యాషింగ్ లేయర్‌లు (caching layers) అన్ని పరీక్షలను పాస్ అయ్యి, ఆ తర్వాత ప్రొడక్షన్‌లో క్రాష్ అవ్వడం నేను చూశాను, ఎందుకంటే రేస్ కండిషన్స్ (race conditions) గురించి ఏ మనిషికి తెలియదు.

ఈ విభజన AIని ఉపయోగించడం గురించి కాదు. మీరు దానిని ఎలా ఉపయోగిస్తున్నారు అనే దాని గురించి.

మీరు ట్రేడ్‌ఆఫ్స్‌ను అర్థం చేసుకోవడానికి దానిని ఉపయోగిస్తున్నారా? లేదా అర్థం చేసుకోవడం నుండి తప్పించుకోవడానికి ఉపయోగిస్తున్నారా?

ఉత్తమ డెవలపర్లు కేవలం వేగంగా ముందుకు సాగడం మాత్రమే కాదు. వారు ఇంకా చేంజ్ లాగ్‌లు మరియు సోర్స్ కోడ్‌ను చదువుతూనే ఉన్నారు. ప్రాంప్టింగ్ (prompting) ద్వారా పునరుత్పత్తి చేయలేని ఒక మెంటల్ మోడల్‌ను వారు నిర్మిస్తున్నారు.

డాక్యుమెంటేషన్ చదవడం అనేది ఒక సాధన. ఇది మీ ఉత్పాదకతపై (productivity) పడే పన్ను కాదు. సిస్టమ్ విఫలమైనప్పుడు మిమ్మల్ని ఎవరూ భర్తీ చేయలేనంత విలువైన వ్యక్తిగా మార్చేది ఇదే.

మీరు చదవడం మానేస్తే, మీరు ఆలోచించడం కూడా మానేసినట్లే. మీరు ప్రొడక్షన్‌లో ఏమీ ఆధారపడలేక ఇబ్బంది పడే వరకు మీకు ఇది అర్థం కాదు.

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

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