Hogyan váltam újoncból szoftvermérnökvé 9 hónap alatt, miközben teljes munkaidőben dolgoztam

Ebben a bejegyzésben megosztom, hogyan mentem nulláról (ish) egy hatjegyű szoftvermérnöki állásajánlatra kilenc hónap alatt, miközben teljes munkaidőben dolgoztam és autodidakta voltam.

Amikor sikertörténetet kezdenék olvasni, azonnal megkeresem a szerző hátterét, remélve, hogy az megegyezik az enyémmel. Soha nem találtam valakit, aki ugyanolyan háttérrel rendelkezne, mint én, és valószínűleg az enyém nem fog pontosan megfelelni a tiédnek.

Mindazonáltal remélem, hogy történetem inspirál másokat, és értékes adatpontként működik, amely hozzáadható a sikertörténet adatkészletéhez.

Teljes nyilvánosságra hozatal

A középiskolában egy Visual Basic for Applications (VBA) tanfolyamot vettem részt (kilenc évvel ezelőtt). Az elsőéves mérnök tanfolyamomon (hét évvel ezelőtt) megtanultam néhány C-t, Python-ot, Matlab-ot és Labview-t. Jó egyetemet végeztem vegyészmérnöki diplomával és jó GPA-val (három évvel ezelőtt). Addig nem programoztam iskolán kívül, középiskolában vagy főiskolán, amíg el nem döntöttem, hogy tavaly szeretnék tanulni.

A főiskola után folyamatmérnökként dolgoztam egy finomítónál. Addig dolgoztam, amíg nem változtattam karriert Software Engineering-re.

Miért akartam karriert váltani?

Élveztem a technikai problémák megoldását, de tudtam, hogy valamikor be akarok jutni az üzleti / startup világba. Mindig a fejemben tartottam az MBA gondolatát, de valahányszor megnéztem a felsőbb iskolák árcéduláját, érdeklődésem alábbhagyott.

2017. május 27-én ismét azon kaptam magam, hogy az MBA-król guglizok, és valahogy belebotlottam a szoftvertervezésbe. Tökéletes illeszkedésnek tűnt.

A szoftvermérnökök iránti kereslet egyre nagyobb, a fizetések nagyok, és ez a tökéletes iparág, ahonnan be lehet jutni a startup világba anélkül, hogy rengeteg kezdőtőkére lenne szükség. Csak egy számítógépre van szükséged, és a lehetőségeid korlátlanok (ilyenek).

Semmilyen más mérnöki tudományágban nem lehet csak ötleted, elkezdheted építeni, megmutatni a felhasználóknak, és kis tőkével és alacsony belépési korlátokkal iterálhatsz. A vegyészmérnöki munkában lényegében egy üzemre vagy sok pénzre van szüksége az üzem megtervezéséhez, ha ötlete volt egy új termékről.

Hallottam arról, hogy az emberek otthagyták a munkájukat, és részt vettek egy bootcamp-on, de minél többet olvastam róla online, annál inkább rájöttem, hogy teljesen elsajátíthatja egyedül, ha elkötelezett és koncentrált.

Azt állíthatja, hogy elveszíti a bootcamp által nyújtott hálózati és karrier tanácsokat. Ez igaz lehet, de szerencsés voltam abban, hogy a Bay Area-ban éltem, ami lehetővé tette számomra, hogy több találkozón részt vegyek, így így hálózatba léptem.

Ezenkívül a legrosszabb eset az volt, hogy rájöttem, hogy egyedül nem tudom megtenni, és akkor abbahagyom a munkámat, hogy részt vegyek egy bootcamp-on.

A cél

Célod kell. Különösen, ha teljes munkaidőben dolgozik. Könnyű hagyni, hogy a tanulás elhúzódjon, ha nincs külső nyomás. Tehát meg kell teremteni a belső nyomást. Céljának egyszerűnek és kvantitatívnak kell lennie. Elég kutatást kell végeznie egy ésszerű cél elérése érdekében. Az enyém a következő volt:

Szerezzen be egy szoftvertervezői állást egy éven belül azonos vagy jobb fizetéssel, mint amit most keresek.

A terv

