
Ez igaz. Több ezer órát töltöttem azzal, hogy könyveket olvastam, kódot írtam, és informatikai előadásokat néztem, hogy felkészüljek a Google szoftvermérnök interjújára.
Ha fel szeretne készülni egy Google-interjúra, íme a tanulmányi tervem:
jwasham / google-interjú-egyetem
google-interjú-egyetem - Teljes napi terv a Google szoftvermérnöknek való tanuláshoz. github.com
Hogy kerültem ide
A középiskolában kezdtem programozni, de amikor eljött az egyetem ideje, közgazdász diplomát szereztem. Indoklásom szerint túl sok programozó keres munkát, mire végzek. Fiú, tévedtem.
Később beléptem a hadseregbe, hogy programozó legyek, de a toborzó katonai hírszerzési pozícióba juttatott, és a következő két évet a koreai nyelv tanulmányozásával töltöttem. Utána 2 évig szolgáltam Dél-Koreában.
Mielőtt elhagytam a hadsereget, megkíséreltem visszatérni a programozásra, és meglepődtem a nehézségen. A BASIC-ot a középiskolában tanultam, és a középiskolán keresztül programoztam tovább. De a C ++ programmal újrakezdtem a programozási tanulmányaimat, és az ugrás túl nagy volt. Csak nem tudtam megfogni.
Nagyon élveztem azonban a weboldalak készítését, de Word-szerű kezelőfelülettel rendelkező szoftvert használtam, amelyet weboldalam közzétételére használtam. Nem tudtam, hogyan készítsünk weboldalakat a semmiből.
A hadsereg után úgy döntöttem, hogy egy évig Koreában maradok, és angolt tanítok. Éjszakáimat és hétvégéimet webprogramozásra használtam, Perl, HTML, CSS (ami akkoriban új volt), JavaScript és SQL használatával.
Egy évig tartó intenzív tanulmány után elhelyezkedtem Seattle területén, azóta itt vagyok.

