de Andrew Ngo

Cum am obținut un post de inginer software după un an de muncă grea

Cum am obtinut un post de inginer software dupa un

Mulți dintre noi credem că calea către a deveni inginer software necesită ani de educație și un IQ extrem de ridicat. În timp ce ingineria software este una dintre cele mai strălucite profesii, nu lăsați acest lucru să vă descurajeze să învățați să codați și să deveniți inginer software.

Am crezut că este prea târziu pentru mine să trec la informatică, dar indiferent unde te afli în viață, nu este niciodată prea târziu să înveți și să-ți urmărești pasiunea.

Istoricul meu netradițional

Nu am participat la o universitate de top, nici nu am o pregătire tehnică. Nu aveam pasiune pentru rezolvarea puzzle-urilor în copilărie și nici nu concuram la concursuri de matematică. De fapt, m-am abătut de la depanarea computerelor în copilărie, după numeroasele încercări eșuate de a pune Wi-Fiul în funcțiune.

Am absolvit diploma de administrare a afacerilor și am lucrat două locuri de muncă în domeniul finanțelor, care nu m-au provocat. Erau slujbe ușoare, simple, dar deveneau banale și plictisitoare foarte repede. Nu am simțit că munca pe care o fac îmi îndeplinește și am fost respinsă de fiecare dată când am cerut mai multe sarcini analitice. Am decis apoi să-mi îmbunătățesc setul de abilități și să-mi creez propriile oportunități.

Cu puțin peste un an în urmă, am luat SQL, deoarece este o abilitate populară în analiza financiară. După ce am învățat sintaxa, codarea nu mai părea la fel de intimidantă. A fost cam ca să înveți o limbă nouă. Odată ce reușiți să citiți și să scrieți, puteți înțelege lucruri care păreau cândva complet străine. Mi-a plăcut foarte mult să învăț o limbă nouă și să fiu tehnic în munca mea, așa că am știut că acest lucru trebuie să-l urmez.

Alegerea căii corecte

Am luat în considerare diferitele căi pentru a urma o carieră în dezvoltare. Nu am vrut să mai petrec încă doi ani la licență și nu am vrut să învăț totul de unul singur. Auzisem povești de succes ale oamenilor care au participat la programarea bootcampurilor și au reușit să treacă la un rol de inginerie software. După ce am făcut multe cercetări, am decis că aceasta este cea mai bună opțiune pentru mine și am aplicat pentru următoarea cohortă Hack Reactor.

Trebuia să trec un interviu tehnic pentru a fi admis în program, așa că mi-am petrecut tot timpul fie după muncă, fie în weekend învățând cât am putut. A fost dificil să îmi fac timp să învăț ceva complet nou după ce am fost abandonat de la un loc de muncă cu normă întreagă, dar motivația mea de a-mi atinge obiectivul m-a menținut.

Am bombardat complet primul meu interviu, dar am învățat din greșelile mele și am rezervat un alt interviu în ziua termenului. M-am asigurat că de data aceasta am fost pregătit și comunicativ cu întregul meu proces de gândire. A doua zi am primit scrisoarea mea de acceptare și călătoria mea de a deveni inginer software începuse oficial.

Perfecționează-ți ambarcațiunile

Campusul la care am decis să particip era în San Francisco, unul dintre cele mai mari centre tehnologice din lume. Fiind în SoCal toată viața mea, a fost cu siguranță o schimbare majoră și nu a fost ușor să-mi iau rămas bun. Mi-am împachetat toate lucrurile și m-am mutat într-un apartament comun din SF.

În primele câteva zile din program, am cunoscut colegii mei. Majoritatea acestora provin din universități foarte respectate și aveau diplome STEM. Mulți dintre ei aveau cunoștințe prealabile despre alte limbaje de scriptare și experiență în programarea orientată pe obiecte. Știam că am multe de recuperat dacă nu vreau să rămân în urmă.

Ei o numesc bootcamp de codificare dintr-un motiv. Cursurile erau programate între orele 9:00 – 20:00, șase zile pe săptămână, dar de obicei aș sta până la 22:00 sau la miezul nopții. Aproape că am trăit, am respirat și am dormit cod.

Primele câteva săptămâni m-am chinuit cu adevărat. Aș înghesui cât de multe informații aș putea, în timp ce mă asiguram că păstrez în continuare informațiile din zilele anterioare și repetam acest proces din nou a doua zi. Au fost momente în care m-am îndoit de mine și nu am crezut că am ce trebuie pentru a fi programator. Am sacrificat atât de mult ca să fiu acolo și prietenii și familia mea se bazau pe mine pentru a termina puternic. Știam că aceasta este singura mea lovitură, așa că am persistat și am rezistat furtunii.

Zilele și săptămânile au început să zboare și am început încet să intru în flux. Am început să învăț „cum să învăț” și să mă bazez pe propriile abilități pentru a-mi da seama de problemele cu care m-am confruntat. Google este cel mai bun prieten al oricărui dezvoltator și este foarte probabil ca altcineva să fi întâlnit aceeași eroare pe care ați întâmpinat-o.

