Ako som za 9 mesiacov prešiel prácou na plný úväzok z nováčika do softvérového inžiniera

V tomto príspevku sa podelím o to, ako som prešiel z nuly (ish) na šesťmiestnu pracovnú ponuku softvérového inžinierstva za deväť mesiacov, keď som pracoval na plný úväzok a bol som samouk.

Kedykoľvek by som začal čítať úspešný príbeh, okamžite by som hľadal autorovo pozadie v nádeji, že sa bude zhodovať s tým mojim. Nikdy som nenašiel niekoho, kto by mal rovnaké pozadie ako ja, a ten môj sa pravdepodobne nebude presne zhodovať s tým vašim.

Dúfam, že môj príbeh inšpiruje ostatných a slúži ako hodnotný údajový bod, ktorý je možné pridať do súboru údajov o vašom úspešnom príbehu.

Úplné zverejnenie

Na strednej škole (pred deviatimi rokmi) som absolvoval kurz Visual Basic for Applications (VBA). Na prvom ročníku inžinierskeho kurzu (pred siedmimi rokmi) som sa naučil niekoľko jazykov C, Python, Matlab a Labview. Vyštudoval som dobrú univerzitu s titulom chemického inžinierstva a dobrým GPA (pred tromi rokmi). Nerobil som žiadne programovanie mimo školy, na strednej alebo vysokej škole, až kým som sa nerozhodol, že sa chcem učiť minulý rok.

Po vysokej škole som sa zamestnal ako procesný inžinier v rafinérii. Pracoval som tam, kým som nezmenil zamestnanie na softvérové ​​inžinierstvo.

Prečo som chcel zmeniť kariéru

Riešenie technických problémov ma bavilo, ale vedel som, že sa chcem niekedy dostať do sveta podnikania / startupu. Myšlienku na MBA som vždy držal v úzadí, ale zakaždým, keď som sa pozrel na cenovku najvyšších škôl, môj záujem opadol.

27. mája 2017 som znova začal googliť o MBA a nejako som narazil na softvérové ​​inžinierstvo. Vyzeralo to, že sa perfektne hodí.

Po softvérových inžinieroch je čoraz väčší dopyt, platy sú vysoké a je to perfektné odvetvie, z ktorého sa môžete dostať do sveta startupov bez toho, aby ste potrebovali tonu počiatočného kapitálu. Všetko, čo potrebujete, je počítač a vaše možnosti sú neobmedzené (akési).

V žiadnej inej inžinierskej disciplíne nemôžete mať len nápad, začať ho budovať, ukazovať používateľom a iterovať s malým kapitálom a nízkou prekážkou vstupu. V chemickom inžinierstve potrebujete na vytvorenie závodu v podstate fungujúci závod alebo veľa peňazí, ak ste mali nápad na nový produkt.

Počul som o ľuďoch, ktorí ukončili prácu a zúčastnili sa bootcampu, ale čím viac som o tom čítal online, tým viac som si uvedomoval, že to všetko sa môžeš naučiť úplne sám, ak si oddaný a sústredený.

Môžete namietať, že prichádzate o sieťové a kariérne poradenstvo poskytované bootcampom. To môže byť pravda, ale mal som šťastie v tom, že som býval v oblasti zálivu, čo mi umožnilo zúčastniť sa niekoľkých stretnutí, a tak som sa pripojil k sieti.

Najhoršie bolo okrem toho to, že som si uvedomil, že to sám nezvládnem, a potom by som opustil prácu a zúčastnil sa bootcampu.

Cieľ

Musíte mať cieľ. Najmä ak sa snažíte učiť pri práci na plný úväzok. Je ľahké nechať svoje učenie sa pretiahnuť, keď na vás netlačí žiadny vonkajší tlak. Musíte teda vytvoriť vnútorný tlak. Váš cieľ by mal byť jednoduchý a kvantitatívny. Mali by ste si urobiť dostatočný výskum, aby ste dosiahli rozumný cieľ. Moje bolo toto:

Získajte prácu softvérového inžinierstva do jedného roka s rovnakým alebo lepším platom, ako momentálne dosahujem.

Plán