Ha megvan a célja, szüksége van egy tervre, amely segít elérni. Itt fogyaszt el minél több sikertörténetet. Egyik sem fog megfelelni az Ön pontos helyzetének, de tanácsot vehet mindegyiktől. Olyan erőforrások felhasználásával dolgoztam ki (és ismételtem) a tervemet, mint például a learnprogramming subreddit, a freeCodeCamp fórum és a Medium.

2017. május 27-én úgy döntöttem, hogy be fogom ugrani a kódolást, és először a fejembe merültem. Azon a napon úgy döntöttem, hogy legfeljebb heti 40 órát kezdek el a munkahelyemen, hogy legyen időm kódolni munka után és hétvégén. Az ön szerencséjére elég jó munkát végeztem a fejlődésem dokumentálásában.

A tervem sok ismétlés révén valami ilyesmit nézett ki:

  1. Vezessen be egy Intro to CS tanfolyamot, hogy szilárd alapot nyerjen az alapvető CS fogalmak megértéséhez
  2. Kövesse a freeCodeCamp programot, amíg egyedül nem tudok portfólió szintű teljes verem webalkalmazásokat építeni
  3. Refaktor a kód megtisztításához, tesztelés hozzáadásához, a fejlett fogalmakra koncentrál
  4. Hozzájárulás a nyílt forráskódhoz
  5. Készülj fel az állásinterjúkra

Először is, a tervem egyszerű volt. Akkor azt hittem, hogy a Google technikai útmutatóját fogom követni, ezért az ajánlott bevezető tanfolyamukkal kezdtem, az Udacity CS101-vel.

0. hónap - Udacity CS101, Harvard CS50

A nagy döntés meghozatala rengeteg energiát adott nekem. Elkezdtem kódolni, amint hazaértem a munkából, és nem álltam le, amíg lefeküdtem. Aztán megint egész hétvégén. Az Udacity CS101 nyomon követte a teljesítési százalékot, ami nagy motivációt jelentett számomra. A kódolás után minden nap naplóztam a teljesítési százalékomat. 10 nap alatt fejeztem be az első 75% -ot. Az utolsó 25% nehéz volt rekurzióban, és egy kicsit keményebb volt számomra. Összességében 20 napba telt, mire befejeztem az Udacity CS101-et.

Amíg az Udacity CS101-et szedtem, elég erősen elkezdtem olvasni a learnprogramming subreddit-t. Azt olvastam, hogy fontos, hogy az autodidakta fejlesztők a karrier megváltoztatása érdekében aktívak legyenek az interneten. Úgy döntöttem, hogy új Twitter-, Reddit-, Stack Overflow-, Medium- és Quora-fiókokat hozok létre a teljes nevemmel, hogy online jelenlétet építhessek ki.

Továbbá úgy döntöttem, hogy abbahagyom az olyan zavaró médiumok olvasását, mint az Instagram, a Facebook és a nem programozó alprogramok. Csak a telefonomat keresném programozással kapcsolatos hírek és bejegyzések után. Ez döntő fontosságú volt annak biztosításában, hogy megismerjem a legjobb tanulási utakat és tanulási forrásokat. Ezért tudtam meg a Harvard CS50-et az edX-en.

Eredetileg megelégedtem azzal, hogy csak egy intro tanfolyamot végeztem, de úgy tűnt, mindenki a Harvard CS50-et ajánlja, ezért úgy döntöttem, hogy a következőben merülök el. Más iskolák CS hallgatói elvégezték ezt a tanfolyamot, és azt mondták, hogy többet tanultak a CS50-ben, mint egy-két évig a CS-t tanuló egyetemen. Az általános konszenzus szerint a tanfolyam nehéz volt, de megéri. A 0. hónap végére elvégeztem az első 5 előadást és házi feladatot.

1. hónap - Harvard CS50, Linux, 1. Meetup, freeCodeCamp

Körülbelül a hónap felénél fejeztem be a CS50-et. Nem fogok túl sokat kommentálni a CS50-tel kapcsolatos tapasztalataimat, mert itt írtam mélyreható bejegyzést a tapasztalataimról.

TLDR: Remek tanfolyam, nagyon ajánlom. David Malan kiváló előadó, és rengeteg erőforrás segíti a továbbjutást. C-ben kezdi, továbblép a Pythonra, majd befejezi a webfejlesztést. Nagyon sűrű, és sok az anyag, de szerintem nagyon megéri.

