ನೀವು ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಓದುವುದನ್ನು ನಿಲ್ಲಿಸಿದ್ದೀರಿ, ಈಗ ನಿಮಗೆ ಸಿಸ್ಟಮ್‌ಗಳು ಅರ್ಥವಾಗುತ್ತಿಲ್ಲ

ನಾನು ವಿಶ್ವವಿದ್ಯಾಲಯದಲ್ಲಿ ಕಂಪ್ಯೂಟರ್ ಸೈನ್ಸ್ ಓದಿಲ್ಲ. ನಾನು ಜಿಯೋಫಿಸಿಕ್ಸ್ ಓದಿದ್ದೇನೆ.

ನಾನು ಓದುವುದರ ಮೂಲಕ ಸಾಫ್ಟ್‌ವೇರ್ ಕಲಿತೆ. ನಾನು ಡಾಕ್ಯುಮೆಂಟೇಶನ್, ಸೋರ್ಸ್ ಕೋಡ್ ಮತ್ತು GitHub ಇಶ್ಯೂಗಳನ್ನು ಓದಿದೆ. ನಾನು ಹಳೆಯ ಬ್ಲಾಗ್ ಪೋಸ್ಟ್‌ಗಳು ಮತ್ತು RFC ಥ್ರೆಡ್‌ಗಳನ್ನು ಓದಿದೆ. ನಾನು ಯಾವುದೇ ಬೂಟ್‌ಕ್ಯಾಂಪ್ ಬಳಸಲಿಲ್ಲ. ನಾನು ಬ್ರೌಸರ್ ಮತ್ತು ಮೂಲ ಮಾಹಿತಿಯನ್ನು ಬಳಸಿದೆ.

ನಾನು Cloudflare Workers ಅನ್ನು ಕಲಿತಾಗ, ನನ್ನ ಬಳಿ ಯಾವುದೇ ಕೋರ್ಸ್ ಇರಲಿಲ್ಲ. ನನ್ನ ಬಳಿ ಡಾಕ್ಸ್ ಮತ್ತು ಚೇಂಜ್‌ಲಾಗ್ ಮಾತ್ರ ಇತ್ತು. ಬೆಳಗಿನ 1 ಗಂಟೆಗೆ ಹಾಳಾದ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಅನ್ನು ಸರಿಪಡಿಸಲು ನಾನು ಬೈಂಡಿಂಗ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಮೂರು ಬಾರಿ ಓದಿದೆ. ವರ್ಷಗಳ ಹಿಂದಿನ GitHub ಥ್ರೆಡ್‌ಗಳಲ್ಲಿ ನಾನು ಉತ್ತರಗಳನ್ನು ಕಂಡುಕೊಂಡೆ.

ವಿಷಯವು ನನಗೆ ಸಂಪೂರ್ಣವಾಗಿ ಅರ್ಥವಾಗುವವರೆಗೆ ನಾನು ಆ ಮಾಹಿತಿಯೊಂದಿಗೆ ಕುಳಿತು ಕಲಿತೆ.

ಈಗ, ನಾನು ಒಂದು ಹೊಸ ಮಾದರಿಯನ್ನು ನೋಡುತ್ತಿದ್ದೇನೆ. ಜನರು ಒಂದು ವಿಭಾಗವು ಏಕೆ ಗೊಂದಲಮಯವಾಗಿದೆ ಎಂದು ಕೇಳುವುದಿಲ್ಲ. ಬದಲಾಗಿ, ಅವರು 'X' ಗಾಗಿ ಕೋಡ್ ಅನ್ನು ಕೇಳುತ್ತಾರೆ. ಅವರು ವರ್ತನೆಯನ್ನು (behavior) ಕಂಡುಹಿಡಿಯಲು ಸೋರ್ಸ್ ಕೋಡ್ ಅನ್ನು ಟ್ರೇಸ್ ಮಾಡುವುದಿಲ್ಲ. ಬದಲಾಗಿ ಒಂದು ಫಂಕ್ಷನ್ ಏನು ಮಾಡುತ್ತದೆ ಎಂದು ಕೇಳುತ್ತಾರೆ.

ಹಿಂದೆ ಗುರಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದಾಗಿತ್ತು. ಈಗ ಗುರಿ ಔಟ್‌ಪುಟ್ ಪಡೆಯುವುದಾಗಿದೆ. ಜನರು ಇದನ್ನು ದಕ್ಷತೆ ಎಂದು ಕರೆಯುತ್ತಾರೆ. ಆದರೆ ಇದು ವಾಸ್ತವವಾಗಿ ಸಾಲ (debt).

