de Sean Smith

Cum am trecut de la zero la inginerul de software din San Francisco în 12 luni

Cum am trecut de la zero la inginerul de software
O fotografie pe care am făcut-o din San Francisco, noua mea casă.

În urmă cu un an, lucram cu jumătate de normă ca organizator de trasee la o sală de sport de alpinism din Tennessee. Astăzi lucrez ca inginer software la un startup de securitate cibernetică din San Francisco.

Călătoria mea până în acest punct a fost de neuitat și a schimbat viața. Și totuși, la fel de provocator ca totul, cred că orice persoană suficient de motivată ar putea face același lucru.

Cunoașterea a devenit democratizată. Tot ce ai nevoie pentru a atinge un nivel competitiv în domeniul tău este timpul și dedicarea. Acest lucru este valabil mai ales pentru domeniul ingineriei software.

În 2016, viața mea se destramă

Când am început să învăț să codez în 2016, cred că ai putea spune că viața mea se destramă.

Am fost la facultate ca pre-student, cu studii în biochimie și antropologie. Dar am devenit rapid dezamăgit de știință și medicină și am părăsit facultatea fără o cale clară.

Am început să lucrez ca rutier la sălile de alpinism timp de aproape 2 ani, dar lucrurile nu mergeau atât de bine. Știam că am nevoie de o mare schimbare.

De mult am amânat învățarea codării, dar știam că asta voiam să fac. În cele din urmă, de ziua mea din 2016, m-am angajat să învăț să codez. Nu m-am uitat înapoi.

În acest moment, eram vag familiarizat cu bootcamp-urile de codare care au devenit destul de omniprezente în ultimii ani. Din fericire, am descoperit repede Routech. Când mi-am dat seama că finalizarea curriculum-ului lor presupunea scrierea de software pentru organizații non-profit, m-am alăturat prompt și am decis că voi finaliza curriculum-ul open-source Routech înainte chiar să iau în considerare un bootcamp.

Routech a devenit rapid nucleul educației mele. L-am completat cu multe alte resurse, cum ar fi podcast-uri, tutoriale, cursuri deschise și doze sănătoase de documentație și Stack Overflow atunci când este necesar.

Zilele tipice m-au implicat să lucrez prin provocări și proiecte Routech, ceea ce mi-a permis să-mi îmbunătățesc progresiv abilitățile.

Când ședința și scrierea codului deveneau neproductive, absorbeam materialul prin alte canale: audio, video și așa mai departe. M-am deplasat înainte și înapoi între diferite metode de învățare, ceea ce a fost foarte util în menținerea unui nivel puternic de implicare și concentrare. Acesta a fost în esență procesul meu și mi-a permis să dedic multe ore învățării.

Iată-l după cifre (aproximativ estimate):

  • Durata totală a învățării: mai puțin de 12 luni
  • Ore totale: ~ 2.500
  • Total proiecte finalizate: peste 70 de ani
  • Total cursuri CS vizionate: ~ 10
  • Total angajamente GitHub: peste 1.500
  • Total linii de JavaScript scrise: peste 20.000

Cea mai mare parte a acestei învățări a avut loc în Knoxville, Tennessee, unde locuiam atunci. Aveam o dorință puternică de a mă muta într-unul dintre marile orașe tehnologice, așa că într-o zi m-am trezit și am decis, în mod firesc, că este timpul să conduc la San Francisco. Cam așa s-a întâmplat.

În noaptea aceea am plecat, și aproximativ 3 săptămâni mai târziu am ajuns în zona Bay. Mult timp pentru a asculta podcast-uri pe drum.

1611547810 232 Cum am trecut de la zero la inginerul de software
Undeva în vestul SUA.

După ce am ajuns la San Francisco și am finalizat curricula Routech de bază (front-end, vizualizare date și certificări back-end) am avut o scurtă prezentare la cererile de locuri de muncă. Aproximativ 65 de ani. Literal, niciun răspuns.

Amintiți-vă, tocmai am condus în zona golfului din toată țara. Habar n-aveam cât de competitiv ar fi și nici cât de mult valorează abilitățile mele pentru angajatori la nivelul lor actual. FreeCodeCamp s-a conformat de fapt educației unui bootcamp de codificare personal?

