ഒരു ശാസ്ത്രശാഖ എന്ന നിലയില് കമ്പ്യൂട്ടര് സയന്സ് കഴിഞ്ഞ അന്പതു വര്ഷത്തിനിടയില് അത്ഭുതാവഹമായ പുരോഗതി നേടിയിട്ടുണ്ട്. വിവിധ ശാഖകളായും ഉപശാഖകളായും പടര്ന്ന് പന്തലിച്ച് ഈ മേഖല അനുദിനം നൂതനമായ
ആശയങ്ങൾ പരീക്ഷിച്ചു കൊണ്ട് മുന്നോട്ട് കുതിക്കുകയാണ്. കമ്പ്യൂട്ടർ സയൻസ് പഠനത്തിനുള്ള സൗകര്യങ്ങളും അവസരങ്ങളും ഇക്കാലത്ത് ധാരാളമുണ്ട്.
പക്ഷെ ഈ മേഖലയിലെ വൻകിട കമ്പനികൾ പലതും കാമ്പസ് റിക്രൂട്ട്മെന്റ് സമയത്ത്കമ്പ്യൂട്ടർ സയൻസിലെ core കോമ്പിറ്റൻസിന് വലിയ പ്രാധാന്യം കൊടുക്കുന്നില്ല. ഈ കമ്പനികൾ പലതും നമ്മൾ പറമ്പിലെ പണിക്ക് ജോലിക്കാരെ വിളിക്കുന്നതു പോലെയാണ് ആളെ എടുക്കുന്നത്. അധികം സ്കിൽ ഒന്നും വേണ്ട. നന്നായി സംസാരിക്കാനും പെരുമാറാനും അറിയണം. പിന്നെ ഇത്തിരി ലോജിക്കും വേണം. അത്യാവശ്യം തൂമ്പ പിടിക്കാൻ അറിയാവുന്നവരൊക്കെ സോഫ്റ്റ് വെയർ ആർക്കിടെക്ട് ആകും.
ഇത് കമ്പ്യൂട്ടർ സയൻസ് പഠന രീതികളേയും മോശമായി ബാധിച്ചിട്ടുണ്ട്. പഠനം പലപ്പോഴും ഉപരിപ്ലവമാകുന്നു. ഇക്കാലത്ത് കമ്പ്യൂട്ടര് സയന്സ് പഠിക്കാന് വരുന്ന പലരും കമ്പ്യൂട്ടറുകളെ ഒരു abstract entity ആയിട്ടാണ് കാണുന്നത്. (അത് തെറ്റാണെന്നഭിപ്രായമില്ല. ) പക്ഷെ പഠനം പലപ്പോഴും പ്ലാറ്റ്ഫോമുകളുടെ പഠന മായി മാറുന്നില്ലേയെന്ന് സംശയം. ടെക്നോളജി പരിജ്ഞാനമുള്ള വലിയ വർക്ക് ഫോർസിനെ ട്രെയിൻ ചെയ്ത് എടുക്കുന്നതിന്റെ പ്രശ്നങ്ങളാണ് പലതും. ഇതിനിടയിൽ പല പ്രതിഭകളും എന്താണ് ചെയ്യേണ്ടതെന്ന വ്യക്തമായ ധാരണയില്ലാതെ ചുറ്റിത്തിരിയുന്നത് കണ്ടിട്ടുണ്ട്.
കമ്പ്യൂട്ടറുകള്ക്കുള്ളില് എങ്ങിനെയാണ് വിവിധ പ്രവര്ത്തനങ്ങള് നടക്കുന്നത്, പുറം ലോകവുമായി കമ്പ്യൂട്ടറുകള് ബന്ധിപ്പിച്ചിരിക്കുന്നതെങ്ങിനെ തുടങ്ങിയ വിഷയങ്ങള് പല കമ്പ്യൂട്ടര് വിദഗ്ദന്മാര്ക്കും പരിചയമില്ല. പലപ്പോഴും കമ്പ്യൂട്ടര് പാഠ്യപദ്ധതികള് ഇത്തരം ‘ആഴത്തിലുള്ള’ പഠനം പ്രോത്സാഹിപ്പിക്കുന്നുമില്ല.
ഉദാഹരണത്തിന് നിങ്ങള് ഒരു ഗെയിം ഡവലപ്പറാണെന്നിരിക്കട്ടെ, കുറച്ച് ലോജിക്കും പ്രോഗാമിഗ് നടത്താനുള്ള കഴിവും ഏതെങ്കിലും ഒരു ഗെയിം ഡവലപ്മെന്റ്കിറ്റും കയ്യിലുണ്ടെങ്കില് നിങ്ങള്ക്ക് ജോലി തുടങ്ങാം. നിങ്ങളുടെ ഗെയിം എതൊക്കെ തരംകമ്പ്യുട്ടറിൽ ഓടണം എന്ന് നിശ്ചയിക്കുന്നത് ഡവലപ്പ്മെൻറ് കിറ്റ് ഉണ്ടാക്കുന്നവരാണ്.
എന്നാൽ കാര്യങ്ങൾ മാറാൻ തുടങ്ങിയിട്ടുണ്ട്. മാർക്കറ്റിൽ ധാരാളം അവിദഗ്ദ്ധ ഐ ടി തൊഴിലാളികൾ ഉള്ളതിനാൽ പലപ്പോഴും കമ്പ്യൂട്ടറുകളേക്കുറിച്ച് അടിസ്ഥാന ധാരണയും ഏതെങ്കിലും ഒരു മേഖലയിൽ in-depth knowledge ഉം ഉള്ളവർക്ക് സാധ്യതകൾ കൂടുതലാണ്. ഇത് രണ്ടും ഇപ്പോഴത്തെ കമ്പ്യൂട്ടർ സയൻസ് വിദ്യാഭ്യാസ രീതി കൊണ്ട് കിട്ടുന്നതായി കണ്ടിട്ടില്ല.
ഈ വിഷയത്തിലെ അടിസ്ഥാന അറിവ് വർദ്ധിപ്പിക്കാൻ താൽപര്യമുള്ളവർക്ക് ഉപയോഗിക്കാൻ പാകത്തിൽ ഇന്റർനെറ്റിൽ നൂറുകണക്കിന് റിസോർസുകളുണ്ട്. ചിലത് പരിചയപ്പെടുത്താം.
നിങ്ങള് അബ്സ്ട്രാക്ടായി കാണുന്ന കമ്പ്യൂട്ടറിനുള്ളിലെ പ്രവര്ത്തനം എങ്ങിനെയാണെന്നാണ് ആലോചിച്ചിട്ടുണ്ടോ? കമ്പ്യൂട്ടര് ചിപ്പുകള് എങ്ങിനെയാണ് ഡിസൈന് ചെയ്യുന്നത്, അവയ്ക്ക് വേണ്ട അസംബ്ലി ഭാഷ, ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റം, പ്രോ ഗ്രാമിംഗ് ഭാഷകൾ കംപൈലർ തുടങ്ങിയവ നിര്മ്മിക്കുന്നതെങ്ങിനെയെന്ന് പ്രായോഗികമായി ചെയ്തു നോക്കിയിട്ടുണ്ടോ? മിക്കവാറും കമ്പ്യൂട്ടര് ബിരുദാശാരികളും കഥയറിയാതെ മേല് പറഞ്ഞവയില് പലതും ലാബിൽ ചെയ്ത് കൂട്ടിയിട്ടുണ്ടാകും.
ഇങ്ങനെ ആഴത്തിലുള്ള ചോദ്യങ്ങള്ക്ക് ഉത്തരം വേണ്ടവര്ക്കായി ജറുസലേമിലെ ഹിബ്രു യൂണിവേര്സിറ്റിയിലെ പ്രഫസര്മാരായ നോം നാസാനും ഷിമോൺ ഷോക്കനും ചേര്ന്ന് ഒരു കോഴ്സ് നടത്തുന്നുണ്ട്. Nand to Tetris : Building a modern computer system from first principles എന്നാണിതിന്റെ പേര്. ചിപ്പ് ലെവലില് നിന്ന് ഒരു കമ്പ്യൂട്ടര് ഡിസൈന് ചെയ്ത് അതിനു വേണ്ടി ഒരു ഓപ്പറേറ്റിംഗ് സിസ്റ്റവും പ്രോഗ്രാമിംഗ് ഭാഷയും എഴുതി ആ ഭാഷയില് ഒരു കമ്പ്യൂട്ടര് ഗെയിം എഴുതിയുണ്ടാക്കുക എന്നതാണ് ഈ കോഴ്സിലൂടെ ഉദ്ദേശിക്കുന്നത്.
ഇതിനു വേണ്ട ടൂളുകളും മറ്റ് അനുബന്ധ പഠനസാമഗ്രികളും സൗജന്യമായി ഇന്റര്നെറ്റില് http://www.nand2tetris.org എന്ന സൈറ്റിൽ ലഭ്യമാക്കിയിട്ടുണ്ട്. ഇത് കമ്പ്യൂട്ടറുകളേക്കുറിച്ച് സാമാന്യധാരണയുള്ള ആര്ക്കും ചെയ്യാവുന്ന രീതിയിലാണ് ഡിസൈന് ചെയ്തിട്ടുള്ളത്.
കമ്പ്യൂട്ടര്, ഇലക്ട്രോണിക്സ്, മെക്കാനിക്കല്, ഇലക്ട്രിക്കല് എന്നീ എന്ജിനീയറിംഗ് ശാഖകളില് പഠിക്കുന്ന കുട്ടികള് നിര്ബന്ധമായും ഈ കോഴ്സ് ചെയ്തിരിക്കണം. പല രാജ്യങ്ങളിലും യൂണിവേഴ്സ്റ്റി കരിക്കുലത്തില് ഇത് അടിസ്ഥാനമാക്കി കോഴ്സുകൾ ഉള്പ്പെടുത്തിയിട്ടുണ്ട്. കോഴ്സറായില് ഈ കോഴ്സ് സർട്ടിഫിക്കേഷനോടെ ലഭ്യമാണ്.
Nand2tetris സമയമെടുത്ത് സാവധാനം പ്രായോഗികമായി ചെയ്തു നോക്കേണ്ട ഒന്നാണ്. ഒരു ദിവസം കൊണ്ട് പഠിച്ചേക്കാം എന്നു കരുതി ആരും എടുത്തു ചാടരുത്. ഞാൻ തന്നെ ഇത് വായിച്ചത് / ചെയ്തത്. ഏകദേശം ഒരു വർഷം എടുത്തിട്ടാണ്. അവസാനത്തെ നാല് ചാപ്റ്ററുകൾ ഇനിയും ചെയ്തു തീരാൻ ബാക്കിയുണ്ട് താനും.
Ps: ചളി അലെർട്ട്
സോമന്റെയും അനുഭാവികളുടെയും റസ്പോൺസ് അറിഞ്ഞിട്ട് വേണം ഒരു പരമ്പര എഴുതാൻ.