Kako sam od početnika postao softverski inženjer za 9 mjeseci radeći puno radno vrijeme

U ovom postu podijelit ću kako sam u devet mjeseci, radeći puno radno vrijeme i samouk, prešao od nule (šest) do ponude od šest znamenki softverskog inženjerstva.

Kad god bih počeo čitati priču o uspjehu, odmah bih potražio autorovu pozadinu, nadajući se da će odgovarati mojoj. Nikad nisam pronašao nekoga tko je imao isto iskustvo kao i ja, a najvjerojatnije se moje neće točno podudarati s vašim.

Ipak, nadam se da moja priča nadahnjuje druge i djeluje kao dragocjena točka podataka koja se može dodati vašem skupu podataka o uspjehu.

Potpuno otkrivanje

Pohađao sam tečaj Visual Basic for Applications (VBA) u srednjoj školi (prije devet godina). Na svom tečaju brucoša (prije sedam godina) naučio sam neke jezike C, Python, Matlab i Labview. Završio sam dobro sveučilište s diplomom kemijskog inženjerstva i dobrim prosjekom ocjena (prije tri godine). Nisam se bavio programiranjem izvan škole, u srednjoj školi ili na fakultetu, sve dok prošle godine nisam odlučio da želim učiti.

Nakon fakulteta zaposlio sam se kao procesni inženjer u rafineriji. Tamo sam radio dok nisam promijenio karijeru u Softversko inženjerstvo.

Zašto sam želio promijeniti karijeru

Uživao sam u rješavanju tehničkih problema, ali znao sam da u nekom trenutku želim ući u svijet poslovanja / pokretanja. Uvijek sam u mislima držao misao o MBA-u, ali svaki put kad bih pogledao cijenu najboljih škola, zanimanje mi je jenjavalo.

27. svibnja 2017. ponovno sam se poguglao o MBA-ima i nekako sam naletio na softverski inženjering. Činilo se kao savršeno pristajanje.

Softverski inženjeri su u sve većoj potražnji, plaće su sjajne i to je savršena industrija iz koje se može ući u startup svijet bez potrebe za tonom početnog kapitala. Sve što trebate je računalo, a vaše su mogućnosti neograničene (vrste).

Ni u jednoj drugoj inženjerskoj disciplini ne možete jednostavno imati ideju, početi je graditi, pokazati korisnicima i ponoviti s malo kapitala i niskom zaprekom za ulazak. U kemijskom inženjerstvu vam u osnovi treba pogon koji radi ili puno novca za dizajn pogona ako imate ideju za novi proizvod.

Čula sam za ljude koji su napustili posao i pohađali bootcamp, ali što sam više o tome čitala na mreži, to sam više shvaćala da sve to možete potpuno naučiti sami ako ste predani i usredotočeni.

Mogli biste tvrditi da gubite na mrežnim savjetima i savjetima za karijeru koje pruža bootcamp. To može biti istina, ali imao sam sreće što sam živio u zaljevu što mi je omogućilo da prisustvujem nekoliko okupljanja, pa sam se i umrežio na taj način.

Osim toga, najgori je slučaj bio da sam shvatio da to ne mogu sam, a onda bih napustio posao da bih pohađao bootcamp.

Cilj

Trebaš imati cilj. Pogotovo ako pokušavate učiti dok radite puno radno vrijeme. Lako je pustiti da se vaše učenje odugovlači ako nemate vanjski pritisak koji vas tjera. Dakle, trebate stvoriti unutarnji pritisak. Vaš bi cilj trebao biti jednostavan i kvantitativan. Trebali biste istražiti dovoljno da biste postigli razuman cilj. Moja je bila sljedeća:

Zaposlite se za softverski inženjering u roku od jedne godine s istom ili boljom plaćom od one koju trenutno radim.

Plan

