Hvordan jeg gik fra nybegynder til softwareingeniør på 9 måneder, mens jeg arbejdede på fuld tid

I dette indlæg vil jeg dele, hvordan jeg gik fra nul (ish) til et seks-cifret softwareteknisk jobtilbud på ni måneder, mens jeg arbejdede på fuld tid og var selvlært.

Hver gang jeg begyndte at læse en succeshistorie, ville jeg straks se efter forfatterens baggrund i håb om, at den ville matche min. Jeg fandt aldrig nogen, der havde samme baggrund som mig, og sandsynligvis matcher min ikke nøjagtigt din.

Ikke desto mindre håber jeg, at min historie inspirerer andre og fungerer som et værdifuldt datapunkt, der kan føjes til dit succeshistoriedatasæt.

Fuld åbenhed

Jeg tog et Visual Basic for Applications-kursus (VBA) i gymnasiet (for ni år siden). På mit førsteårs ingeniørkursus (for syv år siden) lærte jeg noget C, Python, Matlab og Labview. Jeg dimitterede fra et godt universitet med en kemiteknisk grad og en god GPA (for tre år siden). Jeg havde ikke lavet nogen programmering uden for skolen, i gymnasiet eller college, før jeg besluttede at jeg ville lære sidste år.

Efter college fik jeg et job som procesingeniør på et raffinaderi. Jeg arbejdede der, indtil jeg skiftede karriere til Software Engineering.

Hvorfor jeg ville skifte karriere

Jeg nød at løse tekniske problemer, men jeg vidste, at jeg på et tidspunkt ville komme ind i forretnings- / opstartsverdenen. Jeg lagde altid tanken om en MBA bag mig, men hver gang jeg kiggede på topskolernes pris, aftog min interesse.

Den 27. maj 2017 befandt jeg mig i at google om MBA'er igen, og på en eller anden måde snublede jeg over software engineering. Det virkede som en perfekt pasform.

Softwareingeniører er i stigende efterspørgsel, lønningerne er gode, og det er den perfekte branche, hvorfra man kan komme ind i startverdenen uden at skulle bruge masser af startkapital. Alt hvad du behøver er en computer, og dine muligheder er ubegrænsede (slags).

I ingen anden ingeniørdisciplin kan du bare have en idé, begynde at opbygge den, vise den for brugerne og gentage den med lille kapital og lav adgangsbarriere. Inden for kemiteknik har du i det væsentlige brug for et kørende anlæg eller en masse penge til at designe et anlæg, hvis du havde en idé til et nyt produkt.

Jeg havde hørt om folk, der forlod deres job og deltog i et bootcamp, men jo mere jeg læste om det online, jo mere indså jeg, at du helt kan lære det hele alene, hvis du er engageret og fokuseret.

Du hævder måske, at du mister det netværk og karrierevejledning, der leveres af et bootcamp. Dette kan være sandt, men jeg var så heldig, at jeg boede i Bay Area, som tillod mig at deltage i flere møder, så jeg netværker på den måde.

Desuden var det værste tilfælde, at jeg ville indse, at jeg ikke kunne gøre det alene, og så ville jeg afslutte mit job for at deltage i et bootcamp.

Målet

Du skal have et mål. Især hvis du prøver at lære, mens du arbejder på fuld tid. Det er let at lade din læring trække og fortsætte, hvis du ikke har noget eksternt pres, der skubber dig. Så du er nødt til at skabe internt pres. Dit mål skal være simpelt og kvantitativt. Du bør lave nok forskning for at nå et rimeligt mål. Min var følgende:

Få et softwareingeniørjob inden for et år med den samme eller bedre løn, end jeg laver lige nu.

Planen

Når du først har et mål, har du brug for en plan for at hjælpe dig med at komme derhen. Det er her, du spiser så mange succeshistorier, som du kan. Ingen af ​​dem matcher din nøjagtige situation, men du kan få nogle råd fra hver enkelt. Jeg udviklede (og gentog) min plan ved hjælp af ressourcer som lærprogrammering subreddit, freeCodeCamp forum og Medium.

Den 27. maj 2017 besluttede jeg, at jeg ville sætte kodningen, og jeg dykkede først i hovedet. Den dag besluttede jeg at begynde at lægge højst 40 timer om ugen på mit job, så jeg havde tid til at kode efter arbejde og i weekenden. Heldigvis for dig gjorde jeg et godt stykke arbejde med at dokumentere mine fremskridt.