A CS50 után úgy döntöttem, hogy beállítom az XPS 15-öt a Windows és az Ubuntu kettős indítására. Ez egy frusztráló hétvége volt. Összetörtem a partícióimat, és majdnem tégláztam a laptopomat. Közel álltam ahhoz, hogy elcsípjem a laptopomat és beszerezzek egy újat.

Lassan elválasztottam magam a Windows-tól, és végül kizárólag az Ubuntut használtam. Kényszerítettem magam, hogy kényelmesen érezzem magam a parancssorban, amely szerintem működött bizonyos mértékben, de még mindig hosszú utak várnak rám.

100 napos kódot indítottam, hogy megbizonyosodjak arról, hogy minden nap koncentrált vagyok és kódoltam.Fontos dokumentálni a haladást. Ha mindennap haladsz, nem tűnik soknak, de ha egy hónapra vagy több hónapra visszatekintesz, rájössz, hogy valójában nem kevés előrelépést tettél, ami motiválja a folytatásra.

Tudtam, hogy a hálózatépítés meg fog tenni vagy megtör, ezért bátorságot gyűjtöttem, hogy elmegyek az első kódoló találkozóra. Soha nem jártam egyetlen találkozón sem, pláne egy kódoló találkozón. Annyira ideges voltam, hogy miután oda hajtottam, parkoltam és az ajtóhoz sétáltam, majdnem megfordultam és hazamentem.

Segített abban, hogy ez volt a csoport első találkozója. Gyorsan rájöttem, hogy nincs ok idegeskedni. Senki sem ismerte egymást, senki sem volt ítélkező, és mindenki lelkesen tanulott. Ez volt a találkozó-mulatság kezdete. Végül 9 hónap alatt több mint 50 találkozón vettem részt.

Örülök, hogy korán elkezdtem találkozni. A legtöbb ember csak akkor kezdett részt venni a találkozókon, amikor munkát keresett, de ekkor már szinte késő. Nagyon sok oka van a korai kezdésnek. Hogy csak néhányat említsünk:

  1. A kapcsolatok kialakítása hosszú időt vesz igénybe. A korai kezdés azt jelenti, hogy vannak olyan kapcsolataid, akik garantálhatják, ha később munkát keresnek
  2. Idegenekkel való beszélgetés nagyszerű módja az interjúkra való felkészülésnek
  3. Megtanulhat új kereteket, eszközöket és tanulási forrásokat olyan emberektől, akik előtted állnak. Ez befolyásolhatja jövőbeli tanulási tervét.

Ebben a pillanatban volt némi bizonytalanság kódolási utam során. Arról volt szó, amikor el kellett döntenem, milyen szoftverfejlesztő szeretnék lenni.

Végül azért választottam a webfejlesztést, mert úgy tűnt, hogy nagy a kereslet és sok az online erőforrás. Miután ezt kitaláltam, ki kellett találnom, mit tegyek tovább. Néhány ember azt javasolta, hogy ebben a szakaszban gondolkodjak azokon a webalkalmazásokon, amelyeket fel akarok építeni, majd elinduljak. Vannak, akik az Odin Projektet vagy az freeCodeCamp programot ajánlották.

A srác, aki a heti összejövetelt vezette, amin részt vettem, ismerte Rubyt, és projekteket akart csinálni Rubyvel. Ez nagy ok volt arra, hogy miért döntöttem úgy, hogy az Odin-projektbe belemegyek.

Aztán két nappal később elvetettem ezt az ötletet.

Ez az autodidakta útvonal egyik hátránya. Az egyik percben azt hiszed, hogy tudod, milyen utat kell választanod, de aztán másnap arra gondolsz, hogy ez volt-e a helyes lépés.

Azt olvastam, hogy Ruby kiesett a szívességből, és ezt bebizonyítottam azzal, hogy Ruby vs JavaScript állásokat kerestem, így végül elindítottam az freeCodeCamp-ot. Egyetlen dolog zavart a freeCodeCamp kapcsán, hogy előálltak a projektötletekkel, így minden táborozó ugyanazokat a projekteket hajtja végre. Ez eleinte aggasztott, mert ki akartam tűnni a toborzók előtt. Azonban végül megszerettem a freeCodeCamp-et, és most nagyon ajánlom. Ha többet szeretne megtudni a tapasztalataimról és a freeCodeCamp-tal kapcsolatos ajánlásokról, nézze meg itt az írásomat.

