Kuidas ma täiskohaga töötades 9 kuuga algajast tarkvarainseneriks läksin?

Selles postituses jagan, kuidas ma täiskoormusega töötades ja iseõppides üheksa kuuga nullist (ish) kuuekohalise tarkvaratehnika tööpakkumiseni jõudsin.

Alustades eduloo lugemist, otsiksin kohe autori tausta, lootes, et see sobib minu omaga. Ma pole kunagi leidnud kedagi, kellel oleks sama taust kui minul ja tõenäoliselt minu oma ei vasta täpselt teie omale.

Sellest hoolimata loodan, et minu lugu inspireerib teisi ja toimib väärtusliku andmepunktina, mida saab lisada teie edulugude andmekogumisse.

Täielik avalikustamine

Läksin keskkoolis Visual Basic for Applications (VBA) kursusele (üheksa aastat tagasi). Oma esimese kursuse insenerikursusel (seitse aastat tagasi) õppisin C, Pythoni, Matlabi ja Labview. Lõpetasin hea ülikooli keemiatehnika kraadi ja hea GPA-ga (kolm aastat tagasi). Ma ei olnud väljaspool kooli, keskkoolis ega kõrgkoolis programmeerimist teinud, kuni otsustasin, et tahan eelmisel aastal õppida.

Pärast ülikooli sain tööd rafineerimistehases protsessiinsenerina. Töötasin seal seni, kuni muutsin karjääri tarkvaratehnikaks.

Miks ma tahtsin karjääri vahetada

Mulle meeldis tehniliste probleemide lahendamine, kuid teadsin, et tahan mingil hetkel sattuda äri / idufirmade maailma. Hoidsin alati mõtet MBA-st oma peas, kuid iga kord, kui vaatasin tippkoolide hinnasilti, mu huvi kahanes.

27. mail 2017 leidsin end uuesti MBA-de kohta guugeldamas ja kuidagi komistasin tarkvaraarenduse otsa. Tundus, et see sobib ideaalselt.

Tarkvarainseneride nõudlus suureneb, palgad on suured ja see on ideaalne tööstus, kust startupimaailma pääseda, ilma et oleks vaja tonni algkapitali. Vaja on ainult arvutit ja teie võimalused on piiramatud (omamoodi).

Üheski teises inseneridistsipliinis ei saa teil olla lihtsalt ideed, alustada selle ehitamist, näidata kasutajatele ja korrata vähese kapitali ja madala sisenemistakistusega. Keemiatehnikas vajate tehase kujundamiseks sisuliselt töötavat tehast või palju raha, kui teil oli idee uue toote kohta.

Ma olin kuulnud inimestest, kes loobusid tööst ja käisid bootcampis, kuid mida rohkem ma selle kohta Internetis lugesin, seda enam mõistsin, et saate selle kõik täielikult ise õppida, kui olete pühendunud ja keskendunud.

Võite väita, et kaotate bootcampi pakutava võrgustiku loomise ja karjäärinõustamise. See võib olla tõsi, aga mul oli vedanud, et ma elasin Bay piirkonnas, mis võimaldas mul osaleda mitmetel kohtumistel, nii et ma ühendasin selle võrgu.

Pealegi oli halvim juhtum see, et sain aru, et ma ei saa seda ise teha, ja siis loobusin tööst, et käia bootcampis.

Eesmärk

Sul peab olema eesmärk. Eriti kui proovite õppida täiskohaga töötades. Õppimisel on lihtne lasta venida ja jätkuda, kui teil pole mingit välist survet. Nii et peate looma sisemise surve. Teie eesmärk peaks olema lihtne ja kvantitatiivne. Mõistliku eesmärgi saavutamiseks peaksite tegema piisavalt uuringuid. Minu oma oli järgmine:

Hankige tarkvaratehnika töökoht ühe aasta jooksul sama või parema palgaga, kui teen praegu.

Plaan

Kui teil on eesmärk, on teil vaja plaani, mis aitaks teil sinna jõuda. Siin tarbite nii palju edulugusid kui võimalik. Ükski neist ei vasta teie täpsele olukorrale, kuid võite võtta nõu mõlemalt. Töötasin välja (ja kordasin) oma plaani, kasutades selliseid ressursse nagu learnprogramming subreddit, freeCodeCamp foorum ja Medium.

