Kuinka menin aloittelijasta ohjelmistosuunnittelijaksi 9 kuukaudessa työskennellessäni kokopäiväisesti

Tässä viestissä jaan kuinka menin nollasta (ish) kuusinumeroiseen ohjelmistotekniikan työtarjoukseen yhdeksän kuukauden aikana työskennellessäni kokopäiväisesti ja ollessani itseopettaja.

Aina kun aloin lukea menestystarinaa, etsin heti kirjoittajan taustaa toivoen, että se sopisi minun. En ole koskaan löytänyt ketään, jolla olisi sama tausta kuin minulla, ja todennäköisesti minun ei vastaa sinun.

Toivon kuitenkin, että tarinani innostaa muita ja toimii arvokkaana datapisteenä, joka voidaan lisätä menestystarinasi tietojoukkoosi.

Täysi julkistaminen

Kävin lukiossa Visual Basic for Applications (VBA) -kurssin (yhdeksän vuotta sitten). Ensimmäisellä insinöörikurssillani (seitsemän vuotta sitten) opin C, Python, Matlab ja Labview. Valmistuin hyvästä yliopistosta kemian tekniikan tutkinnolla ja hyvällä GPA: lla (kolme vuotta sitten). En ollut tehnyt mitään ohjelmointia koulun ulkopuolella, lukiossa tai yliopistossa, ennen kuin päätin, että halusin oppia viime vuonna.

Yliopiston jälkeen sain työpaikan prosessinsinööriksi jalostamolle. Työskentelin siellä, kunnes vaihdoin urani ohjelmistotuotantoon.

Miksi halusin vaihtaa uraa

Nautin teknisten ongelmien ratkaisemisesta, mutta tiesin, että halusin päästä jossain vaiheessa liike- / käynnistysmaailmaan. Pidin ajatuksen MBA: sta aina mielessäni, mutta joka kerta kun katsoin parhaiden koulujen hintalappua, kiinnostukseni heikkeni.

Löysin itseni 27. toukokuuta 2017 taas MBA-tutkinnoista ja törmäsin jotenkin ohjelmistosuunnitteluun. Se tuntui täydelliseltä.

Ohjelmistoinsinööreillä on kasvava kysyntä, palkat ovat suuria, ja se on täydellinen ala, josta päästä startup-maailmaan tarvitsematta tonnia alkupääomaa. Tarvitset vain tietokoneen, ja mahdollisuutesi ovat rajattomat (tavallaan).

Missään muussa tekniikan kurissa ei voi olla vain idea, aloittaa sen rakentaminen, näyttää se käyttäjille ja toistaa vain vähän pääomaa ja matalaa pääsyn estettä. Kemian tekniikassa tarvitset olennaisesti juoksevaa laitosta tai paljon rahaa laitoksen suunnitteluun, jos sinulla on idea uudesta tuotteesta.

Olin kuullut ihmisten lopettavan työpaikkansa ja käyvän bootcampissa, mutta mitä enemmän luin siitä verkossa, sitä enemmän tajusin, että voit oppia kaiken yksin, jos olet sitoutunut ja keskittynyt.

Saatat väittää, että olet menettämässä bootcampin tarjoamia verkostoitumis- ja uraneuvoja. Tämä voi olla totta, mutta minulla oli onni, koska asuin Bayn alueella, joka antoi minulle mahdollisuuden osallistua useisiin tapaamisiin, joten verkostoituin niin.

Pahin tapaus oli lisäksi se, että tajusin, etten voinut tehdä sitä yksin, ja sitten lopetin työpaikkani osallistua bootcampiin.

Maali

Sinulla on oltava tavoite. Varsinkin jos yrität oppia työskennellessäsi kokopäiväisesti. Oppimisen on helppo antaa jatkua, jos sinulla ei ole ulkoista painetta. Joten sinun on luotava sisäinen paine. Tavoitteen tulee olla yksinkertainen ja määrällinen. Sinun tulisi tehdä tarpeeksi tutkimusta keksiäsi kohtuullinen tavoite. Minun oli seuraava:

Hanki ohjelmistotekniikan työpaikka yhden vuoden kuluessa samalla tai paremmalla palkalla kuin teen nyt.

Suunnitelma