15 éve vagyok webfejlesztő. Három céget alapítottam, amelyek közül kettő még mindig működik és bevételt generál. Dolgoztam kis és nagy vállalatoknál, segítettem a startupok indítását és növekedését, valamint csapatokat toboroztam és irányítottam. Voltam termékmenedzser, vezérigazgató, tervező és marketinges.
Sikeres pályafutásom volt, és sokat tanultam útközben. De még nem fejeztem be.
Pályaváltás keresése
Emlékszel arra a részre, ahol nem szereztem informatikai diplomát? Ez megváltoztatta.
Néhány évvel ezelőtt azt hittem, bárhol felvehetnék. Azt hittem, hogy dögös dolog vagyok: a megfoghatatlan, teljes verem webfejlesztő. De a 2013-as álláskeresés során rájöttem, hogy hiányoznak a képességeim. Annyi időt töltöttem dollárt kergetve, hogy szabadidőmben startupokat futtattam, hogy hagytam, hogy a képességeim elsorvadjanak. Nem tartottam lépést a technológiával.
Évek óta éppen annyit tanultam, hogy boldoguljak. Széles készségekkel rendelkeztem, de nem voltam szakértő semmiben.
Félreértés ne essék, mégis felvehetnék, de nem azokban a technológiákban vagy területeken, ahol dolgozni akartam. Olyan területekre is felvehetnék, ahol a technikai verem kissé elavult, például én. Nagy pénz van ott, de nem láttam izgalmas kilátásokat.
A felismerés tavaly egy karrier-vásáron ért el csúcspontját. Érdekelt, hogy esetleg az egyik helyi vállalatnál dolgoztam, amely kockázatitőke-társaságok által indított startup laboratórium volt. Az a tény azonban, hogy hiányzott számítástechnikai végzettségem, valamint az ilyen diplomával járó készségek és tudás, azt jelentette, hogy esélyem sincs.
Akkor teljes munkaidőben dolgoztam a vállalkozásaimmal, és ma is az vagyok.
2016 elején úgy döntöttem, hogy ideje megváltoztatni a pályafutást webfejlesztőből szoftvermérnökké. Keményen kellene tanulnom és gyakorolnom, hogy néhány hónapra összenyomjam a számítástechnikai diplomát, de ha egyszer megtettem, új karriert kezdhettem.
Előfordulhat, hogy a webfejlesztést és a szoftvertervezést nem tekintik különböző álláspontnak. Mindkettő magában foglalja a programozást és a kivitelezést, de a szoftvertervezés hozzáadja az adatstruktúrák és algoritmusok, az összeállított nyelvek, a memória szempontjainak ismeretét, valamint a kódolással és az architektúrával kapcsolatos döntések hatásának megértését azokon a gépeken, ahol laknak.
A szoftvermérnöki állásokra felvevő nagyvállalatok elvárják, hogy a jelöltek rendelkezzenek ezzel a tudással.
Megkerestem egy ismerősöm, aki a Google-nál dolgozik, és kérdéseket tettem fel neki a cégnél szerzett tapasztalatairól. Olvastam, hogyan működik a Google, és már eléggé ismert voltam a Google-nál.
Egy másik kapcsolatfelvételen keresztül kaptam a Google coaching jegyzeteinek egy példányát, amelyeket a jelentkezők megkérdezéséhez nyújtanak. Ez lett a tanulmányi tervem alapja.
A Google egy nagyon fantasztikus hely a munkavégzéshez, de mielőtt ezt még tudtam volna, a Google volt a célom.
Miért éppen a Google?
A Google nagyon magas lécet állít fel a felvételire. Csak a legjobbakat akarják felvenni. Tehát, ha magasra helyezem a látnivalóimat (felveszem a Google-ba), akkor is eléggé bérelhető leszek máshol, még akkor is, ha nem vagyok kiválasztva.
Minél többet tudok meg a Google-ról, annál többet akarok ott dolgozni.
Röviden: a Google olyan vállalat, amely okos, kreatív embereket alkalmaz és jól bánik velük. A Google megérdemli az érdemeket, nagy ötleteket ösztönöz, és szabadságot ad az alkalmazottaknak arra, hogy jó döntéseket hozzanak a felhasználó érdekében.
A felvételi folyamat kalibrálva van, hogy okos, szenvedélyes embereket vonzzon be. A Google az évek során csiszolta a toborzás és az interjú folyamatát. Az agytröszt kérdései már régen elmúltak. Manapság a jelöltek kiválasztása a kódolási képesség, a technikai ismeretek és a Googleyness alapján történik. Nagyon sok minden történik ebben az egy szóban.

A menedzsment más. A menedzserek nem mikrokezelnek. Bíznak abban, hogy a mérnökök helyes döntéseket hoznak. Az alkalmazottak bizalma megváltoztatja a menedzserek szerepét a Google-ban, mint amit a legtöbb ember elképzel, amikor a menedzsmentre gondol. Ezenkívül a vezetők nem tudnak egyoldalúan bérelni, kirúgni vagy előléptetni. Számos olyan fontos vezetői döntést, amelyet irodai politikának lehet felfogni, egy bizottság kezeli ennek a veszélynek a megszüntetése érdekében.
A Google munkatársai (HR) megtanulták, mi működik az idő múlásával, és az adatok és az alkalmazottak visszajelzései alapján javítják az értékelési rendszereket, a felvételi folyamatot, az előléptetéseket, a kompenzációkat, az ellátásokat és egyebeket. Olvassa el a munka szabályait! Bock László (People Operations SVP) további részletekért.
Igen, az előnyök elképesztőek. Körbejártam a Google irodát Kirklandben, Washingtonban, és ez felülmúlta az elvárásaimat. És az elvárásaim már magasak voltak.
Google Interjú Egyetem
Emlékszel az edzői jegyzetekre, amelyeket kaptam arról, hogy mit tanuljak? A témák listája kezelhetőnek tűnt, annak ellenére, hogy a listán nem tudtam semmit.
A jegyzetek témáit vázlattá változtattam, és elkezdtem a témákat az MIT és az UC Berkeley előadásainak YouTube-videóival kitölteni. Videó az egyik helyen linkelt listákon, egy másik a sorokról. A lista gyarapodni kezdett.
Azért tettem közzé a listát a Github-on, mert a Github-fiókom elég üres volt. Mivel az összes kód, amelyet a vállalkozásomra és a munkámra írtam, privát volt, a Github-fiókom úgy nézett ki, mintha egyáltalán nem kódoltam volna. Fel kellett állítanom egy portfóliót. A projektet eredetileg „Project 9894” -nek hívtam. A Google 1998. szeptember 4-én indult. Innen a név. Később átneveztem „Google Interview University” -re.
Idővel felvettem néhány választható témát, amelyeket útközben felfedeztem.