Jednom kada postignete cilj, potreban vam je plan koji će vam pomoći da stignete tamo. Ovdje konzumirate što više priča o uspjehu. Nijedan se od njih neće podudarati s vašom točnom situacijom, ali možete se savjetovati s njima. Razvio sam (i ponovio) svoj plan koristeći resurse poput subreddita learnprogramming, foruma freeCodeCamp i Medium.

27. svibnja 2017. odlučio sam da ću napraviti kodiranje i prvo sam zaronio u glavu. Tog sam dana odlučio započeti s radom ne više od 40 sati tjedno, tako da sam imao vremena za kodiranje nakon posla i vikendom. Srećom po vas, prilično sam dobro dokumentirao svoj napredak.

Moj plan, kroz mnoge ponavljanja, na kraju je izgledao otprilike ovako:

  1. Pođite na tečaj Uvod u CS da biste stekli temeljno razumijevanje temeljnih koncepata CS
  2. Slijedite freeCodeCamp dok samostalno ne mogu izraditi web-aplikacije s kompletnim hrpama na razini portfelja
  3. Refaktor za čišćenje koda, dodavanje testiranja, fokus na napredne koncepte
  4. Doprinite otvorenom kodu
  5. Pripremite se za razgovore za posao

Za početak je moj plan bio jednostavan. U to sam vrijeme mislio da ću slijediti Googleov tehnički vodič, pa sam počeo s njihovim preporučenim uvodnim tečajem, Udacity CS101.

Mjesec 0 - Udacity CS101, Harvard CS50

Vrhunac donošenja ove velike odluke dao mi je tonu energije. Kodiranje bih započeo čim bih se vratio kući s posla i ne bih prestajao dok ne bih legao. A onda opet cijeli vikend. Udacity CS101 pratio je postotak dovršenosti, što mi je bio veliki motivator. Svaki dan nakon kodiranja bilježio sam postotak dovršenosti. Prvih 75% završio sam za 10 dana. Posljednjih 25% bilo je teško u rekurziji i bilo je malo teže za mene. Sve u svemu, trebalo mi je 20 dana da završim Udacity CS101.

Dok sam uzimao Udacity CS101, počeo sam prilično teško čitati subreddit za učenje programiranja. Pročitao sam da je za samouke programere koji žele napraviti promjenu karijere važno biti aktivan na mreži. Odlučio sam napraviti nove račune za Twitter, Reddit, Stack Overflow, Medium i Quora koristeći svoje puno ime i prezime, kako bih mogao uspostaviti internetsku prisutnost.

Također, odlučio sam prestati čitati ometajuće medije poput Instagrama, Facebooka i ne-programskih subredita. Na telefonu bih provjeravao samo vijesti i postove povezane s programiranjem. To je bilo presudno za osiguravanje da doznajem o najboljim putovima učenja i resursima za učenje. Zbog toga sam na edX-u saznao za Harvard CS50.

Prvotno sam se zadovoljio samo jednim uvodnim tečajem, ali činilo se da svi preporučuju Harvard CS50, pa sam odlučio zaroniti u sljedeći. Studenti CS-a u drugim školama pohađali su ovaj tečaj i rekli da su u CS50 naučili više nego godinu ili dvije na njihovom sveučilištu koji su studirali CS. Opći je konsenzus bio da je tečaj bio težak, ali vrijedan toga. Do kraja mjeseca 0, završio sam prvih 5 predavanja i domaćih zadataka.

1. mjesec - Harvard CS50, Linux, 1. sastanak, freeCodeCamp

Dovršio sam CS50 otprilike na pola mjeseca. Neću previše komentirati svoje iskustvo sa CS50, jer sam ovdje napisao dubinski post o svom iskustvu.

TLDR: To je sjajan tečaj, toplo ga preporučujem. David Malan izvrstan je predavač i postoji mnoštvo resursa koji će vam pomoći da to prebrodite. Počinjete u C, prelazite na Python, a zatim završite s web razvojem. Vrlo je gusta i ima puno materijala, ali mislim da se itekako isplati.