Kun sinulla on tavoite, tarvitset suunnitelman, joka auttaa sinua pääsemään sinne. Täällä kulutat niin monta menestystarinaa kuin mahdollista. Mikään niistä ei vastaa tarkkaa tilannettasi, mutta voit ottaa jokaisesta neuvoja. Kehitin suunnitelman (ja toisin sen uudelleen) käyttämällä resursseja, kuten oppimisen ohjelmoinnin subreddit, freeCodeCamp -foorumi ja Medium.

27. toukokuuta 2017 päätin, että aion tehdä koodauksen, ja kyyhkysin päähän ensin. Sinä päivänä päätin aloittaa työssäni enintään 40 tuntia viikossa, jotta minulla olisi aikaa koodata työn jälkeen ja viikonloppuisin. Teidän onneksi tein melko hyvän työn edistykseni dokumentoimiseksi.

Suunnitelmani päätyi monien iteraatioiden kautta näkemään jotain tältä:

  1. Ota intro CS-kurssille saadaksesi vankan pohjan ymmärrystä CS-ydinkäsitteistä
  2. Seuraa freeCodeCampia, kunnes pystyn rakentamaan portfolion tason täyden pinon verkkosovelluksia yksin
  3. Refactor puhdistaa koodin, lisää testausta, keskity edistyneisiin konsepteihin
  4. Osallistu avoimeen lähdekoodiin
  5. Valmistaudu työhaastatteluihin

Aluksi suunnitelmani oli yksinkertainen. Ajattelin tuolloin seurata Googlen teknistä opasta, joten aloitin heidän suositellulla esittelykurssillaan Udacity CS101.

Kuukausi 0 - Udacity CS101, Harvard CS50

Tämän suuren päätöksen tekeminen antoi minulle paljon energiaa. Aloitin koodaamisen heti, kun tulin kotiin töiltä, ​​eikä lopettanut ennen kuin menin nukkumaan. Ja sitten taas koko viikonloppu. Udacity CS101 seurasi valmistumisprosenttia, mikä oli minulle suuri motivaattori. Kirjain valmistumisprosentin joka päivä koodauksen jälkeen. Valmistuin ensimmäiset 75% 10 päivässä. Viimeiset 25% oli raskas rekursiossa, ja se oli minulle hieman kovempi. Kaiken kaikkiaan minulla kesti 20 päivää Udacity CS101: n viimeistelyyn.

Kun otin Udacity CS101 -ohjelmaa, olin alkanut lukea oppimisen ohjelmoinnin aliohjelmaa melko voimakkaasti. Luin, että itseoppiville kehittäjille, jotka haluavat muuttaa uraa, oli tärkeää olla aktiivinen verkossa. Päätin tehdä uusia Twitter-, Reddit-, Stack Overflow-, Medium- ja Quora-tilejä koko nimelläni, jotta voin rakentaa läsnäoloa verkossa.

Päätin myös lopettaa häiritsevän median, kuten Instagram, Facebook ja ohjelmoimattomat subreddits, lukemisen. Tarkistin puhelimestani vain ohjelmointiin liittyviä uutisia ja viestejä. Tämä oli ratkaisevan tärkeää varmistaakseni, että sain tietää parhaista oppimispolkuista ja oppimisresursseista. Tämän vuoksi sain tietää Harvard CS50: stä edX: ltä.

Olin alun perin tyytyväinen vain yhden introkurssin tekemiseen, mutta kaikki näyttivät suosittelevan Harvard CS50: tä, joten päätin sukeltaa seuraavaan. Muiden koulujen CS-opiskelijat olivat käyneet tämän kurssin ja sanoneet oppineensa CS50: ssä enemmän kuin vuosi tai kaksi yliopistossaan opiskelevassa yliopistossa. Yleinen yksimielisyys oli siitä, että kurssi oli vaikea, mutta sen arvoinen. Kuukauden 0 loppuun mennessä olin suorittanut viisi ensimmäistä luentoa ja kotitehtäviä.

Kuukausi 1 - Harvard CS50, Linux, 1. tapaaminen, freeCodeCamp

Valmistuin CS50 noin puoliväliin kuukauteen. En aio kommentoida liikaa kokemustani CS50: stä, koska kirjoitin perusteellisen viestin kokemuksestani täällä.

TLDR: Se on hieno kurssi, suosittelen sitä. David Malan on erinomainen luennoitsija, ja on olemassa runsaasti resursseja, jotka auttavat sinua pääsemään sen läpi. Aloitat C: ssä, siirryt Pythoniin ja lopetat verkkokehityksen kanssa. Se on erittäin tiheää, ja materiaalia on paljon, mutta mielestäni se on sen arvoista.

