Kaip aš per 9 mėnesius nuo naujoko tapau programinės įrangos inžinieriumi dirbdamas visą darbo dieną

Šiame įraše pasidalinsiu, kaip per devynis mėnesius perėjau nuo nulio (ish) iki šešiaženklio programinės įrangos inžinerijos darbo pasiūlymo, dirbdamas visą darbo dieną ir būdamas savamokslis.

Kai tik pradėčiau skaityti sėkmės istoriją, iškart ieškojau autoriaus fono, tikėdamasis, kad jis atitiks mano. Niekada neradau žmogaus, turinčio tą pačią kilmę kaip aš, ir greičiausiai mano tiksliai neatitiks jūsų.

Nepaisant to, tikiuosi, kad mano istorija įkvepia kitus ir yra vertingas duomenų taškas, kurį galima pridėti prie jūsų sėkmės istorijos duomenų rinkinio.

Visiškas atskleidimas

Vidurinėje mokykloje išklausiau „Visual Basic for Applications“ (VBA) kursą (prieš devynerius metus). Pirmame kurse (prieš septynerius metus) išmokau keletą C, Python, Matlab ir Labview. Baigiau gerą universitetą, turėdamas chemijos inžinerijos laipsnį ir gerą GPA (prieš trejus metus). Nebuvau užsiėmęs programavimu už mokyklos ribų, vidurinėje ar kolegijoje, kol nusprendžiau, kad noriu išmokti praėjusiais metais.

Po koledžo įsidarbinau naftos perdirbimo gamyklos inžinieriumi. Dirbau ten, kol pakeitiau karjerą į programinės įrangos inžineriją.

Kodėl norėjau pakeisti karjerą

Man patiko spręsti technines problemas, bet žinojau, kad kažkuriuo metu noriu patekti į verslo / startuolių pasaulį. Visada mintyse laikiau mintį apie MBA, tačiau kaskart pažvelgęs į geriausių mokyklų kainų etiketę mano susidomėjimas sumažėjo.

2017 m. Gegužės 27 d. Vėl atsidūriau google apie MBA ir kažkaip pasitaikė programinės įrangos inžinerijos. Atrodė, kad tai puikiai tinka.

Programinės įrangos inžinierių paklausa didėja, atlyginimai yra puikūs, ir tai yra puiki industrija, iš kurios patekti į startuolių pasaulį nereikalaujant daugybės pradinio kapitalo. Viskas, ko jums reikia, yra kompiuteris, o jūsų galimybės yra neribotos (rūšies).

Nė vienoje kitoje inžinerijos disciplinoje negali tiesiog kilti idėjos, pradėti ją kurti, parodyti vartotojams ir kartoti turint mažai kapitalo ir mažai kliūčių patekti į rinką. Chemijos inžinerijoje, norint sukurti gamyklą, jums iš esmės reikia veikiančios gamyklos arba daug pinigų, jei kilo idėja apie naują produktą.

Buvau girdėjęs apie žmones, metančius darbą ir lankančius „bootcamp“, bet kuo daugiau apie tai skaičiau internete, tuo labiau supratau, kad visa tai gali išmokti savarankiškai, jei esi atsidavęs ir susitelkęs.

Galite ginčytis, kad prarandate tinklo ir karjeros patarimus, kuriuos teikia „bootcamp“. Tai gali būti tiesa, bet man pasisekė, kad gyvenau įlankos rajone, kuris leido man dalyvauti keliuose susitikimuose, todėl taip užmezgiau tinklą.

Be to, blogiausias atvejis buvo tas, kad supratau, jog pats to padaryti negaliu, ir tada mčiau darbą, norėdamas dalyvauti „bootcamp“.

Tikslas

Reikia turėti tikslą. Ypač jei stengiesi mokytis dirbdamas visą darbo dieną. Lengva leisti mokymuisi tęsti ir tęsti, jei neturite jokio išorinio spaudimo. Taigi reikia sukurti vidinį spaudimą. Jūsų tikslas turėtų būti paprastas ir kiekybinis. Turėtumėte atlikti pakankamai tyrimų, kad galėtumėte pasiekti pagrįstą tikslą. Mano buvo toks:

Įsigykite programinės įrangos inžinieriaus darbo per vienerius metus už tą patį arba geresnį atlyginimą, nei dabar dirbu.

Planas