Nakon CS50, odlučio sam postaviti svoj XPS 15 na dual boot Windows i Ubuntu. Bio je to frustrirajući vikend. Zabrljao sam particije i gotovo opekao laptop. Bio sam blizu nabijanja laptopa i nabave novog.

Polako sam se odviknuo od Windowsa i na kraju sam koristio isključivo Ubuntu. Htio sam se prisiliti da se udobno upoznam s naredbenim retkom za koji mislim da je djelovao u određenoj mjeri, ali moram još dugo prijeći.

Pokrenuo sam 100 dana koda kako bih osigurao da budem fokusiran i kodiran svaki dan.Važno je dokumentirati svoj napredak. Ako napredujete svaki dan, to vam se neće činiti puno, ali kad se osvrnete na mjesec ili nekoliko mjeseci, shvatit ćete da ste zapravo prilično napredovali što vas motivira da nastavite dalje.

Znao sam da će me umrežavanje učiniti ili slomiti, pa sam smogao hrabrosti i otišao na svoj prvi sastanak za kodiranje. Nikad nisam išao ni na jedan sastanak, a kamoli na sastanak kodiranja. Bila sam toliko nervozna da sam se nakon vožnje tamo, parkiranja i odlaska do vrata gotovo okrenula i otišla kući.

Pomoglo je što je to bilo prvo okupljanje grupe. Brzo sam shvatila da nema razloga za nervozu. Nitko se nije poznavao, nitko nije osuđivao i svi su bili željni učenja. Ovo je bio početak okupljanja. Na kraju sam prisustvovao preko 50 okupljanja u 9 mjeseci.

Drago mi je što sam počeo rano ići na sastanke. Većina ljudi počela je pohađati okupljanja tek kad su tražila posao, ali u tom je trenutku gotovo prekasno. Postoji toliko razloga za rani početak. Da navedemo samo nekoliko:

  1. Razvijanje odnosa traje dugo. Rano započeti znači da imate veze koje mogu jamčiti za vas kad kasnije tražite posao
  2. Razgovor o programiranju s nepoznatim ljudima sjajan je način pripreme za intervjue
  3. Nove okvire, alate i resurse za učenje možete naučiti od ljudi koji su ispred vas. To može utjecati na vaš budući plan učenja.

U ovom trenutku mog kodiranja bilo je neke neizvjesnosti. Bilo je to otprilike kad sam trebao odlučiti kakav programer želim biti.

U konačnici sam odabrao web razvoj jer se činilo da postoji velika potražnja, a također i puno internetskih resursa. Kad sam to već smislio, morao sam smisliti što dalje. Neki su mi preporučili da u ovoj fazi razmislim o web aplikacijama koje sam želio izgraditi, a zatim krenem. Neki su ljudi preporučili projekt Odin ili freeCodeCamp.

Tip koji je vodio tjedno okupljanje kojem sam prisustvovao poznavao je Ruby i želio je raditi projekte s njim. To je bio veliki razlog zašto sam donio odluku da uđem u projekt Odin.

A onda sam dva dana kasnije odustao od te ideje.

To je jedna od loših strana kretanja samoukim putem. Jedne minute pomislite da znate kojim putem biste trebali krenuti, ali onda se sljedeći dan zapitate je li to bio ispravan potez.

Pročitao sam da je Ruby padao u nemilost i to sam dokazao tražeći poslove za Ruby vs JavaScript, pa sam na kraju pokrenuo freeCodeCamp. Ono što me zasmetalo kod freeCodeCampa bilo je to što su smislili projektne ideje, pa svaki kamper radi iste projekte. To me se isprva tiče, jer sam se želio istaknuti među regrutima. Međutim, na kraju sam volio freeCodeCamp i sada ga toplo preporučujem. Za više detalja o mom iskustvu i preporukama u vezi s freeCodeCamp, pogledajte moj spis ovdje.