CS50: n jälkeen päätin perustaa XPS 15: n kaksoiskäynnistykseen Windows ja Ubuntu. Se oli turhauttava viikonloppu. Sekoitin osiot ja melkein muurasin kannettavan tietokoneen. Olin lähellä kannettavan tietokoneen puristamista ja uuden hankkimista.

Poistin itseni hitaasti Windowsista ja käytin lopulta yksinomaan Ubuntua. Halusin pakottaa itseni viihtymään komentorivillä, joka mielestäni toimi jossain määrin, mutta minulla on vielä pitkä tapa edetä.

Aloitin 100 päivän koodin varmistaakseni, että pysyin keskittynyt ja koodattu joka päivä.On tärkeää dokumentoida edistymisesi. Jos edistyt päivittäin, se ei tunnu kovin paljon, mutta kun katsot kuukausi tai useita kuukausia taaksepäin, huomaat, että olet edistynyt melkoisesti, mikä motivoi sinua jatkamaan.

Tiesin, että verkostoituminen tekisi tai murtaisi minut, joten keräsin rohkeutta mennä ensimmäiseen koodaustapaamiseen. En ollut koskaan käynyt missään tapaamisessa saati koodaavasta tapaamisesta. Olin niin hermostunut, että ajaessani sinne, pysäköinyt ja kävelin ovelle melkein käännyin ympäri ja menin kotiin.

Se auttoi, että se oli ryhmän ensimmäinen tapaaminen. Tajusin nopeasti, ettei ollut syytä olla hermostunut. Kukaan ei tuntenut toisiaan, kukaan ei ollut tuomitseva, ja kaikki olivat innokkaita oppimaan. Tämä oli alku tapaamiselle. Päädyin käymään yli 50 tapaamisessa 9 kuukaudessa.

Olen iloinen siitä, että aloin käydä tapaamisissa aikaisin. Suurin osa ihmisistä alkoi osallistua tapaamisiin vasta kun he etsivät työtä, mutta siinä vaiheessa on melkein liian myöhäistä. On niin monia syitä aloittaa aikaisin. Muutamia mainitakseni:

  1. Suhteiden kehittäminen vie kauan. Aikaisin aloittaminen tarkoittaa, että sinulla on yhteyksiä, jotka voivat taata sinulle, kun etsit työtä myöhemmin
  2. Puhuminen ohjelmoinnista tuntemattomien kanssa on hieno tapa valmistautua haastatteluihin
  3. Voit oppia uusia kehyksiä, työkaluja ja oppimisresursseja ihmisiltä, ​​jotka ovat edessäsi. Tämä voi vaikuttaa tulevaan oppimissuunnitelmaasi.

Koodausmatkallani oli tällä hetkellä jonkin verran epävarmuutta. Kyse oli silloin, kun minun piti päättää, millainen ohjelmistokehittäjä halusin olla.

Viime kädessä valitsin verkkokehityksen, koska tuntui siltä, ​​että kysyntää oli paljon ja myös paljon online-resursseja. Kun sain sen selville, minun piti selvittää, mitä tehdä seuraavaksi. Jotkut ihmiset suosittelivat, että tässä vaiheessa ajattelen web-sovelluksia, jotka halusin rakentaa, ja sitten aloittaa. Jotkut ihmiset suosittelivat Odin-projektia tai freeCodeCampia.

Kaveri, joka kävi viikoittaista tapaamista, jossa kävin, tunsi Rubyn ja halusi tehdä projekteja Rubyn kanssa. Tämä oli suuri syy, miksi päätin mennä kokonaisuudessaan The Odin -projektiin.

Ja sitten kaksi päivää myöhemmin hajoitin tuon idean.

Se on yksi itseopetetun reitin kulkemisen haittapuolista. Yhden minuutin ajattelet tietäväsi tietä, minkä pitäisi kulkea, mutta sitten seuraavana päivänä mietit, onko se oikea tapa.

Luin, että Ruby oli menossa epätoivoon, ja todistin tämän etsimällä Ruby vs JavaScript-työpaikkoja, joten päädyin aloittamaan freeCodeCampin. Yksi asia, joka häiritsi minua freeCodeCampissa, oli se, että he keksivät projektiideoita, joten jokainen matkailija tekee samat projektit. Aluksi tämä koski minua, koska halusin erottua rekrytoijista. Pidin kuitenkin rakastamaan freeCodeCampia, ja nyt suosittelen sitä. Jos haluat lisätietoja kokemuksestani ja suosituksistani freeCodeCampista, tutustu kirjoitusni täällä.