27. mail 2017 otsustasin, et kavatsen kodeeringu langetada, ja tuvistasin kõigepealt pea. Sel päeval otsustasin hakata tööle panema mitte rohkem kui 40 tundi nädalas, nii et mul oleks aega pärast tööd ja nädalavahetustel koodi kodeerida. Teie õnneks tegin oma edusammude dokumenteerimisel päris head tööd.

Minu plaan nägi paljude korduste kaudu välja umbes selline:

  1. Tehke CS-i kursus, et saada kindel alus CS-mõistetest
  2. Järgige freeCodeCampi, kuni suudan iseseisvalt portfellitasemel täisversiooniga veebirakendusi ehitada
  3. Refaktor koodi puhastamiseks, testimise lisamiseks, keskendumiseks täpsematele kontseptsioonidele
  4. Aidake kaasa avatud lähtekoodile
  5. Valmistuge töövestlusteks

Alustuseks oli minu plaan lihtne. Toona arvasin, et hakkan järgima Google'i tehnilist juhendit, seega alustasin nende soovitatud sissejuhatavast kursusest Udacity CS101.

0. kuu - Udacity CS101, Harvard CS50

Selle suure otsuse langetamine andis mulle palju energiat. Hakkasin kodeerima kohe, kui töölt koju jõudsin, ja ei peatunud enne, kui magama läksin. Ja siis jälle terve nädalavahetus. Udacity CS101 jälgis lõpetamise protsenti, mis oli minu jaoks suur motivaator. Logisin oma valmimisprotsendi iga päev pärast kodeerimist. Esimesed 75% sain valmis 10 päevaga. Viimased 25% olid rekursioonis rasked ja minu jaoks oli see natuke karmim. Kokkuvõttes kulus mul Udacity CS101 lõpetamiseks 20 päeva.

Udacity CS101 võtmise ajal olin hakanud üsna palju õppima programmeerimise subbredditit. Lugesin, et iseõppinud arendajatel, kes soovivad karjääri muuta, on oluline olla veebis aktiivne. Otsustasin luua oma täieliku nime abil uued Twitteri, Redditi, Stacki ülevoolu, Keskmise ja Quora kontod, et saaksin veebipõhist kohalolekut luua.

Samuti otsustasin lõpetada selliste häirivate meediumide lugemise nagu Instagram, Facebook ja programmeerimata subreddits. Ma kontrolliksin oma telefoni ainult programmeerimisega seotud uudiste ja postituste osas. See oli ülioluline, veendumaks, et sain teada parimatest õpiteedest ja õppevahenditest. Sellepärast sain teada Harvard CS50-st edX-is.

Algselt olin rahul vaid ühe sissejuhatava kursuse tegemisega, kuid tundusid, et kõik soovitasid Harvard CS50, nii et otsustasin järgmisena sellesse sukelduda. Teiste koolide CS-õpilased olid selle kursuse läbinud ja ütlesid, et nad õppisid CS50-s rohkem kui aasta või kaks ülikoolis CS-i õppides. Üldine üksmeel oli, et kursus oli keeruline, kuid seda väärt. 0 kuu lõpuks olin lõpetanud esimesed 5 loengut ja kodutööd.

1. kuu - Harvard CS50, Linux, 1. kohtumine, freeCodeCamp

CS50 sain valmis umbes poole kuu jooksul. Ma ei hakka oma kogemusi CS50-ga liiga palju kommenteerima, sest kirjutasin siin oma kogemustest põhjaliku postituse.

TLDR: See on suurepärane kursus, soovitan seda väga. David Malan on suurepärane õppejõud ja selle läbimiseks on palju ressursse. Alustate C-st, liigute Pythoni ja lõpetate veebiarendusega. See on väga tihe ja materjali on palju, kuid ma arvan, et see on seda väärt.