Mjesec 2 - YDKJS, prednji kraj freeCodeCamp, React

Počeo sam čitati Ne znaš JavaScript, jer su ga svi preporučili kao dodatak freeCodeCampu. Morao sam ponovno pročitati nekoliko odjeljaka jer je prilično gust, ali to je savršen resurs za učenje leksičkog opsega, zatvaranja, obećanja i svih dijelova JavaScript-a za koje čujete i koje želite naučiti, ali nikad, jer se čine teškim.

Završio sam front-end odjeljak freeCodeCampa. Format kontrolnog popisa i predviđeno vrijeme završetka pomogli su me motivirati da brzo završim. Svrbilo me i da prijeđem na sljedeći odjeljak i naučim React. Međutim, to je također značilo da su moji projekti imali minimalan stil. Učinio sam sve što je bilo potrebno da ispunim korisničke priče i ništa više.

Posmatrajući unatrag, možda sam se trebao usredotočiti na to da projekti budu privlačniji. Možda bi mi ovo pomoglo da dublje naučim CSS.

Sljedeći korak je bilo učenje React-a, i bio sam prilično napumpan.

Toliko sam toga čula o tome i bila sam spremna uklopiti se u cool djecu. Međutim, bio sam malo neodlučan s obzirom na probleme s licencama u to vrijeme. Zaista mi je drago što to više nije problem. Learning React mi je bilo teško. Tada nisam bio svjestan nijednog dobrog vodiča (ali čini se da sada postoji tona).

Pokušao sam pročitati dokumente i slijediti Facebook tutorial Tic-Tac-Toe, ali nisam baš sve razumio. Rečeno mi je ako mi to ne ide, onda znači da nisam razumio dovoljno JavaScript. Onda sam se vratio čitanju Ne znaš JavaScript, ali opet mi je to bilo pregusto.

Treći mjesec - freeCodeCamp React, CodeClub, Pokretanje freeCodeCamp Back End

U konačnici sam jednostavno odlučio da ću proći kroz freeCodeCamp React projekte kako bih vidio kako je prošlo. Taj je kod bio ružan, ali mi je pomogao da malo bolje razumijem React.

Taj sastanak kojem sam prisustvovao tjedno odlučio je da će oni umjesto Rubyja graditi projekte s JavaScriptom s punim hrpama i odlučili su da će prvi projekt biti izrada web stranice za grupu okupljanja CodeClub.Social.

Razvio sam kartice koristeći React i Meetup API omogućavajući korisniku da se prijavi za sljedeća tri okupljanja s naše web stranice. Bilo mi je malo teško napraviti kratku pauzu od freeCodeCampa da bih to učinio, ali to je bila prilika koju nisam mogao propustiti. Bio sam sretan što sam radio na projektu s malom skupinom ljudi. Također mi je pomoglo da naučim Git i Github.

Prije nego što je mjesec završio, počeo sam raditi na zadnjem dijelu freeCodeCampa.

4. mjesec - završen freeCodeCamp Back End, Yeggle

Radio sam kroz sve API projekte u freeCodeCampu, ali počeo sam odstupati od freeCodeCampa u projektu Sloj apstrakcije pretraživanja slika.

Svrbilo me izrađivati ​​full stack web aplikacije, pa čim sam vidio naslov ovog projekta, imao sam ideju za vlastiti projekt. Napravio bih čvornu aplikaciju koja bi spremala nasumične imgur URL-ove u bazu podataka, a zatim napravio prednji kraj koji bi izlazio korisnički određen broj tih slučajnih slika. Istina je ono što svi kažu: više radite i postižete više uspjeha kad radite na projektu koji je bio vaša ideja.

Jednom kad sam to počeo raditi, bio sam vrlo ponosan na sebe. Bilo je ružno i nezgrapno, ali uspjelo je.