Kuukausi 2 - YDKJS, freeCodeCamp Front End, React

Aloin lukea Et tiedä JavaScriptiä, koska kaikki suosittelivat sitä täydentämään freeCodeCampia. Minun piti lukea useita osioita uudelleen, koska se on melko tiheä, mutta se on täydellinen resurssi oppia leksikaalinen laajuus, sulkemiset, lupaukset ja kaikki JavaScriptin osat, joista kuulet ja haluat oppia, mutta et koskaan tee, koska ne vaikuttavat vaikeilta.

Viimein freeCodeCampin käyttöliittymän. Tarkistusluettelomuoto ja arvioitu valmistumisaika auttoivat minua motivoimaan lopettamaan nopeasti. Minulla oli myös kutina siirtyä seuraavaan osaan ja oppia React. Tämä tarkoitti kuitenkin myös sitä, että projekteillani oli vähän tyyliä. Tein mitä tarvitsin käyttäjien tarinoiden täyttämiseksi, en mitään muuta.

Jälkikäteen ehkä minun olisi pitänyt keskittyä tekemään projekteista houkuttelevampia. Ehkä tämä olisi auttanut minua oppimaan CSS: n syvemmälle.

Seuraava askel oli Reactin oppiminen, ja minut pumpattiin melko hyvin.

Olin kuullut siitä niin paljon, ja olin valmis sopimaan viileiden lasten kanssa. Olin kuitenkin hieman epäröivä ottaen huomioon tuolloin toimilupakysymykset. Olen todella iloinen, että se ei ole enää ongelma. Reactin oppiminen oli minulle vaikeaa. En tiennyt silloin mitään hyviä opetusohjelmia (mutta näyttää siltä, ​​että nyt on tonni).

Yritin lukea asiakirjoja ja seurata Facebookin Tic-Tac-Toe-opetusohjelmaa, mutta en ymmärtänyt sitä kaikkea. Minulle kerrottiin, jos se ei toiminut minulle, se tarkoitti sitä, etten ymmärtänyt JavaScriptiä tarpeeksi. Joten palasin sitten lukemaan Et tiedä JavaScriptiä, mutta se oli taas minulle liian tiheää.

Kuukausi 3 - freeCodeCamp React, CodeClub, freeCodeCamp Back End -sovelluksen käynnistäminen

Viimeinkin päätin vain työskennelläni läpi freeCodeCamp React -projektien nähdäksesi, miten meni. Tuo koodi oli ruma, mutta se auttoi minua ymmärtämään Reactin hieman paremmin.

Se tapaaminen, jossa olin käynyt viikoittain, päätti, että he aikovat rakentaa projekteja, joissa on täysi pino JavaScript Rubyn sijaan, ja he päättivät, että ensimmäinen projekti olisi rakentaa verkkosivusto tapaamisryhmälle CodeClub.Social.

Kehitin kortteja React- ja Meetup-sovellusliittymien avulla, joiden avulla käyttäjä voi ilmoittautua seuraavaan kolmeen tapaamiseen verkkosivustoltamme. Minulle oli hieman vaikeaa tehdä nopea tauko freeCodeCampista, mutta se oli tilaisuus, jota en voinut ohittaa. Olin iloinen työskennellessäni projektissa pienen ihmisryhmän kanssa. Se auttoi minua myös oppimaan Gitin ja Githubin.

Ennen kuin kuukausi oli ohi, aloin työskennellä freeCodeCampin takaosassa.

Kuukausi 4 - Valmis freeCodeCamp Back End, Yeggle

Työskentelin kaikki freeCodeCampin API-projektit, mutta aloin poiketa freeCodeCampista Image Search Abstraction Layer -projektissa.

Minulla oli kutinaa tehdä täyden pinon verkkosovelluksia, joten heti kun näin projektin otsikon, minulla oli idea omasta projektistani. Tein solmasovelluksen, joka tallentaisi satunnaiset imgur-URL-osoitteet tietokantaan, ja tekisin sitten käyttöliittymän, joka tuottaisi käyttäjän määrittelemän määrän näitä satunnaisia ​​kuvia. Se, mitä kaikki sanovat, on totta: työskentelet enemmän ja menestyt enemmän, kun työskentelet projektissa, joka oli oma ideasi.

