Kako zaista naučiti programirati?

https://i.ibb.co/QCQnp67/me-learning-a-new-programming-language-stackoverflow-studying-in-class-58700742.png

Previše tutoriala?

Tutoriali su odlični pomagači svim samoukim programerima. Postavljaju osnove, skraćuju put i daju konkretne primjere. Ne mogu si zamisliti danas svoju karijeru bez tutoriala. I dalje moram konstantno učiti, a to bi bilo nemoguće da ih nema.

No jedna od zamki u koje sam upala dok sam tek kretala s učenjem programiranja je bila gledanje hrpetine tutoriala, i vrlo često praćenje više tutoriala odjednom. Kada bih se umorila od videa, prebacila bih se na knjige. Kad bi se umorila od knjige, prebacila bi se na blogove. Tada mi se stvorio krkljanac u glavi. Nisam više znala gdje sam što pročitala, kako je išao onaj primjer, koji je “best practice” najbolji. Nisam imala dovoljno iskustva da sama odlučim o arhitekturi koda.

Drugi problem tutoriala je što oni zapravo ne pružaju praktično znanje. Mislila sam da čim više budem gledala/čitala, tim ću više znati. No to nije bilo točno. Moje je znanje bilo samo teorijsko. A teorija nije dovoljna za programiranje. Tutoriali su svojevrsna “safe zone”. Dok sam pratila što govori/piše predavač, nisam toliko pazila na greške. Nisam riješavala sama problem, nego je netko drugi to radio umjesto mene. Zato često svojim studentima govorim da se čim prije mogu bace na neki svoj projekt. Tek kada kreneš programirati nešto svoje, tj. kad kreneš riješavati pravi stvarni problem, tek tada stječeš neko iskustvo. Nije ti važno je li netko već iskodirao takvu aplikaciju, jer vrlo vjerojatno je, nego je važno da stekneš iskustvo.

Kako učiti programirati

Koji su sve načini da se nauči neka nova tehnologija? Evo liste onih koje sam ja isprobala:

Dokumentacija

Dokumentacija bi trebala biti prvo mjesto gdje se uči nova tehnologija. Ponekad framework ima jako dobru dokumentaciju, poput Next.js, koji ima čak cijeli tutorial podijeljen u manje korake. Danas su sve češće dokumentacije koje imaju odličan UX/UI, Next.js čak ima i gejmifikaciju.

Video tutorial

Video tutoriali su odlični jer daju privid stvarne interakcije. Možemo pratiti kako netko kodira kao da je real-time (iako naravno nije). Često takvi tutoriali daju linkove na početni kod, tj. imaju direktorij sa započetim kodom. Tako možemo pratiti kako netko razvija arhitekturu počevši od ničega. Video tutoriali su idealni za početnike, no već nekom mid developeru_ki mogu biti suvišni. Takav način učenja zahtijeva pomno praćenje svakog dijela, teško je preskočiti jedan dio i početi samo od onog što na zanima. Recimo da nas zanima samo context api u Reactu i to samo reducer funkcija. Puno je brže, a i lakše, pročitat kratki blog post o toj funkciji, nego gledati cijele tutoriale.

Donsim nekoliko besplatnih video kanala:

  1. freecodecamp
  2. programming with mosh
  3. fun fun function
  4. traversy media

Blog postovi

Blog postovi su odlični za popunit rupe u znanju. Ja ih koristim kad mi samo treba dijelić. Na primjer, zanimalo me što radi [] u useEffect hooku. Zato mi je trebao samo blog post, ne zanima me apsolutno sve od useEffect-a.

Donosim nekoliko blogova koje pratim:

  1. overreacted
  2. silvenon
    • moj osobni prijatelj koji rastura u CSS-u i Js-u
    • suosnivač CSS meetup-a
  3. eric eliott
  4. sara soueidan
    • blog na kojem možeš naučiti sve o accessibilityju
    • piše ga apsolutna kraljica CSS-a i SVG-ova, Sara Soueidan
  5. ire aderinokun
    • ovdje sam naučila sve o gridu
    • blog piše nigerijska frontendašica

Čitanje source koda

Način na koji sam naučila Bootstrap, dok sam bila početnica u programiranju, je bilo čitanje source koda. Ništa mi nije pomoglo da naučim CSS, kao proučavanje source coda Bootstrap-a. Nijedan tutorial mi nije pomogao da shvatim Bootstrap arhitekuru kao čitanje njegovog source koda. Gledala sam kako rade njihovi mixini, kako se generiraju grid klase. Kad su se prebacili na flexbox, morala sam se upgrejdat i pomno proučit nove CSS pojmove. Čitanje source koda zvuči zastrašujuće, pogotovo početnicima. To je ozbiljan kod koji koristi cijeli community. Kompleksan je, zna bit overwhelming. Zato je, mislim, dobro krenuti s nečim jednostavnijim, poput Bootstrapa. Toplo preporučam.

Što kad zapneš s nekim problemom

Odlučio_la si iskodirati svoju aplikaciju i zapeo_la si na nekom problemu? Dokumentacija ne pomaže, tutoriala nema, tvoj problem je prespecifičan za tvoje okruženje i aplikaciju. Ne želiš odustati, sve si probao_la, nemaš vise ideja. Što sad?

Evo gdje sam ja gnjavila ljude i pitala ih za pomoć. Ovo su web stranice i communityji gdje su ljudi stvarno sjeli sa mnom, pogledali moj kod i riješili mi problem. Ne bih bila uspjela završiti svoje noob projekte da nisam znala za ove stranice.

  1. codebuddies
    • svaka tehnologija ima svoj slack kanal
  2. mentoring byte
    • besplatno mentorstvo na domaćoj sceni
  3. learn to code with me
    • odličan blog za sve one koji se uče sami programirati
    • postoji fb grupa odlična za networking
  4. it početnici
    • grupa koja okuplja početnike iz Republike Srbije i okolice
  5. code mentor
    • plati nekoga da ti pomogne
  6. stackoverflow
  7. subredditi
  8. codecademy forum

Konstantno učenje

Programiranje zahtijeva konstanto učenje. Može se lako dogoditi da si upoznat_a s jednom verzijom tehnologije, no ne i najnovijom. To se meni dogodilo dok sam se upoznavala s osnovama React-a. Na primjer, učila sam lifecycle metode. Taman kad sam ih savladala, pojavili su se hookovi kao npr. useEffect. Svo moje znanje o lifecycle metodama se ispostavilo zastarjelo. Morala sam ponovno učiti, tj. nadograditi svoje znanje.

Stavljaj sve na github

Jako ja važno da dok učiš pratiš svoj napredak. Pratiš neki tutorial i kodiraš aplikaciju? Stavi na github! Pišeš neki novi blog post? Stavi na github! Otkrio si neki cool trick u CSS-u? Stavi na github!

Kako će ti Kodiraonica pomoći da zaista naučiš programirati

Umjesto da se koprcaš između raznih metoda učenja, Kodiraonica će ti pomoći da imaš sve na jednom mjestu i da ne brineš o tome što trebaš znati. Stavljamo ti sve na pladanj, ti trebaš samo učiti. Ne moraš brinuti je li neka tehnologija zastarjela, je li neki način rješavanja problema najbolji, postoji li možda neka druga tehnologija koja bi bolje riješila problem. Kodiraonica sve te probleme riješava za tebe. Prijavi se na tečaj već danas.

comments powered by Disqus