Pärast CS50 otsustasin seadistada oma XPS 15 Windowsi ja Ubuntu topeltkäivitamiseks. See oli masendav nädalavahetus. Ajasin oma vaheseinad sassi ja müürisin peaaegu oma sülearvuti. Olin lähedal sülearvuti padistamisele ja uue saamisele.

Võõrutasin end aeglaselt Windowsist ja kasutasin lõpuks ainult Ubuntu. Tahtsin sundida ennast käsureale mugavaks muutuma, mis minu arvates mingil määral toimis, kuid mul on veel palju võimalusi minna.

Alustasin 100 päeva koodiga, et olla kindel, et olen iga päev keskendunud ja kodeeritud.Oluline on dokumenteerida oma edusammud. Kui teete edusamme iga päev, ei tundu see kuigi palju, kuid kuu või mitu kuud tagasi vaadates mõistate, et olete tegelikult teinud üsna palju edusamme, mis motiveerib teid jätkama.

Ma teadsin, et võrguühendus teeb mind ära või purustab mind, nii et ma kogunesin julgust, et minna oma esimesele kodeerivale kohtumisele. Ma polnud kunagi käinud üheski kohtumises, rääkimata kodeerivast kohtumisest. Ma olin nii närvis, et pärast sinna sõitmist, parkimist ja ukse juurde kõndimist keerasin peaaegu ümber ja läksin koju.

Aitas, et see oli grupi esimene kohtumine. Sain kiiresti aru, et närvitsemiseks pole põhjust. Keegi ei tundnud üksteist, keegi ei olnud hinnanguline ja kõik olid innukad õppima. Sellest sai alguse kokkutulek. Käisin 9 kuu jooksul üle 50 kohtumisel.

Mul on hea meel, et hakkasin varakult kohtumistel käima. Enamik inimesi hakkas kohtumistel käima alles siis, kui nad tööd otsisid, kuid sel hetkel on juba peaaegu hilja. Varakult alustamiseks on nii palju põhjuseid. Kui nimetada vaid mõnda järgmist:

  1. Suhete arendamine võtab kaua aega. Varakult alustamine tähendab, et teil on sidemeid, kes saavad teid hiljem tööd otsides garanteerida
  2. Võõraste inimestega programmeerimisest rääkimine on suurepärane võimalus intervjuudeks valmistuda
  3. Uutest raamistikest, tööriistadest ja õppevahenditest saate teada inimestelt, kes on teist ees. See võib mõjutada teie tulevast õppeplaani.

Sel ajal oli minu kodeerimisreisil teatav ebakindlus. See oli umbes siis, kui mul oli vaja otsustada, milline tarkvaraarendaja ma tahan olla.

Lõppkokkuvõttes valisin veebiarenduse, kuna tundus, et seal on suur nõudlus ja ka palju veebiressursse. Kui see mul selgeks sai, pidin välja mõtlema, mida edasi teha. Mõned inimesed soovitasid mul selles etapis mõelda veebirakendustele, mida ma tahan ehitada, ja seejärel käivitada. Mõned inimesed soovitasid Odini projekti või freeCodeCampi.

Kutt, kes korraldas iganädalast kohtumist, kus osalesin, tundis Rubyt ja tahtis koos Rubyga projekte teha. See oli suur põhjus, miks ma tegin otsuse minna Odini projektiga lõpule.

Ja siis kaks päeva hiljem tegin selle mõtte põhja.

See on iseõppinud marsruudi läbimise üks varjukülgi. Ühel minutil arvate, et teate, millist teed peaksite minema, kuid siis järgmisel päeval mõtlete, kas see oli õige samm.

Lugesin, et Ruby langes poolehoiust välja ja tõestasin seda Ruby vs JavaScripti töökohtade otsimisega, nii et lõpuks hakkasin käivitama freeCodeCampi. Üks asi, mis mind freeCodeCampi juures häiris, oli see, et nad tulid välja projektiideedega, nii et iga laagriline teeb samu projekte. See puudutas mind algul, sest tahtsin värbajatega silma paista. Lõppude lõpuks armastasin ma freeCodeCampi ja nüüd soovitan seda väga. Lisateavet minu kogemuste ja soovituste kohta seoses freeCodeCampiga leiate minu kirjutistest siin.