Dok sam radio putem freeCodeCampa, učio sam o tome koji će projekti biti u okviru mojih mogućnosti. U to sam vrijeme redovito trčao, pa bih na trčanjeima smišljao ideje i zapisivao ih kad bih se vraćao kući. Na taj bih način imao popis projektnih ideja kad bih bio spreman.

Napokon sam se osjećao spremnim započeti izradu vlastitih korisnih i uglađenih web aplikacija s cjelovitim hrpom, koje bih podijelio s korisnicima i stavio svoj portfelj. Bila sam tako spremna za početak.

Kada sam tražio novi restoran, uvijek sam otkrio Yelp za provjeru recenzija, a zatim otvorio Karte za provjeru njihovih recenzija. Što ako napravim aplikaciju koja uspoređuje obje strane?

Tako sam napravio Yeggle. Koristio sam Node / Express / React zajedno s Google Maps i Yelp API-ima. Bilo je nekoliko prepreka koje nisam mislio da ću uspjeti prevladati, ali na kraju sam završio i bio sam vrlo ponosan na svoju aplikaciju. Tada sam ga objavio na Redditu, i nikoga nije bilo briga. To je bilo malo loše, ali nisam dopustio da me to sruši.

5. mjesec - dionicaIT

Ovaj mjesec nisam uspio obaviti toliko, jer sam započeo dvotjednim odmorom u Japanu i Tajlandu!

Ali započeo sam i dovršio svoj sljedeći projekt. Stalno sam čitao kako je bilo teško zaposliti se kao samouki programer, pa sam mislio da moram učiniti nešto jedinstveno. Sjetio sam se igre u kojoj je grafikon dionica Dow Jonesa počeo kretati, a vi ste imali jednu priliku za kupnju i jednu za prodaju, a cilj je bio pobijediti tržište. Svrha igre bila je pokazati vam koliko je teško pobijediti tržište.

Moja je ideja bila napraviti sličnu igru, ali umjesto na tržištu, vi biste se igrali protiv algoritma strojnog učenja. Tako sam stvorio StockIT.

Napravio sam video tutorial o Pandas i Scikit Learn koji je obuhvatio više tehnika strojnog učenja. Prvotno sam želio napraviti neke kul tehnike dubokog učenja, ali shvatio sam da su mi potrebni masovni skupovi podataka i više vremena nego što sam želio potrošiti.

Umjesto toga, zadržao sam se na jednostavnom modelu linearne regresije. Mislio sam da će to biti najteži dio, ali nije. Naterati D3 da radi s Reactom bio je najteži dio. Obje su knjižnice željele kontrolirati DOM. Bilo je još nekih knjižnica koje su pomogle da se pridruže dvjema, ali osjećao sam da su previše napuhane. Na kraju sam koristio D3 za generiranje SVG-ova i React za rukovanje DOM-om, što mi je uspjelo.

Ovaj put kad sam ga podijelio s Redditom, svi su ga voljeli!

Ispostavilo se da su, poput VC-a, i reditori sve to strojno učenje. Sva ljubav s Reddita bila je veliko pojačanje samopouzdanja. Ljudi su igrali moju igru ​​i uživali u njoj!

6. mjesec - sortiranje posla (), Priprema za posao

Nakon StockIT-a, prešao sam na sljedeći osobni projekt. Htio sam stvoriti oglasnu ploču koja bi objedinila manje web stranice s popisom poslova usredotočene na tehnologiju kao što su Stack Overflow, Github i Hacker News. Kako bih mu dodao svoj vlastiti jedinstveni spin, odlučio sam ga sortirati na temelju tehnologija koje je korisnik želio u poslu i koliko je želio svakog od njih.

Na primjer, recimo da sam tražio posao koji je tražio nekoga tko zna JavaScript, React i / ili Python, i stvarno sam želio raditi s JavaScriptom i Reactom, ali nisam toliko mario za Python. Tada bih mogao dati JavaScript 3, React 3, a možda i Python 1. Popisi bi se onda sortirali u skladu s tim.

