Kako sam nakon godinu dana teškog rada dobio posao softverskog inženjerstva

Mnogi od nas misle da put do postajanja softverskim inženjerom zahtijeva godine obrazovanja i izuzetno visok IQ. Iako je softversko inženjerstvo jedno od najsvjetlijih zanimanja, ne dopustite da vas to obeshrabri da naučite kodirati i postanete softverski inženjer.

Mislio sam da je prekasno za moj prelazak u informatiku, ali bez obzira gdje se nalazite u životu, nikad nije kasno učiti i baviti se svojom strašću.

Moja netradicionalna pozadina

Nisam pohađao visoko rangirano sveučilište niti imam tehničko predznanje. Kao dijete nisam imao strast prema rješavanju zagonetki niti sam se natjecao na matematičkim natjecanjima. Zapravo sam se sklonio od rješavanja problema s računalima kao dijete nakon mnogih neuspjelih pokušaja da wifi radi.

Diplomirao sam poslovnu administraciju i radio dva financijska posla koja me nisu izazivala. Bili su to laki, jednostavni poslovi, ali vrlo brzo je postalo svakodnevno i dosadno. Nisam osjećao da posao koji radim ispunjava i odbijao me svaki put kad bih zatražio više analitičkih zadataka. Tada sam odlučio poboljšati svoje vještine i stvoriti svoje mogućnosti.

Prije nešto više od godinu dana pokupio sam SQL jer je to popularna vještina u financijskoj analitici. Nakon učenja sintakse, kodiranje više nije djelovalo zastrašujuće. Bilo je to nekako poput učenja novog jezika. Jednom kad budete mogli čitati i pisati, možete razumjeti stvari koje su nekada izgledale potpuno strano. Zaista sam uživao učiti novi jezik i biti tehnički u svom poslu, pa sam znao da je to nešto čime se moram baviti.

Odabir pravog puta

Razmišljao sam o različitim putovima za razvoj karijere. Nisam želio provesti još dvije godine u podzemnoj školi i nisam želio sve naučiti sam. Čula sam priče o uspjehu ljudi koji su pohađali kodiranje bootcampova i mogli preći u ulogu softverskog inženjerstva. Nakon puno istraživanja, zaključio sam da je to najbolja opcija za mene i prijavio sam se za sljedeću kohortu Hack Reactor-a.

Trebao sam proći tehnički razgovor da bih bio primljen u program, pa sam sve vrijeme provodio ili nakon posla ili vikendom učeći što sam više mogao. Bilo mi je teško odvojiti vrijeme za naučiti nešto potpuno novo nakon što sam ispao iz redovitog posla, ali moja motivacija da postignem svoj cilj me održavala.

Potpuno sam bombardirao svoj prvi intervju, ali učio sam na svojim greškama i rezervirao sam drugi intervju na dan krajnjeg roka. Ovaj put sam se pobrinuo da budem pripremljen i komunikativan s cijelim svojim misaonim procesom. Sljedeći dan primio sam pismo o prihvaćanju i putovanje u softverski inženjer službeno je započelo.

Brusi svoj zanat

Kampus u kojem sam se odlučio pohađati bio je u San Franciscu, jednom od najvećih tehnoloških središta na svijetu. Budući da sam cijeli život bio u SoCalu, to je definitivno bila velika promjena i nije bilo lako oprostiti se. Spakirao sam sve stvari i preselio se u zajednički stan u SF-u.

Tijekom prvih nekoliko dana mog programa upoznao sam svoje kolege iz razreda. Većina ih je došla s visoko cijenjenih sveučilišta i stekla STEM diplomu. Mnogi od njih imali su prethodno znanje drugih skriptnih jezika i iskustvo s objektno orijentiranim programiranjem. Znao sam da moram puno toga nadoknaditi ako ne želim zaostajati.

S razlogom ga nazivaju bootcamp za kodiranje. Nastava je bila predviđena od 9 do 20 sati, šest dana u tjednu, ali obično bih ostajao do 22 sata ili ponoći. Prilično sam živio, disao i spavao kod.

Prvih nekoliko tjedana stvarno sam se mučio. Natrpao bih što sam više informacija mogao, pritom pazeći da i dalje zadržavam podatke iz prethodnih dana, i ponovio taj postupak sljedeći dan. Bilo je trenutaka u kojima sam sumnjao u sebe i nisam mislio da imam ono što je potrebno da bih bio programer. Toliko sam se žrtvovao da bih bio tamo, a moji prijatelji i obitelj računali su na to da ću završiti snažno. Znao sam da je ovo moj jedini hitac, pa sam ustrajao i preživio oluju.

