Nimeamua kuanza kujifunza computer programming (back end development)

Mkuu, nimependa vile umejibu swali.
Nadhani unaweza kunipa mwanga kidogo kwa hiki nnachotaka kujifunza.
Mie nataka kujifunza mobile app development from scrach, natakiwa nifahamu nini na nini ilhali sina ujuzi wowote wa programing zaidi ya kupenda kujifunza?!

Nimekuwa nikitengeneza native mobile apps kupitia 'appyet' na 'thunkable' lakini napenda kujua zaidi mkuu!

Msaada plz!
Tuanze na hili swali, unataka kutengeneza mobile apps za Android au ios? Kama ni Android, jifunze Kotlin, hiyo ni official language ya Google na inatumika kutengeneza android applications ila kuna java pia. So kwavile huna idea ya java unaweza ukaamua uguse ipi hapo maana zote zinapiga mzigo ila Kotlin syntax zake ni fupi sio kama java lakini ni lugha ambayo imetoka kama miaka miwili iliyopita so support community yake bado inaendelea kukua. Kwa upande wa ios, hapo komaa na Swift tu. Ila mwisho wa siku what matters ni kuweka kutatua tatizo kwa kutumia hizi Programming languages. Unaweza ukazijua lakini kama hutumii to make a difference inakuwa ni kazi bure.
 
Mkuu, nimependa vile umejibu swali.
Nadhani unaweza kunipa mwanga kidogo kwa hiki nnachotaka kujifunza.
Mie nataka kujifunza mobile app development from scrach, natakiwa nifahamu nini na nini ilhali sina ujuzi wowote wa programing zaidi ya kupenda kujifunza?!

Nimekuwa nikitengeneza native mobile apps kupitia 'appyet' na 'thunkable' lakini napenda kujua zaidi mkuu!

Msaada plz!

Asante, binafsi nakushauri uwekeze muda wako kwa kujifunza Java, sio lazima uijue sana ila ufahamu vitu vya msingi, kisha uhamie kwenye Android ambayo imetokana na Java, baadaye itakua rahisi kwako wewe kuelewa IoS na nyengine. Kama nilivyomjibu mdau hapo juu, jaribu kuepuka frameworks au vitu kama Appyet, jifunze kuanzia chini ili ujue nini hutendeka behind the scene.

Silaha yako muhimu ni huo moto wa 'kupenda kujifunza', yaani hiyo tu imetosha uende mbali sana kwenye ulimwengu wa programming. Ni taaluma ambayo haina mwisho wa kujifunza, kila siku hadi uzeeni, mimi hapa huwa natenga masaa mawili kila siku ya kujifunza, haipiti siku hata moja, kwa miaka yote nimekua kwenye hii taaluma bado najifunza na hamna siku nimejiaminisa kuwa najua, nipo tayari kupokea siku zote.
Kuwa mvumilivu, hakikisha kila topic/somo unafanya mazoezi ya kutosha kabla kuhamia kwenda kwenye somo nyingine. Vtabu vya PDF vipo vingi online, videos na hata tutorials.
 
Asante, binafsi nakushauri uwekeze muda wako kwa kujifunza Java, sio lazima uijue sana ila ufahamu vitu vya msingi, kisha uhamie kwenye Android ambayo imetokana na Java, baadaye itakua rahisi kwako wewe kuelewa IoS na nyengine. Kama nilivyomjibu mdau hapo juu, jaribu kuepuka frameworks au vitu kama Appyet, jifunze kuanzia chini ili ujue nini hutendeka behind the scene.

Silaha yako muhimu ni huo moto wa 'kupenda kujifunza', yaani hiyo tu imetosha uende mbali sana kwenye ulimwengu wa programming. Ni taaluma ambayo haina mwisho wa kujifunza, kila siku hadi uzeeni, mimi hapa huwa natenga masaa mawili kila siku ya kujifunza, haipiti siku hata moja, kwa miaka yote nimekua kwenye hii taaluma bado najifunza na hamna siku nimejiaminisa kuwa najua, nipo tayari kupokea siku zote.
Kuwa mvumilivu, hakikisha kila topic/somo unafanya mazoezi ya kutosha kabla kuhamia kwenda kwenye somo nyingine. Vtabu vya PDF vipo vingi online, videos na hata tutorials.
Mkuu naomba kukuliza, framework ni nini kwenye programming language
 
Mkuu naomba kukuliza, framework ni nini kwenye programming language