Kun sain sen toimimaan, olin hyvin ylpeä itsestäni. Se oli ruma ja kömpelö, mutta se toimi.

Työskennellessäni freeCodeCampin kautta, opin, mitkä projektit olisivat kykyni mukaan. Juoksin tuolloin säännöllisesti, joten keksin ajatuksiani juoksustani ja kirjoitin ne ylös, kun palasin kotiin. Tällä tavalla minulla olisi luettelo projektiideoista, kun olin valmis.

Tunsin vihdoin olevani valmis aloittamaan omien hyödyllisten ja hiottujen täyden pinon verkkosovellusten jakamisen käyttäjien kanssa ja portfolioni asettamisen. Olin niin valmis aloittamaan.

Kun etsin uutta ravintolaa, löysin itseni aina avaamalla Yelpin tarkistamaan arvosteluja ja sitten avaamalla Mapsin tarkistamaan heidän arvostelut. Mitä jos tekisin sovelluksen, jossa verrattiin molempia vierekkäin?

Joten tein Yegglen. Käytin Node / Express / React -ohjelmaa yhdessä Google Maps- ja Yelp-sovellusliittymien kanssa. Oli pari estettä, joita en uskonut pystyväni voittamaan, mutta lopulta päädyin ja olin erittäin ylpeä sovelluksestani. Sitten lähetin sen Redditiin, eikä kukaan välittänyt. Se oli vähän hölmö, mutta en antanut sen pettää minua.

Kuukausi 5 - StockIT

En saanut aikaan niin paljon tässä kuussa, kun aloitin sen kahden viikon lomalla Japaniin ja Thaimaahan!

Mutta aloitin ja päätin seuraavan projektini. Luin jatkuvasti, kuinka vaikeaa oli saada työpaikka itseoppinut kehittäjänä, joten ajattelin, että minun oli tehtävä jotain ainutlaatuista. Muistin pelin, jossa Dow Jonesin osakekaavio alkoi kehittyä, ja sinulla oli yksi mahdollisuus ostaa ja yksi mahdollisuus myydä, ja tavoitteena oli voittaa markkinat. Pelin tarkoituksena oli näyttää, kuinka vaikeaa oli voittaa markkinoita.

Ideani oli tehdä samanlainen peli, mutta markkinoiden sijaan pelaat koneoppimisalgoritmia vastaan. Joten loin StockIT: n.

Otin Panda- ja Scikit Learn -opetusohjelman, joka kattoi useita koneoppimistekniikoita. Halusin alun perin tehdä hienoja syvällisiä oppimistekniikoita, mutta tajusin, että siihen kului massiivisia aineistoja ja enemmän aikaa kuin halusin viettää.

Sen sijaan pidin kiinni yksinkertaisesta lineaarisesta regressiomallista. Luulin, että se olisi vaikea osa, mutta ei. D3: n saaminen reaktiiviseen reaktioon oli vaikea osa. Molemmat kirjastot halusivat hallita DOM: ää. Oli joitain muita kirjastoja, jotka auttoivat liittymään kahteen, mutta minusta tuntui, että ne olivat liian paisuneet. Päädyin käyttämään D3: ta SVG: iden luomiseen ja React käsittelemään DOM: ia, joka toimi minulle melko hyvin.

Tällä kertaa, kun jaoin sen Redditin kanssa, kaikki rakastivat sitä!

Osoittautuu, aivan kuten VC: t, redditorit ovat kyse koneoppimisesta. Kaikki Redditin rakkaus oli suuri luottamuksen lisäys. Ihmiset pelasivat peliäni ja nauttivat siitä!

Kuukausi 6 - jobSort (), Job Hunt Prep

StockIT: n jälkeen siirryin suoraan seuraavaan henkilökohtaiseen projektiini. Halusin tehdä työtaulun, joka koottaisi yhteen pienemmät teknologiakeskeiset työnhakusivustot, kuten Stack Overflow, Github ja Hacker News. Lisätäksesi siihen oman ainutlaatuisen pyöräytykseni päätin saada sen lajittelemaan sen mukaan, mitä tekniikoita käyttäjä halusi työssä ja kuinka kovasti he halusivat jokaista heistä.