2. hónap - YDKJS, freeCodeCamp Front End, React

Elkezdtem olvasni a You Don't Know JavaScript-et, mert mindenki azt javasolta a freeCodeCamp kiegészítésére. Több fejezetet is el kellett olvasnom, mivel elég sűrű, de tökéletes forrás ahhoz, hogy megtanuljam a lexikális hatókört, a lezárásokat, az ígéreteket és a JavaScript minden olyan részét, amelyről hallani és tanulni szeretne, de soha nem teszi meg, mert nehéznek tűnik.

Befejeztem a freeCodeCamp elülső részét. Az ellenőrzőlista formátuma és a becsült befejezési idő segített a gyors befejezésben. Nekem is fájt, hogy továbblépjek a következő szakaszra és megtanuljam a React-et. Ez azonban azt is jelentette, hogy a projektjeim minimális stílusúak voltak. Bármit megtettem, hogy teljesítsem a felhasználói történeteket, és semmi mást.

Utólag talán arra kellett volna koncentrálnom, hogy a projekteket vonzóbbá tegyem. Talán ez segített volna a CSS mélyebb elsajátításában.

A következő lépés a React megtanulása volt, és eléggé felpörögtem.

Annyit hallottam róla, és készen álltam arra, hogy illeszkedjek a menő gyerekekhez. Kicsit haboztam azonban az akkori engedélyezési kérdések miatt. Nagyon örülök, hogy ez már nem kérdés. A React megtanulása nehéz volt számomra. Akkor még nem volt tudomásom jó oktatóanyagokról (de úgy tűnik, most rengeteg van).

Próbáltam elolvasni a dokumentumokat, és követtem a Facebook Tic-Tac-Toe oktatóanyagát, de nem értettem mindet. Azt mondták, ha ez nem működik nekem, akkor ez azt jelenti, hogy nem értem eléggé a JavaScript-et. Tehát akkor visszatértem a You Don't Know JavaScript elolvasására, de ez megint túl sűrű volt számomra.

3. hónap - freeCodeCamp React, CodeClub, a freeCodeCamp Back End indítása

Végül csak úgy döntöttem, hogy végigcsinálom a freeCodeCamp React projekteket, hogy lássam, hogyan sikerült. Ez a kód csúnya volt, de segített abban, hogy kicsit jobban megértsem a React-et.

Az a találkozó, amin hetente részt vettem, úgy döntött, hogy Ruby helyett teljes veremű JavaScript-es projekteket fognak építeni, és úgy döntöttek, hogy az első projekt egy weboldal létrehozása a Meetup csoport számára, a CodeClub.Social.

Kártyákat fejlesztettem ki a React és a Meetup API segítségével, amelyek lehetővé teszik a felhasználó számára, hogy regisztráljon a következő három találkozóra a weboldalunkról. Kicsit nehéz volt egy gyors szünetet tartanom a freeCodeCamp előtt, de ez egy olyan lehetőség, amelyet nem tudtam átadni. Örültem, hogy egy projekten dolgoztam egy kis embercsoporttal. Ez segített nekem Git és Github megtanulásában is.

Mielőtt a hónap véget ért volna, elkezdtem dolgozni a freeCodeCamp hátsó részén.

4. hónap - Befejeződött az freeCodeCamp Back End, Yeggle

Az összes API projektet végigdolgoztam a freeCodeCamp-ban, de a ImageCode Abstraction Layer projektnél elkezdtem eltérni a freeCodeCamptól.

Nagyon szerettem volna teljes verem webalkalmazásokat készíteni, így amint megláttam a projekt címét, volt egy ötlet a saját projektemre. Készítenék egy csomópont alkalmazást, amely véletlenszerű imgur URL-eket tárolna egy adatbázisban, majd elkészítenék egy kezelőfelületet, amely a felhasználó által megadott számú ilyen véletlenszerű képet adna ki. Amit mindenki mond, az igaz: keményebben dolgozik és nagyobb sikereket ér el, amikor olyan projekten dolgozik, amely a saját ötlete volt.

Miután munkába álltam, nagyon büszke voltam magamra. Csúnya és ügyetlen volt, de sikerült.