Naišao sam na razne prepreke s ovim projektom i morao sam nekoliko puta promijeniti kurs, ali na kraju sam dobio proizvod s kojim sam bio zadovoljan. Posljednji tehnički stog bio mi je React / Node / Express / MySQL. Objavio sam projekt na cscareerquestions subreddit i dobio 650 pregleda prije nego što je uklonjen jer ne dopuštaju osobne projekte.

"Konačni" proizvod je ovdje, a ako vas zanima više o mojim borbama i refaktorima, pogledajte moj post ovdje.

Zbog mojih problema, jobSort () je zauzeo pristojan dio mjeseca. Na kraju sam dobio kavu s prijateljem kojeg sam upoznao na prvom susretu, a on mi je savjetovao da se odmah prijavim za posao. Posvuda sam pročitao da svi kažu da su predugo čekali da se prijave. Također, kad god bih vidio post s pitanjem kada se prijaviti, glavni komentar je uvijek bio "sada".

U svojoj glavi namjeravao sam proći kroz svoj strukturirani plan za izgradnju svog portfelja osobnim projektima, a zatim raditi na doprinosima otvorenog koda, a zatim se pripremiti za intervjue i konačno početi prijavljivati ​​na posao. Ovaj me prijatelj uvjerio da odustanem od tog plana i počnem se prijavljivati. Tako sam ovaj mjesec napravio portfelj i životopis. Sljedeći mjesec bih se počeo prijavljivati.

7. mjesec - Testiranje, traženje posla

Ovaj mjesec usredotočio sam se na dotjerivanje svojih projekata i prijavu na posao. Također sam želio naučiti testiranje i Redux.

Dodao sam flexbox u CodeClub.Social kako bi reagirao. Poboljšao sam mobilni UX na jobSort (). Dodao sam testiranje u jobSort () s mocha / chai / enzimom koji je bilo teško postaviti, lako započeti, a zatim teško dobiti 100% pokrivenost.

Do kraja mjeseca prijavila sam se za 63 radna mjesta. To sam doživljavao kao samoprocjenu. Je li moj portfelj / životopis bio dovoljno dobar? Ako da, na čemu sam trebao raditi kako bih se pripremio za intervju? Isprva sam se prijavio za Hacker News: Who is Hiring, and doista.

Na Hackerovim vijestima koristio sam jobSort () kako bih odredio za koje se liste moram prijaviti. U stvari, pokušao sam s ne-softverskim tvrtkama da vidim mogu li uopće dobiti poziv ili intervju bilo gdje.

U početku sam se brzo prijavljivao i nisam personalizirao svoj životopis / popratno pismo. Tada sam odlučio prilagoditi motivaciono pismo i životopis, a zatim pokušati poslati e-poštu nekome iz tvrtke. Ova je metoda očito bila bolja od pristupa puškama.

Tog sam mjeseca primio pet poziva - dva od regrutnih tvrtki i tri od softverskih tvrtki koji su uključivali:

  • ugovaranje DevOps-a / uloga za testiranje u dotcom tvrtki
  • tvrtka za analizu hrane serije B i
  • prilično velik i uspješan startup koji je nedavno kupila velika korporacija

U dva od njih prošao sam kraj HR zaslona, ​​ali niti jedan nije dao intervju na licu mjesta. Bila sam prilično sretna s tri poziva i puno sam naučila od njih.

Svi su na mreži spomenuli kako se od mlađih programera ne očekuje da toliko znaju od samog početka, samo trebaju biti strastveni i uzbuđeni da uče. Pa sam pomislio, lako. Strasna sam i uzbuđena što učim. Međutim, ono što sam naučio iz tih poziva bilo je da nitko nije tražio mlađeg programera. Očekuju da od prvog dana znate što radite.