Oletetaan esimerkiksi, että etsin työtä, joka etsii jotakuta, joka tunsi JavaScriptin, Reactin ja / tai Pythonin, ja halusin todella työskennellä JavaScriptin ja Reactin kanssa, mutta en välittänyt niin paljon Pythonista. Sitten voisin antaa JavaScriptille 3, React 3 ja ehkä Python 1: n. Listaukset lajitellaan sitten vastaavasti.

Tämän projektin kanssa törmäsin erilaisiin esteisiin ja jouduin vaihtamaan kurssia pari kertaa, mutta päädyin tuotteeseen, josta olin tyytyväinen. Viimeinen tekninen pinoani oli React / Node / Express / MySQL. Lähetin projektin cscareerquestions subredditiin ja sain 650 näyttökertaa ennen kuin se poistettiin, koska ne eivät salli henkilökohtaisia ​​projekteja.

"Lopputuote" on täällä, ja jos olet kiinnostunut tietämään enemmän kamppailuistani ja refaktoreistani, tutustu tähän viestiin.

Ongelmieni takia jobSort () vei kunnollisen osan kuukaudesta. Päädyin saamaan kahvia ystävän kanssa, jonka tapasin ensimmäisessä tapaamisessani, ja hän neuvoi minua aloittamaan työpaikkojen hakemisen nyt. Luin koko paikan, jonka jokainen sanoo odottaneensa liian kauan. Aina kun näin viestin, jossa kysyttiin, milloin hakea, ylin kommentti oli aina "nyt".

Pääni mukaan aioin työskennellä läpi jäsennellyn suunnitelmani rakentaa portfolioni henkilökohtaisilla projekteilla, sitten työskennellä avoimen lähdekoodin avustusten parissa, valmistautua sitten haastatteluihin ja lopulta aloittaa hakemisen työpaikoille. Tämä ystävä vakuutti minut ojentamaan suunnitelman ja aloittamaan soveltamisen. Joten tässä kuussa tein salkun ja ansioluettelon. Seuraavan kuukauden aikana aloitin hakemisen.

Kuukausi 7 - testaus, työnhaku

Tässä kuussa keskityin koskemaan hankkeitani ja hakemaan työpaikkoja. Halusin myös oppia testauksen ja Reduxin.

Lisäsin flexboxin CodeClub.Socialiin, jotta se olisi herkkä. Parannin mobiilikäyttöjärjestelmää JobSortissa (). Lisäsin testin JobSort () -ohjelmaan mokalla / chai / entsyymillä, jota oli vaikea asentaa, helppo aloittaa ja sitten vaikea saada 100% kattavuus.

Kuukauden loppuun mennessä olin hakenut 63 työpaikkaa. Pidin tätä itsearviointina. Oliko portfolioni / ansioluetteloni tarpeeksi hyvä? Jos on, niin mitä minun piti työskennellä valmistautuakseni haastatteluihin? Aluksi hakeuduin Hacker News: Who palkkaamiseen, ja todellakin.

Hacker News -sivustossa käytin jobSort () -sovellusta määritellessäsi ilmoituksia, joihin haet. Itse kokeilin muita kuin ohjelmistoyrityksiä selvittääkseen, voinko edes saada puhelun tai haastattelun mistä tahansa.

Aluksi haen nopeasti eikä räätälöin ansioluetteloni / saatekirjeeni. Sitten päätin räätälöidä kansikirjeeni ja jatkaa ja yrittää sitten lähettää sähköpostia jollekulle yrityksestä. Tämä menetelmä oli selvästi parempi kuin haulikko.

Sain tuossa kuussa viisi puhelua - kaksi rekrytointiyrityksiltä ja kolme ohjelmistoyrityksiltä, ​​joihin kuului:

  • DevOpsin / testausroolin dotcom-yrityksessä
  • B-sarjan elintarvikeanalyysiyritys ja
  • melko suuri ja onnistunut startup, jonka äskettäin osti suuri yritys

Pääsin HR-näytön ohi kahdessa näistä, mutta yksikään niistä ei tuottanut paikan päällä olevaa haastattelua. Olin melko tyytyväinen kolmeen puheluun, ja opin niistä paljon.

Kaikki mainitsivat verkossa, että nuorempien kehittäjien ei odoteta tietävän niin paljon alusta alkaen, heidän on vain oltava intohimoisia ja innostuneita oppimaan. Joten ajattelin, helppoa. Olen intohimoinen ja innoissani oppimisesta. Näistä puheluista opin kuitenkin, että kukaan ei etsinyt nuorempaa kehittäjää. He odottavat sinun tietävän, mitä olet tekemässä alusta alkaen.

