Tijekom prošle godine završio sam cijeli nastavni plan i program freeCodeCamp dok sam puno radio kao učitelj. U ovom ću članku izložiti kako sam to uspio. Naročito kako sam organizirao svoje vrijeme i koji sam dopunski materijal koristio.
Pozadina
Prvo, zadnja priča. Nisam bio potpuno nov u kodiranju. Odrastao sam u maloj tehnološkoj tvrtki.
Moj je otac osnovao vlastitu tvrtku prije mog rođenja, gdje su obavljali različite aktivnosti u okviru tehnologije, poput popravljanja računala, postavljanja internetskih veza i mreža za druge tvrtke, podučavanje računalnih tečajeva i izradu administrativnih aplikacija za tvrtke. Bio je to mali grad, pa su u osnovi bili "tehnološki momci" za cijeli grad.
Uredi tvrtke bili su u našoj kući, tako da sam doslovno odrastao među računalima i ljudima koji su im se svidjeli. Još sam se kao dijete počeo igrati s Visual Basicom (jedan od momaka u tvrtki naučio me kako ga koristiti), a svo svoje slobodno vrijeme provodio sam na mreži, čavrljajući s kolegama štreberima.
Kad sam imao oko 12 godina, jedan od tih štrebera poslao mi je e-poštom priručnik za web razvoj (ogromnu .txt datoteku koja se u osnovi bavila HTML-om) i iskoristio sam ga za stvaranje vlastite web stranice za obožavatelje. Imao je čak i jedan od onih cool brojača posjeta.
Ugostila sam ga na Geocitiesu, dobila besplatni kratki URL i uvrstila ga na Yahoo i AltaVista (to su bili najveći u to vrijeme).
Nakon toga dogodio se život i potpuno sam odustao od ideje da budem programer, jer su okolnosti zahtijevale „realniji“ pristup. Neću sada ulaziti u detalje, ali u osnovi sam morao odustati od studija i zaposliti se.
Nastavio sam živjeti svoj život. Izgradio sam povremenu web stranicu za očeve klijente, a onda na kraju odlučio započeti s podučavanjem engleskog jezika, što mi je bilo lako i u osnovi zaboravio na web razvoj. Do 2016. tj.
Kako sam odlučio promijeniti karijeru
Volim podučavati. To je korisno zanimanje, zanimljivo i zabavno. Ali ima i svojih loših strana. Na početku mi se sve činilo kao izazov, ali nakon toliko godina radeći to, počeo sam osjećati da nemam svrhu. Da više nisam rastao niti učio.
Osjećao sam se zaglavljeno. Kao da je moj posao bio iste godine u godinu. Samo sam prolazio kroz prijedloge. Također nije nudilo puno prilika za preseljenje, što je nešto što mi je kasnije postalo vrlo važno.
2013. godine upoznala sam svog supruga, a sljedeće godine otišli smo na tromjesečno putovanje po Europi, što je posve drugačiji post na blogu, ali u osnovi je to bio izuzetno nizak proračun i imali smo strašno iskustvo. Voljeli smo Europu i odlučili smo da se vratimo na još jedno dugo putovanje.
Vrijeme je prolazilo, radili smo i druge stvari, a onda sam pronašao Codecademy i počeo se poigravati s njim i poigravati se idejom da postanem stalni programer. Već sam imao iskustva u izradi web stranica sa samo HTML-om i CSS-om, ali bez JavaScript-a. Puno sam priča o uspjehu čitao na mreži, ali još uvijek nisam to smatrao pravom karijerom, ni izdaleka.
U međuvremenu smo planirali sljedeće dugo putovanje, štedjeli novac, planirali i tako dalje. Sve sam više radio kao slobodni prevoditelj, super uključen u svoju karijeru, prevodeći cool stvari poput romana i poezije. Došla je 2017. i ovaj smo put opet krenuli u Europu na dva mjeseca.
Tamo smo upoznali hrpu programera. Bilo je ludo. Činilo se da je svaki pojedini surfer s kauča kojeg smo upoznali nekako u IT-u, bilo kao voditelj softverskih proizvoda, programer, ispitivač itd. Svi su nas poticali da se bavimo tehnologijom. U to smo vrijeme već bili odlučili da se želimo preseliti u Europu pa su nam mnogi rekli: „Ovdje biste mogli naći posao. Ovdje se traže programeri, trebamo ih puno. "
Prije nego što je putovanje završilo, donijeli smo odluku da se prijavimo za dvogodišnji tehnički certifikat na novoosnovanom tehničkom sveučilištu u blizini našeg rodnog grada. Program je uglavnom bio Java, pa smo, kad smo se vratili, započeli tečaj Java u Couseri. Prvi modul zapravo je bio tečaj JavaScript, pa smo se zapravo odmah navukli na JavaScript.
Dok smo učili JavaScript, čekali smo početak školske godine u ožujku 2018. Za Uni je bilo samo 50 mjesta, pa smo se prethodno posvetili i naučili. Išli smo, polagali testove, prolazili tečajeve, a onda smo morali pričekati dok oni ne odluče. Dobili smo najviše ocjene među svim kandidatima, ali te ocjene nisu imale razlike. Spotovi bi se dodjeljivali putem lutrijskog sustava. Moj suprug je ušao, a ja sam bila izostavljena.
Odlučio je da više voli učiti sam, Java ga više nije toliko zanimala jer je bio navučen na JavaScript, pa smo počeli učiti sami.
Počeli smo s Codecademy, ali bio nam je previše pri ruci (nismo imali Premium račune). Negdje smo čitali o freeCodeCampu. I započeli smo ga, isprva vrlo polako (za dobivanje prvog certifikata trebali su mi mjeseci, doduše u sredini je nastavni plan promijenjen, a ja sam ispustio laptop i morao ga popraviti). Nakon završetka ljetnih praznika i vraćanja na puno radno vrijeme, stvari su postale teške.
Radite puno radno vrijeme i radite freeCodeCamp punom brzinom
Nije bilo lako, neću lagati. Pomoglo mi je što većina mojih prijatelja i poznanika ne živi u mojoj blizini, a ja živim u malom gradu koji ne nudi puno mogućnosti za zabavu. U tom je smislu programiranje bilo spasitelj života. Imao sam nešto zabavno, a to je stvaralo ovisnost pa sam time mogao ubiti sate dosade.
Dakle, to je puno pomoglo kada sam se bavio količinom sati koje sam proveo radeći mentalni rad (podučavajući i učeći).
Prva potvrda trajala je mjesecima, dijelom zato što sam čekala da uđem u Uniju, a dijelom i zato što sam radila 10 sati dnevno prva 3 mjeseca školske godine.
Nažalost, nisam mogao samo napustiti posao i studirati redovno, jer sam trebao platiti račune, pa sam morao biti jako dobar u 3 stvari:
- Upravljanje vremenom
- Disciplina
- Organizacija
Upravljanje vremenom
Počeo sam raditi u 7 ujutro, pa sam većinu dana počeo ustajati u 4:30. Dan sam započeo s izazovima freeCodeCampa i kavom. Ponekad bih čitao i iz knjige ili radio druge tutorijale, ovisno o tome na čemu sam trenutno radio. Učio sam i tijekom pauze za ručak i nakon posla, ali pomirio sam se s činjenicom da nisam bio toliko produktivan tijekom tjedna zbog posla. Tako sam tijekom tjedna radila uglavnom kratke izazove, čitajući itd. A na projektima sam radio vikendom, praznicima i slobodnim vremenom.
Da imam 30 minuta, čitao bih 30 minuta. Ako sam ih imao 15, proučavao sam 15 minuta. Zapošljavao sam svaki slobodni trenutak dana za učenje.
Nedjeljom bih pripremao većinu obroka za tjedan dana, tako da nisam morao trošiti vrijeme na kuhanje i na kraju ne bih jeo nezdravu hranu. Također sam planirao i prikupio sve što mi je trebalo za posao za tjedan dana, tako da nisam trebao trošiti dodatno vrijeme osim uobičajenog radnog vremena.
Srećom nakon lipnja, radno vrijeme mi se smanjilo s 10 -12 na 8, tako da sam sada radio normalan raspored i tamo sam počeo ubrzavati tempo.
Disciplina
Morat ćete učiti čak i u dane kad vam se ne sviđa. Ovdje motivacija također igra veliku ulogu, ali disciplina je važna - pogotovo ako ste poput mene i ako vam puno odvlače pažnju s društvenih mreža i videa o mačkama.
Najbolji savjet koji vam mogu dati za borbu protiv iskušenja čitanja članaka na mreži je sljedeći: ako u glavi smislite pitanje poput "kako avioni lete?" (što je obično vrsta pitanja koja me zanosi i usisava 30 minuta), negdje to zapišite i obećajte si da ćete o tome sve moći pročitati nakon što završite s onim što radite.
U 99% slučajeva više vam neće biti stalo, jer se ta pitanja jednostavno pojave u vašem mozgu jer želi omesti. Progurajte se i pobijedit ćete ga.
Sljedeći aspekt discipline je odabir studija umjesto ostalih stvari. Ovo je ne baš zabavan dio. Morao sam odustati od mnogih, mnogih stvari koje sam uživao favorizirajući za studiranje i jedva čekam da im se mogu vratiti. Učinio sam to samo zato što sam želio što prije postati programer (vidi Motivacija u nastavku), ali čak i ako ne žurite kao ja, možda ćete utvrditi da provodite puno vremena radeći stvari koje, čak i iako su ugodni i lijepi, oduzmite previše vremena.
Morat ćete odrediti prioritete i donijeti teške odluke.Motivacija
Imao sam vrlo snažnog motivatora koji je postajao programer i selio se u Europu. To mi je bio cilj dugo, dugo i došao sam do točke kad sam bio frustriran što ga nisam dobio. Svi su moji prijatelji napustili grad, ovdje praktički nemam obitelj, osjećao sam se izolirano i želio sam otići.
To je ono što me gurnulo. Osjećao sam se poput vatre pod mojim nogama, osjećao sam da nemam izbora. Trebate snažnu motivaciju za radikalne promjene. Ne znam za vas, ali ja sam nekako "ne popravljaj ono što nije slomljeno", pa me je stvarno teško natjerati da radim stvari samo radi njih.
Moji su hobiji vrlo praktični i produktivni: vrtlarenje, joga, kuhanje. Moram imati razloga da ih radim (želim besplatno povrće, bole me leđa, gladan sam). Ako ste išta poput mene, morat ćete pronaći mrkvu da vas održi.
Provedite neko vrijeme razmišljajući o ovome, što je točno ono što želite postići završetkom freeCodeCampa? Što želite promijeniti ili kroz to dobiti u svom osobnom životu?
Kurikulum + dopunski resursi
Slijede neki od dodatnih resursa koje sam koristio na svom freeCodeCamp putovanju. Imajte na umu da ovo nije iscrpan popis jer sam radio tona guglanja i da neki od tih tečajeva nisu besplatni.
Responzivni web dizajn: Ovo je dio s kojim sam već imao iskustva, pa je bilo lako i zabavno. Koristio sam neke dodatne resurse, posebno za Flexbox. Moje najdraže mjesto za ovo je Interneting hard.
JavaScript algoritmi i strukture podataka: Kad sam stigao do JavaScript modula, navukao sam se. Sve je bilo super zabavno, naučio sam puno i bio sam nestrpljiv da to primijenim u praksi.
Za ovaj sam odjeljak uglavnom koristio knjige. Već sam imao dovoljno vježbi s freeCodeCampom, ali trebalo mi je više objašnjenja. Početak JS-a također ima puno vježbi.
- Početak JavaScript izdanja 5
- Ne znate JS
- Programiranje temelja s JavaScriptom, HTML-om i CSS-om
- JavaScript dokumentacija
Kad sam stigao do ovog odjeljka, pridružio sam se i programu Milijun žena u tehnologiji (1MWTT) Summer of Code. Naučio sam osnovni Python i osnovni do naprednog JavaScript-a što je puno pomoglo, posebno u vezi s Promises.
Učenje Pythona također mi je pomoglo ojačati neke osnovne programske koncepte. Ozbiljno preporučujem da, kada se osjećate samouvjereno s JavaScriptom, isprobate novi jezik, samo njegove osnovne koncepte. Poslije će vam biti ugodnije kad jednom budete znali raditi istu stvar s različitim alatima.
JavaScript Frameworks: I ovaj je odjeljak bio sjajan jer mi je dao temelj u Reactu i Reduxu. Već sam slijedio React tečaj na Udemyju, React 16.6 - Cjelovit vodič (uključujući React Router i Redux).
Toplo preporučujem ovaj i druge tečajeve istog autora. Nevjerojatno je temeljit i njegova objašnjenja su sjajna. Ovo je bio jedan od rijetkih tečajeva Udemyja na kojem sam zapravo pratio projekt koji on radi: obično gledam videozapise i primjenjujem principe na svemu što radim.
Milijun womentotech imali smo React tjedan koji je uglavnom bio React native i tada sam se počeo igrati s njim. U to sam vrijeme također počeo raditi na svom sporednom projektu sa suprugom, za koji smo zaključili da će biti PWA s Reactom.
Ne mogu naglasiti koliko je važno izgraditi nešto svoje od nule. U nekoliko tjedana naučio sam put više od izrade naše aplikacije nego što sam naučio s bilo kojim tečajem ili tutorijalom.
API-ji i mikrousluge: Ovaj mi je odjeljak bio veliko otkriće i promijenio je sve. Do tog modula bio sam siguran da želim biti front-end programer, ali nakon učenja Node.js počeo sam razmišljati o tome da budem back-end ili Full Stack programer. Izgradnja API-ja je toliko zabavna i tako brzo vidite rezultate. Počeo sam graditi svoje prve male Full Stack projekte i bio sam jako uzbuđen.
Neki od resursa koje sam koristio:
- Kompletni tečaj za razvojne programere Node.js (2. izdanje)
- Upoznajte djevojke s razvojnim programima s Expressom
- Dokumenti čvora
- Express Docs
- NodeSchool
- Uvod u Node.js
- REST & GraphQL API dizajn u Node.js, v2 (pomoću Express & MongoDB)
U to vrijeme također sam volontirao za “1MWTT” i zatraženo mi je da napravim Probot aplikaciju za ukrcane volontere s Nodeom. To mi je također dalo malo prakse s Nodeom, što je bilo izvrsno zabavno.
QA i informacijska sigurnost: Ovaj je modul također otvorio oko. Do tada nikada u životu nisam napisao niti jedan test. Sada volim pisati testove, a čak sam se i super zainteresirao za Test Driven Development.
Uglavnom sam koristio dokumente za ovaj odjeljak, ali onda sam odlučio testirati i svoj front-end, i otkrio sam ovaj nevjerojatan tečaj na Udemyu koji ne mogu preporučiti dovoljno. Instruktor je daleko najbolji instruktor kojeg sam ikad vidio na Udemyju. Jedva čekam konzumirati bilo koje druge tečajeve koje će izdati u budućnosti.
- Chai dokumenti
- Testiranje reakcija s Jest i Enzimom
Vizualizacija podataka s D3: Ovo je bio najteži certifikat, ruku na srce. Objašnjenja su bila dobra, ali kad dođete do projekata, shvatite da izazovi pokrivaju samo prvi projekt, a za ostalo ste nekako sami. A na mreži nema tona dobrih resursa. Uglavnom sam čitao dokumente i koristio se vodičima. Evo resursa koji su me konačno prošli kroz ovu certifikaciju:
- D3.js vodiči d3Vienno
- D3 dokumentacija
Savjeti za završetak kurikuluma
Da sumiram, ovo su mi stvari koje su mi najviše pomogle u postizanju mog cilja da završim kurikulum:
- Koristite kurikulum kao putokaz, ali dopunite drugim resursima
- Ne zaglavite dugo: postavljajte pitanja, Google, uparite program.
- Postavite realne ciljeve za svaki dan i tjedan. Nemojte se tući ako ste tjedan dana sporiji: život se dogodi. Ne dopustite da vas to odbaci s kursa.
- Imajte na umu svoju motivaciju: to će vas progurati kroz teške dane.
- Dajte prioritet: morat ćete smanjiti vrijeme koje provodite radeći druge stvari.
- Ne zaboravite uzeti slobodne dane. Oni su vitalni za proces učenja. I naspavajte se dovoljno!
Nakon freeCodeCampa osjećao sam se pomalo izgubljeno. Ovo je bio putokaz koji me vodio kroz put od učitelja do programera.
Nakon nekoliko dana razmišljanja i planiranja, posvetila sam se svom sporednom projektu koji gradim sa suprugom. Učimo i zabavljamo se i jako smo uzbuđeni zbog toga.
I da, dobio sam ponudu za posao odmah nakon završetka kurikuluma , ali o tome više u sljedećem članku.
Sve u svemu, ne bih mogao naučiti sve ono što sam naučio tako brzo da nije bilo freeCodeCampa i izuzetno sam zahvalan svima koji omogućuju tako divan projekt.
Ako se i vi osjećate isto i možete vratiti novac, razmislite o tome da ovdje donirate freeCodeCamp.