Ask HN: How do you prepare for a Technical Interview
8 points| 64bitbrain | 11 years ago | reply
I am full time software developer and my day to day activities involve bug fixes and sometimes working on a prototype or POCs. I recently got an chance to interview and after a little research I found that, they are more focused on Data Structures and Algorithms coding questions. The problem here is, that I know what a complexity of a quick sort or how I do use HashMaps, but I don't work on these data structures or algos everyday, or even write a tree traversal routines. I remembered all these when I was a fresh graduate. How do you deal with this? Should I ask more time before I go for an interview?? What should be a better approach.
Sorry for my bad English. Thanks in advance.
[+] [-] leap_ahead|11 years ago|reply
These days I simply reply that I do not do technical interviews any more as I do not believe these can efficiently probe one's professional abilities and I cannot justify expending time in memorizing bulkloads of trivial information for the sake of going through some rite of passage, which some interviews often turn into.
Agreeing to a technical interview also puts you at a disadvantage. They will probe your weak spots and then use this knowledge to publicly disgrace you, declare you less competent than what you'd like them to believe and then to low-ball you with an offer below what you might otherwise get. Many developers fall for that trick, the best you can do is to make sure you don't join their group.
Just say to them you will not do a technical interview (or a test project on your own unpaid time) but that you are prepared to meet and have a constructive discussion around their needs and your willingness to possibly help them out with whatever they have in mind. If they don't like it, skip them for the next company in your list.
[+] [-] poof131|11 years ago|reply
I'm thinking about making a move and am slowly prepping algorithms and data structures again myself. Going to focus on studying nuances of the language I'm working with - JavaScript (+HTML, CSS) and the frameworks I'm currently using - Angular & Node.
But having seen the other side now, I recognize that you will most likely run into peoples' pet questions that you can't always prepare for. One coworker gets upset when people can't answer his Angular question, another gets upset if the Java isn't idiomatic enough. If they like you enough they'll overlook it.
So study what you can, be confident but not arrogant, and recognize luck will play a factor. I'd rather be writing code to build things than for practice, but it is part of the game. And in reality the quizzes should really be a screen and the decision should be based upon the things you've built. So hopefully you have things to show, can talk about what you've done, and the team your looking to join recognizes actual accomplishments are more important than solving puzzles on the spot.
[+] [-] harpb|11 years ago|reply
[+] [-] MalcolmDiggs|11 years ago|reply
It takes the pressure off and keeps you on top of your game.
[+] [-] soham|11 years ago|reply
Books
=====
========Websites
========
Websites are roughly divided into two groups:
a. Where you can write code and compare yours with others' solutions
Popular ones, in no particular order, are:
http://leetcode.com
http://HackerRank.com
http://uva.onlinejudge.org/(UVA Online Judge)
http://SPOJ.pl
https://projecteuler.net/ (Project Euler)
Note that not all of them have questions that are interview oriented. But it's great practice regardless.
b. Ones that give you a problem and then a solution, with no or little competitiveness
Popular ones, are:
http://InterviewCake.com
http://GeeksForGeeks.org
http://Glassdoor.com
http://Careercup.com
=============================
Classroom courses / Bootcamps
=============================
http://InterviewKickstart.com (I run this one)
Having said that, realize that you are not alone. Most programmers these days don't use fancy data-structures and algorithms at work.
But unfortunately, interviews still ask for it. That is a whole debate on its own.
[+] [-] 64bitbrain|11 years ago|reply
[+] [-] rifung|11 years ago|reply
Now though I usually don't even bother and just go to them; I think that after you studied for them the first time you kind of already know what to expect, and the interviews themselves kind of prepare you, so usually I try to schedule interviews I don't care about as much before the ones I really want to do well on. The scheduling also helps because for the first one I might be nervous but if you keep doing it I think your body just gets used to it and I honestly kind of stop caring whether I'll get in or not. it might sound counterintuitive but I actually find that the less I care the more likely I am to do well.
[+] [-] MichaelCrawford|11 years ago|reply
Implement each algorithm in the book in your preferred language. The algorithms themselves are presented in Pascal, which IMHO makes them easier to understand.
Now implement them all in some other language - not your preferred one.