Min plan gennem mange gentagelser endte med at se sådan ud:

  1. Tag et introduktion til CS-kursus for at få en solid grundforståelse af centrale CS-koncepter
  2. Følg freeCodeCamp, indtil jeg kan oprette porteføljeniveau fuld stack webapps alene
  3. Refactor for at rydde op i koden, tilføje test, fokusere på avancerede koncepter
  4. Bidrag til open source
  5. Forbered dig på jobinterviews

Til at begynde med var min plan enkel. På det tidspunkt troede jeg, at jeg skulle følge Googles tekniske guide, så jeg startede med deres anbefalede introduktionskursus, Udacity CS101.

Måned 0 - Udacity CS101, Harvard CS50

Det høje ved at tage denne store beslutning gav mig masser af energi. Jeg begyndte at kode, så snart jeg kom hjem fra arbejde og stoppede ikke, før jeg gik i seng. Og så igen hele weekenden. Udacity CS101 spores færdiggørelsesprocent, hvilket var en stor motivator for mig. Jeg loggede min færdiggørelsesprocent hver dag efter kodning. Jeg sluttede de første 75% på 10 dage. De sidste 25% var tunge i rekursion, og det var lidt hårdere for mig. Alt i alt tog det mig 20 dage at afslutte Udacity CS101.

Mens jeg tog Udacity CS101, var jeg begyndt at læse læringsprogrammering subreddit ganske tungt. Jeg læste, at det var vigtigt for selvlærede udviklere, der ønsker at foretage en karriereændring, for at være aktive online. Jeg besluttede at oprette nye Twitter-, Reddit-, Stack Overflow-, Medium- og Quora-konti ved hjælp af mit fulde navn, så jeg kunne opbygge en online tilstedeværelse.

Jeg besluttede også at stoppe med at læse distraherende medier som Instagram, Facebook og ikke-programmerende subreddits. Jeg ville kun tjekke min telefon for programmeringsrelaterede nyheder og indlæg. Dette var afgørende for at sikre, at jeg fandt ud af de bedste læringsveje og læringsressourcer. Det var på grund af dette, at jeg fandt ud af om Harvard CS50 på edX.

Jeg var oprindeligt tilfreds med bare at lave et intro-kursus, men alle syntes at anbefale Harvard CS50, så jeg besluttede at dykke ned i det næste. CS-studerende på andre skoler havde taget dette kursus og sagde, at de lærte mere i CS50 end et år eller to på deres universitet, der studerede CS. Den generelle enighed var, at kurset var svært, men det var det værd. Ved udgangen af ​​måned 0 havde jeg gennemført de første 5 forelæsninger og lektieopgaver.

Måned 1 - Harvard CS50, Linux, 1. møde, freeCodeCamp

Jeg gennemførte CS50 halvvejs ud i måneden. Jeg vil ikke kommentere for meget på min erfaring med CS50, fordi jeg skrev et indgående indlæg om min oplevelse her.

TLDR: Det er et godt kursus, jeg kan varmt anbefale det. David Malan er en fremragende underviser, og der er masser af ressourcer, der kan hjælpe dig med at komme igennem det. Du starter i C, går videre til Python og afslutter derefter med webudvikling. Det er meget tæt, og der er meget materiale, men jeg synes, det er det værd.

Efter CS50 besluttede jeg at konfigurere min XPS 15 til dual boot Windows og Ubuntu. Det var en frustrerende weekend. Jeg ødelagde mine partitioner og næsten muret min bærbare computer. Jeg var tæt på at skære min bærbare computer og få en ny.

Jeg vænnede mig langsomt fra Windows og til sidst brugte jeg udelukkende Ubuntu. Jeg ville tvinge mig selv til at blive fortrolig med kommandolinjen, som jeg synes fungerede til en vis grad, men jeg har stadig en lang vej at gå.

Jeg startede 100 dages kode for at sikre, at jeg holdt fokus og kodede hver dag.Det er vigtigt at dokumentere dine fremskridt. Hvis du gør fremskridt hver dag, ser det ikke ud som meget, men når du ser tilbage på en måned eller flere måneder, vil du indse, at du faktisk har gjort en hel del fremskridt, der motiverer dig til at fortsætte.