Ti su me pozivi naučili da moram

  • biti dovoljno dobar da dodate vrijednost od prvog dana
  • budite dovoljno samopouzdani da ih uvjerite da od prvog dana mogu dodati vrijednost

8. mjesec - Noćna smjena, Redux, otvoreni izvor, intervju na licu mjesta

Počeo sam ovaj mjesec raditi u noćnoj smjeni u trajanju od 40 dana u svom punom radnom vremenu - 6 dana u tjednu, 12 sati dnevno, od 17:00 do 17:00. Uf.

Znao sam da ovog mjeseca neću moći toliko obaviti, ali imao sam cilj i želio sam ga ispuniti, pa nisam mogao uzeti mjesec dana odmora.

Refaktorirao sam jobSort kako bih upotrijebio Redux, što začudo nije bilo tako teško kao što sam mislio da će biti. Slušao sam puno podcastova o tome i čitao postove na blogu o tome, i nikad mi to nije imalo smisla dok ga nisam počeo koristiti.

Jako mi se sviđa protok podataka s Reduxom. Sada je zanimljivo vidjeti ljude kako se žale na Redux. Mislim da nisam kvalificiran za snažno isticanje svojih mišljenja, ali sviđa mi se obrazac reduktora.

Ovo je za mene trebao biti mjesec otvorenog koda. Namjeravao sam dati svoj prvi doprinos otvorenom izvoru, a to bi bio sjajan doprinos fantastičnoj knjižnici. Htio sam doprinijeti Reactu!

Svi su rekli da je teško čitati bazu koda, a kamoli pridonijeti. Ali trebao sam se istaknuti, trebao sam biti jedinstven. Znao sam da moj doprinos neće biti značajan, ali svejedno sam to želio učiniti.

Počeo bih čitajući dokumente do kraja, a zatim prosipajući kroz bazu koda. Gledajte svako izdanje, svaki PR. Čitanje React dokumenata u cijelosti bila je izvrsna vježba i drago mi je što sam to učinio. Ali brzo sam shvatio da je problem u doprinosu Reactu taj što jednostavno nema toliko "dobrih prvih izdanja" i brzo se ugrabe.

Na jednom od okupljanja kojima sam prisustvovao, Anthony Ng preporučio mi je da isprobam Downshift, knjižnicu za samodovršavanje Kenta C. Doddsa. Ovo je bio gamechanger. Bilo je to točno u mojoj kormilarnici. Prava poteškoća, prava količina problema oko kojih možete pomoći, ne previše suradnika, izvrsni uslužni održavatelj, čisti dobro provjereni kôd. Povrh svega, bilo je savršeno rješenje za neke probleme koje sam imao s aplikacijom jobSort ().

Otprilike na polovici mjeseca primio sam e-poštu od jedne od tvrtki za koje sam se prijavio u prethodnom mjesecu. Postavljaju početni zaslon telefona, a zatim tehnički zaslon telefona. Tehnologije koje su tražili bile su upravo ono što sam naučio - React, Redux i D3. Uglavnom sam samo pričao o svojim projektima i zašto sam donosio određene odluke. Nakon toga, zamolili su me da dođem na razgovor na lice mjesta. Moj prvi intervju na licu mjesta!

Uopće se nisam pripremao za intervjue, pa sam krenuo u njega očekujući da neću dobiti posao, ali ću steći dragocjeno iskustvo razgovora. Također sam trčao na tri sata sna jer sam još uvijek radio noćnu smjenu što nije pomoglo. Srećom, tehnički dio nije bio ploča, samo jednosatna sesija programiranja para. Bio je to prilično izravan izazov, ali bila sam vrlo nervozna.

U početku sam se brinuo kako bih bio siguran da znam sve, a da to nisam potražio. Kad sam shvatio da neću završiti izazov, shvatio sam da se moram prestati brinuti što anketar misli o meni i jednostavno google / stack prelijevati kako bih pronašao odgovore. Nisam na kraju završio i mislio sam da sam jadno propao.