2. kuu - YDKJS, freeCodeCampi esiosa, reageeri

Hakkasin lugema te ei tea JavaScripti, sest kõik soovitasid seda täiendada freeCodeCampi. Pidin uuesti läbi lugema mitu jaotist, kuna see on üsna tihe, kuid see on ideaalne ressurss leksikaalse ulatuse, sulgemiste, lubaduste ja kõigi JavaScripti osade õppimiseks, millest kuulete ja mida soovite õppida, kuid mida te kunagi ei tee, sest need tunduvad rasked.

Lõpetasin freeCodeCampi esiosa. Kontroll-loendi formaat ja hinnanguline valmimisaeg aitasid mul motiveerida kiiret lõpetamist. Mul tekkis ka kihelus, et liikuda järgmisse ossa ja õppida React. See tähendas aga ka seda, et minu projektidel oli minimaalne stiil. Tegin kasutaja lugude täitmiseks kõike, mida vaja oli, ja ei midagi enamat.

Tagantjärele mõeldes oleksin ehk pidanud keskenduma projektide atraktiivsemaks muutmisele. Võib-olla oleks see aidanud mul CSS-i põhjalikumalt õppida.

Järgmine samm oli Reacti õppimine ja ma olin üsna pumbatud.

Ma olin sellest nii palju kuulnud ja olin valmis sobima lahedate lastega. Toonaseid litsentsiprobleeme arvestades olin siiski veidi kõhklev. Mul on tõesti hea meel, et see pole enam probleem. Reacti õppimine oli minu jaoks keeruline. Ma ei olnud siis teadlik ühestki heast õpetusest (kuid tundub, et praegu on neid tonni).

Proovisin lugeda dokumente ja järgida Facebooki Tic-Tac-Toe õpetust, kuid ma ei saanud sellest kõigest aru. Mulle öeldi, kui see minu jaoks ei sobi, siis see tähendas, et ma ei saanud JavaScripti piisavalt aru. Niisiis läksin tagasi te ei tea JavaScripti, kuid jällegi oli see minu jaoks liiga tihe.

3. kuu - freeCodeCamp React, CodeClub, freeCodeCamp Back End'i käivitamine

Lõppkokkuvõttes otsustasin lihtsalt, et töötan läbi freeCodeCamp Reacti projektide, et näha, kuidas see läks. See kood oli kole, kuid see aitas mul Reactist veidi paremini aru saada.

See kohtumine, kus ma igal nädalal käinud olin, otsustas, et nemad ehitavad Ruby asemel täispikkade JavaScripti projekte ja otsustasid, et esimene projekt on ehitada kohtumisrühma veebisait CodeClub.Social.

Töötasin välja React ja Meetup API abil kaardid, mis võimaldavad kasutajal meie veebisaidilt kolmele järgmisele kohtumisele registreeruda. Mul oli selle jaoks freeCodeCampist kiire paus teha, kuid see oli võimalus, mida ma ei suutnud mööda lasta. Mul oli hea meel töötada koos väikese inimrühmaga projektiga. See aitas mul ka Giti ja Githubi õppida.

Enne kuu lõppu hakkasin töötama freeCodeCampi tagumise osa osas.

4. kuu - freeCodeCampi lõpp on lõppenud, Yeggle

Töötasin läbi kõik API-projektid freeCodeCampis, kuid hakkasin FreeCodeCampist kõrvale kalduma projekti Image Search Abstraction Layer projektis.

Mul oli kihvt teha täisversioonilisi veebirakendusi, nii et kohe, kui nägin selle projekti pealkirja, tekkis mul idee omaenda projekti jaoks. Ma teeksin sõlmpakendi, mis salvestaks juhuslikud imgur-URL-id andmebaasi ja seejärel teeksin kasutajaliidese, mis väljastaks kasutaja määratud arvu neid juhuslikke pilte. See, mida kõik ütlevad, vastab tõele: töötate rohkem ja teil on rohkem edu, kui töötate projektiga, mis oli teie enda idee.

Kui selle tööle sain, olin enda üle väga uhke. See oli kole ja kohmakas, kuid töötas.