Jeg vidste, at netværk ville skabe eller ødelægge mig, så jeg skaffede mig modet til at gå til mit første kodemøde. Jeg var aldrig gået til noget møde, endsige et kodende møde. Jeg var så nervøs, at efter at have kørt der, parkeret og gået til døren, vendte jeg mig næsten rundt og gik hjem.

Det hjalp, at det var gruppens første møde. Jeg indså hurtigt, at der ikke var nogen grund til at være nervøs. Ingen kendte hinanden, ingen var fordømmende, og alle var ivrige efter at lære. Dette var begyndelsen på en meetup-spree. Jeg endte med at deltage i over 50 møder på 9 måneder.

Jeg er glad for, at jeg begyndte at gå til møder tidligt. De fleste begyndte kun at deltage i møder, da de ledte efter et job, men på det tidspunkt er det næsten for sent. Der er så mange grunde til at starte tidligt. For at nævne et par stykker:

  1. At udvikle relationer tager lang tid. At starte tidligt betyder, at du har forbindelser, der kan garantere dig, når du leder efter et job senere
  2. At tale om programmering med fremmede er en fantastisk måde at forberede sig på interviews på
  3. Du kan lære nye rammer, værktøjer og læringsressourcer fra mennesker, der er foran dig. Dette kan påvirke din fremtidige læringsplan.

Der var en vis usikkerhed på dette tidspunkt i min kodningsrejse. Dette handlede om, da jeg havde brug for at beslutte, hvilken slags softwareudvikler jeg ville være.

I sidste ende valgte jeg webudvikling, fordi det virkede som om der var stor efterspørgsel og også en masse online ressourcer. Når jeg først havde fundet ud af det, var jeg nødt til at finde ud af, hvad jeg skulle gøre næste gang. Nogle mennesker anbefalede, at jeg på dette tidspunkt skulle tænke på webapps, jeg ville bygge og derefter komme i gang. Nogle mennesker anbefalede The Odin Project eller freeCodeCamp.

Fyren, der kørte det ugentlige møde, jeg deltog i, kendte Ruby og ville lave projekter med Ruby. Dette var en stor grund til, at jeg besluttede at gå ind på The Odin Project.

Og så to dage senere fjernede jeg den idé.

Det er en af ​​ulemperne ved at gå den selvlærede rute. Et minut tror du, du ved, hvilken vej du skal tage, men den næste dag spekulerer du på, om det var det rigtige skridt.

Jeg læste, at Ruby faldt ud af favør, og jeg beviste dette ved at søge efter Ruby vs JavaScript-job, så jeg endte med at starte freeCodeCamp. Den ene ting, der generede mig ved freeCodeCamp, var at de kom med projektideerne, så hver autocamper gør de samme projekter. Dette bekymrede mig først, fordi jeg ville skille mig ud for rekrutterere. Jeg endte dog med at elske freeCodeCamp, og nu kan jeg varmt anbefale det. For flere detaljer om min erfaring og anbefalinger vedrørende freeCodeCamp, tjek min opskrivning her.

Måned 2 - YDKJS, freeCodeCamp Front End, React

Jeg begyndte at læse You Don't Know JavaScript, fordi alle anbefalede det som supplement til freeCodeCamp. Jeg var nødt til at læse flere sektioner igen, da det er ret tæt, men det er en perfekt ressource til at lære leksikalt omfang, lukninger, løfter og alle dele af JavaScript, som du hører om og vil lære, men aldrig gør, fordi de virker vanskelige.

Jeg afsluttede front-end sektionen af ​​freeCodeCamp. Tjeklisteformatet og den estimerede afslutningstid hjalp mig med at motivere mig til at afslutte hurtigt. Jeg kløede også for at gå videre til næste afsnit og lære at reagere. Dette betød imidlertid også, at mine projekter havde minimal styling. Jeg gjorde hvad der kræves for at opfylde brugerhistorierne og intet mere.

Efterhånden skulle jeg måske have fokuseret på at gøre projekterne mere tiltalende. Måske ville dette have hjulpet mig med at lære CSS dybere.

Det næste trin var at lære React, og jeg var temmelig pumpet.

Jeg havde hørt så meget om det, og jeg var klar til at passe ind i de seje børn. Jeg var dog lidt tøvende i betragtning af licensproblemerne på det tidspunkt. Jeg er virkelig glad for, at det ikke længere er et problem. Learning React var svært for mig. Jeg var ikke opmærksom på nogen gode tutorials dengang (men det ser ud til, at der er et ton nu).