'half-open state' ಎಂದರೇನು ಎಂದು ತಿಳಿಯದೆಯೇ ನೀವು ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ಅನ್ನು ಜನರೇಟ್ ಮಾಡಬಹುದು. ಅದು ನಿಮ್ಮ ಟೆಸ್ಟ್‌ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಆದರೆ ಆರು ವಾರಗಳ ನಂತರ ಹೆಚ್ಚಿನ ಲೋಡ್ ಅಡಿಯಲ್ಲಿ ಅದು ಪ್ರೊಡಕ್ಷನ್‌ನಲ್ಲಿ ವಿಫಲವಾಗುತ್ತದೆ. ನಿಮಗೆ ಮೆಂಟಲ್ ಮಾಡೆಲ್ (mental model) ಇಲ್ಲದ ಕಾರಣ ನೀವು ವಿಫಲರಾಗುತ್ತೀರಿ. ನೀವು 'ಏನು' ಎಂಬುದು ತಿಳಿದುಕೊಂಡಿದ್ದೀರಿ ಆದರೆ 'ಏಕೆ' ಎಂಬುದು ತಿಳಿದಿಲ್ಲ.

'ಏಕೆ' ಎಂಬುದು ಮಾತ್ರ ಮುಖ್ಯವಾದ ಭಾಗವಾಗಿದೆ.

ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಓದುವುದು ಒಂದು ಮೆಂಟಲ್ ಮಾಡೆಲ್ ಅನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ. ನೀವು ಫುಟ್‌ನೋಟ್‌ಗಳಲ್ಲಿನ ಟ್ರೇಡ್-ಆಫ್‌ಗಳು (tradeoffs) ಮತ್ತು ಎಡ್ಜ್ ಕೇಸ್‌ಗಳನ್ನು (edge cases) ನೋಡಬಹುದು. ನೀವು ಓದುವಾಗ ಅನುಭವಿಸುವ ಗೊಂದಲವೇ ಕಲಿಕೆ ನಡೆಯುವ ಸ್ಥಳವಾಗಿದೆ.

ನಾನು Bookmark Brain ಅನ್ನು ನಿರ್ಮಿಸಿದಾಗ, ನಾನು Cloudflare Vectorize ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕಾಗಿತ್ತು. ನಾನು ಕೇವಲ API ಅನ್ನು ಬಳಸಲಿಲ್ಲ. ನಾನು ಎಂಬೆಡ್ಡಿಂಗ್ ಡೈಮೆನ್ಶನ್‌ಗಳು, ಇಂಡೆಕ್ಸ್ ವರ್ತನೆ ಮತ್ತು ಕ್ವೇರಿ ಡಿಸ್ಟೆನ್ಸ್ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಅಧ್ಯಯನ ಮಾಡಿದೆ. ನಾನು HNSW ಪೇಪರ್ ಅನ್ನು ಓದಿದೆ. ಗೊಂದಲವು ಜ್ಞಾನವಾಗಿ ಬದಲಾಗುವವರೆಗೆ ನಾನು ಅದರೊಂದಿಗೆ ಕುಳಿತುಕೊಂಡೆ.

ಆ ಜ್ಞಾನವು ನನ್ನ ಸಿಸ್ಟಮ್‌ಗಳನ್ನು ಪ್ರೊಡಕ್ಷನ್‌ನಲ್ಲಿ ಸುಗಮವಾಗಿ ನಡೆಸುತ್ತದೆ. ಬೆಳಗಿನ 2 ಗಂಟೆಗೆ ಏನಾದರೂ ಮುರಿದರೆ, ನನಗೆ ಮಾರ್ಗದರ್ಶನ ನೀಡಲು ನನ್ನ ಬಳಿ ಮೆಂಟಲ್ ಮಾಡೆಲ್ ಇದೆ. ನಾನು ಕೇವಲ ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು ಬಳಸಿದ್ದರೆ, ನನ್ನ ಬಳಿ ಒಂದು ಡೆಮೊ ಇರುತ್ತಿತ್ತು, ಆದರೆ ನಾನು ವಿಶ್ಲೇಷಿಸಬಹುದಾದ ಸಿಸ್ಟಮ್ ಇರುತ್ತಿರಲಿಲ್ಲ.

