React ஒரு பிரச்சனை அல்ல. அதை நாம் கற்பிக்கும் முறையே பிரச்சனை.

ஒரு ஜூனியர் டெவலப்பரிடம் (junior developer), ஒரு சப்மிட் பட்டனை (submit button) கிளிக் செய்யும்போது என்ன நடக்கும் என்று கேட்டுப் பாருங்கள். பெரும்பாலானவர்களால் தெளிவான பதிலை அளிக்க முடிவதில்லை.

ஒரு API கால் (API call) சர்வருக்குச் செல்கிறது மற்றும் ஒரு பதில் (response) திரும்ப வருகிறது என்று அவர்கள் சொல்லலாம். இது ஒரு மேலோட்டமான பதில் மட்டுமே.

அவர்களிடம் இன்னும் சில குறிப்பிட்ட கேள்விகளைக் கேளுங்கள்:

  • பிரவுசர் (browser) கோரிக்கையை (request) எவ்வாறு தொகுக்கிறது?
  • எந்த HTTP முறை (method) பயன்படுத்தப்படுகிறது?
  • அங்கீகாரம் (authentication) எங்கே நடைபெறுகிறது?
  • தரவு ஒரு டேட்டாபேஸிற்கு (database) செல்வதற்கு முன், சர்வர் அதை எவ்வாறு செயலாக்குகிறது?

இங்கிருந்துதான் மௌனம் தொடங்குகிறது.

ஜூனியர் டெவலப்பர்கள் சோம்பேறிகள் அல்ல. அவர்களிடம் திறமை இல்லை என்று சொல்ல முடியாது. அவர்களுக்குத் தேவையான சூழல் அறிவு (context) தான் இல்லை.

நாம் அடிப்படைத் திறன்களுக்கு (foundations) முன்னரே சுருக்கமான முறைகளை (abstractions) கற்பிக்கிறோம்.

பூட்கேம்புகள் (Bootcamps) மற்றும் பயிற்சிகள் (tutorials) விரைவான முடிவுகளில் கவனம் செலுத்துகின்றன. நீங்கள் ஒரு போர்ட்ஃபோலியோவை (portfolio) உருவாக்கி வேலையைப் பெற வேண்டும் என்பதே அவற்றின் நோக்கம். React இதற்கு உதவுகிறது, ஏனெனில் இதில் முடிவுகளை விரைவாகக் காண முடியும்.

கற்பவர்கள் சிஸ்டம்களை (systems) பார்ப்பதற்கு முன்னரே ஃபிரேம்வொர்க்குகளை (frameworks) பார்க்கிறார்கள்.

  • அவர்கள் HTTP-க்கு முன்னரே React-ஐக் கற்கிறார்கள்.
  • அவர்கள் சர்வர்களுக்கு முன்னரே காம்போனென்ட்களைக் (components) கற்கிறார்கள்.
  • அவர்கள் டேட்டாபேஸ்களுக்கு முன்னரே ஸ்டேட் மேனேஜ்மென்ட்டை (state management) கற்கிறார்கள்.

இது என்ன செய்ய வேண்டும் என்று தெரிந்தும், ஏன் செய்ய வேண்டும் என்று தெரியாத டெவலப்பர்களை உருவாக்குகிறது.

இது 'டியூட்டோரியல் ஹெல்' (tutorial hell) நிலைக்கு இட்டுச் செல்கிறது. ஒரு வீடியோவிலிருந்து குறியீட்டை (code) நகலெடுக்கும்போது நீங்கள் பயனுள்ளதாக உணர்கிறீர்கள். ஆனால், தனியாக எதையாவது உருவாக்க முயலும்போது தோல்வியடைகிறீர்கள். ஒரு விஷயத்தைப் பழகியிருப்பதை, அதைத் தெளிவாகப் புரிந்துகொண்டது என்று நீங்கள் தவறாகக் கருதுகிறீர்கள்.

AI கருவிகள் இந்தப் பிரச்சனையை மேலும் அதிகரிக்கின்றன. ChatGPT போன்ற கருவிகள் உற்பத்தித்திறனுக்கு உதவுகின்றன. ஆனால், AI சிந்தனைக்குத் துணையாக இருப்பதை விட, சிந்தனைக்கு மாற்றாக மாறும்போது ஆபத்து தொடங்குகிறது.

டெபக் (Debugging) செய்வது முன்பு கடினமாக இருந்தது. மூல காரணத்தைக் கண்டறியும் வரை நீங்கள் ஆவணங்களைப் (docs) படிக்க வேண்டும், தோல்வியடைய வேண்டும். அந்தப் போராட்டம் தான் உங்கள் மூளையைச் செதுக்கியது. ஒவ்வொரு பிரச்சனையையும் AI-யிடம் ஒப்படைத்துவிட்டால், உங்கள் பொறியியல் சார்ந்த முடிவெடுக்கும் திறனை (engineering judgment) இழந்துவிடுவீர்கள்.

சாஃப்ட்வேர் இன்ஜினியரிங் (Software engineering) என்பது முடிவுகளை எடுப்பதும், அதன் சாதக பாதகங்களை (trade-offs) புரிந்துகொள்வதும் ஆகும். வெறும் பிராம்ப்டிங் (prompting) மூலம் மட்டும் இதை நீங்கள் கற்றுக்கொள்ள முடியாது.

நான் ஒரு பாடத்திட்டத்தை (curriculum) உருவாக்கினால், இந்த வரிசையில் கற்பிப்பேன்:

  • HTML/CSS
  • JavaScript அடிப்படைகள் (fundamentals)
  • பிரவுசர் அடிப்படைகள் (Browser fundamentals)
  • HTTP மற்றும் APIs
  • அடிப்படை பேக்-எண்ட் கருத்துக்கள் (Basic back-end concepts)
  • டேட்டாபேஸ்கள் (Databases)
  • அங்கீகாரம் (Authentication)
  • React

மாணவர்கள் React-க்கு வரும்போது, டேட்டா ஃபெச்சிங் (data fetching) ஏன் தேவை என்பதைப் புரிந்துகொண்டிருப்பார்கள். ஒரு பட்டன் கிளிக் செய்யும்போது அதன் பின்னணியில் உள்ள செயல்பாடுகளை அவர்கள் புரிந்துகொண்டிருப்பார்கள்.

React ஒரு பிரச்சனை அல்ல. AI ஒரு பிரச்சனை அல்ல.

அடிப்படைத் திறன்களை மிக வேகமாக கடந்து செல்வதும், இடைவெளிகள் தானாகவே நிரம்பிவிடும் என்று எதிர்பார்ப்பதுமே பிரச்சனை.

நாம் மக்களுக்கு உருவாக்குவதைக் கற்பிக்கிறோமா, அல்லது புரிந்து கொள்ளாமல் நகலெடுப்பதைக் கற்பிக்கிறோமா?

ஆதாரம்: https://dev.to/franklyn_nmesoma_86940ec9/react-isnt-the-problem-how-we-teach-it-is-38m8