તમે ડોક્યુમેન્ટેશન વાંચવાનું બંધ કરી દીધું છે, તેથી હવે તમે સિસ્ટમ્સને સમજી શકતા નથી

મેં યુનિવર્સિટીમાં કોમ્પ્યુટર સાયન્સનો અભ્યાસ કર્યો નથી. મેં જીઓફિઝિક્સનો અભ્યાસ કર્યો હતો.

મેં વાંચીને સોફ્ટવેર શીખ્યું છે. મેં ડોક્યુમેન્ટેશન, સોર્સ કોડ અને GitHub issues વાંચ્યા છે. મેં જૂની બ્લોગ પોસ્ટ્સ અને RFC threads વાંચ્યા છે. મેં કોઈ બુટકેમ્પનો ઉપયોગ કર્યો નથી. મેં બ્રાઉઝર અને કાચા મટીરિયલનો ઉપયોગ કર્યો છે.

જ્યારે મેં Cloudflare Workers શીખ્યું, ત્યારે મારી પાસે કોઈ કોર્સ નહોતો. મારી પાસે માત્ર ડોક્સ (docs) અને ચેન્જલોગ (changelog) હતા. રાત્રે 1 વાગ્યે બગડેલા ડિપ્લોયમેન્ટને ઠીક કરવા માટે મેં બાઈન્ડિંગ કોન્ફિગરેશન ત્રણ વાર વાંચ્યું હતું. મને વર્ષો જૂના GitHub threads માં જવાબો મળ્યા હતા.

જ્યાં સુધી મને બધું સમજાઈ ન જાય ત્યાં સુધી હું મટીરિયલ સાથે બેસી રહેતો અને તે રીતે શીખતો.

હવે, હું એક નવો પેટર્ન જોઉં છું. લોકો એ નથી પૂછતા કે કોઈ સેક્શન શા માટે મૂંઝવણભર્યું છે. તેઓ X માટે કોડ માંગે છે. તેઓ વર્તણૂક (behavior) જાણવા માટે સોર્સ કોડ ટ્રેસ કરતા નથી. તેઓ ફક્ત એ પૂછે છે કે કોઈ ફંક્શન શું કરે છે.

પહેલા ધ્યેય સમજણ (comprehension) હતો. હવે ધ્યેય આઉટપુટ (output) છે. લોકો આને કાર્યક્ષમતા (efficiency) કહે છે. વાસ્તવમાં તે દેવું (debt) છે.

તમે 'half-open state' શું છે તે જાણ્યા વગર 'circuit breaker' જનરેટ કરી શકો છો. તે તમારા ટેસ્ટમાં કામ કરશે. પરંતુ છ અઠવાડિયા પછી ભારે લોડ હેઠળ તે પ્રોડક્શનમાં નિષ્ફળ જશે. તમે નિષ્ફળ જશો કારણ કે તમારી પાસે કોઈ mental model નથી. તમને 'શું' (what) મળી ગયું પણ 'કેમ' (why) નહીં.

'કેમ' (why) એ જ એકમાત્ર ભાગ છે જે મહત્વનો છે.

ડોક્યુમેન્ટેશન વાંચવાથી એક mental model બને છે. તમે ફૂટનોટ્સમાં તેના ફાયદા-ગેરફાયદા (tradeoffs) અને એજ કેસીસ (edge cases) જોઈ શકો છો. વાંચતી વખતે તમને જે મુશ્કેલી અનુભવાય છે, ત્યાં જ ખરેખર શીખવાની પ્રક્રિયા થાય છે.

જ્યારે મેં Bookmark Brain બનાવ્યું, ત્યારે મારે Cloudflare Vectorize સમજવું પડ્યું હતું. મેં ફક્ત API નો ઉપયોગ નથી કર્યો. મેં embedding dimensions, index behavior, અને query distance metrics નો અભ્યાસ કર્યો. મેં HNSW પેપર વાંચ્યું. જ્યાં સુધી મૂંઝવણ જ્ઞાનમાં ન બદલાઈ જાય ત્યાં સુધી હું તેના પર કામ કરતો રહ્યો.

તે જ્ઞાન મારા સિસ્ટમ્સને પ્રોડક્શનમાં ચાલુ રાખે છે. જો રાત્રે 2 વાગ્યે કંઈક બગડે, તો મારી પાસે માર્ગદર્શન આપવા માટે એક mental model હોય છે. જો મેં ફક્ત પ્રોમ્પ્ટ્સનો ઉપયોગ કર્યો હોત, તો મારી પાસે માત્ર એક ડેમો હોત, પણ એવી સિસ્ટમ ન હોત જેના વિશે હું તાર્કિક રીતે વિચારી શકું.

આ એન્જિનિયરિંગમાં એક વિભાજન (divide) ઊભું કરે છે.

  • કોડ રિવ્યુમાં: એક ડેવલપર તરત જ N+1 સમસ્યા જોઈ લે છે કારણ કે તેમણે ORM ડોક્સ વાંચ્યા છે. બીજો ડેવલપર તેને ચૂકી જાય છે કારણ કે તેમણે ફક્ત કોડ જ જનરેટ કર્યો હતો.
  • આર્કિટેક્ચરમાં: એક ડેવલપર Kafka partitions અને offsets સમજે છે. બીજાને ફક્ત શબ્દભંડોળ જ ખબર છે પણ તેની પાસે માળખું (structure) નથી.
  • ડીબગિંગમાં: ડીબગિંગ એ તમારા mental model નું પરિણામ છે. તેના વગર, તમે ફક્ત વસ્તુઓ બદલી રહ્યા છો અને બધું સારું થઈ જાય તેવી આશા રાખી રહ્યા છો.

AI આખી આર્કિટેક્ચરને પકડી શકતું નથી. તે તમારા કોડબેઝમાં આખું ચિત્ર (big picture) જોઈ શકતું નથી. મેં AI-જનરેટેડ કેશિંગ લેયર્સને દરેક ટેસ્ટ પાસ કરતા અને પછી પ્રોડક્શનમાં ક્રેશ થતા જોયા છે, કારણ કે કોઈ પણ માણસ race conditions ને સમજી શક્યો નહોતો.

આ વિભાજન AI ના ઉપયોગ વિશે નથી. તે તમે તેનો ઉપયોગ કેવી રીતે કરો છો તેના વિશે છે.

શું તમે તેનો ઉપયોગ ફાયદા-ગેરફાયદા સમજવા માટે કરો છો? અથવા શું તમે તેનો ઉપયોગ સમજવાનું ટાળવા માટે કરો છો?

શ્રેષ્ઠ ડેવલપર્સ ફક્ત ઝડપથી કામ નથી કરતા. તેઓ હજુ પણ ચેન્જલોગ્સ અને સોર્સ કોડ વાંચે છે. તેઓ એક એવું mental model બનાવી રહ્યા છે જે પ્રોમ્પ્ટિંગ દ્વારા મેળવી શકાતું નથી.

ડોક્યુમેન્ટેશન વાંચવું એ એક અભ્યાસ છે. તે તમારી ઉત્પાદકતા (productivity) પરનો ટેક્સ નથી. જ્યારે સિસ્ટમ બગડે છે ત્યારે તે તમને અવિભાજ્ય (irreplaceable) બનાવે છે.

જો તમે વાંચવાનું છોડી દો છો, તો તમે વિચારવાનું પણ છોડી દો છો. જ્યાં સુધી તમે પ્રોડક્શનમાં કંઈપણ આધાર વગર ન પહોંચો ત્યાં સુધી તમને આ વાત સમજાશે નહીં.

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

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