Am lucrat la sprinturi la fiecare două zile, care au acoperit elementele fundamentale JavaScript, framework-urile frontend, serverele, bazele de date, implementarea și multe altele. Tocmai mergeam cu mișcările în primele câteva săptămâni, dar când am creat în cele din urmă o aplicație completă de stivă completă, acolo a făcut clic. În cele din urmă am înțeles scopul tehnologiilor specifice pe care le foloseam și totul avea sens.

1611165790 916 Cum am obtinut un post de inginer software dupa un

Să construim ceva

Odată ce fundația a fost stabilită, programa programului meu s-a orientat spre proiecte de construcții. Aș lucra la proiecte capstone cu echipe care ar accentua fie frontend-ul, fie backend-ul. Ei spun că scoți la dispoziție ceea ce ai pus, așa că m-am asigurat că îmi arăt cea mai bună lucrare absolută în aceste proiecte. Nu numai că trebuia să funcționeze, dar codul trebuia să fie curat și lizibil în cazul în care potențialii angajatori ar fi examinat depozitele mele git.

Ultimul proiect capstone a fost numit MVP, cunoscut și sub denumirea de produs viabil minim. Practic am avut 72 de ore pentru a crea orice ne-am dorit, atâta timp cât a fost o aplicație completă. Timpul limitat a fost o provocare și a trebuit să mă asigur că sunt capabil să-mi gestionez timpul eficient. Nu aș putea fi prea ambițios cu proiectul meu, dar mi-am dorit, de asemenea, să fie ceva de care să fiu mândru.

Prima mea idee a fost să construiesc o aplicație descentralizată care să utilizeze blockchain-ul Ethereum. Părea impresionant pentru angajatori, dar nu eram familiarizat cu limbajul Solidity și nu eram sigur dacă aș putea finaliza întregul dapp la timp. O altă idee despre care aș glumi a fost o aplicație de evaluare boba pentru toate magazinele de boba din apropiere, pe care le-am vizitat colegii mei de clasă.

Când a venit timpul să mă decid, mi-am amintit că am preluat codarea pentru că a fost distractiv pentru mine. Am simțit că aș introduce 110% în ceva care mi-ar plăcea, mai degrabă decât în ​​ceva pe care aș stresa constant. Am ajuns să aleg aplicația de evaluare boba și mi-a plăcut fiecare secundă.

Odată ce am redus funcționalitatea de bază, aș continua să implementez funcții suplimentare. În cele din urmă a devenit un proiect de pasiune și va fi întotdeauna un proiect memorabil de care sunt mândru. Nu faceți ceva pentru că poate arăta impresionant pentru ceilalți, faceți-l pentru că vă place cu adevărat.

Până la sfârșitul celei de-a 13-a săptămâni, întreaga mea mentalitate s-a schimbat de când am început programul. M-am simțit mai încrezător ca dezvoltator și mândru de tot ceea ce am realizat. Am învățat atâtea noi tehnologii care mi-ar fi luat ani de zile să învăț singuri. Am devenit mai autonom și mă bazez pe propriile abilități pentru a rezolva probleme. În sfârșit, am fost pregătit să intru în căutarea unui loc de muncă și abia așteptam să încep.

1611165790 311 Cum am obtinut un post de inginer software dupa un
Strigați pentru a cohorta HRSF102! Woo hoo!

The Grind

Înainte ca programul meu să se încheie, știam că trebuie să lovesc la sol. M-am pregătit luni întregi și acum a fost șansa mea de a arăta angajatorilor ce am. Știam întregul MVC și cum să construiesc stiva completă, dar când aveam interviuri simulate, aș fi atât de nervos și complet gol. În acel moment, ar fi o spirală descendentă și întregul meu proces de gândire ar fi deraiat. Cum aveam să trec un interviu tehnic propriu-zis când nici măcar nu puteam să mă descurc cu cele simulate?

Am studiat structurile de date și algoritmii în timp ce rezolvam întrebările Leetcode. A trebuit să mă asigur că nu memorez probleme specifice, ci înțeleg procesul de rezolvare a problemelor pentru a aborda orice întrebare. Odată ce am reușit să vin cu o soluție de bază la o problemă (cunoscută și sub numele de forță brută), am știut că intervievatorii vor căuta o soluție optimă. Vor să știe dacă puteți fi eficient cu algoritmii dvs. atât în ​​ceea ce privește timpul, cât și spațiul.

Odată ce am construit o bază mai bună de rezolvare a problemelor, a venit timpul să mă confrunt cu teama mea de intervievare. Am auzit de conceptul de terapie de șoc, practic înfruntându-vă temerile direct. Asemănător cu modul în care Batman și-a depășit frica de lilieci înconjurându-se într-o peșteră plină de ei, a trebuit să practic mai multe intervievări.