Nämä puhelut opettivat minulle, että minun tarvitsi

  • olla tarpeeksi hyvä lisäarvoa varten ensimmäisestä päivästä lähtien
  • ole tarpeeksi luottavainen vakuuttamaan heidät siitä, että voin lisätä arvoa alusta alkaen

Kuukausi 8 - yövuoro, Redux, avoin lähdekoodi, haastattelu paikan päällä

Aloitin tässä kuussa työskentelemällä yövuorossa 40 päivän jaksolla kokopäiväisessä työni - 6 päivää viikossa, 12 tuntia päivässä, 17–5. Uh.

Tiesin, etten pystyisi tekemään niin paljon tässä kuussa, mutta minulla oli tavoite ja halusin saavuttaa sen, joten en voinut ottaa kuukautta vapaata.

Refactored jobSort käyttää Redux, joka ei yllättäen ollut niin vaikeaa kuin luulin sen olevan. Kuuntelin siitä paljon podcasteja ja luin blogikirjoituksia siitä, eikä minulle ollut koskaan järkevää, ennen kuin aloin käyttää sitä.

Pidän todella tiedonsiirrosta Reduxin kanssa. Nyt on mielenkiintoista nähdä ihmiset valittavan Reduxista. En usko, että olen pätevä juoksuttamaan mielipiteitäni voimakkaasti, mutta pidän pelkistimen mallista.

Tämän piti olla minulle avoimen lähdekoodin kuukausi. Aion antaa ensimmäisen avoimen lähdekoodin julkaisun, ja se olisi suuri panos upeaan kirjastoon. Aioin osallistua React!

Kaikki sanoivat, että se oli vaikea lukea koodipohjaa, puhumattakaan osallistumisesta. Mutta minun piti erottua, minun piti olla ainutlaatuinen. Tiesin, että panokseni ei olisi merkittävä, mutta halusin silti tehdä sen.

Aloitan lukemalla asiakirjat läpi ja kaatamalla sitten koodipohjan läpi. Katso jokainen numero, jokainen PR. React-asiakirjojen lukeminen kokonaisuudessaan oli hieno harjoitus, ja olen iloinen, että tein sen. Mutta tajusin nopeasti, että Reactin osallistumisessa on kysymys siitä, että "hyviä ensimmäisiä numeroita" ei vain ole niin paljon, ja ne nappataan nopeasti.

Eräässä tapaamisessani, jossa osallistuin, Anthony Ng suositteli kokeilemaan Downshiftia, Kent C.Doddsin automaattista täydennyskirjastoa. Tämä oli pelinvaihtaja. Se oli aivan ohjaamossani. Oikea vaikeus, oikea määrä ongelmia, ei liian monta yhteiskäyttäjää, erittäin hyödyllinen ylläpitäjä, puhdas ja testattu koodi. Kaiken lisäksi se oli täydellinen ratkaisu joihinkin ongelmiin, joita minulla oli JobSort () -sovellukseni kanssa.

Noin kuukauden puolivälissä sain sähköpostin yhdeltä yritykseltä, johon hain edellisen kuukauden aikana. He asettivat puhelimen alkuperäisen näytön ja sitten teknisen puhelimen näytön. Heidän etsimänsä tekniikat olivat juuri sitä, mitä olin oppinut - React, Redux ja D3. Puhuin enimmäkseen vain projekteistani ja siitä, miksi tein tiettyjä päätöksiä. Tämän jälkeen he pyysivät minua tulemaan paikalle haastatteluun. Ensimmäinen haastatteluni paikan päällä!

En ollut lainkaan valmistautunut haastatteluihin, joten menin siihen odottaen, etten saisi työtä, mutta saisin arvokasta haastattelukokemusta. Juoksin myös kolme tuntia unta, koska työskentelin edelleen yövuorossa, mikä ei auttanut. Onneksi tekninen osa ei ollut taulua, vain yhden tunnin pariohjelmointi. Se oli melko yksinkertainen haaste, mutta olin hyvin hermostunut.

Aluksi olin huolissani siitä, että tiedän kaiken tietämättä sitä etsimättä. Kun tajusin, että en aio suorittaa haastetta loppuun, tajusin, että minun oli lopetettava huolestuminen siitä, mitä haastattelija ajatteli minusta, ja vain google / pinon ylivuoto löytää vastauksia. En päätynyt loppuun, ja ajattelin epäonnistuneen surkeasti.

