Engineer කියන්න engineering math එහෙම කරලා තියන්න ඕන.. basic engineer ගැන දැනුමක් තියන්න ඕන... Software engineer උන්ට ඕවා මොකක්වත් උගන්වන්නේ නෑ.. programming වගේ ඒවගෙන් තමයි පටන් ගන්නේ..
මොරටුවේ computer engineering වෙනයි. අනිත් තැන් වල software engineering වෙනයි.
මේක හරි බං. ගොඩක් උන් se කියන්නේ ඔය private campus වල තියන se ටික ජපුර software engineer වගේ දේවල්..
මොරටුව computer engineering වගේ ගත්තොත් මේක හරි
හරි.... මම කියන්නේ අර programmer කියන එක software engineer කියලා හඳුන්වන එක.
උගන්නන්නේ නෑ නෙමෙයි බන් උගන්නනවා. software engineering වලට අදාල engineering principles වල ගොඩක් වෙලාවට terminologies වෙනස්. process models, programing paradigms, design patterns වගේ topics ඇතුලේ අපි ඉගෙන ගන්නේ engineering තමයි.
maths වෙනම subject එකක් විදියට basic degree එකක් ඇතුලෙ නැති උනාට, සරලවම programing කියන්නේ mathematics තමයි. මේ විශ්වයේ භාෂාව mathematics, එකේ සුපිරිම සහ උඩම level එකේ application එකක් තමයි programing කියන්නේ .
AI / ML / Data Engineering වගේ fields specialize කරන අය අනිවාර්යෙන්ම ගැබුරට ඉගෙන ගන්නවා Linear algebra, Calculus, Probability වගේ mathematical concepts. මේවා හොදින් තේරුම් අරගෙන ඒවගෙන් question පට්ට ගොඩක් solve කරලා practice වෙලා තමයි අනිත් field එකට අදාළ subjects වලට ඇත ගහන්නේ . එතනින් එහාට terminologies වෙනස් වෙන්න පුළුවන් නමුත් ඒ advanced mathematics.
මෙතන ප්රශ්නේ තියෙන්නේ code කෑල්ලක් ලියාගන්න පුළුවන් උන ගමන් තමන්ට software engineer කියාගන්න එක. ඊලගට සමහර company වලින් හැම එකටම ඔය title එක දෙනවා.
මේ field එකේ මෙන්න මේ title කට්ටිය පාවිච්චි කරනවා හරියට මොකක්ද කියලාවත් දන්නේ නැතුව.
coder/programmer - මුගේ responsibility එක code කෑල්ලට විතරයි. මූ දන්නවා තමන්ට break down කරලා දෙන චුටි instruction එක code එකකට convert කරන්න. එකේ impact එක, ඇයි ඒ functionality එක ලියන්නේ, මොකක්ද මේක big picture එක , කොතනටද මේක සම්බන්ද වෙන්නේ ඒ මොකුත් උට අදාල නෑ. ඌ දන්නේ code කැල්ල ලියන්න විතරයි. ඒක run වෙනවනම් උගේ job එක done.
developer - මුගේ responsibility එක වැඩියි. මු code කෑල්ලට විතරක් නෙමෙයි මු හරියට වැඩකරන requirement එකක් සම්පුර්ණ කරන්න responsible. මු හරියට project requirement එක තේරුම් ගන්න ඕනි. මුට software development ගැන දැනුමක් තියෙන්න ඕනි, අදාල frameworks tools ගැන දැනුමක් තියෙන්න ඕනි. තමන්ට ලැබෙන plans සහ designs වලට අනුව වැඩකරන solution එකක් build කරන්න ඕනි මු තමන්ගේ දැනුම සහ අත්දැකීම් භාවිතා කරලා . මු වගකියනවා requirement එකට.
software engineer - උඩ දෙන්නගේ වගකීම් වලට අමතරව මූ වගකියනවා solution එකේ ගුණාත්මක බවට, එකේ design එකට, එකේ කල් පැවත්ත්මට. මු solution එකක් design කරනවා plan කරනවා සහ කරන්න පුළුවන් හොදම විදියට ඒක execute කරනවා . මු තමයි ඇත්තම engineer. මු දන්නවා design patterns සහ ඒවා කොතනටද apply වෙන්න ඕනි, ඒවා කොහොමද solution එකේ security, scalability වගේ දේවල් වැඩි කරන්නේ හෝ අඩු කරන්නේ, ඌ දන්නවා software engineering principles සහ ඒවා පාවිච්චි කරලා කොමද modular, maintainable solution එකක් design කරන්නේ කියලා . design decision එකක cost එක සහ performance analyze කරන්න දන්නවා, algorithm එකක time and space cost ගැන අවබෝදෙන් code එකක් ලියන්නේ. සරලවම යන්නේ කොහෙටද, එතනට යන්න තියෙන පාරවල් මොනවද, ඒ පාරවල් වලින් යන්න පුළුවන් හොදම පාර තෝරාගෙන හෝ නිර්මාණය කරගෙන එලක්කයකට යනවා වගේ සින් එකක් මු කරන්නේ. developer කොහොමහරි ඉලක්කෙට යනවා මොකක් හරි පාරකින්. coder/programmer යන්නේ කොහෙටද දන්නේ අඩියෙන් අඩියට මැප් එක බල බල යන්න කියන තැනට යන එක ඌ කරන්නේ.
ඕක තමයි ඔය position 3 වෙනස. කරුමේ කියනේ උඩ දෙගොල්ලොත් ගොඩක් වෙලාවට තමන්ව හදුන්වාගන්නේ software engineer කියලා . ඒක නිසා තමයි ඒක engineering discipline එකක් ද කියන විවාදේ මෙසේ උඩට ඇවිත් තියෙන්නේ