While ya software dev

While ya software dev

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.
 
Mkuu Graph bongo hakuna Large S/W firm. Zipo za kati tu. NNi maoni yangu tu.
 
Wachache waliokatika hii field hawaitetei kutosha, ndio maana waajiri wanawaamini sana wahindi ila if we step up this can change
 
Nilikwenda kampuni flani nikiwa mgeni nikakuta wamewapa tenda ya kutengeneza system flani wahindi flani na wako stage za mwisho wanafanya testing tu. Sasa mimi niliajiriwa pale kwa kazi maalum tulikuwa na mkataba na google wa kuwapa data flani na zitoke ktk ile system. Nikawapa specification wahindi wa pull zile data ktk hiyo format jamaa walishindwa wakaniambia sisi tunajua kutengeneza hii tu na visual designs, ikabidi niangalie architecture ya hiyo system yao nikapiga code nikavuta mzigo wa google. Nikatengeneza kama module special ya kufanya hiyo kazi. Niliheshimika sana na Mkurugenzi mtendaji kisha salary ikapanda double. Kwa hivyo tupigeni kazi ikionekana juhudi/ujuzi wetu tutathaminiwa tu.
 
Nimefanya degree computer information system....shida nyangu ni kuwa after graduating this yr so kila kitu nilifunzwa darasani I just need additional skill....I cover c++, java,php kugusia tu but back Nina challenge of getting anything done on my own
Just two cents over here..
A lot of brilliant ideas have been mentioned over here.

Your problem is "Challenge of getting anything done on my own".

Try to understand where your interest lies.

Then find an open source project such as KDE, GNOME and many other open source projects, then learn the code base. After understanding it try to help with something very little such as translations ( to understand how to contribute in OO projects) then after getting used to the code base.
Fold your sleeves, and get your hands dirty by submitting patches.
INMHO, books will never help you design a real system, then Open Source projects might be your best option if it coding you really love.

Best of Luck..!!
 
Just two cents over here..
A lot of brilliant ideas have been mentioned over here.

Your problem is "Challenge of getting anything done on my own".

Try to understand where your interest lies.

Then find an open source project such as KDE, GNOME and many other open source projects, then learn the code base. After understanding it try to help with something very little such as translations ( to understand how to contribute in OO projects) then after getting used to the code base.
Fold your sleeves, and get your hands dirty by submitting patches.
INMHO, books will never help you design a real system, then Open Source projects might be your best option if it coding you really love.

Best of Luck..!!
I totally agree with you mkuu. Your suggestion will help so many people in this field.
 
Back
Top Bottom