Dani i tjedni su počeli letjeti, a ja sam polako počeo ulaziti u tok. Počeo sam učiti "kako učiti" i oslanjati se na vlastite vještine kako bih otkrio probleme s kojima sam se suočio. Google je najbolji prijatelj bilo kojeg programera i vrlo je vjerojatno da je netko drugi naišao na istu grešku na koju ste naletjeli.

Radio sam na sprintovima svaka dva dana koji su pokrivali osnove JavaScript-a, frontend okvire, poslužitelje, baze podataka, implementaciju i još mnogo toga. Prvih nekoliko tjedana samo sam išao s prijedlozima, ali kad sam napokon stvorio cijelu aplikaciju za cijeli stack, tu je sve kliknulo. Napokon sam shvatio svrhu određenih tehnologija koje sam koristio i sve je imalo smisla.

Izgradimo nešto

Jednom kad su postavljeni temelji, nastavni plan i program mog programa preusmjerio se na građevinske projekte. Radio bih na glavnim projektima s timovima koji bi naglasili ili frontend ili backkend. Kažu da izvlačite ono što ste stavili, pa sam se pobrinuo da pokažem svoj apsolutno najbolji rad na tim projektima. Ne samo da je morao funkcionirati, već je i kôd morao biti čist i čitljiv u slučaju da potencijalni poslodavci pregledaju moja git spremišta.

Posljednji glavni kamen nazvan je MVP, poznat i kao minimalni održivi proizvod. U osnovi smo imali 72 sata da stvorimo sve što smo htjeli, sve dok je to bila aplikacija s punim hrpom. Ograničeno vrijeme bilo je izazov i morao sam se pobrinuti da mogu učinkovito upravljati svojim vremenom. Nisam mogao biti preambiciozan sa svojim projektom, ali također sam želio da to bude nešto na što bih bio ponosan.

Moja prva ideja bila je izgraditi decentraliziranu aplikaciju koja će koristiti Ethereum blockchain. Za poslodavce je zvučalo impresivno, ali nisam bio upoznat s jezikom Solidity i nisam bio siguran hoću li uspjeti dovršiti cijeli dapp na vrijeme. Još jedna ideja s kojom bih se našalila bila je aplikacija za ocjenjivanje bobe za sve obližnje boba trgovine koje bi moji kolege iz razreda posjetili.

Kad je došlo vrijeme za odluku, sjetio sam se da sam uzeo kodiranje jer mi je bilo zabavno. Osjećao sam kao da bih 110% uložio u nešto u čemu bih uživao, umjesto u nešto zbog čega bih neprestano naglašavao. Na kraju sam odabrao aplikaciju za ocjenu boba i volio sam svaku njezinu sekundu.

Kad bih spustio osnovnu funkcionalnost, nastavio bih primjenjivati ​​dodatne značajke. Na kraju je postao strastveni projekt i uvijek će biti nezaboravan projekt na koji sam ponosan. Ne radite nešto jer to drugima može izgledati impresivno, učinite to jer istinski uživate.

Na kraju 13. tjedna, cjelokupni način razmišljanja promijenio sam se od početka programa. Osjećao sam se sigurnije kao programer i ponosan na sve što sam postigao. Naučio sam toliko novih tehnologija da bi mi trebale godine da naučim sam. Postao sam autonomniji i oslanjam se na vlastite vještine u rješavanju problema. Napokon sam bila spremna uskočiti u potragu za poslom i jedva sam čekala da započnem.

Mljevenje

Prije nego što je moj program završio, znao sam da moram udariti u zemlju. Pripremao sam se mjesecima i sada je to bila prilika da poslodavcima pokažem što imam. Znao sam cijeli MVC i kako sagraditi cijeli stog, ali kad bih imao lažne intervjue, postao bih tako nervozan i potpuno prazan. U tom trenutku to bi bila spirala prema dolje i čitav moj misaoni proces bi skrenuo s puta. Kako bih prošao stvarni tehnički razgovor, a da se nisam mogao nositi ni s lažnim?

Udvostručio sam se proučavajući strukture podataka i algoritme dok sam mljeo Leetcode pitanja. Morao sam biti siguran da ne pamtim određene probleme, već da razumijem postupak rješavanja problema da bih riješio bilo koje pitanje. Jednom kad sam uspio smisliti osnovno rješenje problema (poznatog i kao gruba sila), znao sam da će anketari tražiti optimalno rješenje. Žele znati mogu li vaši algoritmi biti učinkoviti s obzirom na vrijeme i prostor.

Jednom kada sam izgradio bolju osnovu za rješavanje problema, bilo je vrijeme da se suočim sa svojim strahom od intervjua. Čula sam za koncept šok terapije, u osnovi frontalno suočena s vašim strahovima. Slično kao što je Batman pobijedio strah od šišmiša okružujući se u njihovoj špilji punoj njih, i ja sam morao vježbati više razgovora.

