Najbolja knjiga za tehničku pripremu intervjua za kodiranje

Intervjui za tehničko kodiranje notorno su teški - gotovo neprikladni za granične kvizove. Ponekad može biti zastrašujući zadatak kretati se svim mrežnim resursima za pripremu tehničkog kodiranja, a moglo bi se postaviti pitanje: postoji li jedna knjiga / resurs koji se najbolje priprema za razgovore o tehničkom kodiranju?

Najbolje , naravno da je u ovom slučaju relativno. Ako tražite knjigu koja će vas naučiti kako riješiti bilo koje pitanje kodiranja, vodi vas kako dizajnirati nešto poput Instagrama koje se skalira na milijardu korisnika i pravi vaš sendvič dok ste za njim, onda će ova knjiga definitivno zar ne

Ali zbog poliranja svojih tehničkih kotleta i osiguranja da ste dobro pripremljeni za suočavanje s programskim izazovima u intervjuu, ova knjiga joj je približila.

U današnjoj recenziji knjiga detaljno prelazim na dobre i loše strane jedne od najprodavanijih knjiga na Amazonu za intervjue za tehničko kodiranje: Elementi programskih intervjua (zvani EPI , a u ostatku će se navesti kao takvi ovog članka).

O čemu govori ova knjiga?

EPI je knjiga koja se fokusira na pripremu pitanja za intervju za tehnički softverski inženjering koja se često postavljaju u tehnološkim tvrtkama. Ako tražite mjesto softverskog inženjera, ova će knjiga imati nešto za vas.

EPI su napisala trojica ljudi koji su radili u nekim od najpoznatijih tehnoloških tvrtki na svijetu, poput Facebooka, Googlea, Ubera i Microsofta. Autori imaju vrlo snažno tehničko podrijetlo, a to dokazuje i tehnički fokus u sadržaju knjige.

Sama knjiga vrlo je tehničke prirode i duboko zaranja u temeljne računalne znanosti. Vrste pitanja o tehničkom kodiranju uvelike se razlikuju od manipulacije nizom do prelaska grafova. Knjiga također nudi konkretne savjete i trikove za rješavanje određenih vrsta problema s kodiranjem, a uključuje i varalicu za pomoć u tehničkim pitanjima.

Dobro

Ukratko: EPI je visokotehnička knjiga koja je pogodna za svakoga tko se želi pripremiti za pitanja tehničkog kodiranja koja se vrte oko struktura podataka i algoritama.

Stvari u kojima sam posebno uživao:

  • ima mnogo pitanja (300+) s detaljnim odgovorima, u usporedbi s drugom popularnom knjigom (Cracking The Coding Interview) koja ima samo 170+
  • dolazi u 3 različite verzije: Java, Python i C ++. Pogodno za ljude koji žele koristiti jezik po svom izboru
  • ima sjajnu varalicu (poglavlje 4) koja sažima sve tehnike i strukture podataka koje bi vam trebale
  • detaljno pokriva svaku pojedinu strukturu podataka koja vam je potrebna, algoritme koje biste trebali znati i tehnike koje biste trebali znati u jednostavnom, razumljivom formatu
  • pokriva relevantne tehničke teme koje će vas možda pitati u intervjuu za kodiranje, poput onoga što je TCP / IP, kako Internet funkcionira i kako uhvatiti odnose između različitih entiteta u dizajnu sheme

To su neke od najviših točaka u kojima sam uživao u knjizi. Ono u čemu zaista uživam je da su odgovori vrlo, vrlo dobro konstruirani.

Odgovori često uzimaju grubu silu / pojednostavljeni pristup problemima. Autori zatim daju konkretne primjere kako možete poboljšati pristup grube sile. Svakom iteracijom autori ističu gdje su ograničenja i kako ih možete riješiti postupnim optimizacijama.

Na primjer, EPI objašnjava kako otkriti ciklus na povezanom popisu. Prvi pristup: upotrijebite hash kartu za pohranu svakog čvora koji pređete, a zatim provjerite pored hash mape da vidite jeste li je vidjeli. To obavlja posao, iako treba dodatni prostor (tzv. Složenost prostora O (N) i složenost vremena O (N)).

Knjiga zatim ističe da dodatni prostor nije potreban i sugerira da se otkrivanje ciklusa na povezanom popisu može izvesti bez dodatnog prostora manipuliranjem pokazivačima.

Zauzima se isti pristup u objašnjavanju gotovo svih pitanja, tako da svatko može razumjeti kako od grubog rješenja doći do optimiziranog.