Kai turite tikslą, jums reikia plano, kuris padėtų jums jį pasiekti. Čia vartojate kuo daugiau sėkmės istorijų. Nė vienas iš jų neatitiks tikslios situacijos, tačiau kiekvienam galite pasinaudoti patarimais. Savo planą sukūriau (ir pakartojau) naudodamas tokius išteklius kaip „learnprogramming subreddit“, „freeCodeCamp“ forumas ir „Medium“.

2017 m. Gegužės 27 d. Nusprendžiau pasinerti į kodavimą ir pirmiausia pasinėriau į galvą. Tą dieną nusprendžiau savo darbe pradėti skirti ne daugiau kaip 40 valandų per savaitę, kad turėčiau laiko koduoti po darbo ir savaitgaliais. Jūsų laimei, aš padariau gana gerą darbą, užfiksuodamas savo pažangą.

Mano planas daug kartų kartodamas atrodė maždaug toks:

  1. Dalyvaukite „Intro to CS“ kurse, kad gautumėte tvirtą pagrindinių CS sąvokų supratimą
  2. Stebėkite „freeCodeCamp“, kol galėsiu pats kurti portfelio lygio visas kamino žiniatinklio programas
  3. Refaktorius išvalyti kodą, pridėti testavimą, sutelkti dėmesį į pažangias koncepcijas
  4. Prisidėkite prie atvirojo kodo
  5. Pasiruoškite pokalbiams dėl darbo

Pirmiausia, mano planas buvo paprastas. Tuo metu maniau, kad vadovausiuosi „Google“ techniniu vadovu, todėl pradėjau nuo jų rekomenduojamo įvadinio kurso „Udacity CS101“.

0 mėnuo - „Udacity CS101“, „Harvard CS50“

Aukšta šio didelio sprendimo priėmimas man davė daug energijos. Pradėjau koduoti, kai tik grįžau iš darbo, ir nesustojau, kol nemigau. Ir tada vėl visą savaitgalį. „Udacity CS101“ stebėjo baigimo procentą, kuris man buvo didelis motyvas. Po kodavimo kiekvieną dieną užregistravau užbaigimo procentą. Pirmuosius 75% baigiau per 10 dienų. Paskutiniai 25% buvo sunkūs rekursijoje, ir man buvo šiek tiek sunkiau. Apskritai man prireikė 20 dienų, kol baigiau „Udacity CS101“.

Kol vartojau „Udacity CS101“, buvau pradėjęs gana smarkiai skaityti „Learnprogramming subbreddit“. Skaičiau, kad savamoksliams kūrėjams, norintiems pakeisti karjerą, svarbu būti aktyviems internete. Nusprendžiau sukurti naujas „Twitter“, „Reddit“, „Stack Overflow“, „Medium“ ir „Quora“ paskyras naudodamas savo vardą, kad galėčiau susikurti internetą.

Be to, nusprendžiau nustoti skaityti blaškančias žiniasklaidos priemones, tokias kaip „Instagram“, „Facebook“ ir neprogramuojami subreddits. Savo telefone tikrindavau tik naujienas ir įrašus, susijusius su programavimu. Tai buvo labai svarbu užtikrinant, kad sužinojau apie geriausius mokymosi kelius ir mokymosi išteklius. Būtent dėl ​​to aš sužinojau apie „Harvard CS50“ edX.

Iš pradžių buvau patenkintas vien tik vieno įvadinio kurso atlikimu, tačiau atrodė, kad visi rekomendavo „Harvard CS50“, todėl nusprendžiau pasinerti į kitą. Kitų mokyklų CS studentai išklausė šį kursą ir teigė, kad CS50 mokėsi daugiau nei metus ar dvejus savo universitete studijuodami CS. Bendras sutarimas buvo tas, kad kursas buvo sunkus, bet jo vertas. Iki 0 mėnesio pabaigos atlikau pirmąsias 5 paskaitas ir namų darbus.

1 mėnuo - „Harvard CS50“, „Linux“, „1st Meetup“, „freeCodeCamp“

CS50 baigiau maždaug įpusėjus mėnesiui. Per daug nekomentuosiu savo patirties su CS50, nes čia parašiau išsamų pranešimą apie savo patirtį.

TLDR: Tai puikus kursas, labai rekomenduoju. Davidas Malanas yra puikus dėstytojas, ir yra daugybė išteklių, kurie padės jums tai išgyventi. Pradedate C, pereinate prie „Python“ ir baigiate kurti internetą. Jis yra labai tankus ir yra daug medžiagos, bet manau, kad jis to vertas.