Keď už máte cieľ, potrebujete plán, ktorý vám pomôže sa tam dostať. To je miesto, kde konzumujete toľko úspešných príbehov, koľko môžete. Žiadny z nich nebude zodpovedať vašej presnej situácii, od každého si však môžete nechať poradiť. Svoj plán som vyvinul (a iteroval) s využitím zdrojov, ako sú subreddit learnprogramming, fórum freeCodeCamp a Medium.

27. mája 2017 som sa rozhodol, že sa chystám skočiť do kódovania, a najskôr som sa ponoril do hlavy. V ten deň som sa rozhodol začať v práci zamestnávať najviac 40 hodín týždenne, aby som mal čas na kódovanie po práci a cez víkendy. Našťastie pre vás, urobil som dosť dobrú prácu s dokumentovaním môjho pokroku.

Môj plán prešiel mnohými iteráciami a vyzeral asi takto:

  1. Absolvujte kurz Úvod do CS, kde získate základné pochopenie základných pojmov CS
  2. Postupujte podľa freeCodeCamp, kým si nebudem môcť sám vytvoriť kompletné webové aplikácie na úrovni portfólia
  3. Refaktor na vyčistenie kódu, pridanie testovania, zameranie na pokročilé koncepty
  4. Prispejte do otvoreného zdroja
  5. Pripravte sa na prijímacie pohovory

Môj plán bol na začiatku jednoduchý. V tom čase som si myslel, že sa budem riadiť technickým sprievodcom spoločnosti Google, a tak som začal s ich odporúčaným úvodným kurzom Udacity CS101.

0. mesiac - Udacity CS101, Harvard CS50

Vrchol tohto veľkého rozhodnutia mi dal kopu energie. Začal by som programovať hneď po príchode z práce a nezastavil by som sa, kým by som nešiel spať. A potom znova celý víkend. Udacity CS101 sledoval percento dokončenia, čo bolo pre mňa veľkým motivátorom. Percento dokončenia som si zapisoval každý deň po kódovaní. Prvých 75% som dokončil za 10 dní. Posledných 25% bolo ťažkých v rekurzii a bolo to pre mňa o niečo tvrdšie. Celkovo mi trvalo dokončenie Udacity CS101 20 dní.

Keď som užíval Udacity CS101, začal som dosť intenzívne čítať program subreddit learnprogramming. Čítal som, že bolo dôležité, aby vývojári, ktorí sa učia samy, chceli zmeniť svoju kariéru, aby boli aktívni online. Rozhodol som sa vytvoriť nové účty Twitter, Reddit, Stack Overflow, Medium a Quora pomocou svojho celého mena, aby som si mohol vytvoriť online prítomnosť.

Tiež som sa rozhodol prestať čítať rušivé médiá ako Instagram, Facebook a neprogramovacie subreddity. Na telefóne by som skontroloval iba novinky a príspevky týkajúce sa programovania. To bolo rozhodujúce pri zabezpečovaní toho, aby som zisťoval najlepšie študijné cesty a učebné zdroje. Práve kvôli tomu som sa dozvedel o Harvarde CS50 na edX.

Pôvodne som bol spokojný s tým, že som absolvoval iba jeden úvodný kurz, ale zdá sa, že každý odporúčal Harvard CS50, takže som sa rozhodol ponoriť sa do toho ďalšieho. Študenti CS na iných školách absolvovali tento kurz a povedali, že na CS50 sa naučili viac ako rok alebo dva na univerzite študujúcej CS. Všeobecná zhoda bola v tom, že kurz bol náročný, ale stál za to. Do konca mesiaca 0 som absolvoval prvých 5 prednášok a domácich úloh.

1. mesiac - Harvard CS50, Linux, 1. stretnutie, freeCodeCamp

CS50 som dokončil asi v polovici mesiaca. Nebudem sa príliš vyjadrovať k svojej skúsenosti s CS50, pretože som tu napísal podrobný príspevok o svojich skúsenostiach.

TLDR: Je to skvelý kurz, veľmi ho odporúčam. David Malan je vynikajúci lektor a existuje veľa zdrojov, ktoré vám pomôžu prekonať ho. Začnete v C, presuniete sa do Pythonu a potom skončíte s vývojom webu. Je veľmi hustý a je tu veľa materiálu, ale myslím si, že to stojí za to.