Am folosit un site numit Pramp care te-ar împerechea cu o altă persoană și te-ai intervieva pe rând. Am strâns curajul și am programat primul meu interviu. Aș vorbi despre procesul meu de gândire și soluția a venit în mod natural la mine. Îmi puteam simți încet nervozitatea care se estompează și am început să-mi placă interviurile.

La sfârșitul interviului simulat, am cerut feedback și am aflat ce aș putea îmbunătăți. După ce s-a terminat totul, m-am simțit grozav! Intervievarea nu a fost atât de înfricoșătoare și puteți beneficia cu adevărat de acest proces. Apoi am exersat în fiecare zi, așa că aș fi pregătit pentru un interviu propriu-zis.

„Succesul nu este final, eșecul nu este fatal: contează curajul de a continua”. – Winston Churchill

Tot un joc de numere

În timp ce mă pregăteam pentru interviuri, am început să aplic și la locuri de muncă, deoarece procesul de aplicare ar dura ceva timp, în special pentru companiile mai mari, care ar putea dura săptămâni sau luni.

Am observat că era o tendință obișnuită ca noii dezvoltatori să se concentreze exclusiv pe pregătire înainte de a aplica, dar ar putea fi o greșeală costisitoare. Există întotdeauna ceva de studiat atunci când vine vorba de ingineria software, astfel încât să nu vă puteți pregăti pentru toate. Am fost întrebat despre tot felul de subiecte, cum ar fi structurile și algoritmii de date, proiectarea sistemului, proiectarea frontendului, testarea și cunoștințele de domeniu. Până când ați studiat „totul”, este posibil să dureze câteva luni pentru a primi primul dvs. interviu.

O strategie este să interviezi cu companii despre care știi că nu sunt prima ta alegere. În acest fel, veți fi mai pregătiți și veți ști ce să faceți corect atunci când veți avea șansa de a lua un interviu pentru companiile de vis.

Știam că participarea la un Bootcamp nu îmi va garanta un loc de muncă. Am concurat cu cei cu diplome în informatică și cu experiență anterioară în industrie. Fiind un candidat fără o diplomă tehnică sau experiență profesională relevantă, mergeam în căutarea unui loc de muncă cu un dezavantaj.

Am aplicat oricărui rol de inginer sau dezvoltator pe care l-am întâlnit și am contactat orice conexiuni la potențiale companii la care aș vrea să lucrez. Am trimis peste 300 de aplicații reci și am primit o rată de răspuns incredibil de scăzută. Am fost filtrat și am primit nenumărate e-mailuri de respingere automată.

Ceea ce am găsit a fi cea mai eficientă metodă de a lua legătura cu un recrutor a fost prin recomandări. Recomandările au sens complet din punctul de vedere al angajatorului. De ce să ai încredere într-un străin complet pe care nu l-ai întâlnit atunci când ai un candidat garantat de un angajat actual în care poți avea încredere? Un lucru pe care oricine îl poate face este să-și extindă rețeaua mergând la întâlniri și evenimente. LinkedIn este un instrument excelent pentru găsirea conexiunilor reciproce la companii; folosiți-l la maximum.

Vor fi multe obstacole în prima dvs. căutare de locuri de muncă. L-am ucis de mai multe ori pe ecrane tehnice și am primit feedback excelent de la intervievator, pentru a primi mai târziu un e-mail de respingere de la recrutor. Trebuie doar să fii persistent, să înveți din interviurile din trecut și să continui. Dacă continuați să faceți totul bine, veți găsi în cele din urmă oportunitatea potrivită și veți obține o ofertă.

Munca grea cinstită dă roade

La sfârșitul celor trei luni de căutare a unui loc de muncă, am fost invitat la cinci interviuri la fața locului și am primit trei oferte. După ce m-am gândit mult, mă bucur să vă anunț că mă voi alătura companiei Zume Inc. din zona golfului San Francisco. Ador misiunea și toți cei pe care i-am cunoscut. Toată munca mea grea și nopțile lungi au dat în sfârșit roade și nu aș putea fi mai fericit cu locul în care mă aflu în viața mea acum. Sunt atât de recunoscător pentru toată lumea care m-a sprijinit în această călătorie. Știu că voi fi provocat în fiecare zi și voi avea un impact mai mare cu munca mea.

1611165791 724 Cum am obtinut un post de inginer software dupa un

Ceea ce îmi place la ingineria software este că nu contează ce fundal ai. Oricine poate învăța cum să își codifice și să-și perfecționeze abilitățile. Dacă veniți dintr-o cale netradițională ca mine, este posibil să fie nevoie de ceva mai multă muncă decât restul, dar totul va da roade. Viața este prea scurtă pentru a te mulțumi cu mai puțin, așa că fă ceva ce îți place.

Vă doresc mult succes în eforturile dvs. – Andrew

Simțiți-vă liber să vă conectați și să mă urmăriți pe LinkedIn, pentru că îi inspir pe cei care doresc să intre în industria tehnologiei: www.linkedin.com/in/andrew-ngo/