You are on page 1of 2

INTERVIEWQUESTIONS:

InterviewtopicsmaycoveranythingonyourCV(especiallyifyouhavestatedthatyouareanexpert!),whiteboardcoding
questions,buildinganddevelopingcomplexalgorithmsandanalyzingtheirperformancecharacteristics,logicproblems,
systemsdesignandcorecomputerscienceprincipleshashtables,stacks,arrays,etc.ComputerSciencefundamentals
areprerequisiteforallengineeringrolesatGoogle,regardlessofseniority,duetothecomplexitiesandglobalscaleofthe
projectsyouwouldendupparticipatingin.

HOWTOSUCCEED:
AtGoogle,webelieveincollaborationandsharingideas.Mostimportantly,you'llneedmoreinformationfromtheinterviewer
toanalyzeandanswerthequestiontoitsfullextent.
*ItsOKtoquestionyourinterviewer.
*Whenaskedtoprovideasolution,firstdefineandframetheproblemasyouseeit.
*Ifyoudon'tunderstandaskforhelporclarification.
*Ifyouneedtoassumesomethingverballycheckitsacorrectassumption!
*Describehowyouwanttotacklesolvingeachpartofthequestion.
*Alwaysletyourinterviewerknowwhatyouarethinkingashe/shewillbeasinterestedinyourprocessofthoughtasyour
solution.Also,ifyou'restuck,theymayprovidehintsiftheyknowwhatyou'redoing.
*Finally...listendon'tmissahintifyourintervieweristryingtoassistyou!
Interviewerswillbelookingattheapproachtoquestionsasmuchastheanswer:
*Doesthecandidatelistencarefullyandcomprehendthequestion?
*Arethecorrectquestionsaskedbeforeproceeding?(important!)
*Isbruteforceusedtosolveaproblem?(notgood!)
*Arethingsassumedwithoutfirstchecking?(notgood!)
*Arehintsheardandheeded?
*Isthecandidateslowtocomprehend/solveproblems?(notgood!)
*Doesthecandidateenjoyfindingmultiplesolutionsbeforechoosingthe
bestone?
*Arenewideasandmethodsoftacklingaproblemsought?
*Isthecandidateinventiveandflexibleintheirsolutionsandopento
newideas?
*Canquestioningmoveuptomorecomplexproblemsolving?
Googleiskeentoseereallyhighquality,efficient,clearcodewithouttypingmistakes.Becauseallengineers(ateverylevel)
collaboratethroughouttheGooglecodebase,withanefficientcodereviewprocess,itsessentialthateveryengineerworks
atthesamehighstandard.

TECHNICALPREPARATIONTIPS
ThemainareassoftwareengineersshouldpreparetosucceedatinterviewingatGoogle:
1.)Coding:Youshouldknowatleastoneprogramminglanguagereallywell,preferablyC++orJava.Youwillbeexpectedto
writesomecodeinatleastsomeofyourinterviews.Youwillbeexpectedtoknowafairamountofdetailaboutyourfavorite
programminglanguage.
2.)AlgorithmComplexity:It'sfairlycriticalthatyouunderstandbigOcomplexityanalysis.Againrunsomepracticeproblems
togetthisdowninapplication.FormoreinformationonAlgorithmsyoucanvisit:
http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=alg_index
3.)Sorting:Knowhowtosort.Don'tdobubblesort.Youshouldknowthedetailsofatleastonen*log(n)sortingalgorithm,
preferablytwo(say,quicksortandmergesort).Mergesortcanbehighlyusefulinsituationswherequicksortisimpractical,
sotakealookatit.
4.)Hashtables:Youabsolutelyshouldknowhowtheywork.Beabletoimplementoneusingonlyarraysinyourfavorite
language,inaboutthespaceofoneinterview.
5.)Trees:Knowabouttreesbasictreeconstruction,traversalandmanipulationalgorithms.Familiarizeyourselfwithbinary
trees,narytrees,andtrietrees.Befamiliarwithatleastonetypeofbalancedbinarytree,whetherit'sared/blacktree,a
splaytreeoranAVLtree,andknowhowit'simplemented.Understandtreetraversalalgorithms:BFSandDFS,andknow

thedifferencebetweeninorder,postorderandpreorder.
6.)Graphs:GraphsarereallyimportantatGoogle.Thereare3basicwaystorepresentagraphinmemory(objectsand
pointers,matrix,andadjacencylist)familiarizeyourselfwitheachrepresentationanditspros&cons.
Youshouldknowthebasicgraphtraversalalgorithms:breadthfirstsearchanddepthfirstsearch.Knowtheircomputational
complexity,theirtradeoffs,andhowtoimplementtheminrealcode.Ifyougetachance,trytostudyuponfancier
algorithms,suchasDijkstraandA*.
7.)Otherdatastructures:Youshouldstudyuponasmanyotherdatastructuresandalgorithmsaspossible.Youshould
especiallyknowaboutthemostfamousclassesofNPcompleteproblems,suchastravelingsalesmanandtheknapsack
problem,andbeabletorecognizethemwhenaninterviewerasksyouthemindisguise.FindoutwhatNPcompletemeans.
8.)Mathematics:Someinterviewersaskbasicdiscretemathquestions.ThisismoreprevalentatGooglethanatother
companiesbecausewearesurroundedbycountingproblems,probabilityproblems,andotherDiscreteMath101situations.
Spendsometimebeforetheinterviewrefreshingyourmemoryon(orteachingyourself)theessentialsofcombinatoricsand
probability.Youshouldbefamiliarwithnchoosekproblemsandtheirilkthemorethebetter.
9.)OperatingSystems:Knowaboutprocesses,threadsandconcurrencyissues.Knowaboutlocksandmutexesand
semaphoresandmonitorsandhowtheywork.Knowaboutdeadlockandlivelockandhowtoavoidthem.Know
whatresourcesaprocessesneeds,andathreadneeds,andhowcontextswitchingworks,andhowit'sinitiatedbythe
operatingsystemandunderlyinghardware.Knowalittleaboutscheduling.Theworldisrapidlymovingtowardsmulticore,so
knowthefundamentalsof"modern"concurrencyconstructs.ForinformationonSystemDesign:
http://research.google.com/pubs/DistributedSystemsandParallelComputing.html

SAMPLETOPICS
Coding
Sampletopics:construct/traversedatastructures,implementsystemroutines,distilllargedatasetstosinglevalues,
transformonedatasettoanother.
AlgorithmDesign/Analysis
Sampletopics:bigOanalysis,sortingandhashing,handlingobscenelylargeamountsofdata.Alsoseetopicslistedunder
'Coding'.
SystemDesign
Sampletopics:featuressets,interfaces,classhierarchies,designingasystemundercertainconstraints,simplicityand
robustness,tradeoffs.
OpenEndedDiscussion
Sampletopics:biggestchallengesfaced,best/worstdesignsseen,performanceanalysisandoptimization,testing,ideasfor
improvingexistingproducts.

READINGLIST
(ExtrareferencesasanFYIonlythisisnotmandatory)
"ProgrammingInterviewsExposed:SecretstoLandingYourNextJob"by
JohnMonganandNoahSuojanen
"ProgrammingPearls"byJonBentley
"Cormen/Leiserson/Rivest/Stein:IntroductiontoAlgorithms"ortheCLR
textbook.

You might also like