Po CS50 som sa rozhodol nastaviť svoj XPS 15 na duálne bootovanie Windows a Ubuntu. To bol frustrujúci víkend. Pokazil som svoje priečky a takmer som zamuroval notebook. Bol som blízko, keď som upchal svoj laptop a získal nový.

Pomaly som sa odstavil od Windows a nakoniec som používal výlučne Ubuntu. Chcel som sa prinútiť, aby som sa uspokojil s príkazovým riadkom, o ktorom si myslím, že do istej miery fungoval, ale čaká ma ešte dlhá cesta.

Začal som 100 dní kódu, aby som sa ubezpečil, že som každý deň sústredený a kódovaný.Je dôležité zdokumentovať váš pokrok. Ak robíte pokrok každý deň, nebude sa to zdať veľa, ale keď sa pozriete späť mesiac alebo niekoľko mesiacov, uvedomíte si, že ste skutočne dosiahli dosť veľký pokrok, ktorý vás motivuje pokračovať.

Vedel som, že vytváranie sietí ma privedie alebo zlomí, a tak som nabral odvahu a vydal sa na prvé stretnutie o kódovaní. Nikdy som nešiel na žiadne stretnutie, nieto na programovacie stretnutie. Bol som taký nervózny, že po jazde autom, parkovaní a kráčaní k dverám som sa takmer otočil a išiel domov.

Pomohlo to, že to bolo prvé stretnutie skupiny. Rýchlo som si uvedomil, že nie je dôvod byť nervózny. Nikto sa navzájom nepoznal, nikto neodsudzoval a všetci sa túžili učiť. To bol začiatok stretnutí. Nakoniec som sa zúčastnil viac ako 50 stretnutí za 9 mesiacov.

Som rád, že som začal chodiť na stretnutia skoro. Väčšina ľudí sa začala stretávania stretávať až pri hľadaní práce, ale v tom okamihu je už skoro neskoro. Existuje toľko dôvodov, prečo začať skoro. Vymenovať zopár:

  1. Rozvíjanie vzťahov trvá dlho. Skorý začiatok znamená, že máte kontakty, ktoré sa za vás môžu zaručiť pri neskoršom hľadaní práce
  2. Rozprávanie o programovaní s cudzími ľuďmi je skvelý spôsob, ako sa pripraviť na pohovory
  3. Nové rámce, nástroje a učebné zdroje sa môžete naučiť od ľudí, ktorí sú pred vami. To môže ovplyvniť váš budúci vzdelávací plán.

V tejto dobe mojej kódovacej cesty vládla určitá neistota. Bolo to asi vtedy, keď som sa potreboval rozhodnúť, aký softvérový vývojár chcem byť.

Nakoniec som si vybral vývoj webových aplikácií, pretože sa zdalo, že existuje vysoký dopyt a tiež veľa online zdrojov. Keď som to už raz zistil, potreboval som prísť na to, čo robiť ďalej. Niektorí ľudia odporúčali, aby som v tejto fáze premýšľal o webových aplikáciách, ktoré som chcel vytvoriť, a potom začnem pracovať. Niektorí odporúčali The Odin Project alebo freeCodeCamp.

Chlapík, ktorý organizoval týždenné stretnutie, ktorého som sa zúčastňoval, poznal Ruby a chcel s Ruby robiť projekty. To bol veľký dôvod, prečo som sa rozhodol zapojiť do projektu Odin.

A potom som o dva dni neskôr túto myšlienku opustil.

To je jedna z nevýhod cesty cestou samouka. Jednu minútu si myslíte, že viete, akou cestou by ste sa mali vydať, ale potom vás na druhý deň napadne, či to bol správny krok.

Čítal som, že Ruby upadá do nemilosti, a dokázal som to vyhľadávaním úloh Ruby vs JavaScript, takže som nakoniec spustil freeCodeCamp. Jedna vec, ktorá mi na freeCodeCamp vadila, bolo to, že prišli s myšlienkami projektu, takže každý táborník robí rovnaké projekty. To sa ma spočiatku týkalo, pretože som chcel vyniknúť medzi náborármi. Nakoniec som však freeCodeCamp miloval a teraz ho vrelo odporúčam. Viac podrobností o mojich skúsenostiach a odporúčaniach týkajúcich sa freeCodeCamp nájdete tu