Jeg prøvede at læse dokumenterne og følge med på Facebooks Tic-Tac-Toe-tutorial, men jeg forstod ikke helt det hele. Jeg fik at vide, at hvis det ikke fungerede for mig, så betød det, at jeg ikke forstod JavaScript nok. Så så vendte jeg tilbage til at læse Du kender ikke JavaScript, men igen var det for tæt for mig.

Måned 3 - freeCodeCamp React, CodeClub, starter freeCodeCamp Back End

I sidste ende besluttede jeg bare, at jeg ville arbejde mig gennem freeCodeCamp React-projekterne for at se, hvordan det gik. Denne kode var grim, men det hjalp mig med at forstå React lidt bedre.

Det møde, jeg havde deltaget ugentligt, besluttede, at de skulle bygge projekter med JavaScript i fuld stak i stedet for Ruby, og de besluttede, at det første projekt ville være at bygge et websted til møde-gruppen, CodeClub.Social.

Jeg udviklede kort ved hjælp af React og Meetup API, der giver brugeren mulighed for at tilmelde sig de næste tre møder fra vores hjemmeside. Det var lidt svært for mig at tage en hurtig pause fra freeCodeCamp for at gøre dette, men det var en mulighed, jeg ikke kunne give afkald på. Jeg var glad for at arbejde på et projekt med en lille gruppe mennesker. Det hjalp mig også med at lære Git og Github.

Inden måneden var forbi, begyndte jeg at arbejde på bagenden af ​​freeCodeCamp.

Måned 4 - Færdig freeCodeCamp Back End, Yeggle

Jeg arbejdede gennem alle API-projekterne i freeCodeCamp, men jeg begyndte at afvige fra freeCodeCamp ved Image Search Abstraction Layer-projektet.

Jeg kløede at lave web-applikationer i fuld stak, så så snart jeg så titlen på dette projekt, havde jeg en idé til mit eget projekt. Jeg ville lave en node-app, der lagrede tilfældige imgur-URL'er i en database og derefter lave en frontend, der ville udsende et brugerdefineret antal af disse tilfældige billeder. Det, som alle siger, er sandt: du arbejder hårdere og har større succes, når du arbejder på et projekt, der var din egen idé.

Når jeg først fik det til at arbejde, var jeg meget stolt af mig selv. Det var grimt og klodset, men det fungerede.

Da jeg arbejdede gennem freeCodeCamp, lærte jeg om, hvilke projekter der ville være inden for mine muligheder. Jeg løb regelmæssigt på det tidspunkt, så jeg ville komme med ideer til mine løb og skrive dem ned, da jeg kom hjem. På den måde ville jeg have en liste over projektideer, når jeg var klar.

Endelig følte jeg mig klar til at begynde at lave mine egne nyttige og polerede full-stack webapps til at dele med brugerne og sætte på min portefølje. Jeg var så klar til at komme i gang.

Når jeg ledte efter en ny restaurant, befandt jeg mig altid i at åbne Yelp for at kontrollere anmeldelser og derefter åbne Maps for at kontrollere deres anmeldelser. Hvad hvis jeg lavede en app, der sammenlignede begge side om side?

Så jeg lavede Yeggle. Jeg brugte Node / Express / React sammen med Google Maps og Yelp API'er. Der var et par forhindringer, som jeg ikke troede, jeg ville være i stand til at overvinde, men til sidst sluttede jeg, og jeg var meget stolt af min app. Så sendte jeg det til Reddit, og ingen brydde sig om det. Det var lidt af en bummer, men jeg lod ikke det komme mig ned.

Måned 5 - StockIT

Jeg blev ikke færdig med så meget denne måned, da jeg startede det med en to ugers ferie til Japan og Thailand!

Men jeg startede og afsluttede mit næste projekt. Jeg fortsatte med at læse om, hvor svært det var at få et job som selvlært udvikler, så jeg troede, jeg var nødt til at gøre noget unikt. Jeg huskede et spil, hvor en Dow Jones-aktiegrafik begyndte at trække, og du havde en mulighed for at købe og en mulighed for at sælge, og målet var at slå markedet. Formålet med spillet var at vise dig, hvor svært det var at slå markedet.

Min idé var at lave et spil der lignede det, men i stedet for markedet ville du spille mod en maskinlæringsalgoritme. Så jeg oprettede StockIT.