Amíg a freeCodeCamp-on keresztül dolgoztam, megtudtam, milyen projektek lesznek a lehetőségeim között. Akkoriban rendszeresen futottam, így a futásaim során ötleteket állítottam elő, és amikor hazaértem, leírtam. Így készen állok a projektötletek listájára.

Végül úgy éreztem, készen állok a saját hasznos és csiszolt, teljes veremű webalkalmazásaim készítésére, hogy megosszam őket a felhasználókkal és feltegyem a portfóliómat. Annyira készen álltam a kezdésre.

Amikor új éttermet kerestem, mindig azon kaptam magam, hogy megnyíltam a Yelp-et, hogy ellenőrizzem az értékeléseket, majd megnyíltam a Maps-et, hogy ellenőrizhessem véleményüket. Mi lenne, ha elkészítenék egy alkalmazást, amely összehasonlítja mindkét oldalt?

Tehát én készítettem Yeggle-t. A Node / Express / React alkalmazást a Google Maps és a Yelp API-kkal együtt használtam. Volt néhány akadály, amelyeket nem gondoltam volna képesnek legyőzni, de végül befejeztem, és nagyon büszke voltam az alkalmazásomra. Aztán elküldtem a Redditnek, és senki sem érdekelt. Ez kissé gagyi volt, de nem hagytam cserbenhagyni.

5. hónap - StockIT

Ebben a hónapban nem értek el annyit, mint egy két hetes japán és thaiföldi vakációval.

De megkezdtem és befejeztem a következő projektemet. Folyamatosan olvastam, hogy milyen nehéz autodidakta fejlesztőként elhelyezkedni, ezért úgy gondoltam, hogy valami egyedit kell tennem. Eszembe jutott egy játék, ahol egy Dow Jones részvénydiagram kezdett trend lenni, és volt egy lehetőség vásárlásra és egy lehetőség az eladásra, és a cél a piac legyőzése volt. A játék célja az volt, hogy megmutassa, milyen nehéz megverni a piacot.

Az volt az ötletem, hogy készítsek egy ehhez hasonló játékot, de a piac helyett egy gépi tanulási algoritmus ellen játszanátok. Így hoztam létre a StockIT-et.

Készítettem egy video oktatóanyagot a Pandas és a Scikit Learn témakörökben, amely több gépi tanulási technikát is lefedett. Eredetileg hűvös, mély tanulási technikákat akartam végezni, de rájöttem, hogy ezek hatalmas adatkészletekbe és több időbe teltek, mint amennyit el akartam tölteni.

Ehelyett ragaszkodtam egy egyszerű lineáris regressziós modellhez. Azt hittem, hogy ez lesz a nehéz rész, de nem az volt. Az volt a nehéz feladat, hogy a D3 reagáljon a React-tel. Mindkét könyvtár ellenőrizni akarta a DOM-ot. Volt néhány más könyvtár, amely segített csatlakozni a kettőhöz, de úgy éreztem, hogy túl dagadtak. Végül a D3-at használtam az SVG-k előállításához, és a React-et a DOM kezeléséhez, ami nekem elég jól sikerült.

Ezúttal, amikor megosztottam a Reddittel, mindenki szerette!

Kiderült, hogy ugyanúgy, mint a VC-k, a redditors is erről a gépi tanulásról szól. A Reddit minden szeretete nagy önbizalmat adott. Az emberek az én játékomat játszották és élvezték!

6. hónap - jobSort (), Job Hunt előkészítő

A StockIT után rögtön bekerültem a következő személyes projektembe. Olyan munkabeszélőt akartam készíteni, amely összesítette a kisebb, technikára összpontosító álláshirdetési weboldalakat, például a Stack Overflow, a Github és a Hacker News. Ahhoz, hogy hozzáadjam a saját egyedi pörgésemet, úgy döntöttem, hogy a felhasználó által a munkában kívánt technológiák és az egyesek kívánsága alapján válogatom.

Tegyük fel például, hogy olyan munkát kerestem, aki valakit keresett, aki ismeri a JavaScript-et, a React-et és / vagy a Python-t, és nagyon szerettem volna dolgozni a JavaScript-szel és a React-vel, de annyira nem érdekelt a Python. Ezután adhatok JavaScript-nek 3-at, React-nak 3-at, és talán Python-nak 1-et. A felsorolások ezután rendeződnének.