Nagyon csodálkoztam, hogy eddig eljutottam a karrierem során, anélkül, hogy tudtam volna, hogy a CPU hogyan dolgozott fel egy programot, hogyan működött a memória vagy bármi más. Tudtam, hogy „éppen elég” a sikerhez.
Az én kis Github projektem kezdett néhány csillagot kapni, és közzétettem egy blogbejegyzést, amely 20 csillagot ünnepelt.
Egy reggel arra ébredtem, hogy 120 csillagra nőtt. Valaki híres tweetelt róla az éjszaka folyamán, és ez oda vezetett, hogy a Github napi trendjelentésébe került. Néhány napig a Githubon figyeltem az első helyre.
Sok kedves ember kereste meg, hogy megköszönje és bátorítsa. Kiderült, hogy több ezer olyan ember van, aki nemcsak a Google-nél akar dolgozni, hanem szoftvermérnökként is szeretne dolgozni, és ez a lista csak a szükséges feladatlista volt.
Most meghaladja a 21 000 csillagot.
Még mindig nem hiszem el.
Mi van, ha nem kapok állást?
Nem lesz a világ vége.
Időt és odaadást fordítottam tanulmányaimra, hogy felvegyék a Google szoftvermérnökévé, de ha nem is sikerül, akkor is felvértezem azokat a készségeket és tudást, amelyek szükségesek ahhoz, hogy szoftvermérnökként dolgozzam bármelyik cégnél .
Bárhová is kerülök, belépek belépő szintű szoftvermérnökként. Nem megyek be 15 éves szoftverfejlesztési tapasztalattal, mert egyszerűen nincs meg. Ha ezekről a dolgokról van szó, akkor egy friss CS-fokozatnak felelek meg.
De lelkesedem egy új fokozat iránt is. Ez egy új világ számomra. Most kezdem. Nem félek hibázni. Tudom, hogy fogok. Szeretnék mindent megtanulni, amit csak tudok, és kiváló kiegészítője lehetek bármelyik csapatnak.
Ne tanulj annyit, mint én
Igen, 8 hónapot vettem igénybe. De rövidíthettem volna a folyamatot. Mint minden induló, nagy céllal, Ön is hibázik és olyan dolgokat csinál, amelyek időt pazarolnak. Sok mindent szeretnék, ha visszamennék és másképp csinálnék.
Olyan témákat tanultam, amelyekre nem volt szükségem, mások azért, mert úgy gondoltam, hogy szükségem lesz rájuk az interjúhoz, mások pedig, mert szerettem volna kéznél tartani a tudást, amikor elkezdtem dolgozni. Nem akartam megterhelni azt a csapatot, amelyhez beosztottak. Kiderült, hogy egyszerűen túlkészültem.
3 hetet töltöttem egy 1000 oldalas könyv elolvasásával a C ++ -on. Nem emlékszem 1000 oldalra, de a C ++ -ról most már tudok egy jót. Mint kiderült, a Python-ot használom az interjúhoz, nem a C ++ -ot. Feltételeztem, hogy C ++ - ra, C-re vagy Java-ra van szükségem, de tévedtem. Jó kérni, nem feltételezni.
A kelleténél sokkal több könyvet olvastam. Csak 3 vagy 4 könyv van, amit el kellett volna olvasnom.
Van egy tucatnyi algoritmus kódkatalógusom, amelyeket áttekintek, amelyek többségére nem számítok egy interjú során. Nem kell ezt tennie.