Po CS50 nusprendžiau nustatyti savo „XPS 15“, kad būtų galima paleisti dvigubą „Windows“ ir „Ubuntu“. Tai buvo varginantis savaitgalis. Aš sujaukiau pertvaras ir beveik užmūržiau savo nešiojamąjį kompiuterį. Buvau arti to, kad galėčiau sugadinti savo nešiojamąjį kompiuterį ir įsigyti naują.

Lėtai atpratinau save nuo „Windows“ ir galiausiai naudojausi tik „Ubuntu“. Norėjau prisiversti įsitaisyti komandinėje eilutėje, kuri, manau, tam tikru laipsniu veikė, tačiau man vis dar reikia daug nuveikti.

Pradėjau 100 dienų kodą, kad įsitikinčiau, jog kiekvieną dieną būnu susikaupęs ir užkoduotas.Svarbu dokumentuoti savo pažangą. Jei kiekvieną dieną darote pažangą, tai neatrodys daug, tačiau, pažvelgę ​​į mėnesį ar kelis mėnesius, suprasite, kad iš tikrųjų padarėte nemažą pažangą, kuri motyvuoja jus tęsti.

Žinojau, kad tinklų kūrimas mane sužlugdys ar sužlugdys, todėl sukaupiau drąsos eiti į savo pirmąjį kodavimo susitikimą. Niekada nebuvau lankiusi nė viename susitikime, ką jau kalbėti apie kodavimo susitikimą. Aš buvau tokia nervinga, kad pavažiavusi ten, pasistatęs automobilį ir nuėjusi prie durų, beveik apsisukau ir grįžau namo.

Padėjo tai, kad tai buvo pirmasis grupės susitikimas. Greitai supratau, kad nėra pagrindo jaudintis. Niekas vienas kito nepažinojo, niekas nebuvo teisiamas ir visi noriai mokėsi. Tai buvo susitikimo-šėlsmo pradžia. Per 9 mėnesius galiausiai dalyvavau daugiau nei 50 susitikimų.

Džiaugiuosi, kad anksti pradėjau lankytis susitikimuose. Dauguma žmonių susitikimuose pradėjo lankytis tik tada, kai ieškojo darbo, tačiau tuo metu jau beveik per vėlu. Yra labai daug priežasčių pradėti anksti. Išvardyti kelis:

  1. Santykių kūrimas užima daug laiko. Ankstyvas startas reiškia, kad turite ryšių, kurie gali jus garantuoti ieškodami darbo vėliau
  2. Kalbėjimas apie programavimą su nepažįstamais žmonėmis yra puikus būdas pasiruošti interviu
  3. Galite išmokti naujų sistemų, įrankių ir mokymosi išteklių iš žmonių, kurie yra jūsų priekyje. Tai gali turėti įtakos jūsų būsimam mokymosi planui.

Šiuo metu mano kodavimo kelionėje buvo tam tikras netikrumas. Tai buvo maždaug tada, kai man reikėjo nuspręsti, kokiu programinės įrangos kūrėju norėčiau būti.

Galų gale aš pasirinkau interneto svetainių kūrimą, nes atrodė, kad yra didelė paklausa ir daugybė internetinių išteklių. Kai tai supratau, turėjau sugalvoti, ką daryti toliau. Kai kurie žmonės rekomendavo šiame etape galvoti apie žiniatinklio programas, kurias norėjau sukurti, ir tada pradėti. Kai kurie žmonės rekomendavo „The Odin Project“ arba „freeCodeCamp“.

Vaikinas, vedęs savaitinį susitikimą, kuriame dalyvavau, pažinojo Rubiną ir norėjo atlikti projektus su Rubinu. Tai buvo svarbi priežastis, kodėl aš nusprendžiau viską įgyvendinti „The Odin“ projekte.

Ir po dviejų dienų aš sumaniau šią idėją.

Tai yra viena iš savamokslio kelio minusų. Vieną minutę manote, kad žinote, kokiu keliu turėtumėte eiti, bet kitą dieną pagalvojate, ar tai buvo teisingas žingsnis.

Skaičiau, kad „Ruby“ krito iš malonės, ir aš tai įrodžiau ieškodamas „Ruby vs JavaScript“ darbų, todėl galiausiai pradėjau „freeCodeCamp“. Dėl freeCodeCamp man kliuvo tik tuo, kad jie pateikė projekto idėjas, todėl kiekvienas kemperis vykdo tuos pačius projektus. Iš pradžių tai jaudino, nes norėjau išsiskirti iš verbuotojų. Tačiau aš galų gale pamilau „freeCodeCamp“, ir dabar labai rekomenduoju. Norėdami gauti daugiau informacijos apie savo patirtį ir rekomendacijas, susijusias su „freeCodeCamp“, peržiūrėkite mano rašymą čia.