Különböző akadályokba ütköztem ezzel a projekttel, és párszor irányt kellett változtatnom, de végül egy olyan termékhez jutottam, aminek örültem. Az utolsó technikai verem a React / Node / Express / MySQL volt. Felküldtem a projektet a cscareerquestions subreddit oldalra, és 650 megtekintést kaptam, mielőtt lebontották volna, mert nem engedélyezik a személyes projekteket.

Itt van a „végső” termék, és ha többet szeretne megtudni a küzdelmeimről és a refaktorokról, nézze meg itt a bejegyzésemet.

Problémáim miatt a jobSort () a hónap megfelelő részét vállalta. Végül kávéztam egy barátommal, akivel találkoztam az első találkozásomkor, és ő azt tanácsolta, hogy most kezdjek el pályázni állásokra. Végigolvastam a helyet, amire mindenki azt mondja, hogy túl sokáig várták a jelentkezésüket. Továbbá, amikor láttam egy bejegyzést, amelyben azt kérdezték, mikor kell jelentkezni, a legfelsõ megjegyzés mindig "most" volt.

Fejem szerint strukturált tervem szerint végigcsináltam portfóliómat személyes projektekkel, majd nyílt forráskódú hozzájárulásokkal dolgoztam, majd interjúkra készültem, és végül elkezdtem jelentkezni az állásokra. Ez a barát meggyőzött arról, hogy hajtsam végre ezt a tervet és kezdjem el alkalmazni. Tehát ebben a hónapban készítettem egy portfóliót és egy önéletrajzot. A következő hónapban elkezdtem jelentkezni.

7. hónap - tesztelés, álláskeresés

Ebben a hónapban arra összpontosítottam, hogy megérintsem projektjeimet és jelentkezzek az állásokra. Szerettem volna megtanulni tesztelést és Reduxot is.

Hozzáadtam a flexbox-ot a CodeClub.Social-hoz, hogy érzékeny legyen. Javítottam a mobil UX-en a jobSort () alkalmazáson. A jobSort () -hoz tesztet adtam mokával / chai / enzimmel, amelyet nehéz beállítani, könnyű elkezdeni, majd nehéz 100% -os lefedettséget elérni.

A hónap végére 63 állásra jelentkeztem. Ezt önértékelésnek tekintettem. Elég jó volt a portfólióm / önéletrajzom? Ha igen, min kellett dolgoznom az interjúkra való felkészülésben? Eleinte jelentkeztem a Hacker News: Who's Houser alkalmazással, és valóban.

A Hacker News szolgáltatásban a jobSort () segítségével határoztam meg, mely listákra kell jelentkezni. A Valóban megpróbáltam nem szoftveres vállalatokat megtudni, hogy tudok-e még hívást vagy interjút kapni bárhol.

Eleinte gyorsan jelentkeztem, és nem személyre szabtam az önéletrajzomat / motivációs levelemet. Ezután úgy döntöttem, hogy személyre szabom a kísérőlevelemet, és folytatom, majd megpróbálok e-mailt küldeni valakinek a cégtől. Ez a módszer egyértelműen jobb volt, mint a puskás megközelítés.

Öt hívást kaptam abban a hónapban - kettőt toborzó vállalatoktól és hármat szoftvercégektől, amelyek a következőket tartalmazták:

  • szerződéses DevOps / tesztelési szerepkör egy dotcom vállalatnál
  • egy B sorozatú élelmiszer-elemző cég, és
  • meglehetősen nagy és sikeres startup, amelyet nemrég vásárolt egy nagyvállalat

Ezek közül kettőben túljutottam a HR-képernyőn, de egyikük sem adott helyszíni interjút. Nagyon elégedett voltam a három hívással, és sokat tanultam tőlük.

Mindenki említette az interneten, hogy a junior fejlesztőktől várhatóan nem tudnak ennyit a kezdetektől fogva, csupán szenvedélyeseknek és izgatottaknak kell lenniük a tanuláshoz. Úgy gondoltam, könnyű. Szenvedélyes és izgatott vagyok a tanuláshoz. Amit ezekből a felhívásokból megtudtam, az az volt, hogy senki sem keresett utánpótlás fejlesztőt. Elvárják, hogy az első naptól kezdve tudja, mit csinál.