Jeg tog en videovejledning om Pandas og Scikit Learn, der dækkede flere maskinindlæringsteknikker. Jeg ville oprindeligt lave nogle seje dyb læringsteknikker, men jeg indså, at det tog massive datasæt og mere tid, end jeg ville bruge.

I stedet holdt jeg mig til en simpel lineær regressionsmodel. Jeg troede, det ville være den svære del, men det var det ikke. At få D3 til at jive med React var den svære del. Begge biblioteker ønskede at kontrollere DOM. Der var nogle andre biblioteker, der hjalp med til at slutte sig til de to, men jeg følte, at de var for oppustede. Jeg endte med at bruge D3 til at generere SVG'er og React til at håndtere DOM, som fungerede ganske godt for mig.

Denne gang, da jeg delte det med Reddit, elskede alle det!

Det viser sig, ligesom VC'er, redditors handler om maskinindlæring. Al kærligheden fra Reddit var et stort tillidsforøgelse. Folk spillede mit spil og nød det!

Måned 6 - jobSort (), Job Hunt Prep

Efter StockIT rullede jeg lige ind i mit næste personlige projekt. Jeg ønskede at oprette et jobbræt, der samlede de mindre teknologifokuserede joblistingswebsteder som Stack Overflow, Github og Hacker News. For at tilføje mit eget unikke spin til det besluttede jeg at få det sorteret ud fra de teknologier, som brugeren ønskede i et job, og hvor dårligt de ønskede hver af dem.

Lad os for eksempel sige, at jeg ledte efter et job, der ledte efter nogen, der kendte JavaScript, React og / eller Python, og jeg ville virkelig arbejde med JavaScript og React, men jeg var ligeglad med Python. Så kunne jeg give JavaScript en 3, reagere en 3 og måske Python en 1. Fortegnelserne sorteres derefter.

Jeg stødte på forskellige forhindringer med dette projekt og måtte ændre kursus et par gange, men jeg endte med et produkt, jeg var tilfreds med. Min sidste tekniske stak var React / Node / Express / MySQL. Jeg sendte projektet til cscareerquestions subreddit og fik 650 visninger, før det blev taget ned, fordi de ikke tillader personlige projekter.

Det "endelige" produkt er her, og hvis du er interesseret i at vide mere om mine kampe og refaktorer, så tjek mit indlæg her.

På grund af mine problemer tog jobSort () en anstændig del af måneden op. Jeg endte med at få kaffe med en ven, jeg havde mødt ved mit første møde, og han rådede mig til at begynde at ansøge om job nu. Jeg læste overalt, at alle siger, at de ventede for længe på at ansøge. Også når jeg så et indlæg, der spurgte, hvornår jeg skulle ansøge, var den øverste kommentar altid "nu".

I mit hoved skulle jeg arbejde mig igennem min strukturerede plan for at opbygge min portefølje med personlige projekter og derefter arbejde på open source-bidrag og derefter forberede mig på interviews og endelig begynde at ansøge om job. Denne ven overbeviste mig om at fjerne planen og begynde at anvende. Så denne måned lavede jeg en portefølje og et CV. Den følgende måned begyndte jeg at ansøge.

Måned 7 - Test, jobjagt

Denne måned fokuserede jeg på at røre ved mine projekter og søge job. Jeg ville også lære at teste og Redux.

Jeg tilføjede flexbox til CodeClub.Social for at gøre det lydhørt. Jeg forbedrede den mobile UX på jobSort (). Jeg tilføjede test til jobSort () med mokka / chai / enzym, som var svært at konfigurere, let at komme i gang og derefter svært at få 100% dækning.

Ved udgangen af ​​måneden havde jeg ansøgt om 63 job. Jeg så dette som en selvvurdering. Var min portefølje / CV godt nok? Hvis ja, hvad havde jeg brug for at arbejde på for at forberede mig til interviews? Først ansøgte jeg om Hacker News: Hvem ansætter og faktisk.

På Hacker News brugte jeg jobSort () til at bestemme, hvilke lister jeg skulle ansøge om. Faktisk prøvede jeg ikke-softwarevirksomheder for at se, om jeg endda kunne få et opkald eller et interview hvor som helst.