2 mėnuo - YDKJS, „freeCodeCamp Front Front End“, „React“

Aš pradėjau skaityti „You Don't Know JavaScript“, nes visi rekomendavo ją papildyti freeCodeCamp. Teko iš naujo perskaityti keletą skyrių, nes jis gana tankus, tačiau tai puikus šaltinis norint sužinoti leksinę sritį, uždarymus, pažadus ir visas „JavaScript“ dalis, apie kurias girdi ir nori išmokti, bet niekada to nedarai, nes atrodo sunku.

Aš baigiau „freeCodeCamp“ priekinės dalies skyrių. Kontrolinio sąrašo formatas ir numatomas baigimo laikas padėjo mane motyvuoti greitai baigti. Taip pat man buvo niežulys pereiti į kitą skyrių ir išmokti „React“. Tačiau tai taip pat reiškė, kad mano projektai turėjo minimalų stilių. Aš padariau viską, ko reikėjo, kad įvykdytų vartotojų istorijas, ir nieko daugiau.

Žvelgdamas atgal, galbūt turėjau susitelkti ties tuo, kad projektai būtų patrauklesni. Galbūt tai būtų padėję man giliau išmokti CSS.

Kitas žingsnis buvo „React“ mokymasis, ir aš buvau gana pamišęs.

Buvau tiek daug apie tai girdėjęs ir buvau pasirengęs pritapti prie šaunių vaikų. Tačiau tuo metu dėl licencijavimo klausimų buvau šiek tiek dvejojantis. Aš tikrai džiaugiuosi, kad tai nebėra problema. Išmokti „React“ man buvo sunku. Tada nežinojau apie jokius gerus vadovėlius (bet atrodo, kad dabar jų yra daugybė).

Bandžiau perskaityti dokumentus ir sekti „Facebook“ „Tic-Tac-Toe“ pamoką, bet ne visai supratau. Man pasakė, ar tai man netinka, tai reiškia, kad nepakankamai supratau „JavaScript“. Tada grįžau prie „You Don't Know JavaScript“ skaitymo, bet man tai vėl buvo per daug.

3 mėnuo - „freeCodeCamp React“, „CodeClub“, „FreeCodeCamp“ paleidimo pradžia

Galų gale aš tiesiog nusprendžiau dirbti per „freeCodeCamp React“ projektus ir sužinoti, kaip sekėsi. Tas kodas buvo negražus, bet jis man padėjo šiek tiek geriau suprasti „React“.

Tas susitikimas, kuriame dalyvavau kas savaitę, nusprendė, kad jie ketina kurti projektus su visu „stack“ „JavaScript“, o ne „Ruby“, ir nusprendė, kad pirmasis projektas bus sukurti svetainę susitikimų grupei „CodeClub.Social“.

Aš sukūriau korteles naudodamas „React“ ir „Meetup“ API, leidžiančias vartotojui užsiregistruoti į kitus tris susitikimus iš mūsų svetainės. Man buvo šiek tiek sunku greitai padaryti pertrauką nuo freeCodeCamp, bet tai buvo proga, kurios negalėjau praleisti. Buvau laiminga dirbdama projekte su maža žmonių grupe. Tai taip pat padėjo man išmokti „Git“ ir „Github“.

Dar nesibaigus mėnesiui, pradėjau dirbti su „freeCodeCamp“ galine dalimi.

4 mėnuo - baigta freeCodeCamp Back End, Yeggle

Dirbau per visus „freeCodeCamp“ API projektus, tačiau nuo „FreeCodeCamp“ pradėjau nukrypti „Image Search Abstraction Layer“ projekte.

Man troško kurti pilnas žiniatinklio programas, taigi, kai tik pamačiau šio projekto pavadinimą, turėjau savo projekto idėją. Aš sukūriau mazgų programą, kurioje būtų saugomi atsitiktiniai „imgur“ URL adresai duomenų bazėje, ir tada sukurtų sąsają, kuri išleistų vartotojo nurodytą skaičių tų atsitiktinių vaizdų. Tai, ką sako visi, yra tiesa: dirbate daugiau, o dirbate prie projekto, kuris buvo jūsų paties idėja.