Sok órányi YouTube-videót néztem, de sokkal kevesebbet is megnézhettem volna, és idővel eloszlattam a témákat.
Korábban abba kellett volna hagynom a könyvek olvasását és a videók megtekintését, és hamarabb elkezdtem a kódolási problémákat. Több időt tudtam volna eltölteni a tanult témák alkalmazásával.
A térközismétlés a memorizálás kulcsa. Miután megtanult valamit, nézze át később, majd még később. Minden ismétlésnél megerősíti a tanulását. Ha órákat és órákat tölt el egyszerre a kiemelt sorokban, nem leszel szakértő. Szakértővé válik azáltal, hogy idővel felülvizsgálja és áttekinti. Ha így tesz, eljut arra a pontra, ahol nem felejtheti el a részleteket.
Az áttekintés elősegítése érdekében 1792 kártyát (digitális kártyát) készítettem. Ez túl sok. Átnézem őket a telefonomon vagy a táblagépemen, valahányszor kapok egy szabad pillanatot (például karácsonyi vásárlás közben). A flash kártyák és a szétválasztott ismétlések kéz a kézben járnak. Amint választ kapok egy kártyára, nem jelölöm meg ismertnek. A pakliban tartom, és ha egyszer már láttam és sokszor helyesen válaszoltam, akkor ismertnek jelölöm.
A félelemérzetem („Mi van, ha kérdést tesznek fel nekem a vörös-fekete fákról?”) Arra késztetett, hogy a kelleténél sokkal több témát tanulmányozzak.
De nem csak az interjúra készültem, hanem a Google karrierjére, nagyszabású problémák megoldására. Ez olyan algoritmusok ismeretét jelenti, amelyek megspórolják az idő, a tér és az I / O számítási erőforrásait.
Lehet, hogy soha nem kell ismernem egy maximális áramlási algoritmust (Ford-Fulkerson), de jó tudni, hogy rendelkezésre áll ez az eszköz, ha felmerül a helyzet (a megvalósítás memorizálása nélkül), és felismerem annak alkalmazását egy problémás térben.
Következtetés
Korán azt kívántam, hogy kihagyhassam ezt a tanulást, és csak siessek és felvehessenek, hogy ehelyett tölthessem az időmet annak a csapatnak a nyelveivel és eszközeivel, amelyekhez csatlakozom. De útközben rájöttem, mennyire fontos ez az ismeret, és annak ellenére, hogy a legtöbb lehet, hogy nem napi szinten alkalmazható, örülök, hogy erőfeszítéseket tettem. Újra értékelem a számítástechnika történetét, a szakterület nagyjait, az adatstruktúrákat és az algoritmusokat (és hogyan egészítik ki egymást), valamint azt, hogy a számítógépes rendszerek hogyan működnek alacsony szinten.
Nemsokára beadom a jelentkezésemet. Hosszú út vezetett el idáig - szinte egy évig. Még januárban kezdődött, de csak áprilisban tudtam elköteleződni a nappali tanulmányok mellett.
Körülbelül annyira felkészült vagyok, amennyire csak tudok. Nem folytathatom a tanulást és nem halaszthatom el az alkalmazást. Egy ponton meg kell tennem az ugrást.
Fényes jövőt látok.
Köszönöm, hogy időt szánt a történetem elolvasására.
A cikk elérhető arab, vietnami és koreai nyelven is.
Frissítés: 2017. január 10
Nem vettem fel. Olvassa tovább . Köszönet mindenkinek a csodálatos, mindent elsöprő támogatásért.
Frissítés: 2017. március 6
A történetnek boldog vége van! Az Amazon bérelt fel, hogy szoftverfejlesztő mérnökként dolgozzak az Amazon Web Services szolgáltatáson!
Hol talál engem
Blogolok a Startup Next Door-nál.
Google Interjú Egyetem a Githubon:
jwasham / google-interjú-egyetem
google-interjú-egyetem - Teljes napi terv a Google szoftvermérnöknek való tanuláshoz. github.com