Töötades freeCodeCampi kaudu, sain teada, millised projektid oleksid minu võimaluste piires. Jooksin sel ajal regulaarselt, nii et mõtlesin oma jooksudel välja ideid ja kirjutasin need koju jõudes üles. Nii oleks mul valmis projektiideede loend, kui olin valmis.

Lõpuks tundsin end valmis alustama oma kasulike ja poleeritud täisversiooniliste veebirakenduste loomist, mida kasutajatega jagada ja oma portfelli üles panna. Olin nii valmis alustamiseks.

Uut restorani otsides avastasin, et avan arvustuste kontrollimiseks Yelpi ja seejärel arvustuste kontrollimiseks Mapsi. Mis oleks, kui teeksin rakenduse, mis võrdles mõlemat kõrvuti?

Nii et ma panin Yeggle'i. Kasutasin koos Google Mapsi ja Yelpi API-dega Node / Express / React. Seal oli paar takistust, millest ma arvan, et ma ei suuda seda ületada, kuid lõpuks lõpetasin ja olin oma rakenduse üle väga uhke. Siis postitasin selle Redditi ja keegi ei hoolinud sellest. See oli küll natuke pätt, aga ma ei lasknud sel end alt vedada.

5. kuu - StockIT

Sel kuul ei saanud ma nii palju tehtud, kuna alustasin seda kahenädalase puhkusega Jaapanisse ja Taisse!

Kuid ma alustasin ja lõpetasin oma järgmise projekti. Lugesin pidevalt, kui keeruline oli iseõppijana tööle asuda, nii et arvasin, et pean tegema midagi ainulaadset. Mulle meenus mäng, kus Dow Jonesi aktsiagraafik hakkas trendima ning teil oli üks võimalus osta ja üks võimalus müüa ning eesmärk oli turgu võita. Mängu eesmärk oli näidata teile, kui keeruline oli turgu võita.

Minu idee oli teha sellele sarnane mäng, kuid turu asemel mängiksite masinõppe algoritmi vastu. Niisiis lõin StockIT.

Võtsin Panda ja Scikit Learn videoõpetuse, mis hõlmas mitut masinõppe tehnikat. Algselt tahtsin teha mõningaid lahedaid sügava õppimise tehnikaid, kuid mõistsin, et selleks kulus tohutuid andmekogumeid ja rohkem aega kui kulutada.

Selle asemel jäin lihtsa lineaarse regressioonimudeli juurde. Arvasin, et see saab olema raske osa, aga ei olnud. D3-ga reageerimisega reageerimine oli raske osa. Mõlemad raamatukogud soovisid DOM-i kontrollida. Leidus veel mõned raamatukogud, mis aitasid kahega liituda, kuid tundsin, et need on liiga punnis. Lõpuks kasutasin SVG-de genereerimiseks D3-d ja DOM-i käsitsemiseks React, mis minu jaoks päris hästi välja tuli.

Seekord, kui ma seda Redditiga jagasin, meeldisid kõigile!

Selgub, et sarnaselt VC-dele, on ka redditors kõik selle masinõppe jaoks. Redditi kogu armastus oli suur enesekindlus. Inimesed mängisid minu mängu ja nautisid seda!

6. kuu - jobSort (), tööjahi ettevalmistus

Pärast StockIT-i jõudsin otse oma järgmise isikliku projekti juurde. Tahtsin teha töölaua, mis koondaks väiksemad tehnikale keskendunud töökuulutuste veebisaidid nagu Stack Overflow, Github ja Hacker News. Oma unikaalse spinni lisamiseks otsustasin, et lasen selle sortida lähtuvalt tehnoloogiatest, mida kasutaja töökohas soovis ja kui väga nad igaüht soovisid.

Oletame näiteks, et otsisin tööd, mis otsis kedagi, kes tundis JavaScripti, Reacti ja / või Pythoni, ja tahtsin väga töötada JavaScripti ja Reactiga, kuid mind ei huvitanud Python nii palju. Siis saaksin anda JavaScripti väärtuseks 3, React 3 ja võib-olla Pythoniks 1. Seejärel kirjed sorteeritakse vastavalt.