Kai tik pradėjau dirbti, labai didžiavausi savimi. Tai buvo negražu ir gremėzdiška, bet pavyko.

Dirbdamas per „freeCodeCamp“ sužinojau, kokie projektai atitiks mano galimybes. Tuo metu aš reguliariai bėgiodavau, todėl savo bėgimuose sugalvodavau idėjų ir jas užrašydavau grįžusi namo. Tokiu būdu turėčiau projektų idėjų sąrašą, kai būsiu pasirengęs.

Pagaliau pajutau, kad esu pasirengęs pradėti kurti savo naudingas ir nušlifuotas viso šūsnio žiniatinklio programas, kurias galėčiau dalintis su vartotojais ir įdėti į savo portfelį. Buvau taip pasiruošęs pradėti.

Ieškodamas naujo restorano, visada atsidurdavau „Yelp“, kad galėčiau patikrinti atsiliepimus, tada atidarydavau „Maps“, norėdamas patikrinti jų atsiliepimus. Ką daryti, jei aš sukūriau programą, kurioje abu būtų lyginami?

Taigi aš padariau „Yeggle“. Naudojau „Node / Express / React“ kartu su „Google Maps“ ir „Yelp“ API. Buvo keletas kliūčių, kurių nemaniau, kad sugebėsiu įveikti, tačiau galiausiai baigiau ir labai didžiavausi savo programa. Tada aš jį paskelbiau „Reddit“, ir niekam tai nerūpėjo. Tai buvo šioks toks bummeris, bet aš to nenuvyliau.

5 mėnuo - „StockIT“

Šį mėnesį nepadariau tiek daug, nes tai pradėjau dviejų savaičių atostogomis Japonijoje ir Tailande!

Bet aš pradėjau ir užbaigiau savo kitą projektą. Vis skaičiau, kaip sunku buvo įsidarbinti savamoksliu kūrėju, todėl maniau, kad reikia padaryti kažką unikalaus. Prisiminiau žaidimą, kai „Dow Jones“ akcijų grafikas pradėjo tendenciją, o jūs turėjote vieną galimybę pirkti ir vieną galimybę parduoti, o tikslas buvo įveikti rinką. Žaidimo tikslas buvo parodyti, kaip sunku buvo įveikti rinką.

Mano idėja buvo sukurti panašų žaidimą, bet vietoj rinkos jūs žaisite prieš mašininio mokymosi algoritmą. Taigi aš sukūriau „StockIT“.

Aš nuėjau vaizdo pamoką apie „Pandas“ ir „Scikit Learn“, apimančią kelias mašininio mokymosi technikas. Iš pradžių norėjau atlikti keletą puikių gilaus mokymosi metodų, tačiau supratau, kad tam reikia daugybės duomenų rinkinių ir daugiau laiko, nei norėjau praleisti.

Vietoj to aš laikiausi paprasto tiesinės regresijos modelio. Maniau, kad tai bus sunkiausia dalis, bet taip nebuvo. Sunku buvo priversti D3 pajusti reakciją. Abi bibliotekos norėjo kontroliuoti DOM. Buvo keletas kitų bibliotekų, kurios padėjo prisijungti prie šių dviejų, bet jaučiau, kad jos per daug išsipūtusios. Pabaigiau naudoti D3, kad sugeneruočiau SVG, ir „React“, kad galėčiau tvarkyti DOM, kuris man pasirodė gana geras.

Šį kartą, kai pasidalinau ja su „Reddit“, visiems patiko!

Pasirodo, kad kaip ir VC, taip ir redaktoriai yra apie tą mašininį mokymąsi. Visa „Reddit“ meilė stipriai padidino pasitikėjimą savimi. Žmonės žaidė mano žaidimą ir juo džiaugėsi!

6 mėnuo - „jobSort“ (), „Job Hunt Prep“

Po „StockIT“ aš patekau tiesiai į savo kitą asmeninį projektą. Norėjau sukurti darbo tarybą, kurioje būtų kaupiamos mažesnės į technologijas orientuotos darbo skelbimų svetainės, tokios kaip „Stack Overflow“, „Github“ ir „Hacker News“. Norėdamas pridėti savo unikalų sukinį, nusprendžiau jį surūšiuoti atsižvelgdamas į technologijas, kurių vartotojas norėjo įsidarbinti, ir kaip labai jie norėjo kiekvieno iš jų.