2. mesiac - YDKJS, klientske rozhranie freeCodeCamp, reagovať

Začal som čítať JavaScript You Don't Know, pretože ho všetci odporúčali na doplnenie freeCodeCamp. Musel som znovu prečítať niekoľko častí, pretože je dosť hustý, ale je to dokonalý zdroj na naučenie sa lexikálneho rozsahu, uzávierok, sľubov a všetkých častí JavaScriptu, o ktorých sa dozviete a chcete sa ich naučiť, ale nikdy to neurobíte, pretože sa zdajú ťažké.

Dokončil som front-end sekciu freeCodeCamp. Formát kontrolného zoznamu a predpokladaný čas dokončenia ma motivovali k rýchlemu dokončeniu. Tiež ma svrbenie presunulo do ďalšej časti a naučilo sa Reagovať. To však tiež znamenalo, že moje projekty mali minimálny styling. Urobil som všetko, čo bolo potrebné, aby som naplnil príbehy používateľov a nič viac.

S odstupom času by som sa mal zamerať na to, aby boli projekty príťažlivejšie. Možno by mi to pomohlo hlbšie sa naučiť CSS.

Ďalším krokom bolo naučiť sa Reagovať a bol som dosť napumpovaný.

Počula som o tom už toľko a bola som pripravená zapadnúť medzi tie super deti. Vzhľadom na vtedajšie problémy s licenciou som však trochu váhal. Som naozaj rád, že to už nie je problém. Naučiť sa reagovať bolo pre mňa ťažké. Vtedy som si nebol vedomý žiadnych dobrých návodov (ale zdá sa, že teraz je ich veľa).

Snažil som sa prečítať dokumenty a sledovať spolu s tutoriálom Facebooku Tic-Tac-Toe, ale celkom som tomu všetkému nerozumel. Bolo mi povedané, že ak to nefunguje pre mňa, znamená to, že som dostatočne nerozumel JavaScriptu. Tak som sa vrátil k čítaniu You Don't Know JavaScript, ale zase to bolo pre mňa príliš husté.

3. mesiac - freeCodeCamp reaguje, CodeClub, začína freeCodeCamp Back End

Nakoniec som sa rozhodol, že sa prepracujem cez projekty freeCodeCamp React a uvidím, ako to pôjde. Ten kód bol škaredý, ale pomohol mi pochopiť Reagovať trochu lepšie.

To stretnutie, na ktorom som sa každý týždeň zúčastňoval, rozhodlo, že namiesto Ruby bude stavať projekty s plným JavaScriptom a rozhodli sa, že prvým projektom bude vybudovanie webu pre skupinu meetup, CodeClub.Social.

Vyvinul som karty pomocou rozhrania React and Meetup API, ktoré umožňujú používateľovi prihlásiť sa na ďalšie tri stretnutia z našej webovej stránky. Bolo pre mňa trochu ťažké rýchlo si oddýchnuť od freeCodeCamp, ale bola to príležitosť, ktorú som nemohol minúť. Bol som šťastný, že som mohol pracovať na projekte s malou skupinou ľudí. Pomohlo mi to tiež naučiť sa Git a Github.

Pred koncom mesiaca som začal pracovať na backendovej časti freeCodeCamp.

4. mesiac - hotové freeCodeCamp back end, Yeggle

Pracoval som cez všetky API projekty vo freeCodeCamp, ale začal som sa odchyľovať od freeCodeCamp v projekte Image Search Abstraction Layer.

Veľmi som sa snažil vyrobiť webové aplikácie s plným zásobníkom, takže hneď ako som videl názov tohto projektu, dostal som nápad na svoj vlastný projekt. Urobil by som aplikáciu uzla, ktorá by ukladala náhodné imgur adresy URL do databázy, a potom by som vytvoril frontend, ktorý by na výstup privádzal používateľom zadaný počet tých náhodných obrázkov. To, čo všetci hovoria, je pravda: pracujete tvrdšie a máte väčší úspech, keď pracujete na projekte, ktorý bol podľa vášho vlastného nápadu.