Budući da sam mislio da nisam uspio programirati par, ostatak intervjua osjećao sam se opušteno. U konačnici, intervju sam napustio podignute brade. U najgorem slučaju dobio sam dragocjeno iskustvo razgovora, a u najboljem slučaju dobio sam prvu ponudu za posao.

9. mjesec - ponuda posla

Na kraju sam dobio prvu ponudu za posao 9 mjeseci i 7 dana nakon tog prvog dana kada sam odlučio da ću prvo zaroniti u programiranje s namjerom da promijenim karijeru. Osjećao sam se sigurno s obzirom da sam dobio ponudu nakon prvog razgovora na licu mjesta, ali istodobno, ako ne prihvatim ponudu, što ako je ovo jedina ponuda koju ću dobiti nekoliko mjeseci? Na kraju sam prihvatio ponudu i zadovoljan sam svojom odlukom. Htio sam biti plaćen za kodiranje!

Savjet

Do sada sam svoju priču uglavnom dijelio s nekoliko savjeta. Velike su šanse ako ovo čitate ili razmišljate o promjeni karijere ili ste usred učenja kodiranja s namjerom promjene karijere. Nadam se da će vam savjeti u nastavku pomoći da razvijete plan ili se pridržavate svog trenutnog plana i postignete svoj cilj.

  1. Otkrijte što vas motivira i iskoristite to u svoju korist. Za mene su to bili kontrolni popisi koji su dokumentirali moj napredak i interakciju s raznim programskim zajednicama. Ako niste motivirani da postignete svoj cilj, tada ništa drugo nije važno jer nećete završiti.
  2. Postavite ciljeve i ispunite ih. Tvrdio bih da biste trebali imati mjesečne, a možda i dnevne ciljeve. Mjesečni ciljevi kako biste bili sigurni da ste na putu da ispunite svoj glavni cilj, a dnevni ciljevi kako biste bili sigurni da svakodnevno napredujete. Jedna od strategija koja mi je uspijevala bila je postići svoje svakodnevne ciljeve prethodne noći. Na taj način ne možete raditi neproduktivan posao cijeli dan i osjećati se kao da ste napredovali kad zapravo niste. Prisiljava vas da uspoređujete svoja svakodnevna postignuća sa svojim dnevnim ciljevima.
  3. Idite na sastanke prije nego što mislite da ste spremni. Odlazak na sastanke može se osjećati zastrašujuće, ali kao što sam gore spomenuo. Ali, općenito su svi dragi i spremni pomoći. Možda ćete naći ljude koje ne zanima razgovor s vama, ali oni su manjina i nitko neće osuđivati. Također, svi vole davati savjete (kao što to sada radim).
  4. Doprinite otvorenom izvornom kodu prije nego što mislite da ste spremni. Kada prvi put započnete s programiranjem, Github vam se čini kao ovo zastrašujuće mjesto na koje nikada ne želite ići. Zapravo je vrlo dobrodošao za početnike i izvrsno je mjesto da vidite dobar kôd i pregledate vlastiti kôd. Ako još uvijek niste uvjereni, pogledajte moj post Zašto biste sada trebali doprinijeti otvorenom kodu.
  5. Počnite se prijavljivati ​​prije nego što mislite da ste spremni. Ovaj mi je bio težak jer sam mislio da sam drugačiji. Mislio sam da ne trebam testirati tržište da bih stekao osjećaj na čemu bih radio. Mislila sam da ću znati kada ću biti spremna za prijavu. Odmah vam kažem. Nećete znati kada se prijaviti. Dakle, mogli biste i započeti sada. Ne biste trebali poludjeti i prijaviti se za 300 tvrtki prije nego što naučite za petlje. Ali trebali biste znati da je najbolji način da saznate što trebate naučiti primjenom i testiranjem tržišta.

Sad se vratite i kodirajte!