ආයුබෝවන් ඔබ සියලු දෙනාටම..............මම විශ්ව විද්යාලයේ පරිගණක විද්යාව ඉගෙනගන්න ඇවිල්ලා දැන් එක සෙමෙස්ටර් එකකුත් ඉවරයි .මේ ක්ෂේත්රයේ ඉගෙනගන්නකොට අපි පුරුදු කරන්න ඕන මොන වගේ දේවල්ද මට දැනට තේරිච්ච විදියට ඔබට ඉදිරිපත් කරන්න කල්පනා කළා. .දැන් අපි මෙතෙන් සිට ඒ මොනවද කියල කරුණු වශයෙන් සාකච්චා කරමු.
- ක්රමලේකන සුසමාදර්ශ -මෙහිදී පරිගණක බාෂාවේ පවතින ක්රමලේකන සුසමාදර්ශ කිහිපයක් හදුනාගන්න පුළුවන් .අපිත් පළමුවන සෙමෙස්ටර් එකේ ඉගෙනගත්තේ C පරිගණක බාෂාව .මේක අයිති Procedural වර්ගය යටතටයි.ඒ කියන්නේ programming කරන්න ඕන කිසියම් අනුපිළිවෙලකට .ඊලගට වස්තු පාදක ක්රමලේකනය(object oriented programming) මේක තමයි high ලෙවෙල් languages වලින් ජනප්රියම හා ප්රබලතම ක්රමලේකන විදිය .ජාවා,smalltalk,ruby වගේ පරිගණක බාශා වැටෙන්නේ මේ යටතට .ඊලගට තවත් functional කියලත් වර්ගයක් තියෙනවා .අපි හැමවිටම අලුතෙන් දේවල් හොයන රුචිකත්වයකින් ඉන්න ඕන,එතකොට තමයි මේ CS ක්ෂේත්රය රසවත් වෙන්නේ ,මම පසුව සදහන් කල Functional language යටතට වෙටෙන්නේ HASKELL,Scheme,Erlang,OCam වගේ පරිගණක බාෂා (සැ.යු -මේ සියල්ලම විශ්ව විද්යාල විෂය නිර්දේශයක් තුල ඉගෙන්විය නොහැක .ආරම්බය ලබාදුන් පසු සොයා ගොස් ඉගෙනීම සරසවි අධ්යාපනයේ මුලිකාංගයක් බව මෙම කෙටි කල තුල හදුනාගෙන සිටිමි.)මෙ හැම style එකක්ම පුරුදු වුනාම ප්රශ්නයක් විසදන්න හොදම මොකක්ද කියලා ඒ වායෙ තියෙන පහසුකම් එක්ක තේරුම් ගන්න හැකියාව ලැබෙනවා.මෙ හැම එකකම features කවලම් වෙච්ච languages තුත් තියෙනවා.ඒවට උදාහරන විදියට Python,C++,Scala වගේ languages දක්වන්න පුලුවන්.
- සෛද්ධාන්තික පරිගනක විද්යාව-complexity theory ,optimizations, Cryptography ,Computer Aided Graphics,Compilers,Operating systems වගේ ප්රධාන මාතෘකා වගේම Hardware පැත්තෙ Instruction sets,caches සහ Architectures පිලිබදව මෙම විශය කොටසේදි ඉගෙන ගනු ලබනවා.
- Mathematics for CS-පරිගනක විද්යාව සම්පුර්නයෙන්ම පාහේ පදනම් වෙන්නෙ ගණිතයෙ ඉගෙන්වෙන සංකල්ප මත,ඒ නිසා CS ස්ථාවරව ඉගෙන ගන්න නම් හොද ගණිතමය පදනමක් තියෙන්නම ඕන.
- ඊළගට Human Side එකෙ දේවල් ටිකක්,ඒ කියන්නෙ project management ,Design patterns,User Interface design ,Human-Computer Interaction වගෙ දේවල්,මොකද කියනවනම් ඉදිරියෙදි රැකියාවක් හැටියට අපිට කරන්න වෙන්නෙ Project manager,Programmers,Software Engineers ල වගෙ අය හැටියටනෙ. එතනදි වැඩ කරන්න වෙන්නෙ මිනිස්සුත් එක්ක,ඒ නිසා හොද communication skill එකක් තියෙන්නම ඕන ප්රශ්න අඩුවෙන් වැඩ කරගෙන යන්න.
- ඊලගට නිර්මාණාත්මක බව කියන දෙයත් ඉතා වැදගත්.එ කියන්නෙ අපි ආස කරන music,dance,sport වගෙ දෙවල්වලින් ඔය කියන නිර්මානාත්මක බව,ඉවසීම වගෙ ගුනාංග වර්දනය කරගන්න පුලුවන්.අපි දැනටමත් දන්න විදියට අපෙ මිනිස් මොලයේ ඩෙපැත්තක් තියෙනවා.එක පැත්තක් logic වලට,ඒ වගේම අනිත් පැත්ත සව්න්දර්යාත්මක දේවල් වලට,මේ දෙකම හරිවිදියට සමාන්තරව යන්න ඕන.තවත් දෙයක් සදහන් කරන්න අවශ්යයි.ඒ තමයි CS සබ්ජෙක්ට් එක ඉගෙන ගැනීමෙදි ඉහල Analytical Skill එකක් තියෙන්න ඕන,මේක වර්දනය කරගන්න,puzzle විසදීම වගෙඩෙවල් අනුමත කරන්න පුලුවන්.විශෙශයෙන් ගණිතය ඉගෙන ගැනීමේදී Real Analysis වගෙ පාඩම් අවබෝදයෙන් ඉගැනීම වැදගත්.Real life එකෙ මුනගැසෙන ගැටලු ,විශ්ලේශනය කරල විසදන්න පුලුවන් මාර්ග පාදගන්න උනක් වගේ දෙයක් තියෙන්න ඕන.
- තවත් දෙයක් CS student කෙනෙක් වුනාම FOSS ප්රොජෙක්ට් වල වැඩ කරලා industry යෙ වැඩ කැරෙන හැටි ගැන අවබෝධයක් ලබන්න පුලුවන්.ඒ දෙ CS major ලා ඉහලින්ම recommend කරන දෙයක්.කන්ඩායම් වශයෙන් මෙවෙනි ප්රොජෙක්ට් කරන්න පුලුවන්,අනිත අතට ඒ වගෙ දෙයක් හොද Personality එකක් හැදෙන්නත් ලොකු පිටිවහලක් වෙනවා.
- CS field එකේ major කෙනෙක් වෙනව වගේම තවත් discipline එකක් විදියට electrical engineering එහෙමත් නැත්තම් economics,management වගේ දෙයක් අතිරේකව ඉගෙනගන්නව නම් ගොඩක් වටිනවා.එතකොට job එකකට තියෙන demand එකත් වැඩිවෙනවා.