Selle projektiga sattusin erinevatesse takistustesse ja pidin paar korda kurssi muutma, kuid sain lõpuks toote, millega olin rahul. Minu viimane tehnikapakk oli React / Node / Express / MySQL. Postitasin projekti cscareerquestions subredditi ja sain 650 vaatamist enne selle mahavõtmist, kuna need ei luba isiklikke projekte.

Lõplik toode on siin ja kui olete huvitatud minu võitluste ja refaktorite kohta lisateabest, vaadake minu postitust siin.

Minu probleemide tõttu võttis jobSort () kuu korraliku osa. Lõpuks ostsin kohvi sõbrannaga, kellega kohtusin esimesel kohtumisel, ja ta soovitas mul kohe tööle asuda. Lugesin kõikjalt läbi, et kõik ütlevad, et nad ootasid kandideerimist liiga kaua. Samuti nägin alati, kui nägin postitust, kus küsiti, millal kandideerida, alati „praegu”.

Oma peas kavatsesin oma struktureeritud plaani läbi töötada, et luua oma portfell isiklike projektidega, seejärel tegeleda avatud lähtekoodiga kaastöödega ning seejärel valmistuda intervjuudeks ja lõpuks tööle hakata. See sõber veenis mind sellest plaanist lahti tegema ja rakendama hakkama. Nii et sel kuul tegin portfelli ja CV. Järgmisel kuul hakkaksin kandideerima.

7. kuu - testimine, tööotsimine

Sel kuul keskendusin oma projektide puudutamisele ja tööle kandideerimisele. Tahtsin õppida ka testimist ja Reduxi.

Lisasin CodeClub.Socialile flexboxi, et see oleks tundlik. Parandasin JobSort () -i mobiilset UX-i. Lisasin JobSort () -i testimise mocha / chai / ensüümiga, mida oli raske seadistada, hõlpsasti alustada ja seejärel raske 100% katvust saada.

Kuu lõpuks olin kandideerinud 63 töökohale. Ma pidasin seda enesehinnanguks. Kas minu portfell / jätkamine oli piisavalt hea? Kui jah, siis mida mul oli vaja intervjuude ettevalmistamiseks teha? Algul esitasin avalduse Hacker News: Who's Hiring ja Tõepoolest.

Rakenduses Hacker News kasutasin töökoha Sort () abil kindlaks, milliseid kirjeid taotleda. Veebilehel Tõepoolest proovisin tarkvara mittetöötavaid ettevõtteid, et teada saada, kas mul on võimalik kuskil isegi helistada või intervjuud saada.

Algul kandideerisin kiiresti ega isikupärastanud oma CV / kaaskirja. Seejärel otsustasin oma kaaskirja isikupärastada ja jätkata ning proovida siis ettevõttele kellelegi meili saata. See meetod oli selgelt parem kui jahipüssi lähenemine.

Sain sel kuul viis kõnet - kaks värbamisfirmadelt ja kolm tarkvarafirmadelt, kuhu kuulusid:

  • lepinguline DevOps / testimisroll dotcomi ettevõttes
  • B-seeria toiduanalüütikaettevõte ja
  • üsna suur ja edukas idufirma, mille hiljuti ostis üks suurettevõte

Kahes neist jõudsin HR-ekraanist mööda, kuid ükski neist ei andnud kohapealset intervjuud. Olin kolme kõnega päris rahul ja õppisin neilt palju.

Kõik mainisid veebis, et noorematelt arendajatelt ei eeldata, et nad nii palju algusest peale teaksid, vaid nad peavad õppimiseks lihtsalt olema kirglikud ja põnevil. Nii et ma arvasin, lihtne. Mul on kirglik ja põnev õppida. Nendest kõnedest õppisin aga seda, et keegi ei otsinud nooremat arendajat. Nad eeldavad, et teate, mida teete esimesest päevast peale.

Need kõned õpetasid mulle, et mul on seda vaja

  • olema piisavalt hea, et alates esimesest päevast väärtust lisada
  • ole piisavalt enesekindel, et veenda neid, et ma saan esimesest päevast alates väärtust lisada