ಇದು ಎಂಜಿನಿಯರಿಂಗ್‌ನಲ್ಲಿ ಒಂದು ವಿಭಜನೆಯನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ.

  • ಕೋಡ್ ರಿವ್ಯೂಗಳಲ್ಲಿ: ಒಬ್ಬ ಡೆವಲಪರ್ ORM ಡಾಕ್ಸ್ ಓದಿದ್ದರಿಂದ ತಕ್ಷಣವೇ N+1 ಸಮಸ್ಯೆಯನ್ನು ಗುರುತಿಸುತ್ತಾರೆ. ಇನ್ನೊಬ್ಬ ಡೆವಲಪರ್ ಕೇವಲ ಕೋಡ್ ಜನರೇಟ್ ಮಾಡಿದ್ದರಿಂದ ಅದನ್ನು ಗಮನಿಸುವುದಿಲ್ಲ.
  • ಆರ್ಕಿಟೆಕ್ಚರ್‌ನಲ್ಲಿ: ಒಬ್ಬ ಡೆವಲಪರ್ Kafka ಪಾರ್ಟಿಷನ್‌ಗಳು ಮತ್ತು ಆಫ್‌ಸೆಟ್‌ಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತಾರೆ. ಇನ್ನೊಬ್ಬರಿಗೆ ಕೇವಲ ಶಬ್ದಕೋಶ ತಿಳಿದಿರುತ್ತದೆ ಆದರೆ ರಚನೆ (structure) ತಿಳಿದಿರುವುದಿಲ್ಲ.
  • ಡಿಬಗ್ಗಿಂಗ್‌ನಲ್ಲಿ: ಡಿಬಗ್ಗಿಂಗ್ ಎಂಬುದು ನಿಮ್ಮ ಮೆಂಟಲ್ ಮಾಡೆಲ್‌ನ ಕಾರ್ಯವಾಗಿದೆ. ಅದು ಇಲ್ಲದಿದ್ದರೆ, ನೀವು ಕೇವಲ ವಿಷಯಗಳನ್ನು ಬದಲಾಯಿಸುತ್ತಾ ಯಾವುದೋ ಒಂದು ಒಳ್ಳೆಯದಾಗಲಿ ಎಂದು ಕಾಯುತ್ತಿರುತ್ತೀರಿ.

AI ಇಡೀ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ. ಇದು ನಿಮ್ಮ ಕೋಡ್‌ಬೇಸ್‌ನ ಸಂಪೂರ್ಣ ಚಿತ್ರಣವನ್ನು ನೋಡುವುದಿಲ್ಲ. AI-ಜನರೇಟ್ ಮಾಡಿದ ಕ್ಯಾಷಿಂಗ್ ಲೇಯರ್‌ಗಳು ಎಲ್ಲಾ ಟೆಸ್ಟ್‌ಗಳನ್ನು ಪಾಸು ಮಾಡಿ, ನಂತರ ಪ್ರೊಡಕ್ಷನ್‌ನಲ್ಲಿ ಕ್ರ್ಯಾಶ್ ಆಗುವುದನ್ನು ನಾನು ನೋಡಿದ್ದೇನೆ, ಏಕೆಂದರೆ ಯಾವುದೇ ಮನುಷ್ಯರಿಗೆ ರೇಸ್ ಕಂಡಿಷನ್‌ಗಳು (race conditions) ಅರ್ಥವಾಗಿರಲಿಲ್ಲ.

ಈ ವಿಭಜನೆಯು AI ಬಳಸುವುದರ ಬಗ್ಗೆ ಅಲ್ಲ. ನೀವು ಅದನ್ನು ಹೇಗೆ ಬಳಸುತ್ತೀರಿ ಎಂಬುದರ ಬಗ್ಗೆ ಇದೆ.

ನೀವು ಅದನ್ನು ಟ್ರೇಡ್-ಆಫ್‌ಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಬಳಸುತ್ತೀರಾ? ಅಥವಾ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದನ್ನು ತಪ್ಪಿಸಲು ಬಳಸುತ್ತೀರಾ?

ಅತ್ಯುತ್ತಮ ಡೆವಲಪರ್‌ಗಳು ಕೇವಲ ವೇಗವಾಗಿ ಚಲಿಸುತ್ತಿಲ್ಲ. ಅವರು ಇಂದಿಗೂ ಚೇಂಜ್‌ಲಾಗ್‌ಗಳು ಮತ್ತು ಸೋರ್ಸ್ ಕೋಡ್ ಅನ್ನು ಓದುತ್ತಿದ್ದಾರೆ. ಅವರು ಪ್ರಾಂಪ್ಟಿಂಗ್ ಮೂಲಕ ಅನುಕರಿಸಲಾಗದ ಮೆಂಟಲ್ ಮಾಡೆಲ್ ಅನ್ನು ನಿರ್ಮಿಸುತ್ತಿದ್ದಾರೆ.

ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಓದುವುದು ಒಂದು ಅಭ್ಯಾಸ. ಇದು ನಿಮ್ಮ ಉತ್ಪಾದಕತೆಯ ಮೇಲೆ ವಿಧಿಸಿದ ತೆರಿಗೆಯಲ್ಲ. ಸಿಸ್ಟಮ್ ಮುರಿದಾಗ ನಿಮ್ಮನ್ನು ಅನಿವಾರ್ಯವಾಗಿಸುವ (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