Keď som to raz dostal do práce, bol som na seba veľmi hrdý. Bolo to škaredé a neohrabané, ale fungovalo to.

Keď som pracoval cez freeCodeCamp, dozvedel som sa, aké projekty budú v mojich možnostiach. V tom čase som behával pravidelne, takže som pri svojich behoch prichádzal s myšlienkami a po príchode domov si ich zapisoval. Takto by som mal zoznam projektových nápadov, keď by som bol pripravený.

Konečne som sa cítil pripravený začať vyrábať svoje vlastné užitočné a vycibrené full-stack webové aplikácie, ktoré budem zdieľať s používateľmi a využívať svoje portfólio. Bol som tak pripravený začať.

Pri hľadaní novej reštaurácie som sa vždy ocitol v tom, že otváram Yelp na kontrolu recenzií a potom otváram Mapy, aby som skontroloval ich recenzie. Čo keby som vytvoril aplikáciu, ktorá porovnáva obe stránky vedľa seba?

Takže som urobil Yeggle. Použil som Node / Express / React spolu s API Google Maps a Yelp. Bolo pár prekážok, o ktorých som si nemyslel, že ich dokážem prekonať, ale nakoniec som skončil a bol som na svoju aplikáciu veľmi hrdý. Potom som to poslal na Reddit a nikoho to nezaujímalo. To bolo trochu fuk, ale nenechal som sa tým dostať dole.

5. mesiac - StockIT

Tento mesiac som toho až tak veľa nestihol, pretože som to začal dvojtýždňovou dovolenkou v Japonsku a Thajsku!

Ale začal som a dokončil svoj ďalší projekt. Stále som čítal o tom, aké ťažké je zamestnať sa ako samouk vývojár, a tak som si povedal, že musím urobiť niečo jedinečné. Spomenul som si na hru, v ktorej začal trendovať akciový graf Dow Jonesa a vy ste mali jednu príležitosť na nákup a jednu na predaj, a cieľom bolo poraziť trh. Účelom hry bolo ukázať vám, aké ťažké bolo poraziť trh.

Mojou myšlienkou bolo vytvoriť podobnú hru, ale namiesto trhu by ste hrali proti algoritmu strojového učenia. Tak som vytvoril StockIT.

Zúčastnil som sa videonávodu o programoch Pandas a Scikit Learn, ktorý sa venoval viacerým technikám strojového učenia. Pôvodne som chcel urobiť niekoľko skvelých techník hlbokého učenia, ale uvedomil som si, že to vyžadovalo obrovské súbory údajov a viac času, ako som chcel stráviť.

Namiesto toho som sa držal jednoduchého lineárneho regresného modelu. Myslel som si, že to bude tá najťažšia časť, ale nebolo to tak. Dostať D3 do jive s Reactom bola ťažká časť. Obidve knižnice chceli ovládať DOM. K týmto dvom sa pripojili ďalšie knižnice, ale cítil som, že sú príliš nafúknuté. Nakoniec som použil D3 na generovanie SVG a Reagoval na zvládnutie DOM, ktorý mi celkom dobre vyšiel.

Tentokrát, keď som to zdieľal s Reddite, sa to všetkým páčilo!

Ukázalo sa, že rovnako ako videorekordéry, aj redditors sú zamerané na toto strojové učenie. Všetka láska z Redditu bola veľkým zvýšením dôvery. Ľudia hrali moju hru a bavili ju!

6. mesiac - jobSort (), Job Hunt Prep

Po StockIT som sa dal priamo do môjho ďalšieho osobného projektu. Chcel som vytvoriť pracovnú dosku, ktorá by agregovala menšie technologicky zamerané webové zoznamy pracovných ponúk, ako sú Stack Overflow, Github a Hacker News. Aby som k tomu pridal svoje vlastné jedinečné zatočenie, rozhodol som sa ho usporiadať podľa technológií, ktoré používateľ v práci chcel, a podľa toho, ako veľmi chcel každú z nich.