Aceste aplicații palpatoare mi-au dat o lectură clară: trebuia să fac mai multe. Piața este destul de competitiv. Așa că mi-am revizuit rapid planurile, mi-am extins orizontul de timp și am contactat Routech pentru a începe un proiect non-profit, deoarece acum eram eligibil să încep unul.

Între timp, am început să fac rețele în oraș cât mai mult posibil. Rețeaua a venit destul de ușor, deoarece Routech are multe campinguri auto-organizate în orașele lumii.

Am primit un răspuns rapid de la echipa Routech despre proiecte nonprofit. Unele dintre proiectele mele React au atras atenția lui Michael D. Johnson și a lui Quincy Larson și m-au întrebat dacă aș fi interesat să scriu curriculum-ul lor React. (FreeCodeCamp în sine este un organism nonprofit.) De asemenea, am ajutat la construirea unui instrument de gestionare a conferințelor pentru Conferința privind crimele împotriva femeilor.

Am fost foarte încântat de oportunitatea de a da înapoi acestei comunități minunate, așa că am acceptat rapid provocarea. Provocările mele React și Redux sunt încorporate în noul lor curriculum extins, care este acum live sub formă beta live aici.

În plus, am ales să îmi avans cronologia până în 2017. Aș continua să studiez singură pentru restul anului 2016 înainte de a aplica din nou pentru locuri de muncă. Am plecat din San Francisco, mergând spre nord prin Portland și Seattle până la Bellingham, Washington.

În aceste săptămâni în Pacificul de Nord-Vest am lucrat non-stop pentru a finaliza provocările React și Redux. Am colaborat cu un alt colaborator Routech din New York, Peter Weinberg, și a construit în jur de 80 de provocări de codificare în total.

Aceasta a fost probabil una dintre mișcările cheie care au ajutat la diferențierea CV-ului meu, deoarece reprezenta un proiect semnificativ care a servit nevoile unei organizații din lumea reală.

La sfârșitul lunii decembrie, am terminat proiectul inițial al provocărilor și le-am mutat într-un lansare oficială alfa care încă generează feedback din partea comunității.

Întoarcerea mea triumfătoare la San Francisco

Cum am trecut de la zero la inginerul de software
Mergând în California.

Întorcându-mă la San Francisco, eram aproape gata să mă scufund din nou în cererile de muncă. Mă hotărâsem să mă alătur Outco, un curs accidentat în pregătirea interviului pentru inginerii software. M-am opus întotdeauna destul de mult să cheltuiesc bani la un bootcamp de codificare (parțial pentru că nu aveam banii), dar am ales să mă alătur Outco, deoarece, în opinia mea, încearcă să îndeplinească un alt scop. Outco vizează în mod specific procesul de interviu pentru inginerii software, un proces care provoacă fricțiuni pentru mulți ingineri, chiar experimentați și calificați.

Deși aș putea scrie JavaScript destul de bine în acest moment, cu siguranță nu am fost pregătit să rezolv întrebări arbitrare arbitrare pe o tablă albă. Acesta este unul dintre domeniile cheie pentru care Outco încearcă să pregătească studenții, deoarece, în bine sau în rău, tabla albă rămâne o tactică de interviu preferată a companiilor de tehnologie. În plus, aș putea amâna plata către Outco până după ce am primit un loc de muncă.

Și, o verificare a realității: mergeam acum multe luni într-un ritm puternic de probabil peste 50 de ore pe săptămână de codificare și învățare, iar acum riscau literalmente totul pe abilitatea mea de a obține un loc de muncă într-unul dintre cele mai scumpe și orașe competitive din SUA.

Făcusem deja un efort sincer de a aplica la companii și am eșuat lamentabil! Presiunea și stresul au căzut cu siguranță asupra mea în acest moment.

Știam că succesul va depinde în mare măsură de performanțele mele din următoarele câteva luni. M-am alăturat Outco pentru că mă așteptam ca programul și sprijinul lor structurat să se dovedească indispensabile în ultimele mile ale călătoriei mele și așa a făcut.