Pvz., Tarkime, kad ieškojau darbo, kuriame ieškojau „JavaScript“, „React“ ir (arba) „Python“ žinančių žmonių, ir aš labai norėjau dirbti su „JavaScript“ ir „React“, bet man taip nerūpėjo „Python“. Tada galėčiau suteikti „JavaScript“ 3, „React“ 3 ir galbūt „Python“ 1. Tada įrašai bus atitinkamai surūšiuoti.

Su šiuo projektu susidūriau su įvairiomis kliūtimis ir porą kartų turėjau pakeisti kursą, bet galų gale radau produktą, kuriuo džiaugiausi. Mano paskutinis technikos krūva buvo „React / Node / Express / MySQL“. Paskelbiau projektą „cscareerquestions subreddit“ ir gavau 650 peržiūrų, kol jis nebuvo panaikintas, nes jie neleidžia asmeninių projektų.

Čia yra „galutinis“ produktas. Jei norite sužinoti daugiau apie mano kovas ir refaktorius, peržiūrėkite mano įrašą čia.

Dėl mano problemų „jobSort“ () užėmė deramą mėnesio dalį. Galų gale gavau kavos su draugu, kurį sutikau per pirmąjį susitikimą, ir jis man patarė pradėti dirbti dabar. Aš perskaičiau visą vietą, kurią visi sako per ilgai laukę. Be to, kai pamačiau pranešimą, kuriame klausiama, kada kreiptis, viršutinis komentaras visada buvo „dabar“.

Mano galva, aš ketinau atlikti savo struktūrinį planą, kurdamas savo asmeninių projektų portfelį, tada dirbdamas su atvirojo šaltinio įnašais, tada ruošdamasis interviu ir galiausiai pradėdamas kreiptis į darbą. Šis draugas įtikino mane atsisakyti šio plano ir pradėti taikyti. Taigi šį mėnesį aš sukūriau aplanką ir atnaujinau. Kitą mėnesį pradėčiau kreiptis.

7 mėnuo - testavimas, darbo ieškojimas

Šį mėnesį daugiausia dėmesio skyriau savo projektų atnaujinimui ir kandidatavimui į darbą. Taip pat norėjau išmokti testavimo ir „Redux“.

Aš pridėjau „flexbox“ prie „CodeClub.Social“, kad jis būtų jautrus. Patobulinau mobilųjį UX „jobSort“ (). Prie „jobSort“ () pridėjau testavimą su „mocha / chai“ / fermentu, kurį buvo sunku nustatyti, lengva pradėti ir tada sunku gauti 100% aprėpties.

Iki mėnesio pabaigos buvau kreipęsis į 63 darbus. Aš tai vertinau kaip savęs vertinimą. Ar mano portfelis / gyvenimo aprašymas buvo pakankamai geras? Jei taip, ką turėjau dirbti, kad pasiruoščiau interviu? Iš pradžių kreipiausi į „Hacker News“: kas samdo, ir iš tiesų.

„Hacker News“ naudodama „jobSort“ () nustatžiau, į kuriuos sąrašus kreiptis. „Iš tiesų“ išbandžiau ne programinės įrangos įmones, norėdamas sužinoti, ar galėčiau net niekur skambinti ar interviu.

Iš pradžių aš kreipiausi greitai ir nesuasmeninau savo gyvenimo aprašymo / motyvacinio laiško. Tada nusprendžiau suasmeninti motyvacinį laišką ir tęsti darbą, tada bandžiau nusiųsti el. Laišką kam nors iš įmonės. Šis metodas buvo akivaizdžiai geresnis už požiūrį į šautuvą.

Tą mėnesį sulaukiau penkių skambučių - du iš įdarbinimo įmonių ir tris iš programinės įrangos kompanijų, kurios:

  • „DevOps“ / testavimo vaidmuo „dotcom“ įmonėje
  • B serijos maisto analizės įmonė ir
  • gana didelis ir sėkmingas startuolis, kurį neseniai įsigijo pagrindinė korporacija

Dviejuose iš jų praėjau per HR ekraną, tačiau nė vienas jų nedavė interviu vietoje. Buvau labai patenkinta trim skambučiais ir iš jų daug ko išmokau.

Visi internete minėjo, kad jaunesnieji kūrėjai neturėtų tikėtis tiek žinoti iš pat pradžių, jie tiesiog turi būti aistringi ir susijaudinę mokytis. Taigi maniau, lengva. Esu aistringa ir džiaugiuosi mokydamasi. Tačiau sužinojau iš šių skambučių, kad niekas neieškojo jaunesniojo kūrėjo. Jie tikisi, kad nuo pat pirmos dienos žinosite, ką darote.