Napríklad povedzme, že som hľadal prácu, ktorá by hľadala niekoho, kto ovládal JavaScript, React a / alebo Python, a naozaj som chcel pracovať s JavaScriptom a Reactom, ale na Pythone mi až tak nezáležalo. Potom by som mohol dať JavaScriptu číslo 3, Reagovať číslom 3 a možno Pythonu číslo 1. Výpisy by sa potom podľa toho zoradili.

S týmto projektom som narazil na rôzne prekážky a musel som párkrát zmeniť smer, ale skončil som pri produkte, s ktorým som bol spokojný. Môj posledný technologický zásobník bol React / Node / Express / MySQL. Projekt som umiestnil do subredditu cscareerquestions a pred odstránením som získal 650 zobrazení, pretože neumožňujú osobné projekty.

„Konečný“ produkt je tu. Ak by ste sa chceli dozvedieť viac o mojich bojoch a refaktoroch, pozrite si môj príspevok tu.

Kvôli mojim problémom zabral jobSort () slušnú časť mesiaca. Nakoniec som dostal kávu u priateľa, ktorého som stretol pri prvom stretnutí, a ten mi poradil, aby som sa teraz začal uchádzať o prácu. Všade som čítal, že každý hovorí, že na prihlášku čakal príliš dlho. Tiež vždy, keď som uvidel príspevok s otázkou, kedy sa prihlásiť, hlavný komentár bol vždy „teraz“.

Vo svojej hlave som sa chystal prepracovať svoj štruktúrovaný plán vybudovať svoje portfólio na osobných projektoch, potom pracovať na príspevkoch otvoreného zdroja, pripraviť sa na pohovory a nakoniec sa začať uchádzať o prácu. Tento priateľ ma presvedčil, aby som tento plán zrušil a začal sa uchádzať. Tento mesiac som teda vytvoril portfólio a životopis. Nasledujúci mesiac by som sa začal uchádzať.

7. mesiac - Testovanie, hľadanie zamestnania

Tento mesiac som sa zameral na retušovanie svojich projektov a uchádzanie sa o pracovné miesta. Chcel som sa naučiť aj testovanie a Redux.

Do CodeClub.Social som pridal flexbox, aby bol responzívny. Vylepšil som mobilné UX na jobSort (). Pridal som testovanie do jobSort () s mocha / chai / enzýmom, ktoré bolo ťažké nastaviť, ľahko sa naštartovalo a potom ťažko získať 100% pokrytie.

Do konca mesiaca som sa uchádzal o 63 pracovných miest. Považoval som to za sebahodnotenie. Bolo moje portfólio / životopis dosť dobré? Ak áno, na čom som musel pracovať, aby som sa pripravil na pohovory? Spočiatku som podával prihlášku do programu Hacker News: Who is Hiring, and Indeed.

V Hacker News som pomocou jobSort () určil, o ktoré zoznamy sa mám uchádzať. Na stránkach Skutočne som vyskúšal iné ako softvérové ​​spoločnosti, aby som zistil, či by mi vôbec niekde zavolali alebo pohovorili.

Spočiatku som sa uchádzal rýchlo a neprispôsoboval som si životopis / motivačný list. Potom som sa rozhodol prispôsobiť svoj motivačný list a pokračovať, a potom sa pokúsim poslať e-mail niekomu zo spoločnosti. Táto metóda bola zjavne lepšia ako brokovnica.

Ten mesiac som dostal päť hovorov - dva od náborových spoločností a tri od softvérových spoločností, ktoré zahŕňali:

  • zmluvná úloha DevOps / testovania v spoločnosti dotcom
  • spoločnosť zaoberajúca sa analytikou potravín série B a
  • pomerne veľký a úspešný startup, ktorý nedávno kúpila veľká spoločnosť

V dvoch z nich som prešiel cez HR obrazovku, ale žiadny z nich nepriniesol miestny rozhovor. Bol som veľmi šťastný z týchto troch hovorov a veľa som sa od nich naučil.

Všetci online spomínali, že sa od mladých vývojárov neočakáva, že to budú vedieť hneď od začiatku, len musia byť vášniví a nadšení, aby sa učili. Tak som si myslel, ľahké. Som vášnivý a nadšený, že sa učím. Z týchto hovorov som sa však dozvedel, že nikto nehľadal juniorského vývojára. Očakávajú, že od prvého dňa budete vedieť, čo robíte.

