TechWire

ඔබටත් පරිගණක ඉංජිනේරුවෙක් වීමට අවශ්‍යද?

හැම අධුනිකයෙකුටම තියෙන ප්‍රශ්නය තමයි මම කොතනින්ද පටන්ගන්නේ කියල. කොහොමද Programmer කෙනෙක්, Software engineer කෙනෙක් වෙන්නෙ කියන එක. මේක අපි කොටස් පහකින් හොයල බලමු.

  • Programming field එකක් තෝර ගැනීම
  • Programming language එකක් තෝර ගැනීම
  • ඉගෙන ගැනීමේ මාධ්‍යයක් තෝර ගැනීම
  • Platform එකක් තෝර ගැනීම
  • IDE එකක් තෝර ගැනීම

මේ වචන ගැන දන්නෙ නැත්තම් කලබල වෙන්න එපා. ඉස්සරහට තේරුම් ගන්න පුළුවන් ඒවා ගැන.

Programming field එකක් තෝර ගැනීම

මේකත් කොටස් කීපයකට කොටස් කරන්න වෙනවා. මොකද විවිධ careers වල path එක හදාගන්න අවශ්‍යවන දැනුම වෙනස්.

  • Website development
  • Desktop application development
  • Game/ animation development
  • OS development
  • Network programming
  • AI & machine learning
  • Embedded systems
  • Robotics
  • Mobile application development

හැබැයි මේ මොන field එකෙන් ඉස්සරහට යන්න ඕන වුනත් basic programming concepts දැනගන්න ඕන. IT හෝ computer science සම්බන්ධ රැකියාවක් හෝ career එකක් හදාගන්න නම් basic programming concepts කියන දේ අනිවාර්යයි. Scratch කියන්නේ basic දේවල් ඉගෙන ගන්න හොඳ website එකක්.

විවිධ fields වලට අදාලව මොන වගේ languages ද ඉගෙන ගන්න ඕන කියල දැන් හොයල බලමු.

Programming language එකක් තෝර ගැනීම

programming languages විවිධ field අනුව දැනගන්න ඕන ආකාරය ගැන හොයන්න කලින් programming languages වල තියෙන paradigms ගැන පොඩ්ඩක් හොයල බලමු.

  • Imperative (FORTRAN)
  • Declarative
  • Functional (Racket / Haskell )
  • Object Oriented (Java / C++)
  • Procedural (Cobol / C)
  • Logic (Prolog)
  • Symbolic

Web development වලට නම් HTML කියන language එක අනිවාර්යයි. ඒ වෙනුවට ඉගෙන්න ගන්න කියල දේකුත් නෑ. මොකද web development වලට තියෙන එකම language එක HTML තමයි. මේක programming language එකක් නෙමෙයි. මේකට කියන්නෙ markup language එකක් කියල. Program කිරීමේ හැකියාවක්, එහෙම නැත්තම් තර්කානුකුලව දෙයක් කිරීමේ හැකියාවක් HTML මගින් කරන්න බැහැ. Website එකක සැකැස්ම ගොඩ නගන්න තමයි HTML භාවිත කරන්නෙ. ඊට පස්සේ website එක ලස්සන කරන වැඩේට CSS (cascading style sheets) ඉගෙන ගන්න ඕන. CSS මගින් ඇහැට ප්‍රිය උපදවන විදියට website එකක් ලස්සන කරන්න පුළුවන්.

එහෙම හැඩ වැඩ දාපු website එකට ජීවයක් දෙන්න Javascript යොදන්න ඕන. ඒ කියන්නේ යම් තර්කයකට අනුව වැඩ කරන්න හා තවත් features website එකට එකතු කරන්න javascript වලට පුළුවන්. ඊට අමතරව server එකත් එක්ක වැඩ කරන website සහ web application වගේ ගොඩක් සංකීර්ණ website වගේ දේවල් හදන්න PHP ඉගෙන ගන්න ඕන. ඊටත් අමතරව ASP, JSP වගේ දේවල් web development වලට අදාලයි. දැන් වැඩ ලේසි කරගන්න framework සහ libraries දවසින් දවස web dev field එකට එකතු වෙනවා. ඒවාට හුරුවෙන්න නම් මුලින් කිව්ව දේවල් ගැන හොඳ දැනුමක් ලබා ගන්න ඕන.

Desktop application development එහෙම නැත්තම් සාමාන්‍යයෙන් භාවිත වෙන software engineering වලට programming languages කියන දෙය අනිවාර්ය අංගයක්.