Nitajaribu kutumia mfano wa ujenzi wa nyumba, sio mfano sahihi maana ni kitu hakiwezekani lakini mfano wenyewe utaleta maana.
Chukulia mfano wa kundi la mafundi ambao hufanya kazi ya ujenzi wa nyumba, kila akipewa kandarasi, huanza kazi kwa kukusanya saruji, kokoto, kukoroga zege, kujenga matofali na mambo mengine mengi ambayo hawezi kuepuka. Yaani kila ujenzi wa nyumba lazima uhusishe hizo shughuli, haijalishi nyumba ya aina gani, siku zote lazima uanze ujenzi wake kwa kufanya shughuli kadhaa.

Sasa waza hawa mafundi wakutane na kuwaza, hivi kwanini tusitumie akili, tuunganishe juhudi zetu, tujenge mfano wa nyumba ambao utakua umesalia hatua kadhaa kukamilika na kuwa nyumba. Kwamba kila fundi akipata kandarasi ya ujenzi wa nyumba, anachukua huo mfano na kuukamilisha aidha kwa kupaka rangi au kupindisha baadhi ya maeneo. Hana haja tena ya kutengeneza matofali wala kukoroga zege.

Sasa ndvyo ilivyo kwa framework kwenye ulimwengu wa programming, yaani programmers kila mmoja alikua akipata kandarasi, analazimika kufanya shughuli zote kuanzia mwanzo hadi mwisho, kunao walikaa pamoja na kujadili jinsi gani ya kupunguza kazi zote hizo, kwa kutengeneza mfano wa software ambao haujakamilika, yaani wewe unauchukua na kuongeza mambo yako kisha unapokeza kwa mteja kama software iliyokamilika.

Zipo frameworks nyingi, na kwenye baadhi ya languages humo unakuta framework zaidi ya moja.

Sababu za mimi kushauri mtu anayejifunza programming asianzie kwenye framework, ni kwamba haitampa fursa ya kujua ujenzi wa nyumba kuanzia kwenye zege, na kuettengenza matofali, atakua anajua tu kukamilisha kilichoandaliwa na wenzake, ipo siku atakumbana na mteja anayehitaji mambo mengi ambayo hayapo kwenye framework yoyote ile.
 
Nitajaribu kutumia mfano wa ujenzi wa nyumba, sio mfano sahihi maana ni kitu hakiwezekani lakini mfano wenyewe utaleta maana.
Chukulia mfano wa kundi la mafundi ambao hufanya kazi ya ujenzi wa nyumba, kila akipewa kandarasi, huanza kazi kwa kukusanya saruji, kokoto, kukoroga zege, kujenga matofali na mambo mengine mengi ambayo hawezi kuepuka. Yaani kila ujenzi wa nyumba lazima uhusishe hizo shughuli, haijalishi nyumba ya aina gani, siku zote lazima uanze ujenzi wake kwa kufanya shughuli kadhaa.

Sasa waza hawa mafundi wakutane na kuwaza, hivi kwanini tusitumie akili, tuunganishe juhudi zetu, tujenge mfano wa nyumba ambao utakua umesalia hatua kadhaa kukamilika na kuwa nyumba. Kwamba kila fundi akipata kandarasi ya ujenzi wa nyumba, anachukua huo mfano na kuukamilisha aidha kwa kupaka rangi au kupindisha baadhi ya maeneo. Hana haja tena ya kutengeneza matofali wala kukoroga zege.

Sasa ndvyo ilivyo kwa framework kwenye ulimwengu wa programming, yaani programmers kila mmoja alikua akipata kandarasi, analazimika kufanya shughuli zote kuanzia mwanzo hadi mwisho, kunao walikaa pamoja na kujadili jinsi gani ya kupunguza kazi zote hizo, kwa kutengeneza mfano wa software ambao haujakamilika, yaani wewe unauchukua na kuongeza mambo yako kisha unapokeza kwa mteja kama software iliyokamilika.

Zipo frameworks nyingi, na kwenye baadhi ya languages humo unakuta framework zaidi ya moja.

