React ಸಮಸ್ಯೆಯಲ್ಲ. ನಾವು ಅದನ್ನು ಕಲಿಸುವ ರೀತಿಯೇ ಸಮಸ್ಯೆ.

ಒಬ್ಬ ಜೂನಿಯರ್ ಡೆವಲಪರ್ ಬಳಿ ಸಬ್ಮಿಟ್ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಏನಾಗುತ್ತದೆ ಎಂದು ಕೇಳಿ. ಹೆಚ್ಚಿನವರು ಸ್ಪಷ್ಟವಾದ ಉತ್ತರ ನೀಡಲು ವಿಫಲರಾಗುತ್ತಾರೆ.

ಒಂದು API ಕರಲ್ ಸರ್ವರ್‌ಗೆ ಹೋಗುತ್ತದೆ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ (response) ಹಿಂತಿರುಗುತ್ತದೆ ಎಂದು ಅವರು ಹೇಳಬಹುದು. ಇದು ಕೇವಲ ಮೇಲ್ಮಟ್ಟದ ಉತ್ತರವಾಗಿದೆ.

ಅವರಿಂದ ಹೆಚ್ಚು ನಿರ್ದಿಷ್ಟವಾದ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಿ:

  • ಬ್ರೌಸರ್ ರಿಕ್ವೆಸ್ಟ್ ಅನ್ನು ಹೇಗೆ ಪ್ಯಾಕೇಜ್ ಮಾಡುತ್ತದೆ?
  • ಯಾವ HTTP ಮೆಥಡ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ?
  • ಅಥೆಂಟಿಕೇಶನ್ (authentication) ಎಲ್ಲಿ ನಡೆಯುತ್ತದೆ?
  • ಡೇಟಾಬೇಸ್‌ಗೆ ತಲುಪುವ ಮೊದಲು ಸರ್ವರ್ ಡೇಟಾವನ್ನು ಹೇಗೆ ಪ್ರೊಸೆಸ್ ಮಾಡುತ್ತದೆ?

ಇಲ್ಲಿಂದ ಮೌನ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.

ಜೂನಿಯರ್ ಡೆವಲಪರ್‌ಗಳು ಸೋಮಾರಿಗಳಲ್ಲ. ಅವರಿಗೆ ಪ್ರತಿಭೆಯ ಕೊರತೆಯಿಲ್ಲ. ಅವರಿಗೆ ಸಂದರ್ಭದ (context) ಅರಿವಿಲ್ಲ.

ನಾವು ಅಡಿಪಾಯಕ್ಕಿಂತ ಮೊದಲು ಅಬ್‌ಸ್ಟ್ರಾಕ್ಷನ್‌ಗಳನ್ನು (abstractions) ಕಲಿಸುತ್ತೇವೆ.

ಬೂಟ್‌ಕೇಂಪ್‌ಗಳು ಮತ್ತು ಟ್ಯುಟೋರಿಯಲ್‌ಗಳು ತ್ವರಿತ ಫಲಿತಾಂಶಗಳ ಮೇಲೆ ಗಮನ ಹರಿಸುತ್ತವೆ. ನೀವು ಪೋರ್ಟ್‌ಫೋಲಿಯೊವನ್ನು ನಿರ್ಮಿಸಲು ಮತ್ತು ಕೆಲಸ ಪಡೆಯಲು ಅವು ಬಯಸುತ್ತವೆ. React ಇದಕ್ಕೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ ಏಕೆಂದರೆ ನೀವು ಫಲಿತಾಂಶಗಳನ್ನು ವೇಗವಾಗಿ ನೋಡಬಹುದು.

ಕಲಿಯುವವರು ಸಿಸ್ಟಮ್‌ಗಳನ್ನು ನೋಡುವ ಮೊದಲು ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳನ್ನು ನೋಡುತ್ತಾರೆ.

  • ಅವರು HTTPಗಿಂತ ಮೊದಲು React ಕಲಿಯುತ್ತಾರೆ.
  • ಅವರು ಸರ್ವರ್‌ಗಳಿಗಿಂತ ಮೊದಲು ಕಾಂಪೊನೆಂಟ್‌ಗಳನ್ನು ಕಲಿಯುತ್ತಾರೆ.
  • ಅವರು ಡೇಟಾಬೇಸ್‌ಗಳಿಗಿಂತ ಮೊದಲು ಸ್ಟೇಟ್ ಮ್ಯಾನೇಜ್‌ಮೆಂಟ್ ಕಲಿಯುತ್ತಾರೆ.

ಇದು ಏನು ಮಾಡಬೇಕೆಂದು ತಿಳಿದಿರುವ ಆದರೆ ಅದನ್ನು ಏಕೆ ಮಾಡಬೇಕೆಂದು ತಿಳಿಯದ ಡೆವಲಪರ್‌ಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ.