එකේදිත් portability එක ගැන හිතල development කරනවා නම් Java තමයි හොඳම language එක. Portability කියන්නෙ ඕනෑම platform එකක වැඩ කරන්න පුළුවන් වීම. ඒ කියන්නෙ Windows, Mac OS හෝ Linux වගේ ඕනෑම OS එකක් වැඩ කරන්න පුළුවන් වීම. Java programs වැඩ කරන්නේ JVM (Java Virtual Machine) එකක නිසා මේ වාසිය ලබාගන්න පුළුවන්.

Performance ගැන හිතල කරන development එකක් නම් C++ තමයි හොඳ language එකක් විදියට කියන්න පුළුවන්. Language එක ටිකක් අමාරු වුනාට හොඳ powerful programming language එකක් විඳියට field එකේ ගොඩක් භාවිත වෙනව. විශේෂයෙන්ම OOP concept භාවිත කරන්න පුළුවන් වීම මෙහි තවත් වාසියක්. Games සහ graphic intensive application හදන්න C++ යොදා ගන්නවා. ඊට අමතරව device drivers program කරන්නත් යොදා ගන්නව.

Development පහසුව ගැන සලකනවානම් C# කියන්නේ හොඳ language එකක්. හැබැයි C# වලින් හදන්නෙ Windows platform එකේ වැඩ කරන programs. නමුත් දැන් Xamarin කියන technology එක භාවිතයෙන් cross platform application හදන්න පුළුවන්. ඒකෙදිත් C# යොදා ගන්න පුළුවන් developing language එක විදියට. C# හදල තියෙන්නෙ Microsoft ල විසින් එයාලගෙම .NET framework එකට. ඊට අමතරව Python වුනත් program කරන්න ලේසි language එකක්.

Game development සහ graphic වැඩ සම්බන්ධව development කරන්න නම් C හා C++ තමයි මුලිකවම ඉගෙන ගන්න ඕන. ඒකෙනුත් C++ ගොඩක් වටිනවා object oriented concepts භාවිත කරන්න පුළුවන් language එකක් නිසා. Unity වගේ game engine එකක් භාවිතයෙන් 3D වගේම game development කරන්න පුළුවන්. ඒ සඳහා C# හෝ Unity විසින්ම හඳුන්වදීපු UnityScript භාවිත කරන්න පුළුවන්. මිට අමතරව 3D, graphic, gaming වැඩ කරන්න පුළුවන් technologies ඕන තරම් තියෙනවා.

OS හා device drivers development වගේ field එකකට නම් ගොඩක් low-level එකට කිට්ටු language එකක් තමයි ඉගෙන ගන්න ඕන. C කියන්නෙ එකට හොඳම language එක. (නමුත් C යනු high-level language එකක්.) මේවනවිට ගොඩක් OS සහ software පවා ලියවිලා තියෙන්නේ C/C++ මගින් තමයි.

Network programmingවලට ආස කරන කෙනෙක් නම් ටිකක් වෙනස් පැත්තකට හුරු වෙන්න වෙනව. මුලින්ම scripting කියන concept එකට හුරු වෙන්න ඕන. network එක්ක වැඩ කරනකොට සම්පුර්ණ program එකක් run කරනවට වඩා කොටස් වශයෙන් execute කිරීමක් තමයි ප්‍රධානවම වෙන්නෙ. නමුත් networkවලත් program එකක් විදියට run කරන අවස්ථාවන් තියෙනවා. ආරම්භයක් වශයෙන් shell එකක් command run කිරීම ඉගෙන ගන්න ඕන. Linux shell එකකින් පටන් ගන්න පුළුවන් නම් ගොඩක් හොඳයි. BASH කියන්නෙ එහෙම පටන් ගන්න පුළුවන් shell එකක්. Windows නම් PowerShell එක භාවිත කරන්න පුළුවන්. Scripting වලින් පටන් අරගෙන ඉස්සරහට යනකොට interpreted language එකකට හුරු වෙන්න ඕන. දැනට network programming වලට ගොඩක් ප්‍රචලිත Python තමයි. මිට අමතරව C, Java වුණත් network programming වලට භාවිත කරන්න පුළුවන්.

