4 ms·
Ask HN: How do you prepare for a technical interview.
Theres so much ground to cover prior to an interview, design patterns, algorithms, data structures, language specifics, techniques & technologies, database, etc.. what do you guys do to prepare? for approximately how long? good resources in general ? language specific resources ?
- russell 17y agoGoogle "programming interview questions" or the like. There is lots of useful information. Design pattern questions are common. If you know MVC, Factory, and a couple of others, you are probably OK. Algorithm questions are surprisingly rare, but you should know big O notation and be able to state it for a couple kinds of sorts or searches. Language specifics: yes. Know OO, abstract classes, concrete classes, interfaces and instances. Otherwise know what you claim. If all you know about databases is what you learned in a CS class, you dont know databases.
- jkuria 17y agoThe 2 best resources for this are: 1. Programming Interviews Exposed 2. Career Cup interview Guide by Gayle Laakman (www.careercup.com) I had to prepare for interviews and didn't have much time. I spent a few days going through each one of them--marathon studying did really well as a result. I remember beingasked questions several times and I almost felt like telling the interviewer, do you want to blindfold me and tie my hands behind my back to make this a little more challenging? :)
- minalecs 17y agowhich is the better purchase if you had to chose, career cup or programming interviews exposed
- stonemetal 17y agoIt rather depends on all the information you know about before the interview(what do they use, what kind of questions did they ask in the phone screen, what do you know about the company). If it is for a specific language position I typically read the books I have for the lang. Practice problem solving techniques (something along the lines of prag. prog.'s code katas.)
- bayareaguy 17y agoI make a list of the kinds of things I expect to be asked based on the company, position and role and then review those things. If I think I'll be writing C then I spend a little time re-reading "The Dictionary of Standard C" by Rex Jaeschke and "Hacker's Delight" by Henry Warren so I'll be able to immediately explain what SIG_ATOMIC_MAX means or what (x & (x-1)) accomplishes. If there's a likelihood that I'll be doing any network programming then I'll spend a little quality time reviewing the BSD sources and perhaps re-read my Richard Stevens books so that I'll be able to clearly explain stuff like Nagel's Algorithm (and when it's not a good idea). If I think I'll be looking at a database then I'll review Gray and Reuter's "Transaction Processing" so that I'll keep my SERIALIZABLE, READ COMMITTED, REPEATABLE READ and CURSOR STABILITY straight. If I think they'll want me to do something on the back of an envelope then I'll re-read Jon Bentley's "Programming Pearls" and there's any chance I'll need to actually think about an algorithm (!) then I'll review Skiena's "Algorithm Design Manual". I like to also do a few of Raymond Smullyan's puzzles, just in case I end up in an interview with one guy who always tells the truth and one guy who always lies...