Først ansøgte jeg hurtigt og personaliserede ikke mit CV / følgebrev. Derefter besluttede jeg at personalisere mit følgebrev og genoptage og derefter prøve at sende en e-mail til nogen fra virksomheden. Denne metode var klart bedre end haglgeværmetoden.

Jeg modtog fem opkald den måned - to fra rekrutteringsfirmaer og tre fra softwarevirksomheder, der omfattede:

  • en kontraherende DevOps / testrolle hos et dotcom-firma
  • en serie B fødevareanalysevirksomhed og
  • en ret stor og vellykket opstart, der for nylig blev købt af et større selskab

Jeg kom forbi HR-skærmen i to af disse, men ingen af ​​dem gav et onsite-interview. Jeg var ret tilfreds med de tre opkald, og jeg lærte meget af dem.

Alle nævnte online, at juniorudviklere ikke forventes at vide så meget fra starten, de skal bare være lidenskabelige og glade for at lære. Så jeg tænkte let. Jeg er lidenskabelig og begejstret for at lære. Hvad jeg lærte af disse opkald var imidlertid, at ingen ledte efter en juniorudvikler. De forventer, at du ved, hvad du laver fra første dag.

Disse opkald lærte mig, at jeg havde brug for det

  • være god nok til at tilføre værdi fra dag et
  • være sikker nok til at overbevise dem om, at jeg kan tilføre værdi fra første dag

Måned 8 - Natskift, Redux, Open Source, onsite-interview

Jeg begyndte i denne måned at arbejde på natskift i en 40-dages strækning på mit fuldtidsjob - 6 dage om ugen, 12 timer om dagen, 17:00 til 05:00. Ugh.

Jeg vidste, at jeg ikke ville være i stand til at få gjort så meget denne måned, men jeg havde et mål, og jeg ville gerne opfylde det, så jeg kunne ikke tage en måned fri.

Jeg refactored jobSort at bruge Redux, hvilket overraskende nok ikke var så svært som jeg troede det ville være. Jeg lyttede til mange podcasts om det og læste blogindlæg om det, og det gav mig aldrig helt mening, før jeg begyndte at bruge det.

Jeg kan virkelig godt lide datastrømmen med Redux. Det er interessant nu at se folk klage over Redux. Jeg tror ikke, jeg er kvalificeret til at tømme mine meninger stærkt, men jeg kan godt lide reduktionsmønsteret.

Dette skulle være den måned med open source for mig. Jeg ville give mit første open source-bidrag, og det ville være et stort bidrag til et fantastisk bibliotek. Jeg ville bidrage til React!

Alle sagde, at det var en vanskelig codebase at læse, endsige bidrage til. Men jeg havde brug for at skille mig ud, jeg skulle være unik. Jeg vidste, at mit bidrag ikke ville være væsentligt, men jeg ville alligevel gøre det alligevel.

Jeg ville starte med at læse dokumenterne hele vejen igennem og derefter hælde igennem kodebasen. Se hvert nummer, hver PR. At læse igennem React-dokumenterne fuldt ud var en god øvelse, og jeg er glad for, at jeg gjorde det. Men jeg indså hurtigt, at problemet med at bidrage til React er, at der bare ikke er så mange "gode første numre", og de bliver hurtigt snappet op.

På et af de møder, jeg deltog i, anbefalede Anthony Ng, at jeg afprøvede Downshift, et autofuldførelsesbibliotek af Kent C. Dodds. Dette var en gamechanger. Det var lige i mit styrehus. Den rigtige vanskelighed, den rigtige mængde problemer at hjælpe med, ikke for mange samarbejdspartnere, super hjælpsom vedligeholder, ren, velafprøvet kode. Oven i alt var det en perfekt løsning på nogle problemer, jeg havde med min jobSort () -applikation.

Omkring halvvejs i løbet af måneden modtog jeg en e-mail fra et af de virksomheder, jeg ansøgte om i den foregående måned. De oprettede en indledende telefonskærm og derefter en teknisk telefonskærm. De teknologier, de ledte efter, var nøjagtigt hvad jeg havde lært - React, Redux og D3. Jeg talte for det meste bare om mine projekter, og hvorfor jeg tog bestemte beslutninger. Efter dette bad de mig om at komme på stedet til et interview. Mit første onsite-interview!