Machine learning field එක කියන්නේ දැන් trend වෙන field එකක්. Machine learning ගොඩක් වැඩ කරන්න ගන්නෙ හදල තියෙන libraries භාවිත කරලා. ඒත් ඒ libraries භාවිත කරන්න නම් ඒක ලියල තියෙන language එක හසුරුවන්න පුළුවන් වෙන්න ඕන. දැනට ගොඩක් භාවිත වෙන libraries ලියල තියෙන්නෙ Python වලින්. SciPy, Numphy කියන්නෙ ඒ වගේ Python වලින් ලියපු libraries. තමන්ටම ඕන විදියට algorithm ලියන්න නම් MATLAB, OCTAVE භාවිත කරන්න පුළුවන්. ඒවා හදල තියෙන්නේ බොහෝදුරට scientific වැඩවලට නිසා ගොඩක් optimize විදියට වැඩ කරන්න පුලවන් ඒ languages වලින්.

Artificial intelligence field එකේ වැඩ කරන්නත් Python ගොඩක් භාවිත වෙනවා. Java, Lisp හා Prolog කියන්නේ AI field එකේ වැඩ කරන්න පුළුවන් අනිත් ප්‍රසිද්ධ languages. pattern matching, automatic backtracking හා tree based data structures language එකෙන්ම දීල තියෙන නිසා Prolog language එක AI වලදී ගොඩක් භාවිත වෙනවා. තවද performance අතින් ගොඩක් ඉස්සරහින් ඉන්න නිසා C++ නුත් AI සඳහා යොදා ගන්නව.

ලොකු system එකක් තියෙන computer system එහෙම නැත්තම embedded system programming කියන්නෙත් තවත් සුවිශේෂ field එක. අපිට ගොඩක් හුරු පුරුදු ATM එක උදාහරණයකට ගන්න. ඒ වගේ system program කරන්න නම් ගොඩක් වෙලාවට යොදාගන්නෙ C language එක.

Robotics කියන්නේ අලුත් දෙයක් නොවුනට දවසින් දවස අලුත් නිර්මාණ එක්ක robotics කියන දෙය තාම trending field එකක් වෙලා තියෙනවා. Robotics පැත්තට නැඹුරුවක් තියෙනවනම් C, C++, Python, Java, MATLAB, Assembly වගේ languages ඇසුරු කරන්න අවශ්‍ය වෙනවා. ඉගෙන ගැනීමට සහ පර්යේෂණ වැඩවලට ඒ languages යොදා ගත්තට robotics industry එකේදී සුවිශේෂ languages තියෙනවා භාවිත වෙන. Company එක අනුව තමයි ඒ ඒ languages භාවිත වෙන්නෙ. RAPID, KRL, PDL2, AS, URScript වගේ industrial robot languages තියෙනව Kawasaki, Yasakawa, Kuka වගේ commercial robotic company භාවිත කරන. Robotics එක්කම කියන්න ඕන දෙයක් තමයි Arduino සහා RaspberryPi. මේ සඳහා පිළිවෙලින් C හා Python languages තමයි භාවිත වෙන්නෙ.

අවසාන වශයෙන් programming field එකක් විධියට mobile application development මතක් කරල දෙන්න පුළුවන්. ප්‍රධාන ලෙස Android හා Apple iOS development තමයි නම් කරන්න පුළුවන්. ඊට අමතරව Windows, Blackberry, Symbian ඇතුළු වගේ තවත් mobile OS තියෙනවා. බොහෝවිට ඒ වගේ OS භාවිත වෙන්නේ විශේෂ අවශ්‍යතාවන්ට අනුව සැකසෙන mobile phonesවල. එදිනෙදා භාවිතයේදී යොදා ගන්න Android, iOS හා Windows application development තමයි ලෝකයේ ප්‍රධාන mobile application development වලට අයත් වෙන්නෙ. අද වෙනකොට එකම code එකකින් විවිධ OS වලට අදාල application deploy කරන්න පුළුවන්. උඩදී කිව්වා Xamarin, Ionic වගේ technologies වලින් ඒ දේ කරන්න පුළුවන්. නමුත් තවම specifically අදාල OS එකට ගැලපෙන application හදන එක industry එකේ සිදු වෙනවා. බොහොවිට Android application හදන්නේ Android Studio භාවිතයෙන්. බොහෝවිට Android apps හදන්නේ Java language එකෙන්. දැන් අලුතෙන් Kotlin කියන language එකත් Android development වලට හඳුන්වදිලා තියෙනව. iOS development සඳහා Objective-C භාවිත වුනත් දැන් වෙනවිට Swift language එක තමයි යොදා ගන්නෙ. C# යොදාගෙන තමයි Windows apps හදන්නෙ.

 

ඉගෙන ගැනීමේ මාධ්‍යයක් තෝර ගැනීම

