Miks õppisin 8 kuud täiskoormusega Google'i intervjuu jaoks

See on tõsi. Olen veetnud tuhandeid tunde raamatute lugemise, koodi kirjutamise ja arvutiteaduse loengute vaatamisega, et kõik valmistuda Google'i tarkvarainseneri intervjuuks.

Kui soovite Google'i intervjuuks valmistuda, on siin minu õppeplaan:

jwasham / google-intervjuu-ülikool

google-intervjuu-ülikool - täielik päevakava Google'i tarkvarainseneriks õppimiseks. github.com

Kuidas ma siia jõudsin

Hakkasin programmeerima keskkoolis, kuid kui tuli ülikooliaeg, omandasin majandusteaduse kraadi. Minu põhjendus oli, et minu lõpetamise ajaks on liiga palju programmeerijaid, kes tööd otsivad. Poiss, ma eksisin.

Hiljem liitusin armeega programmeerijaks, kuid värbaja viis mind sõjaväeluure ametikohale ja järgmised kaks aastat veetsin korea keelt. Teenisin pärast seda 2 aastat Lõuna-Koreas.

Enne armeest lahkumist proovisin uuesti programmeerimisega tegeleda ja olin raskustest üllatunud. Olin BASICu õppinud keskkoolis ja programmeerisin seda keskkooli kaudu. Kuid alustasin programmeerimise õpinguid uuesti C ++ abil ja hüpe oli liiga suur. Ma lihtsalt ei suutnud seda mõista.

Mulle meeldis siiski veebisaitide loomine, kuid kasutasin Wordi-sarnase liidesega tarkvara, mida kasutasin oma veebisaitide avaldamiseks. Ma ei teadnud, kuidas veebisaite nullist teha.

Pärast armeed otsustasin jääda aastaks Koreasse ja õpetada inglise keelt. Kasutasin oma öid ja nädalavahetusi veebiprogrammeerimise õppimiseks, kasutades selleks Perli, HTML-i, CSS-i (mis oli tol ajal uus), JavaScripti ja SQL-i.

Pärast aastast intensiivset õppimist sattusin tööle Seattle'i piirkonda ja olen siin olnud sellest ajast peale.

Olen nüüd veebiarendaja olnud 15 aastat. Olen loonud 3 ettevõtet, millest kaks tegutsevad endiselt ja teenivad tulu. Olen töötanud suurtes ja väikestes ettevõtetes, aidanud idufirmadel käivitada ja kasvada ning värbanud ja juhtinud meeskondi. Olen olnud tootejuht, tegevjuht, disainer ja turundaja.

Olen teinud edukat karjääri ja õppinud selle käigus palju. Kuid ma pole veel lõpetanud.

Karjäärimuutuse otsimine

Kas mäletate seda osa, kus ma ei saanud arvutiteaduse kraadi? See on midagi muutnud.

Mõni aasta tagasi arvasin, et võiksin palgata ükskõik kuhu. Arvasin, et olen kuum asi: tabamatu täispika veebiarendaja. Kuid 2013. aasta tööotsingute käigus sain aru, et mu oskused on puudulikud. Olin veetnud nii palju aega, et vabal ajal idufirmade juhtimisega dollareid taga ajada, et olin lasknud oma oskustel atroofeeruda. Ma polnud tehnikaga sammu pidanud.

Aastaid olin õppinud just nii palju, et läbi saada. Mul oli lai oskuste komplekt, kuid ma polnud millegi asjatundja.

Ärge saage valesti aru, ma võiksin ikkagi palgata, kuid mitte sellistes tehnoloogiates või valdkondades, kus tahtsin töötada. Võiksin palgata valdkondadesse, kus tehnikapakk oli mõnevõrra aegunud, nagu mina. Seal on palju raha, kuid ma ei näinud põnevaid väljavaateid.

Teostus saavutas haripunkti möödunud aastal karjäärimessil. Mind huvitas ehk töötamine ühes kohalikus ettevõttes, mis oli riskikapitalifirmade juhitav idufirma. Kuid see, et mul puudus arvutiteaduse kraad, ning oskused ja teadmised, mis sellise kraadiga kaasnevad, tähendasid, et mul polnud võimalust.