Sababu za mimi kushauri mtu anayejifunza programming asianzie kwenye framework, ni kwamba haitampa fursa ya kujua ujenzi wa nyumba kuanzia kwenye zege, na kuettengenza matofali, atakua anajua tu kukamilisha kilichoandaliwa na wenzake, ipo siku atakumbana na mteja anayehitaji mambo mengi ambayo hayapo kwenye framework yoyote ile.
Asante mkuu nimekuelewa, naomba pakuzipata hizo framework ila za C++, na kuna tofauti gani kati ya frameworks na open sources, na jee kati ya hivi vitu viwili kipi ni bora cha kutumia pale unapokuwa na project.
 
Nitajaribu kutumia mfano wa ujenzi wa nyumba, sio mfano sahihi maana ni kitu hakiwezekani lakini mfano wenyewe utaleta maana.
Chukulia mfano wa kundi la mafundi ambao hufanya kazi ya ujenzi wa nyumba, kila akipewa kandarasi, huanza kazi kwa kukusanya saruji, kokoto, kukoroga zege, kujenga matofali na mambo mengine mengi ambayo hawezi kuepuka. Yaani kila ujenzi wa nyumba lazima uhusishe hizo shughuli, haijalishi nyumba ya aina gani, siku zote lazima uanze ujenzi wake kwa kufanya shughuli kadhaa.

Sasa waza hawa mafundi wakutane na kuwaza, hivi kwanini tusitumie akili, tuunganishe juhudi zetu, tujenge mfano wa nyumba ambao utakua umesalia hatua kadhaa kukamilika na kuwa nyumba. Kwamba kila fundi akipata kandarasi ya ujenzi wa nyumba, anachukua huo mfano na kuukamilisha aidha kwa kupaka rangi au kupindisha baadhi ya maeneo. Hana haja tena ya kutengeneza matofali wala kukoroga zege.

Sasa ndvyo ilivyo kwa framework kwenye ulimwengu wa programming, yaani programmers kila mmoja alikua akipata kandarasi, analazimika kufanya shughuli zote kuanzia mwanzo hadi mwisho, kunao walikaa pamoja na kujadili jinsi gani ya kupunguza kazi zote hizo, kwa kutengeneza mfano wa software ambao haujakamilika, yaani wewe unauchukua na kuongeza mambo yako kisha unapokeza kwa mteja kama software iliyokamilika.

Zipo frameworks nyingi, na kwenye baadhi ya languages humo unakuta framework zaidi ya moja.

Sababu za mimi kushauri mtu anayejifunza programming asianzie kwenye framework, ni kwamba haitampa fursa ya kujua ujenzi wa nyumba kuanzia kwenye zege, na kuettengenza matofali, atakua anajua tu kukamilisha kilichoandaliwa na wenzake, ipo siku atakumbana na mteja anayehitaji mambo mengi ambayo hayapo kwenye framework yoyote ile.
Mkuu kuna swali hapo juu naomba unisaidie
 
Asante mkuu nimekuelewa, naomba pakuzipata hizo framework ila za C++, na kuna tofauti gani kati ya frameworks na open sources, na jee kati ya hivi vitu viwili kipi ni bora cha kutumia pale unapokuwa na project.

Ukifuatilia vizuri nilichokisema hapo juu ni kwamba, kama ndio unaanza kujifunza programming, epukana na frameworks kwa sasa, jifunze nuts and bolts za language uliochagua kuanza nayo, hadi pale utakua comfortable kiwango cha kuandika a stable and mature application from scratch ndio uanze kujifunza frameworks, hapo utakuta hata una-appreciate umuhimu wa frameworks na kuzielewa kiundani.
Maana ya open source ni kwamba, original source code ya full software ipo free, unaweza uka download na kuongeza mambo yako, au pia unaweza ukachangia kwenye jamii kwa kuongeza ufundi zaidi.
Framework, kama nilivyoeleza hapo juu, sio full software, ila ni system iliyotengenezwa kwa kuweka tayari vitu ambavyo huwa lazima viwepo kwenye kila software, na huchukua muda kuviandaa, sasa badala ya repetition na re-invention ya wheel, wadau wanaviweka tayari, kwamba ukihitaji kutengenza software, unaongeza mambo business logics zinazohusu mradi wako tu na inakua full software.
Kwa C++ zipo framework kadhaa, ukiangalia Google utazipaka, nimeona QT ikitajwa sana.
 
Asante mkuu nimekuelewa, naomba pakuzipata hizo framework ila za C++, na kuna tofauti gani kati ya frameworks na open sources, na jee kati ya hivi vitu viwili kipi ni bora cha kutumia pale unapokuwa na project.
Anza na wxWidgets, my all time fav!
 