Web development වලට අවශ්‍ය දේවල් ඉගෙන ගන්න නම් W3schools තමයි ගොඩක් ප්‍රසිද්ධම. ඊට අමතරව online sources ඕන තරම් තියෙනවා. අනිත් programming languages ඉගෙන ගන්න නම් ඒ ඒ language එකට අදාල website වල tutorials, forums හදල තියෙනවා. Tutorialspoint කියන්නේ සාමාන්‍ය අවබෝධයක් ගන්න පුළුවන් හොඳ site එකක් ඕන language එකක. පොත් පත් භාවිතයත් එක්ක හොඳ ගුරුවරයෙක්ගෙන් ඉගෙන ගන්න පුළුවන් නම් ඒකත් හොඳයි. විශේෂයෙන්ම මූලික දේවල් ඉගෙන ගන්න ගුරුවරයෙක් ඉන්නවා නම් හොඳයි. ඊට පස්සේ තියෙන ඕන දෙයක් තනියෙන් ඉගෙන ගන්න පුළුවන් basic දේවල් හොඳට ඉගෙන ගෙන තිබ්බොත්.

තනියෙන් ඉගෙන ගන්න හොඳ පොත් තියෙනවා Head First කියන පොත් set එකේ. දැනට තියෙන ගොඩක් programming languages ගැන පොත් ලියවිලා තියෙනවා Head First පොත් set එකේ.

Language එකක් ගැන යම් දැනුමක් ලබාගත්තට පස්සේ ඇතිවෙන technical ගැටළු ඉගෙන ගන්න හොඳ ක්‍රමයක් තමයි forums තුළින් හොයල බලල ඉගෙන ගන්න එක. StackOverflow කියන්නෙ ඒ වගේ හොඳ forum එකක්. මේ field එකේ සාමාන්‍ය කතාවකුත් තියෙනවා Stackoverflow එකේ නැත්තම් ඒක කරන්න බෑ කියල. ඒ තරම් විසදුම් තියෙනවා ඒ forum එකේ. අපිට ඇතිවුන ප්‍රශ්නය බොහෝ විට වෙන කෙනෙක්ට කලින් වෙලා තියෙන්න පුළුවන්. ඒ වගේම ඒ ප්‍රශ්නෙට උත්තරේ ඒ forum එකේ කලින් අහල ඒකට උත්තර ලැබිල තියෙන්න පුළුවන්.

Platform එකක් තෝර ගැනීම

තමන් applications develop කරන්නෙ මොන platform එක target කරලද කියන එක තීරණය කරන්න ඕන. ඒ කිව්වේ Windows ද Mac OS ද වගේ කියල. කලින් කිව්වා වගේ දැන් නම් cross platform develop කරන්න පුළුවන් technologies ඇවිත් තියෙනවා. නමුත් ගොඩක් advance systems වගේ develop කරනවා නම් එක platform එකක් තෝරාගන්න එක හොඳයි. Java වගේ නම් ඕන platform එකකට deploy කරන්න පුළුවන්. නමුත් Mac OS development වලට නම් Objective C, Swift වගේ languages ඕන වෙනව. Windows related නම් C# වගේ වැදගත් වෙනවා.

IDE එකක් තෝර ගැනීම

අවසාන වශයෙන් language එක අනුව develop කරන්න වෙනම environment හදල තියෙනව. IDE එහෙම නැත්තම් Integrated Development Environment එකක් භාවිත කරන්න පුරුදු වෙන එක ගොඩක් වැදගත් development වලට. එහෙම එකක් භවිතයෙන් ගොඩක් වැසි ලබාගන්න පුළුවන්. Errors බලාගන්න, code completion, debug කරන්න, run කරන්න වගේ ප්‍රාථමික අවශ්‍යතාවල ඉදන් version controlling, project management වගේ දේවල් කරන්න පුළුවන්.
Eclipse, Netbeans, IntelliJ Idea වගේ IDE Java development වලට ගොඩක් ප්‍රසිද්ධයි. Visual Studio, Xcode වගේ IDE C, C++, C# development වලට භාවිත කරන්න පුලුවන්. ඒ වගේම web development වලට PHPStorm, Web storm, Dream Weaver ගොඩක් භාවිත වෙනවා.

source: http://www.c4learn.com/java/java-development-ide/

මොනවා හරි development කිරීමක් කරනවා නම් මුල ඉදලම මේ කරුණු ගැන සැලකිලිමත් වෙනවා නම් වැඩේ ලේසි වේවි.

About author View all posts Author website

Pramodya Abeysinghe

Leave a Reply

Your email address will not be published. Required fields are marked *