ಇದು 'ಟ್ಯುಟೋರಿಯಲ್ ಹೆಲ್' (tutorial hell) ಗೆ ದಾರಿ ಮಾಡಿಕೊಡುತ್ತದೆ. ನೀವು ವಿಡಿಯೋದಿಂದ ಕೋಡ್ ಅನ್ನು ಕಾಪಿ ಮಾಡುತ್ತೀರಿ ಮತ್ತು ನೀವು ಉತ್ಪಾದಕನೆಂದು ಭಾವಿಸುತ್ತೀರಿ. ನಂತರ ನೀವು ಏಕಾಂಗಿಯಾಗಿ ಏನನ್ನಾದರೂ ನಿರ್ಮಿಸಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ವಿಫಲರಾಗುತ್ತೀರಿ. ಪರಿಚಯವಿದ್ದರನ್ನೇ ನೀವು ತಿಳುವಳಿಕೆ ಎಂದು ತಪ್ಪಾಗಿ ಭಾವಿಸಿದ್ದೀರಿ.

AI ಪರಿಕರಗಳು ಈ ಸಮಸ್ಯೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತವೆ. ChatGPT ನಂತಹ ಪರಿಕರಗಳು ಉತ್ಪಾದಕತೆಗೆ ಸಹಾಯ ಮಾಡುತ್ತವೆ. ಆದರೆ AI ಯನ್ನು ಬೆಂಬಲಿಸುವ ಬದಲು ಅದು ಆಲೋಚನೆಯನ್ನು ಬದಲಿಸಿದಾಗ ಅಪಾಯ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.

ಡಿಬಗ್ಗಿಂಗ್ (Debugging) ಹಿಂದೆ ಕಷ್ಟವಾಗಿತ್ತು. ಮೂಲ ಕಾರಣವನ್ನು ಕಂಡುಹಿಡಿಯುವವರೆಗೆ ನೀವು ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಓದಬೇಕಾಗುತ್ತಿತ್ತು ಮತ್ತು ವಿಫಲರಾಗಬೇಕಾಗುತ್ತಿತ್ತು. ಆ ಹೋರಾಟವು ನಿಮ್ಮ ಮೆದುಳನ್ನು ರೂಪಿಸಿತು. ನೀವು ಪ್ರತಿಯೊಂದು ಸಮಸ್ಯೆಯನ್ನು AI ಗೆ ವಹಿಸಿದರೆ, ನಿಮ್ಮ ಇಂಜಿನಿಯರಿಂಗ್ ತೀರ್ಮಾನ ತೆಗೆದುಕೊಳ್ಳುವ ಸಾಮರ್ಥ್ಯವನ್ನು (engineering judgment) ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ.

ಸಾಫ್ಟ್‌ವೇರ್ ಇಂಜಿನಿಯರಿಂಗ್ ಎಂದರೆ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವುದು ಮತ್ತು ಟ್ರೇಡ್-ಆಫ್‌ಗಳನ್ನು (trade-offs) ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು. ಕೇವಲ ಪ್ರಾಂಪ್ಟಿಂಗ್ ಮೂಲಕ ನೀವು ಅದನ್ನು ಕಲಿಯಲು ಸಾಧ್ಯವಿಲ್ಲ.

ನಾನು ಒಂದು ಪಠ್ಯಕ್ರಮವನ್ನು (curriculum) ರೂಪಿಸುವುದಾದರೆ, ಈ ಕ್ರಮದಲ್ಲಿ ಕಲಿಸುತ್ತೇನೆ:

  • HTML/CSS
  • JavaScript fundamentals
  • Browser fundamentals
  • HTTP and APIs
  • Basic back-end concepts
  • Databases
  • Authentication
  • React

ವಿದ್ಯಾರ್ಥಿಗಳು React ಹಂತಕ್ಕೆ ತಲುಪುವ ಹೊತ್ತಿಗೆ, ಡೇಟಾ ಫೆಚಿಂಗ್ (data fetching) ಏಕೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಎಂಬುದು ಅವರಿಗೆ ಅರ್ಥವಾಗುತ್ತದೆ. ಬಟನ್ ಕ್ಲಿಕ್‌ನ ಹಿಂದಿನ ಕಾರ್ಯವಿಧಾನಗಳು ಅವರಿಗೆ ಅರ್ಥವಾಗುತ್ತವೆ.

React ಸಮಸ್ಯೆಯಲ್ಲ. AI ಸಮಸ್ಯೆಯಲ್ಲ.

ಅಡಿಪಾಯಗಳನ್ನು ತುಂಬಾ ವೇಗವಾಗಿ ದಾಟುವುದು ಮತ್ತು ಅಂತರಗಳು (gaps) ತಾವಾಗಿಯೇ ತುಂಬಿಕೊಳ್ಳುತ್ತವೆ ಎಂದು ನಿರೀಕ್ಷಿಸುವುದೇ ಸಮಸ್ಯೆ.

ನಾವು ಜನರಿಗೆ ನಿರ್ಮಿಸುವುದನ್ನು ಕಲಿಸುತ್ತಿದ್ದೇವೆಯೇ ಅಥವಾ ಅರ್ಥಮಾಡಿಕೊಳ್ಳದೆ ಕಾಪಿ ಮಾಡುವುದನ್ನು ಕಲಿಸುತ್ತಿದ್ದೇವೆಯೇ?

ಮೂಲ: https://dev.to/franklyn_nmesoma_86940ec9/react-isnt-the-problem-how-we-teach-it-is-38m8