Koska luulin epäonnistuneen parien ohjelmoinnissa, tunsin oloni rento koko haastattelun ajan. Viime kädessä jätin haastattelun leuka ylös. Pahimmassa tapauksessa sain arvokkaan haastattelukokemuksen, ja parhaimmillaan sain ensimmäisen työtarjoukseni.

Kuukausi 9 - Työtarjous

Sain ensimmäisen työtarjoukseni 9 kuukautta ja 7 päivää ensimmäisen päivän jälkeen, kun päätin sukeltaa ensin ohjelmointiin muuttaakseni uraa. Tunsin itseni luottavaiseksi, koska sain tarjouksen ensimmäisen paikan päällä tehdyn haastattelun jälkeen, mutta samalla, jos en ottanut tarjousta, entä jos tämä olisi ainoa tarjous, jonka saisin usean kuukauden ajan? Päätin ottaa tarjouksen ja olen tyytyväinen päätökseeni. Halusin maksaa koodiin!

Neuvoja

Tähän asti olen enimmäkseen jakanut tarinani joitain neuvoja, joihin on ripoteltu. Mahdollisuudet ovat, jos luet tätä, ajattelet joko uran vaihtamista tai olet keskellä oppimista koodaamaan muuttaaksesi uraa. Toivon, että alla olevat neuvot auttavat sinua kehittämään suunnitelman tai pitämään kiinni nykyisestä suunnitelmastasi ja saavuttamaan tavoitteesi.

  1. Ota selvää, mikä motivoi sinua, ja käytä sitä eduksesi. Minulle se oli tarkistuslistoja, edistyksen dokumentoiminen ja vuorovaikutus erilaisten ohjelmointiyhteisöjen kanssa. Jos et ole motivoitunut saavuttamaan tavoitteesi, mikään muu ei ole merkitystä, koska et pääse loppuun.
  2. Tee tavoitteita ja täytä ne. Väittäisin, että sinulla pitäisi olla kuukausittaiset tavoitteet ja ehkä jopa päivittäiset tavoitteet. Kuukausittaiset tavoitteet varmistaaksesi, että olet tavoitteen saavuttamisessa, ja päivittäiset tavoitteet varmistaaksesi, että edistyt päivittäin. Yksi strategia, joka toimi minulle, oli tehdä päivittäiset tavoitteeni edellisenä iltana. Tällä tavoin et voi tehdä tuottamatonta työtä koko päivän ja tuntea edistyneesi, kun et todellakaan ole. Se pakottaa sinut vertaamaan päivittäisiä saavutuksiasi päivittäisiin tavoitteisiisi.
  3. Mene tapaamisiin ennen kuin luulet olevasi valmis. Tapaamisiin meneminen voi tuntua pelottavalta, mutta kuten edellä mainitsin. Mutta yleensä kaikki ovat mukavia ja halukkaita auttamaan. Saatat löytää ihmisiä, jotka eivät ole kiinnostuneita puhumaan kanssasi, mutta he ovat vähemmistö, eikä kukaan tule tuomitsemaan. Lisäksi kaikki rakastavat antaa neuvoja (kuten minä teen juuri nyt).
  4. Osallistu avoimen lähdekoodin tapaan, ennen kuin luulet olevasi valmis. Kun aloitat ohjelmoinnin, Github näyttää olevan tämä pelottava paikka, johon et koskaan halua mennä. Se on todella tervetullut aloittelijoille ja on loistava paikka nähdä hyvä koodi ja tarkistaa oma koodi. Jos et vieläkään ole vakuuttunut, tutustu viestiin Miksi sinun pitäisi osallistua avoimeen lähdekoodiin juuri nyt.
  5. Aloita hakeminen ennen kuin luulet olevasi valmis. Tämä oli minulle kova, koska ajattelin olevani erilainen. Luulin, että minun ei tarvitse testata markkinoita saadakseni tuntea, mihin työskennellä. Luulin tietäväni, milloin olisin valmis hakemaan. Minä sanon sinulle juuri nyt. Et tiedä milloin hakea. Joten voit yhtä hyvin aloittaa nyt. Sinun ei pitäisi mennä hulluksi ja hakea 300 yritystä ennen kuin opit silmukoille. Mutta sinun pitäisi tietää, että paras tapa tietää mitä sinun tarvitsee oppia on soveltamalla ja testaamalla markkinoita.

Mene takaisin sinne ja koodaa!