8. kuu - öövahetus, Redux, avatud lähtekoodiga intervjuu kohapeal

Hakkasin sel kuul töötama öises vahetuses 40-päevase pikkusega täiskohaga tööl - 6 päeva nädalas, 12 tundi päevas, 17.00–05.00. Uhh.

Teadsin, et ma ei jõua sel kuul nii palju ära teha, kuid mul oli eesmärk ja ma tahtsin selle täita, nii et ma ei saanud kuu aega puhkust võtta.

Redaktoreerisin jobSort'i Reduxi kasutamiseks, mis polnud üllataval kombel nii keeruline, kui arvasin. Kuulasin selle kohta palju taskuhäälingusaateid ja lugesin selle kohta blogipostitusi ning see ei olnud minu jaoks kunagi enne mõttekas, kui hakkasin seda kasutama.

Mulle väga meeldib andmete liikumine Reduxiga. Nüüd on huvitav näha inimesi Reduxi üle kaebamas. Ma ei usu, et ma oleksin võimeline oma arvamusi tugevalt välja ütlema, kuid reduktori muster mulle meeldib.

See pidi minu jaoks olema avatud lähtekoodiga kuu. Kavatsesin teha oma esimese avatud lähtekoodiga kaastöö ja see oleks suurepärane panus fantastilisse raamatukokku. Kavatsesin anda oma panuse React!

Kõik ütlesid, et see oli keeruline koodibaas, millest rääkimata. Kuid mul oli vaja silma paista, ma pidin olema ainulaadne. Teadsin, et minu panus pole märkimisväärne, kuid tahtsin siiski seda teha.

Alustaksin sellest, et lugeksin dokumendid lõpuni läbi ja valaksin seejärel koodibaasi. Vaadake kõiki numbreid, iga PR-i. Reacti dokumentide täielik lugemine oli suurepärane harjutus ja mul on hea meel, et selle tegin. Kuid mõistsin kiiresti, et Reactisse panustamise probleem on see, et "häid esimesi numbreid" lihtsalt pole nii palju ja need napsatakse kiiresti.

Ühel kokkutulekul, kus osalesin, soovitas Anthony Ng proovida Kent C. Doddsi autokomplektiga raamatukogu Downshift. See oli gamechanger. See oli täpselt minu roolikambris. Õige raskus, õige kogus probleeme, mitte liiga palju kaastöötajaid, ülimalt abivalmis hooldaja, puhas hästi testitud kood. Kõige selle kõrval oli see ideaalne lahendus mõnele probleemile, mis mul tekkisid minu rakendusega jobSort ().

Umbes kuu keskel sain meili ühelt ettevõttelt, kuhu eelmisel kuul kandideerisin. Nad seadistasid telefoni esialgse ekraani ja seejärel telefoni tehnilise ekraani. Nende otsitud tehnoloogiad olid täpselt need, mida olin õppinud - React, Redux ja D3. Rääkisin enamasti lihtsalt oma projektidest ja sellest, miks ma teatud otsuseid langetasin. Pärast seda palusid nad mul tulla kohapeal vestlusele. Minu esimene kohapealne intervjuu!

Ma polnud intervjuudeks üldse valmistunud, nii et läksin sellesse ootusega, et ma ei saa seda tööd, kuid saan väärtusliku intervjueerimiskogemuse. Jooksin ka kolm tundi und, kuna töötasin endiselt öises vahetuses, mis ei aidanud. Õnneks ei olnud tehniline osa tahvel, vaid tund aega kestnud paaride programmeerimisseanss. See oli üsna otsene väljakutse, kuid olin väga närvis.

Alguses olin mures selle pärast, et oleksin kindel, et tean kõike, ilma et seda otsiksin. Kui sain aru, et ma ei kavatse väljakutset lõpule viia, mõistsin, et pean lõpetama muretsemise, mida intervjueerija minust arvab, ja lihtsalt vastuste leidmiseks guugeldama / laduma ülevoolu. Ma ei jõudnud lõpuks lõpetada ja arvasin, et kukkusin läbi tohutult.