Koristio sam web mjesto nazvano Pramp koje bi vas uparilo s drugom osobom, a vi biste se izmjenjivali. Skupio sam hrabrosti i zakazao svoj prvi intervju. Izgovorio bih svoj misaoni proces i rješenje mi je prirodno došlo. Polako sam osjećao kako mi nestaje nervoza i počeo sam uživati ​​u intervjuima.

Na kraju lažnog intervjua zatražio sam povratne informacije i naučio što bih mogao poboljšati. Nakon što je sve završilo, osjećao sam se sjajno! Intervjuiranje nije bilo toliko zastrašujuće i proces zaista može imati koristi. Tada sam vježbao svaki dan kako bih bio spreman za stvarni intervju.

"Uspjeh nije konačan, neuspjeh nije fatalan: bitna je hrabrost za nastavak." - Winston Churchill

Sve igra brojeva

Dok sam se pripremao za intervju, počeo sam se prijavljivati ​​i za poslove jer bi postupak prijave trajao neko vrijeme, posebno za veće tvrtke koje bi mogle potrajati tjednima ili mjesecima.

Primijetio sam da je uobičajeni trend da se novi programeri usredotoče isključivo na pripremu prije prijave, ali to bi mogla biti skupa pogreška. Što se tiče softverskog inženjerstva, uvijek se ima što za proučiti pa se ne možete pripremiti za sve. Pitali su me o svim vrstama tema kao što su strukture podataka i algoritmi, dizajn sustava, dizajn frontenda, testiranje i znanje o domeni. Dok proučite „sve“, možda će vam trebati mjeseci da dobijete prvi intervju.

Jedna od strategija je razgovor s tvrtkama za koje znate da nisu vaš prvi izbor. Na taj ćete način biti spremniji i znati što ispravno raditi kada dobijete priliku za intervju za tvrtke iz snova.

Znao sam da mi pohađanje Bootcampa neće garantirati posao. Natjecao sam se s onima koji imaju fakultetske znanosti i prethodno iskustvo u industriji. Budući da sam kandidat bez tehničke diplome ili odgovarajućeg radnog iskustva, u potragu za poslom krenuo sam s nedostatkom.

Prijavljivao sam se za bilo koju ulogu inženjera ili programera s kojom sam naišao i dohvatio sve veze u potencijalnim tvrtkama u kojima bih želio raditi. Poslao sam preko 300 hladnih prijava i primio nevjerojatno nisku stopu odgovora. Bio sam filtriran i dobio sam bezbroj e-poruka s automatskim odbijanjem.

Ono što sam smatrao najučinkovitijom metodom stupanja u kontakt s regruterom bilo je putem preporuka. Sa stajališta poslodavca preporuke imaju potpuni smisao. Zašto vjerovati potpunom neznancu kojeg niste upoznali kad imate kandidata za kojeg jamči trenutni zaposlenik kojem možete vjerovati? Jedna stvar koju svatko može učiniti je proširiti svoju mrežu odlaskom na okupljanja i događaje. LinkedIn je izvrstan alat za pronalaženje međusobnih veza u tvrtkama; iskoristite ga u potpunosti.

Bit će mnogo prepreka u vašem prvom traženju posla. Ubio sam ga više puta na tehničkim zaslonima i dobio sam sjajne povratne informacije od anketara, da bih kasnije od regrutera dobio e-poruku s odbijenicom. Samo treba biti uporan, učiti iz prošlih intervjua i nastaviti dalje. Ako nastavite raditi sve kako treba, na kraju ćete morati pronaći pravu priliku i dobiti ponudu.

Iskren naporan rad se isplati

Na kraju mog tromjesečnog traženja posla pozvan sam na pet razgovora na licu mjesta i dobio sam tri ponude. Nakon dugo razmišljanja, sretan sam što mogu objaviti da ću se pridružiti tvrtki Zume Inc. na području zaljeva San Francisco. Volim misiju i sve koje sam upoznao. Sav moj naporan rad i duge noći napokon su se isplatili i nisam mogao biti sretniji s onim što trenutno nalazim u svom životu. Tako sam zahvalna svima koji su me podržali na ovom putu. Znam da ću svaki dan biti izazivan i učinit ću veći utjecaj svojim radom.

Ono što kod softverskog inženjerstva volim jest to što nije važno kakvu pozadinu imate. Svatko može naučiti kodirati i usavršiti svoje vještine. Ako dolazite s netradicionalnog puta poput mene, možda će trebati malo više posla od ostatka, ali sve će se to isplatiti. Život je prekratak da biste se zadovoljili s manje, pa radite nešto što volite.

Želim vam puno sreće u vašim naporima - Andrew

Slobodno se povežite i slijedite me na LinkedInu dok pomažem nadahnuti one koji se žele probiti u tehnološku industriju: www.linkedin.com/in/andrew-ngo/