Töötasin sel ajal oma ettevõtetega täiskohaga ja olen ka praegu.

2016. aasta alguses otsustasin, et on aeg muuta karjääri veebiarendajast tarkvarainseneriks. Mul oleks vaja palju õppida ja harjutada, et arvutiteaduse kraad paariks kuuks kokku suruda, kuid kui see juba õnnestus, võisin alustada uut karjääri.

Te ei pruugi veebiarendust ja tarkvaratehnikat erinevates positsioonides näha. Mõlemad hõlmavad programmeerimist ja meisterdamist, kuid tarkvaratehnika lisab sellele teadmisi andmestruktuuridest ja algoritmidest, kompileeritud keeltest, mälu kaalutlustest ning kodeerimise ja arhitektuuriliste otsuste mõju mõistmisest masinatele, kus nad asuvad.

Suurettevõtted, kes palgavad tarkvarainseneri ametikohale, eeldavad, et kandidaadid omavad neid teadmisi.

Pöördusin ühe tuttava poole, kes töötab Google'is, ja esitasin talle küsimusi ettevõttes kogetu kohta. Ma olin lugenud Kuidas Google töötab ja olin Google'iga juba üsna tuttav.

Teise kontakti kaudu sain koopia Google'i juhendamise märkustest, mis antakse kandidaatide intervjueerimiseks. Sellest sai minu õppeplaani alus.

Google on päris vinge koht töötamiseks, kuid enne kui ma veel arugi sain, oli minu eesmärk Google.

Miks just Google?