Kuna arvasin, et paaride programmeerimine ebaõnnestus, tundsin end ülejäänud intervjuuks lõdvestununa. Lõppkokkuvõttes jätsin intervjuu lõuaga üles. Halvimal juhul sain väärtusliku intervjueerimiskogemuse ja parimal juhul esimese tööpakkumise.

9. kuu - tööpakkumine

Esimese tööpakkumise sain lõpuks 9 kuud ja 7 päeva pärast seda esimest päeva, kui otsustasin, et kavatsen karjääri vahetamise eesmärgil kõigepealt programmeerimisse sukelduda. Tundsin end kindlalt, arvestades, et sain pakkumise pärast esimest kohapealset intervjuud, kuid samal ajal, kui ma seda pakkumist ei võtaks, siis mis oleks, kui see oleks ainus pakkumine, mille saan mitu kuud? Lõpuks võtsin pakkumise vastu ja olen oma otsusega rahul. Tahtsin koodi eest maksta!

Nõuanne

Siiani olen oma lugu enamasti jaganud mõningate nõuannetega. Võimalik, et kui te seda loete, mõtlete kas karjääri muutmisele või õpite keset karjääri muutmise kodeerimist. Loodan, et allpool olevad nõuanded aitavad teil plaani välja töötada või oma praegusest plaanist kinni pidada ja eesmärgini jõuda.

  1. Uuri välja, mis sind motiveerib, ja kasuta seda enda kasuks. Minu jaoks olid need kontrollnimekirjad, minu edusammude dokumenteerimine ja suhtlemine erinevate programmeerimiskogukondadega. Kui teil pole motivatsiooni eesmärgi saavutamiseks, siis pole miski muu oluline, sest te ei jõua lõpuni.
  2. Pange endale eesmärgid ja täitke need. Ma väidaksin, et teil peaksid olema igakuised ja võib-olla isegi igapäevased eesmärgid. Igakuised eesmärgid, et veenduda, et olete põhieesmärgi saavutamiseks õigel teel, ja igapäevased eesmärgid, et saaksite igapäevaselt edusamme teha. Üks strateegia, mis minu jaoks töötas, oli eelmisel õhtul oma igapäevaste eesmärkide seadmine. Nii ei saa sa kogu päeva ebaproduktiivset tööd teha ja tunned, et oled edenenud siis, kui seda tegelikult ei teinud. See sunnib teid võrdlema oma igapäevaseid saavutusi oma igapäevaste eesmärkidega.
  3. Minge kohtumistele enne, kui arvate, et olete selleks valmis. Kohtumistel käimine võib tunduda hirmutav, kuid nagu ma eespool mainisin. Kuid üldiselt on kõik toredad ja valmis aitama. Võib juhtuda, et leiate inimesi, kes pole huvitatud teiega rääkimisest, kuid nad on vähemus ja keegi ei hakka otsustama. Samuti armastavad kõik nõu anda (nagu ma praegu teen).
  4. Panustage avatud lähtekoodiga viisile, enne kui arvate, et olete selleks valmis. Kui te esimest korda programmeerima hakkate, tundub Github selle õudse kohana, kuhu te kunagi minna ei taha. See on algajatele tegelikult väga vastutulelik ja on suurepärane koht hea koodi nägemiseks ja oma koodi ülevaatamiseks. Kui te pole selles veel veendunud, vaadake minu postitust Miks peaksite praegu avatud lähtekoodiga panustama.
  5. Alustage kandideerimist enne, kui arvate, et olete selleks valmis. See oli minu jaoks karm, sest arvasin, et olen teistsugune. Ma arvasin, et mul pole vaja turgu katsetada, et tunnetada, millega töötada. Mõtlesin, et saan teada, millal olen valmis kandideerima. Ma ütlen sulle kohe. Sa ei tea, millal kandideerida. Nii et võite alustada ka kohe. Enne silmuste õppimist ei tohiks te hulluks minna ja 300 ettevõttesse pöörduda. Kuid peaksite teadma, et parim viis teada saada, mida peate õppima, on turu rakendamine ja testimine.

Nüüd tulge sinna tagasi ja koodige!