Šie skambučiai išmokė, kad man to reikia

  • būti pakankamai geram, kad pridėtinę vertę turėtumėte nuo pat pirmos dienos
  • būkite pakankamai įsitikinę, kad įtikintumėte juos, jog aš jau nuo pirmos dienos galiu suteikti pridėtinės vertės

8 mėnuo - naktinė pamaina, „Redux“, atvirasis šaltinis, interviu vietoje

Šį mėnesį pradėjau dirbti naktinę pamainą 40 dienų ruože, dirbdamas visą darbo dieną - 6 dienas per savaitę, 12 valandų per parą, nuo 5 iki 5 val. Ugh.

Žinojau, kad nespėsiu tiek nuveikti šį mėnesį, bet turėjau tikslą ir norėjau jį įgyvendinti, todėl negalėjau paimti mėnesio atostogų.

Aš refactored jobSort naudoti Redux, kuris buvo stebėtinai nebuvo taip sunku, kaip aš maniau, kad tai bus. Aš klausiausi daugybės tinklalaidžių apie tai ir skaičiau tinklaraščių pranešimus, ir man tai niekada nebuvo prasminga, kol nepradėjau jo naudoti.

Man labai patinka duomenų srautas su „Redux“. Dabar įdomu matyti, kaip žmonės skundžiasi „Redux“. Nemanau, kad esu kvalifikuotas stipriai pareikšti savo nuomonę, bet man patinka reduktoriaus modelis.

Tai man turėjo būti atvirojo kodo mėnuo. Ketinau įnešti savo pirmąjį atvirojo šaltinio indėlį, ir tai būtų puikus indėlis į fantastišką biblioteką. Aš ketinau prisidėti prie „React!“

Visi sakė, kad tai buvo sunkiai suprantama kodų bazė, ką jau kalbėti apie indėlį. Bet man reikėjo išsiskirti, man reikėjo būti unikaliam. Žinojau, kad mano indėlis nebus reikšmingas, bet vis tiek norėjau tai padaryti.

Pradėčiau nuo to, kad perskaičiau dokumentus iki galo ir tada perliejau kodų bazę. Žiūrėkite kiekvieną numerį, kiekvieną PR. Visas „React“ dokumentų perskaitymas buvo puikus pratimas, ir aš džiaugiuosi, kad tai padariau. Bet greitai supratau, kad prisidedant prie „React“ problema yra ta, kad „gerų pirmųjų leidimų“ tiesiog nėra tiek daug ir jie greitai išplėšiami.

Viename iš susitikimų, kuriuose dalyvavau, Anthony Ng rekomendavo išbandyti „Downshift“ - Kento C. Doddso automatinio užbaigimo biblioteką. Tai buvo žaidimų keitėjas. Tai buvo tiesiai mano vairinėje. Tinkamas sunkumas, tinkamas problemų kiekis, ne per daug bendradarbių, labai naudingas prižiūrėtojas, švarus gerai patikrintas kodas. Be viso to, tai buvo puikus kai kurių problemų, susijusių su mano „jobSort“ () programa, sprendimas.

Maždaug įpusėjus mėnesiui gavau el. Laišką iš vienos iš įmonių, į kurias kreipiausi praėjusį mėnesį. Jie nustatė pradinį telefono ekraną ir techninį telefono ekraną. Jų ieškomos technologijos buvo būtent tos, kurias išmokau - „React“, „Redux“ ir „D3“. Aš dažniausiai tik kalbėjau apie savo projektus ir tai, kodėl aš priėmiau tam tikrus sprendimus. Po to jie paprašė atvykti į pokalbį vietoje. Mano pirmasis interviu vietoje!

Aš visiškai nesiruošiau interviu, todėl ėmiausi to tikėdamasis, kad negausiu darbo, bet įgysiu vertingos interviu patirties. Taip pat bėgau tris valandas miegodamas, nes vis dar dirbau naktinę pamainą, kuri nepadėjo. Laimei, techninė dalis nebuvo lenta, tik vienos valandos poros programavimo sesija. Tai buvo gana tiesmukas iššūkis, bet labai jaudinausi.

Iš pradžių man rūpėjo įsitikinti, kad viską žinau nežiūrėdamas. Kai supratau, kad neketinsiu baigti iššūkio, supratau, kad turiu nustoti nerimauti, ką apie mane galvoja pašnekovas, ir tiesiog google / kaupti perpildymą, kad rastų atsakymus. Aš nebaigiau finišo ir maniau, kad man nepavyko.