Tieto hovory ma naučili, že musím

  • byť dosť dobrí na to, aby ste pridali hodnotu od prvého dňa
  • mať dostatočnú sebadôveru a presvedčiť ich, že môžem od prvého dňa zvyšovať hodnotu

8. mesiac - Nočná smena, Redux, otvorený zdroj, rozhovor na mieste

Tento mesiac som začal pracovať na nočnej zmene na 40 dní v plnom úväzku - 6 dní v týždni, 12 hodín denne, 17:00 - 5:00. Uf.

Vedel som, že tento mesiac toho nestihnem toľko, ale mal som cieľ a chcel som ho splniť, takže som si nemohol vziať mesiac pauzu.

Refaktoroval som jobSort, aby som používal Redux, čo prekvapivo nebolo také ťažké, ako som si myslel, že to bude. Počúval som o tom veľa podcastov a čítal som o nich blogposty a nikdy mi to celkom nedávalo zmysel, kým som ich nezačal používať.

Veľmi sa mi páči tok údajov s Reduxom. Teraz je zaujímavé vidieť, ako sa ľudia sťažujú na Redux. Nemyslím si, že by som bol schopný silno chrliť svoje názory, ale páči sa mi redukčný vzor.

Toto mal byť pre mňa mesiac otvoreného zdroja. Chystal som sa prispieť svojím prvým open source príspevkom a bol by to skvelý príspevok do fantastickej knižnice. Chystal som sa prispieť do React!

Všetci hovorili, že je ťažké čítať databázu kódov, natož prispievať. Potreboval som však vyniknúť, potreboval som byť jedinečný. Vedel som, že môj príspevok nebude významný, ale napriek tomu som to chcel urobiť.

Začal by som úplným prečítaním dokumentov a následným preliatím kódovej základne. Sledujte každé vydanie, každé PR. Úplné prečítanie dokumentov React bolo skvelým cvičením a som rád, že sa mi to podarilo. Ale rýchlo som si uvedomil, že problém s prispievaním do Reactu je ten, že jednoducho nie je toľko „dobrých prvých problémov“, a rýchlo ich vytrhnú.

Na jednom zo stretnutí, na ktorých som sa zúčastnil, mi Anthony Ng odporučil vyskúšať Downshift, knižnicu automatického dopĺňania od Kenta C. Doddsa. Toto bol gamechanger. Bolo to priamo v mojej kormidlovni. Správna obtiažnosť, správne množstvo problémov, s ktorými treba pomôcť, nie príliš veľa spolupracovníkov, super ochotný správca, čistý dobre otestovaný kód. Okrem toho to bolo dokonalé riešenie niektorých problémov, ktoré som mal so svojou aplikáciou jobSort ().

Asi v polovici mesiaca som dostal e-mail od jednej zo spoločností, do ktorej som sa prihlásil v predchádzajúcom mesiaci. Nastavili úvodnú obrazovku telefónu a potom technickú obrazovku telefónu. Technológie, ktoré hľadali, boli presne to, čo som sa naučil - React, Redux a D3. Väčšinou som hovoril iba o svojich projektoch a o tom, prečo som urobil určité rozhodnutia. Potom ma požiadali, aby som prišiel na pohovor na miesto. Môj prvý rozhovor na mieste!

Vôbec som sa nepripravoval na pohovory, tak som do toho išiel s očakávaním, že prácu nezískam, ale získam cenné skúsenosti s pohovormi. Tiež som bežal na tri hodiny spánku, pretože som stále pracoval v nočnej zmene, čo mi nepomohlo. Našťastie technická časť nebola tabuľa, iba hodinové párové programovanie. Bola to dosť priama výzva, ale bol som veľmi nervózny.

Spočiatku som mal obavy z toho, že sa o všetkom dozviem bez toho, aby som to vyhľadal. Keď som si uvedomil, že výzvu nechystám dokončiť, uvedomil som si, že si musím prestať robiť starosti, čo si o mne myslí anketár, a nájsť odpovede len tak, že pretečem google / stack. Skončil som nakoniec a myslel som si, že som zlyhal na celej čiare.

