Graph
JF-Expert Member
- Jul 20, 2016
- 2,735
- 6,170
Katika hizi kampuni zetu ndogo au project zetu ndogo mara nyingi hakuna tofauti kati ya programer na Software Engineer au Developer, na kwa jinsi hiyo nakubaliana nawe kwa 90% tofauti inakuwa kama majina tu. Lakini kwa large Software Firm Programmer ni tofauti sana na Software Engineer. Kwanza tafuta vizuri maana ya Engineer, Programmer anaweza kuwa S/W Engineer anaweza kuwa Programmer lakini Programmer anaweza kuwa hana sifa au qualification ya kuwa S/W enginneer by definition of engineer. Ipo hivi kwa kampuni zinzo fuata weledi wa kazi:
Software Engineer: Anafanya design zote, ana forecast system failure zote, ana minimize hizo mapungufu, Anatafuta Algorithms ambazo ni efficient in terms of System Memory, Execution Time, Storage space, in general system resources zitumike vizuri and safely. Eg. Kama system inafanya kazi za file manipulations sasa atachagua atumie Buffered reader au Stream reader? he will make decission depending on the available H/W and S/W resources. Sasa hizi sio kazi za Programmer. You can take just a form 4 liver and train to be a programmer (coder) within few months but he will not qualify to be an engineer for that period. You can even take someone with social science e.g HGL and train to be a programmer. A matter of memorizing the syntax and some few routines of "HOW TO .."
Programmer: Yeye atachukua kazi Engineer (yaani zile designs) kisha ataenda kufanya design implementations. He doesn't to spend much of his time trying to figure out all the details mentioned above in the S/W engineer section. Sometimes or very often these guys are the best in coding than software engineers. Just best in Coding/programming. They are fluent in specific Programming languages. You just show them the designs may be in Use case, ERD, Pseudo codes of the algorithms, or Interfaces (Not GUI) of the classes to be implemented they just hit road right away!!!.
Developer: Some where between S/W and Programmer. But these guys are goot at coding too. Nikipata muda nitaleta articles hapa za tofauti ya hawa jamaa.
NOTE: Naweza kuwa nimekosea lakini naomba nirekebishwe tu maana hapa hatubishani ila tunaelimishana na kujifunza. Sio kwamba mimi nipo vizuri au najua sana.
Mimi sijasomea Software Engineering nimesoma Degree ya Computer Science. Kwa hivyo maoni yangu hayaja egemea ktk ego ya kuona S/W Enginner ndio best kuliko wengine japo interms of Designs Patterns ukweli ndio huo hawa jamaa kama yupo vizuri upstairs to professionally anatakiwa awe the best.
Mkuu na mimi pia nimesoma degree ya computer science pamoja na kufanya kazi kwenye kampuni kubwa, na nakwambia hayo uliyoandika hapo yote ni same thing. Hizi terminologies kampuni nyingine ndio wanajaribu kuzitofautisha tu ila these people all do the same thing na wamesoma kitu kilekile.
Kusema software engineer anatafuta efficient algorithms, kwani programmer au developer hafikirii hilo? Kwenye uandishi wa software siku zote anayeandika software ndiye anayechagua atumie algorithm ipi au datastructure ipi, hata kama anatumia API iliyotengenezwa na mwingine bado anafanya kitu kilekile ambacho ni kutengeneza software, huwezi kukaa ukasema wewe ni developer kwa hiyo kabla hujatumia HashMap uende kumuuliza Software Engineer kua hapa nitumie HashMap au ArrayList, hehe hiyo ni decision you have to think mwenyewe na kucome up na solution ambayo unafikiria its best for that particular problem.
There's no such thing as SE ni better code than Programmer au Developer kwa kua once again wote ni mtu yuleyule. Na level of education haimuweki mtu kwenye group flani, ni either unajua kutengeneza software au hujui basi. Kampuni hasa hizi kubwa zikiwa zinaajiri, either wataangalia umesoma any CS related program kama wanatafuta developer/programmer/software engineer (same thing) au kama hujasoma then wanaangalia experience.
Yaani labda ungetofautisha hardware/systems engineer, software engineer, game developer, hapo ningekuelewa. Ila term software engineer/programmer/developer ni kitu kilekile just different words
Watu wanaokaa kufikiria new algorithms za kusolve specific problem hao ni scientists tofauti kabisa, mfano kuna Data Scientists, hawa wanatafuta effiient ways za kuhandle huge amounts of data, mfano wanaoshughulikia Search, mostly wamejifunza Data Mining au Machine learning techniques na lazima mtu awe good in statistics. Fikiria mtu anayecome up with an algorithm like PageRank au HITS, hawa kampuni inawaajiri wanakaa kufanya research.
Ila mwisho nimalizie kua its my opinion, hata kwenye internet hii mada imekua ni ubishi tu, kila mtu anasema ya kwake. Pitia Quora au hata sites nyingine utakutana na same question different answers.