Ezek a hívások megtanítottak arra, hogy szükségem van rá

  • legyen elég jó hozzáadott értékhez az első naptól kezdve
  • legyen elég magabiztos, hogy meggyőzze őket arról, hogy az első naptól kezdve hozzáadott értéket teremthetek

8. hónap - Éjszakai műszak, Redux, nyílt forráskódú, helyszíni interjú

Ebben a hónapban kezdtem az éjszakai műszakot 40 napos szakaszon teljes munkaidőben - heti 6 nap, napi 12 óra, 17: 00-05: 00. Ugh.

Tudtam, hogy ebben a hónapban nem lesz képes annyi mindent elintézni, de volt egy célom, és szerettem volna teljesíteni, ezért nem tudtam egy hónap szabadságot levonni.

Visszavontam a jobSort-ot a Redux használatához, ami meglepő módon nem volt olyan nehéz, mint gondoltam. Nagyon sok podcastot hallgattam róla, és blogposztokat olvastam róla, és nekem soha nem volt értelme, amíg el nem kezdtem használni.

Nagyon tetszik az adatfolyam a Redux-szal. Érdekes most látni, hogy az emberek panaszkodnak Reduxra. Nem hiszem, hogy képes lennék arra, hogy erőteljesen kifújjam a véleményemet, de a reduktor mintáját szeretem.

Állítólag ez volt a nyílt forráskódú hónap számomra. Első nyílt forráskódú közreműködésem volt, és ez nagyszerű hozzájárulás egy fantasztikus könyvtárhoz. Hozzájárultam a React!

Mindenki azt mondta, hogy nehéz kódbázis olvasni, nemhogy hozzájárulni. De ki kellett tűnnöm, egyedinek kellett lennem. Tudtam, hogy a hozzájárulásom nem lesz jelentős, de mégis szerettem volna megtenni.

Kezdeném azzal, hogy végigolvastam a dokumentumokat, majd átöntöttem a kódot. Nézzen meg minden számot, minden PR-t. A React dokumentumok teljes átolvasása nagyszerű gyakorlat volt, és örülök, hogy megcsináltam. De gyorsan rájöttem, hogy a React-hez való hozzájárulás kérdése az, hogy egyszerűen nincs ennyi „jó első kérdés”, és gyorsan felkapják őket.

Az egyik találkozón, ahol részt vettem, Anthony Ng azt javasolta, hogy próbáljam ki a Downshift-et, egy Koc C. Dodds automatikus kiegészítésű könyvtárát. Ez gamechanger volt. Pontosan a kormányállásomban volt. Megfelelő nehézség, megfelelő mennyiségű probléma, nem túl sok munkatárs, szuper segítőkész karbantartó, tiszta, jól tesztelt kód. Mindezek mellett tökéletes megoldás volt néhány olyan kérdésre, amely a jobSort () alkalmazásommal volt.

Körülbelül a hónap felénél kaptam egy e-mailt az egyik olyan cégtől, amelyhez az előző hónapban jelentkeztem. Beállítottak egy kezdeti telefonképernyőt, majd egy technikai telefonképernyőt. Az általuk keresett technológiák pontosan azok voltak, amelyeket megtanultam - React, Redux és D3. Leginkább csak a projektjeimről beszéltem, és arról, hogy miért hoztam meg bizonyos döntéseket. Ezek után kértek, hogy jöjjek a helyszínre egy interjúra. Az első helyszíni interjúm!

Egyáltalán nem készültem interjúkra, ezért azzal a várakozással mentem bele, hogy nem kapok munkát, de értékes interjúkészítési tapasztalatokat szerzek. Három órán át aludtam, mivel még mindig az éjszakai műszakban dolgoztam, ami nem segített. Szerencsére a technikai rész nem tábla volt, csupán egy órás páros programozási munkamenet. Ez meglehetősen egyértelmű kihívás volt, de nagyon ideges voltam.

Eleinte aggódtam, hogy biztosan mindent tudok-e anélkül, hogy utánanéznék. Amikor rájöttem, hogy nem fogom befejezni a kihívást, rájöttem, hogy abba kell hagynom az aggodalmat, amit a kérdező gondolt rólam, és csak google / verem túlcsordulást találni a válaszok megtalálásához. Végül nem fejeztem be, és azt hittem, hogy csúnyán megbuktam.