Keďže som si myslel, že som programovanie dvojice zlyhal, po zvyšok rozhovoru som sa cítil uvoľnene. Nakoniec som rozhovor nechal s bradou hore. Najhorší prípad som získal cenné skúsenosti s pohovormi a v najlepšom prípade som dostal svoju prvú pracovnú ponuku.

9. mesiac - Pracovná ponuka

Nakoniec som dostal svoju prvú pracovnú ponuku 9 mesiacov a 7 dní po prvom dni, keď som sa rozhodol, že sa najskôr ponorím do programovania s úmyslom zmeniť kariéru. Cítil som sebavedomie vzhľadom na to, že som dostal ponuku po mojom prvom pohovore na mieste, ale zároveň, ak som ponuku nevyužil, čo keby to bola jediná ponuka, ktorú dostanem na niekoľko mesiacov? Nakoniec som ponuku využil a som šťastný zo svojho rozhodnutia. Chcel som dostať zaplatené za kód!

Rada

Až do tohto okamihu som sa väčšinou podelil o svoj príbeh s nejakými radami, ktoré sú tam zasypané. Je pravdepodobné, že keď si toto prečítate, buď premýšľate o zmene kariéry, alebo sa nachádzate uprostred učenia sa kódovania so zámerom zmeniť kariéru. Dúfam, že nasledujúce rady vám pomôžu vypracovať plán alebo sa držať svojho súčasného plánu a dosiahnuť svoj cieľ.

  1. Zistite, čo vás motivuje, a využite to vo svoj prospech. Pre mňa to boli kontrolné zoznamy, dokumentujúce môj pokrok a interakcia s rôznymi programátorskými komunitami. Ak nie ste motivovaní dosiahnuť svoj cieľ, potom na ničom inom nezáleží, pretože nedokončíte.
  2. Stanovte si ciele a splňte ich. Tvrdil by som, že by ste mali mať mesačné ciele a možno aj denné ciele. Mesačné ciele, aby ste sa ubezpečili, že ste na správnej ceste k splneniu svojho hlavného cieľa, a denné ciele, aby ste sa ubezpečili, že skutočne dosiahnete každodenný pokrok. Jedna stratégia, ktorá pre mňa fungovala, bolo urobiť si svoje denné ciele noc predtým. Takto nemôžete celý deň vykonávať neproduktívnu prácu a mať pocit, že ste dosiahli pokrok, keď ste to naozaj neurobili. Núti vás to porovnávať vaše každodenné úspechy s vašimi dennými cieľmi.
  3. Choďte na stretnutia, než si myslíte, že ste pripravení. Ísť na stretnutia môže byť strašidelné, ale ako som už spomínal vyššie. Ale vo všeobecnosti sú všetci milí a ochotní pomôcť. Možno nájdete ľudí, ktorí nemajú záujem o rozhovor s vami, ale sú v menšine a nikto nebude súdiť. Všetci tiež radi poradia (ako to robím práve teraz).
  4. Prispejte spôsobom otvoreného zdroja skôr, ako si myslíte, že ste pripravení. Pri prvom spustení programovania sa Github javí ako toto strašidelné miesto, kam nikdy nechcete ísť. Je to skutočne veľmi vítané pre začiatočníkov a je to skvelé miesto, kde môžete vidieť dobrý kód a skontrolovať svoj vlastný kód. Ak stále nie ste presvedčení, pozrite sa na môj príspevok, prečo by ste práve teraz mali prispieť do open source.
  5. Začnite nanášať skôr, ako si myslíte, že ste pripravení. Tento bol pre mňa ťažký, pretože som si myslel, že som iný. Myslel som si, že nepotrebujem testovať trh, aby som získal prehľad o tom, na čom pracovať. Myslel som si, že budem vedieť, kedy budem pripravený podať žiadosť. Hovorím ti to práve teraz. Nebudete vedieť, kedy sa prihlásiť. Takže môžete začať aj teraz. Skôr ako sa naučíte slučky, nemali by ste sa zblázniť a prihlásiť sa do 300 spoločností. Mali by ste však vedieť, že najlepší spôsob, ako zistiť, čo sa musíte naučiť, je aplikácia a testovanie trhu.

Teraz sa vráťte späť a kódujte!