Kadangi maniau, kad nepavyko programuoti poros, likusį interviu jaučiausi atsipalaidavęs. Galų gale aš palikau interviu su smakru. Blogiausiu atveju gavau vertingos interviu patirties, o geriausiu atveju - pirmąjį darbo pasiūlymą.

9 mėnuo - darbo pasiūlymas

Pirmąjį darbo pasiūlymą gavau praėjus 9 mėnesiams ir 7 dienoms po pirmosios dienos, kai nusprendžiau pirmiausia nertis į programavimą, norėdamas pakeisti karjerą. Jaučiausi užtikrintai, nes gavau pasiūlymą po pirmojo pokalbio vietoje, tačiau tuo pačiu metu, jei nepriimčiau pasiūlymo, kas būtų, jei tai būtų vienintelis pasiūlymas, kurį gausiu kelis mėnesius? Aš galų gale pasinaudojau pasiūlymu ir esu patenkintas savo sprendimu. Aš norėjau sumokėti už kodą!

Patarimas

Iki šiol dažniausiai pasidalinau savo istorija su kai kuriais patarimais. Yra tikimybė, kad jei jūs tai skaitote, jūs arba galvojate apie karjeros keitimą, arba mokotės koduoti keisdami karjerą. Tikiuosi, kad žemiau pateikti patarimai padės jums sukurti planą arba laikytis dabartinio plano ir pasiekti tikslą.

  1. Sužinokite, kas jus motyvuoja, ir panaudokite tai savo naudai. Man tai buvo kontroliniai sąrašai, mano pažangos dokumentavimas ir bendravimas su įvairiomis programavimo bendruomenėmis. Jei nesi motyvuotas siekti savo tikslo, tada nieko daugiau nesvarbu, nes tu nepabaigsi.
  2. Išsikelkite tikslus ir juos įgyvendinkite. Manyčiau, kad turėtumėte turėti mėnesinius tikslus, o gal net ir dienos tikslus. Mėnesio tikslai, kad įsitikintumėte, jog einate į savo pagrindinį tikslą, ir dienos tikslai, kad įsitikintumėte, jog iš tikrųjų kasdien darote pažangą. Viena strategija, kuri man pasiteisino, buvo užsibrėžti dienos tikslus prieš naktį. Tokiu būdu jūs negalite visą dieną dirbti neproduktyviai ir jaustis taip, tarsi padarytumėte pažangą, kai to tikrai nepadarėte. Tai verčia palyginti savo kasdienius pasiekimus su dienos tikslais.
  3. Eikite į susitikimų kelią, kol manote, kad esate pasirengęs. Eiti į susitikimus gali būti baisu, bet, kaip jau minėjau aukščiau. Bet apskritai visi yra malonūs ir nori padėti. Galbūt rasite žmonių, kuriems neįdomu kalbėtis su jumis, tačiau jie yra mažuma ir niekas nebus teisiamas. Be to, visi mėgsta patarti (kaip aš darau dabar).
  4. Prieš manydami, kad esate pasirengę, prisidėkite prie atvirojo kodo. Kai pirmą kartą pradedate programuoti, „Github“ atrodo kaip ši bauginanti vieta, į kurią niekada nenorite eiti. Iš tikrųjų tai labai malonu pradedantiesiems ir yra puiki vieta pamatyti gerą kodą ir peržiūrėti savo kodą. Jei vis dar nesate tuo įsitikinęs, peržiūrėkite mano įrašą „Kodėl dabar turėtumėte prisidėti prie atvirojo kodo“.
  5. Pradėkite taikyti dar prieš manydami, kad esate pasirengęs. Šis man buvo sunkus, nes maniau, kad esu kitoks. Maniau, kad nereikia išbandyti rinkos, kad pajustų, ką veikti. Maniau, žinosiu, kada būsiu pasirengusi kreiptis. Aš jums dabar sakau. Jūs nežinote, kada kreiptis. Taigi jūs taip pat galite pradėti dabar. Prieš mokydamiesi kilpų, neturėtumėte išprotėti ir kreiptis į 300 kompanijų. Tačiau turėtumėte žinoti, kad geriausias būdas sužinoti, ko jums reikia išmokti, yra taikymas ir išbandymas rinkoje.

Dabar grįžkite ten ir užkoduokite!