Mivel azt hittem, hogy kudarcot vallottam a páros programozásban, az interjú további részében nyugodtnak éreztem magam. Végül az interjút állával felfelé hagytam. Legrosszabb esetben értékes interjúkészítési tapasztalatokat szereztem, a legjobb esetben pedig az első állásajánlatomat kaptam.

9. hónap - Állásajánlat

Az első állásajánlatomat végül az első nap után 9 hónappal és 7 nappal kaptam meg, amikor úgy döntöttem, hogy a karrier megváltoztatása céljából először a programozásba merülök. Magabiztosnak éreztem magam, tekintettel arra, hogy az első helyszíni interjúm után kaptam ajánlatot, ugyanakkor, ha nem fogadom el az ajánlatot, mi lenne, ha ez lenne az egyetlen ajánlat, amelyet több hónapig kapok? Végül megfogadtam az ajánlatot, és elégedett vagyok a döntésemmel. Szerettem volna fizetni a kódért!

Tanács

Eddig a pontig többnyire megosztottam a történetemet néhány meghintett tanáccsal. Valószínű, hogy ha ezt olvassa, akkor vagy a karrier megváltoztatásán gondolkodik, vagy éppen a karrier megváltoztatása céljából megtanul kódolni. Remélem, hogy az alábbi tanácsok segítenek kidolgozni egy tervet, vagy betartani jelenlegi tervét, és elérni a célját.

  1. Tudja meg, mi motiválja Önt, és használja ki előnyére. Számomra ez ellenőrző listák, az előrehaladás dokumentálása és a különböző programozói közösségekkel való interakció volt. Ha nem vagy motivált a célod elérésére, akkor semmi más nem számít, mert nem fogsz befejezni.
  2. Tegyen célokat és teljesítse azokat. Azt állítom, hogy havi célokkal, és talán napi célokkal is rendelkeznie kell. Havi célok, hogy megbizonyosodjon arról, hogy jó úton halad-e a fő cél elérése érdekében, és napi célok annak biztosítására, hogy valóban haladjon napi szinten. Az egyik stratégia, ami bevált számomra, az volt, hogy előző este tegyem meg a napi céljaimat. Így nem lehet egész nap terméketlen munkát végezni, és úgy érezheti, hogy előrelépett akkor, amikor valóban nem. Arra kényszerít, hogy összehasonlítsa napi teljesítményét a napi céljaival.
  3. Menjen a találkozókra, mielőtt úgy gondolja, hogy készen áll. A találkozókra járás ijesztő érzés lehet, de mint fentebb említettem. De általában mindenki kedves és készségesen segít. Találhat olyan embereket, akiket nem érdekel a beszélgetés, de ők a kisebbség, és senki sem fog ítélkezni. Ezenkívül mindenki szeret tanácsokat adni (mint ahogy most teszem).
  4. Hozzájárul a nyílt forráskódú módszerhez, mielőtt úgy gondolná, hogy készen áll. Amikor először kezdi a programozást, a Github olyan ijesztő helynek tűnik, ahová soha nem akar elmenni. Ez valójában nagyon barátságos a kezdők számára, és remek hely a jó kód megtekintéséhez és a saját kódjának felülvizsgálatához. Ha még mindig nem vagy meggyőződve, nézd meg a "Miért kellene most hozzájárulnod a nyílt forráskódhoz" című bejegyzésemet.
  5. Kezdje el az alkalmazást, mielőtt úgy gondolja, hogy készen áll. Ez nekem nehéz volt, mert azt hittem, más vagyok. Úgy gondoltam, nem kell tesztelnem a piacot, hogy megérezzem, min dolgozzak. Azt hittem, tudni fogom, mikor leszek kész jelentkezni. Most mondom neked. Nem fogja tudni, mikor kell jelentkezni. Tehát akár most is elkezdheti. Nem szabad megőrülni és 300 vállalathoz jelentkezni, mielőtt megtanulná a ciklusokat. De tudnia kell, hogy a piac alkalmazásával és tesztelésével a legjobb módja annak, hogy megtanulja.

Most menj vissza, és kódolj!