Google seab tööle võtmiseks väga kõrge lati. Nad tahavad palgata ainult parimaid. Nii et kui ma võtan oma vaatamisväärsused kõrgele (saan Google'i tööle), olen mujal endiselt üsna palgal, isegi kui mind ei valita.

Mida rohkem ma Google'ist teada saan, seda rohkem tahan seal töötada.

Lühidalt öeldes on Google ettevõte, mis võtab tööle nutikaid, loovaid inimesi ja kohtleb neid hästi. Google premeerib teenet, innustab suuri ideid ja annab töötajatele vabaduse teha kasutaja jaoks häid otsuseid.

Töölevõtmise protsess on kalibreeritud nutikate ja kirglike inimeste kaasamiseks. Google on aastate jooksul lihvinud värbamis- ja intervjuuprotsessi. Jutuküsimused on ammu kadunud. Tänapäeval valitakse kandidaadid kodeerimisvõime, tehniliste teadmiste ja Googleyness'i põhjal. Selles ühes sõnas toimub palju.

Juhtimine on erinev. Juhid ei halda mikrotasandil. Nad usaldavad insenere õigete otsuste langetamisel. Töötajate usaldamine muudab juhtide rolli Google'is sellest, mida enamik inimesi juhtimisest mõeldes ette näeb. Lisaks ei saa juhid ühepoolselt palgata, vallandada ega edutada. Paljude oluliste juhtimisotsuste üle, mida võib pidada kontoripoliitikaks, tegeleb selle ohu kõrvaldamiseks komisjon.

Google'i inimeste operatsioonid (HR) on õppinud, mis aja jooksul töötab, ning nad kasutavad andmeid ja töötajate tagasisidet hindamissüsteemide, töölevõtmise protsessi, tutvustuste, hüvitiste, hüvitiste ja muu täiustamiseks. Lugege tööreegleid! autor Laszlo Bock (SVP, People Operations) lisateabe saamiseks.

Jah, eelised on hämmastavad. Käisin Wirkis Kirklandis Google'i kontoris ringkäigul ja see ületas minu ootusi. Ja mu ootused olid juba suured.

Google'i intervjuuülikool

Kas mäletate saadud treeneri märkmeid, mis ütlesid mulle, mida õppida? Teemade loetelu tundus hallatav, kuigi ma ei teadnud loendis midagi.

Muutsin märkmete teemad kontuuriks ja hakkasin teemasid täiendama YouTube'i videotega MIT ja UC Berkeley loengutest. Video lingitud loendites ühes kohas, järjekordade video teises kohas. Nimekiri hakkas kasvama.

Avaldasin loendi Githubis, kuna minu Githubi konto oli üsna tühi. Kuna kogu kood, mille ma oma ettevõtete ja töö jaoks kirjutasin, oli privaatne, siis nägi minu Githubi konto välja, et ma ei kodeerinud üldse. Mul oli vaja luua portfell. Algselt kutsusin projekti “Projekt 9894”. Google käivitas 4. septembril 1998. Sellest ka nimi. Hiljem nimetasin selle ümber nimeks "Google Interview University".

Aja jooksul lisasin mõned valikulised teemad, mille avastasin.

Olin päris üllatunud, et olin oma karjääri jooksul nii kaugele jõudnud, teadmata isegi, kuidas protsessor töötles programmi, kuidas töötas mälu või midagi muud. Olin edu saavutamiseks teadnud „täpselt nii palju”.

Minu väikesele Githubi projektile hakkas paar tähte saama ja ma avaldasin blogipostituse, kus tähistati 20 tähte.

Ühel hommikul ärkasin, et leidsin, et see on kasvanud 120 täheks. Keegi kuulus oli sellest öösel säutsunud ja see viis selle jõudmiseni Githubi igapäevases trendiaruandes. Olin paar päeva Githubis populaarseim.

Paljud lahked inimesed pöördusid mind tänama ja julgustama. Selgub, et on tuhandeid inimesi, kes tahavad mitte ainult Google'is töötada, vaid tahavad töötada tarkvarainsenerina, ja see nimekiri oli just nende jaoks vajaminevate ülesannete loend.

Nüüd on see üle 21 000 tähe.

Ma ei suuda seda siiani uskuda.

Mis siis, kui ma ei saa tööd?

Sellest ei saa maailma lõppu.

Olen oma õppetöösse pühendanud aja ja pühendumise eesmärgile saada tööle Google'i tarkvarainseneriks, kuid isegi kui ma ebaõnnestun, olen siiski relvastatud oskuste ja teadmistega, mis on vajalikud mis tahes ettevõttes tarkvarainsenerina töötamiseks. .

Ükskõik kuhu satun, lähen sisse algtaseme tarkvarainsenerina. Ma ei lähe sisse 15-aastase tarkvaratehnika kogemusega, sest mul seda lihtsalt pole. Selle värgi osas olen samaväärne värske CS-kraadiga.

Kuid mul on ka uue astme entusiasm. See on minu jaoks uus maailm. Alustan alles. Ma ei karda vigu teha. Ma tean, et hakkan. Samuti tahan õppida kõike, mida saan, ja olla suurepärane täiendus igale meeskonnale.

Ära õpi nii palju kui mina

Jah, mul kulus 8 kuud. Kuid oleksin võinud protsessi lühendada. Nagu iga suure eesmärgiga idufirma, teete ka vigu ja teete asju, mis raiskavad aega. On palju asju, mida soovin, et lähen tagasi ja teeksin teisiti.

Õppisin teemasid, mida mul vaja polnud, mõned seetõttu, et arvasin, et vajan neid intervjuuks, ja mõned seetõttu, et tahtsin juba tööle asudes teadmised käes olla. Ma ei tahtnud olla koormaks meeskonnale, kuhu olen määratud. Tuleb välja, et valmistusin lihtsalt üle.

Veetsin 3 nädalat C ++ -st 1000-leheküljelise raamatu lugemise. Ma ei mäleta 1000 lehekülje väärtust, kuid tean nüüd C ++ -st head. Nagu selgub, kasutan intervjuuks Pythoni, mitte C ++. Ma olin eeldanud, et vajan C ++, C või Java-d, kuid ma eksisin. Hea on küsida, mitte oletada.

Lugesin palju rohkem raamatuid kui vaja. Seal on ainult 3 või 4 raamatut, mida oleksin pidanud lugema.

Mul on kümnete algoritmide koodikataloog, mille üle vaatan ja millest enamikku ma intervjuus ei ootaks. Seda pole vaja teha.

Vaatasin mitu tundi YouTube'i videoid, kuid oleksin võinud palju vähem vaadata ja aja jooksul teemasid laiali jagada.

Ma oleksin pidanud varem raamatute lugemise ja videote vaatamise lõpetama ja varem kodeerimisprobleemidega alustama. Oleksin saanud rohkem aega kulutada õpitud teemade rakendamisele.

Ruumiline kordamine on meeldejätmise võti. Kui olete midagi õppinud, vaadake see hiljem uuesti üle ja hiljem uuesti. Iga korduse korral tugevdate oma õppimist. Tundide ja tundide korraga kulutamine prioriteetsetele järjekordadele ei tee teid eksperdiks. Eksperdiks saate aja jooksul üle vaadates ja üle vaadates. Nii tehes jõuate sinnamaani, et ei saa detaile unustada.

Ülevaate hõlbustamiseks valmistasin 1792 mälukaarti (digitaalset mälukaarti). Seda on liiga palju. Vaatan need üle oma telefonis või tahvelarvutis alati, kui saan vaba hetke (näiteks jõuluostude ajal). Flash-kaardid ja vahedega kordamine käivad käsikäes. Kui saan vastuse mälukaardile, ei märgi ma seda teadaolevana. Hoian seda tekil ja kui olen seda korduvalt näinud ja õigesti vastanud, siis märgin selle teadaolevaks.

Minu hirmutunne (“Mis siis, kui nad küsivad minult punase-mustade puude kohta küsimuse?”) Viis mind uurima palju rohkem teemasid kui mul vaja oli.

Kuid ma ei tahtnud lihtsalt intervjuuks valmistuda, vaid tahtsin valmistuda karjääriks Google'is, lahendades suuremahulisi probleeme. See tähendab algoritmide tundmist, mis säästavad aja-, ruumi- ja sisend- / väljundressursse.

Mul ei pruugi kunagi olla vaja teada maksimaalse voo algoritmi (Ford-Fulkerson), kuid on tore teada, et mul on see tööriist olukorra tekkimisel saadaval (rakendust meelde jätmata) ja suudan ära tunda selle rakendamise probleemses ruumis.

Järeldus

Juba varakult soovisin, et saaksin kogu selle õppimise vahele jätta, ja lihtsalt kiirustan ja palgatakse, et saaksin selle asemel veeta oma aega selle meeskonna keelte ja tööriistade õppimiseks, kellega liitun. Kuid selle käigus sain aru, kui olulised need teadmised on, ja kuigi enamik neist ei pruugi igapäevaselt rakenduda, on mul hea meel, et pingutasin. Mul on uus hinnang arvutamise ajaloost, valdkonna suurkujudest, andmestruktuuridest ja algoritmidest (ja kuidas nad üksteist täiendavad) ning sellest, kuidas arvutisüsteemid töötavad madalal tasemel.

Varsti esitan oma taotluse. Selleni jõudmine on olnud pikk teekond - peaaegu terve aasta. See algas küll jaanuaris, kuid täiskoormusega õppele sain pühenduda alles aprillis.

Olen umbes nii valmis kui võimalik. Ma ei saa edasi õppida ja rakendust igavesti edasi lükata. Mingil hetkel pean selle hüppe tegema.

Näen ees helget tulevikku.

Täname, et leidsite aega minu loo lugemiseks.

Artikkel on saadaval ka araabia, vietnami ja korea keeles.

Uuendus: 10. jaanuar 2017

Mind ei võetud tööle. Loe edasi . Täname kõiki hämmastava ja valdava toetuse eest.

Uuendus: 6. märts 2017

Lool on õnnelik lõpp! Amazon on mind palganud Amazoni veebiteenuste tarkvaraarenduse inseneriks!

Kust mind leida

Ma blogin Startup Next Dooris.

Google'i intervjuuülikool Githubis:

jwasham / google-intervjuu-ülikool

google-intervjuu-ülikool - täielik päevakava Google'i tarkvarainseneriks õppimiseks. github.com