1611547810 521 Cum am trecut de la zero la inginerul de software
Scrierea codului pe hârtie pentru pregătirea interviurilor, clasic.

A sosit 2017 și am început Outco. Am început să lucrez și mai mult decât înainte. Câteva practici de algoritmi și structuri de date, întrebări de tablă albă, întrebări tehnice, programare în perechi, ecrane de telefon simulate, întrebări de proiectare a sistemelor – îl numiți și multe dintre ele. Ca să nu mai vorbesc de aplicarea din nou la locuri de muncă și mult mai mult decât am făcut-o prima dată.

Și, desigur, odată ce începeți să primiți răspunsuri de la companii, devine foarte consumator de timp (ca să nu mai vorbim de foarte stresant) să începeți să jonglați cu toate aceste interviuri simultan.

Practicarea interviurilor în fiecare zi este destul de grea. Starea în fața unei tablă albă într-un interviu real pe măsură ce te întreabă despre copacii binari este mult mai dificilă (și da, intervievatorii m-au întrebat despre copacii binari).

Din nou, numerele spun povestea mai elocvent:

  • Total cereri: 192 (inclusiv cele 65 din 2016)
  • Total interviuri telefonice: 17
  • Provocări totale cu codul de acasă: 6
  • Total ecrane tehnice: 5
  • Total site-uri: 3
  • Total oferte: 1
  • Timp total de oferit: 6 săptămâni
  • Rata de succes: 0,52%

Oferta aceea era de la Tehnologie TruSTAR, și am fost atât de fericit să mă alătur echipei lor! TruSTAR construiește o platformă care permite companiilor să partajeze date de informare cibernetică pentru a preveni și a atenua atacurile cibernetice.

Lucrez la partea frontend a aplicației lor și folosesc abilitățile JavaScript pe care le-am câștigat prin Routech. Experiența a fost incredibilă până acum și am fost sincer surprins de cât de bine am fost pregătit să încep să aduc contribuții semnificative la baza lor de coduri.

1611547811 961 Cum am trecut de la zero la inginerul de software

Lecții pe care le-am învățat în ultimele 12 luni

Acum, în sfârșit, iată câteva sfaturi pe care le-aș avea pentru oricine dorește să facă așa ceva:

  • Ai nevoie de abilități din lumea reală și trebuie să înveți multe. Asta înseamnă o mulțime de ore de muncă, nu există nicio cale de a o înconjura. Pasiunea ajută.
  • Construirea proiectelor este o modalitate excelentă de a învăța și, odată ce știi suficient, nu este foarte greu să găsești proiecte open-source sau alte proiecte cu impact ridicat la care să lucrezi.
  • JavaScript și React sunt minunate de învățat și sunt foarte solicitate! Aflați însă ce vă interesează.
  • Este esențial să cultivați o comunitate de alții care învață să codeze sau care lucrează ca ingineri. Rețea în orașul dvs. Rețea online. Găsiți proiecte de colaborare la care să lucrați. Întreabă pentru ajutor.
  • Dacă vă permiteți, încercați să aveți oarecare răbdare. Cu asta m-am luptat cel mai mult.

Iată-l – călătoria care m-a condus în SUA să încep o carieră ca inginer software! Sunt sigur că drumul tuturor va arăta diferit, asta face parte din distracție.

Găsiți-vă propria cale și nu vă fie teamă să nu luați în considerare opiniile altora, dacă credeți suficient de puternic în propria voastră. Asta include opiniile mele.

Oportunitățile din industria tehnologică sunt reale și, dacă le doriți suficient de rău, puteți găsi o cale acolo.

Ca inginer, treaba ta va fi să rezolvi probleme, iar dacă ești autodidact, prima problemă pe care trebuie să o rezolvi este cum te înveți?

Noroc pe toată lumea și codificare fericită!

PS Un strigăt uriaș și vă mulțumesc întregii comunități Routech și tuturor celor pe care i-am menționat în acest articol (și altor câțiva: Archie, Christian, Susan, Beemer Girl și toți prietenii mei de acasă). V-ați dovedit cu toții neprețuit în a mă ajuta să ating acest obiectiv.