Za nekoga tko zahrđa i želi se početi pripremati za intervjue, EPI izvrsno radi - svako poglavlje započinje sažetkom strukture podataka ili algoritma koji ćete naučiti, zašto je struktura podataka posebna, koje su snage / slabosti spomenuta struktura podataka i ono što trebate uzeti na znanje.

Ukratko, EPI je bilježnica kakvu sam želio imati kad sam se pripremao za tehničke razgovore. Ovo je knjiga koju bih dao prijatelju koji se želi pripremiti za tehničke razgovore - osim mog najprodavanijeg tečaja za intervjuiranje (Acing The Tech Interview), koji priprema svakog kandidata za cjelokupno iskustvo razgovora od pripreme životopisa, bihevioralnih pitanja do kreativno rješavati probleme kodiranja. Nastava se brzo popunjava, pa rezervirajte svoj termin danas ovdje.

Loše

EPI ima i svojih loših strana. Budući da je visokotehnička knjiga, to znači da je fokus usmjeren na kodiranje pitanja.

To, nehotice, znači da knjiga zaostaje u pogledu ostalih aspekata procesa tehničkog razgovora koji su, vjerojatno, jednako važni - pregovarati o ponudi, kako napisati uvjerljiv životopis, što učiniti kad dobijete ponudu, kako rješavati pitanja u vezi s ponašanjem itd.

Uz to, knjiga ulazi u detaljne detalje sa strukturama podataka i algoritmima, ali pruža samo pregled na visokoj razini, do točke zbunjujuće zbog nedostatka konteksta, raznih drugih važnih koncepata poput SQL-a, NoSQL-a, kako dizajnirati odgovarajuća shema za jednostavnu primjenu i više.

Knjiga nekako pokriva SQL dizajn objašnjavajući kako strukturirati tablice za hvatanje odnosa entiteta, ali ne objašnjava više o PRIDRUŽIVANJIMA niti kako pravilno pitati tablice. Mislim da je razumijevanje što (SQL tablice) jednako važno kao i kako (upiti).

EPI također ima poglavlje o dizajnu sustava, ali poglavlje ne obuhvaća distribuirane dizajne. Bilo bi mi draže da je knjiga detaljnije opisala što su distribuirani sustavi ili gdje pronaći više informacija o njima.

Je li ovo dobra knjiga za mene?

Ako imate ~ 40 dolara za rezervu i velik apetit za učenje, rekao bih.

Knjiga se u prosjeku prodaje za 36 dolara (postoje 3 verzije). Ova je knjiga visoko ocijenjena na Amazon.com, s prosječno 4,53 zvjezdice u sve tri verzije. Statistika je sljedeća:

Na Amazon.com:

3 verzije (od 12. ožujka):

  • Python: 169 ocjena 4,3 prosj
  • Java: 203 ocjene 4,6 prosj
  • C ++: 436 ocjena 4,7 prosj

Ukupno je bilo 808 recenzija.

Neke od recenzija:

„.. najbolji algoritam / struktura podataka koji sam ikad uzeo“ „kôd je visoke kvalitete, koristeći smislena imena varijabli“ „ovo je knjiga koju morate imati“

Sad, bi li ga trebao kupiti?

Mislim da je EPI jedan od najboljih resursa za pripremu za razgovore o tehničkom kodiranju, osim nijednog. Bez obzira na vašu razinu iskustva, tu je nešto za vas. Osobito uživam čitati knjigu zbog jasnih i jezgrovitih objašnjenja i koristim je kao referencu u svom tečaju programiranja.

Ako želite sve podatkovne strukture, algoritme koje trebate znati u jednoj, lako čitljivoj knjizi, onda je EPI knjiga za vas.

Za dizajne distribuiranih sustava preporučujem potragu negdje drugdje. Dobar početak je dizajniranje aplikacija s intenzivnim podacima.

Volim ga zbog dubine i uvida, a preporučujem ga i mnogim studentima koji pohađaju moje tečajeve.

Resursi koje preporučujem

Dizajniranje aplikacija s intenzivnim podacima - sjajan resurs za učenje o distribuiranim sustavima i načinu rada velikih sustava.

Pohađanje tehničkog intervjua - moj najprodavaniji tečaj osobnog treniranja kako predavati tehničke intervjue. Pokrivamo pregled životopisa, intervju za tehničko kodiranje, bihevioralna pitanja i još mnogo toga.

Acing The Intervju za dizajn distribuiranih sustava - moj osobni tečaj podučavanja u dizajniranju distribuiranih sustava velikih razmjera. Saznajte kako dizajnirati značajke poput Instagram Stories, Groupon, web mjesta za streaming filmova poput Netflixa.