Ukifuatilia vizuri nilichokisema hapo juu ni kwamba, kama ndio unaanza kujifunza programming, epukana na frameworks kwa sasa, jifunze nuts and bolts za language uliochagua kuanza nayo, hadi pale utakua comfortable kiwango cha kuandika a stable and mature application from scratch ndio uanze kujifunza frameworks, hapo utakuta hata una-appreciate umuhimu wa frameworks na kuzielewa kiundani.
Maana ya open source ni kwamba, original source code ya full software ipo free, unaweza uka download na kuongeza mambo yako, au pia unaweza ukachangia kwenye jamii kwa kuongeza ufundi zaidi.
Framework, kama nilivyoeleza hapo juu, sio full software, ila ni system iliyotengenezwa kwa kuweka tayari vitu ambavyo huwa lazima viwepo kwenye kila software, na huchukua muda kuviandaa, sasa badala ya repetition na re-invention ya wheel, wadau wanaviweka tayari, kwamba ukihitaji kutengenza software, unaongeza mambo business logics zinazohusu mradi wako tu na inakua full software.
Kwa C++ zipo framework kadhaa, ukiangalia Google utazipaka, nimeona QT ikitajwa sana.
Sawa asante
 
Najua Php programmers watachukia kusikia hili ila mkuu angusha Php, iweke pembeni uipotezee kwa sasa, unaweza irudia baadaye ikitokea unaihitaji sana.

Umeanza HTML -> CSS -> ?
Your next step naona should be JavaScript.
Sasa kwa nini JavaScript?

1. Kama web developer ni lazima uijue kwa kua ndiyo language pekee inayotumika kweye front-end, yaani huwezi kuikwepa la si hivyo usijiite web developer.

2. Ukiimaster vizuri utaweza kuitumia kwenye backend pia, kuna Node.js ambayo inatumika kutengeneza server, ni pure JavaScript, na tukilinganisha na Php, iko faster zaidi ya 100 times kwenye benchmarks kibao. Ni rahisi pia kutengeneza server very fast kwa Node.js kuliko Php, naongea kama mtu ambaye ni advanced in both, hii najua some people might try to attack me ila ukweli ni ukweli.

3. JavaScript ina ecosystem kubwa sana, kuna React Native framework ambayo ni pure JavaScript, hii unaweza tengeneza mobile apps zinazorun kwenye iOS, Android na later Windows, kwa kutumia codebase moja, na uzuri wa hii framework ukilinganisha na nyingine ni speed, React Native apps zinakimbia kwa speed balaa sawa na zile zilizoandikwa kwa Java au Swift.

So uende hivi HTML -> CSS -> JavaScript -> Database system (MySQL recommended)
Kumaster JavaScript kutahitaji muda mrefu na determination ya kutosha, ila it does pay off well. Php sio language mbaya, ila there's something better out there, sioni sababu ya kuhangaika na Php.

Sema pia ningekushauri kusoma general purpose language kama Java, C++ hizi zitakufundisha mambo mengi yanayofanyika ndani ya computer ambayo yatakuasidia sana in general kua developer mzuri, ukienda kichwa kichwa hutojua jinsi memory inavyofanya kazi, unavyoaccess data kama ni efficient au hapana, ndiyo maana kuna software nyingine zinaenda polepole balaa na nyingine zinakimbia. Hakuna kitu cha muhimu kwenye programming kama kujua "Data Structures na Algorithms" hizi courses mbili zinafunga kila kitu, ndipo utofauti wa serious software developer na amateur unapoonekana.
Daaaah kaka nimekuelewa sana ila tatizo langu JavaScript naiona ngumu hivyo hata nikisoma siielewi na lugha yenyewe ndo kabisaaa tofauti na nilivyokuwa nikijifunza HTML ilikuwa simple sanaaaa...
Msaada wako Tafadhali..
 
Daaaah kaka nimekuelewa sana ila tatizo langu JavaScript naiona ngumu hivyo hata nikisoma siielewi na lugha yenyewe ndo kabisaaa tofauti na nilivyokuwa nikijifunza HTML ilikuwa simple sanaaaa...
Msaada wako Tafadhali..
Be clear, be positive and try, then try, again try hakuna kilicho rahisi usipo kipokea kama kilivyo.


Alicho kizungumza kamaliza kabisa labda kama unataka ushauri mwingine mkuu.

1624463206404.png
 
Back
Top Bottom