Jeg havde overhovedet ikke forberedt mig på interviews, så jeg gik ind i det med forventning om, at jeg ikke ville få jobbet, men jeg ville få værdifuld interviewerfaring. Jeg kørte også på tre timers søvn, da jeg stadig arbejdede på natskiftet, hvilket ikke hjalp. Heldigvis var den tekniske del ikke whiteboarding, kun en times programmeringssession med par. Det var en ret ligetil udfordring, men jeg var meget nervøs.

Først var jeg bekymret for at sikre mig, at jeg vidste alt uden at slå det op. Da jeg indså, at jeg ikke ville afslutte udfordringen, indså jeg, at jeg var nødt til at stoppe med at bekymre mig om, hvad intervieweren syntes om mig, og bare google / stack overflow for at finde svar. Jeg sluttede ikke med at afslutte, og jeg troede, at jeg mislykkedes stort.

Da jeg troede, at jeg mislykkedes med programmeringen af ​​par, følte jeg mig afslappet resten af ​​interviewet. I sidste ende forlod jeg interviewet med hagen op. I værste fald fik jeg nogle værdifulde interviewerfaringer, og i bedste fald fik jeg mit første jobtilbud.

Måned 9 - Jobtilbud

Jeg endte med at modtage mit første jobtilbud 9 måneder og 7 dage efter den første dag, da jeg besluttede, at jeg først skulle dykke ned i programmering med det formål at skifte karriere. Jeg følte mig sikker på, at jeg modtog et tilbud efter mit første interview på stedet, men på samme tid, hvis jeg ikke tog tilbudet, hvad hvis dette var det eneste tilbud, jeg ville modtage i flere måneder? Jeg endte med at tage tilbudet, og jeg er tilfreds med min beslutning. Jeg ønskede at få betalt for kode!

Råd

Indtil dette punkt har jeg for det meste delt min historie med nogle råd, der er drysset ind i. Chancerne er, at hvis du læser dette, tænker du enten på at skifte karriere eller er midt i at lære at kode med det formål at skifte karriere. Jeg håber, at nedenstående råd vil hjælpe dig med at udvikle en plan eller holde fast i din nuværende plan og nå dit mål.

  1. Find ud af, hvad der motiverer dig, og brug det til din fordel. For mig var det tjeklister, der dokumenterede mine fremskridt og interagerede med forskellige programmeringssamfund. Hvis du ikke er motiveret til at nå dit mål, betyder intet andet noget, fordi du ikke er færdig.
  2. Lav mål og opfyld dem. Jeg vil argumentere for, at du skal have månedlige mål og måske endda daglige mål. Månedlige mål for at sikre, at du er på rette vej til at nå dit hovedmål, og daglige mål for at sikre, at du rent faktisk gør daglige fremskridt. En strategi, der fungerede for mig, var at lave mine daglige mål natten før. På den måde kan du ikke udføre uproduktivt arbejde hele dagen og føle, at du har gjort fremskridt, når du virkelig ikke gjorde det. Det tvinger dig til at sammenligne dine daglige præstationer med dine daglige mål.
  3. Gå til meetups måde, før du tror du er klar. At gå på møder kan føles skræmmende, men som jeg nævnte ovenfor. Men generelt er alle gode og villige til at hjælpe. Du kan muligvis finde folk, der ikke er interesseret i at tale med dig, men de er mindretallet, og ingen vil være fordømmende. Også, alle elsker at give råd (som jeg gør lige nu).
  4. Bidrag til open source-måde, før du tror, ​​du er klar. Når du først begynder at programmere, virker Github som dette skræmmende sted, som du aldrig vil gå til. Det er faktisk meget indbydende for begyndere og er et godt sted at se god kode og få din egen kode gennemgået. Hvis du stadig ikke er overbevist, skal du tjekke mit indlæg, hvorfor du skal bidrage til open source lige nu.
  5. Begynd at søge, før du tror du er klar. Denne var hård for mig, fordi jeg troede, jeg var anderledes. Jeg troede, at jeg ikke behøvede at teste markedet for at få en fornemmelse for, hvad jeg skulle arbejde med. Jeg troede, jeg ville vide, hvornår jeg ville være klar til at ansøge. Jeg fortæller dig lige nu. Du ved ikke, hvornår du skal ansøge. Så du kan lige så godt starte nu. Du bør ikke blive skør og ansøge til 300 virksomheder, før du lærer om sløjfer. Men du skal vide, at den bedste måde at vide, hvad du har brug for at lære, er ved at anvende og teste markedet.

Kom nu tilbage derude og kode!