3 ms·
Interesting and valid points. I have some things to add. Disclaimer first: I'm a technical interview coach. We run http://InterviewKickstart.com http://Intervi
by soham 10y ago
Interesting and valid points. I have some things to add.
Disclaimer first: I'm a technical interview coach. We run http://InterviewKickstart.com http://InterviewKickstart.com, which provides structured and intense group programs for early and mid-career software engineers, with the sole purpose of preparing for technical interviews.
In an ideal world, brushing up is all what it should take before going into interviews. Practicing Software Engineers shouldn't need to spend months working through books and courses. Interviewers should be thoughtful enough to interview for the thought process and experience, more than DS and Algos.
Trouble is:
* Many interviewers are not that thoughtful. Even for the most well-meaning ones, it takes a few interviews to truly be good at judging someone in those 30 to 60 minutes. If a candidate is caught into the cross-hairs of an interviewer's learning curve, that candidate is not going to get a fair evaluation. Preparation helps in that situation.
* With the plethora of prep material available for past several years, the bar for interviewing has just moved higher and higher at good companies. If you look at G and F (and some others), there is no way you can get away with just knowing the basics of trees and binary searches. It just takes time.
e.g. If they ask you to merge sorted arrays and you don't know that Heap sort is the best way to do it, you've lost the interview no matter how clear your thought process is. Not because the interviewer is not watchful. But because your competition has solved it with Heap Sort. So even if both of you demonstrated a clear thought process, the other person gets the job, because s/he is more prepared.
* It takes a certain level of life-confidence to just go to an interview with what you know and take the rest head-on. Many people don't have that kind of confidence. Many many engineers are introverts, and to borrow an analogy from sales, they are artists, not hunters. They are equally ambitious as hunters, but their confidence comes from systematic, extensive, honest preparation, and not from experience thinking on the feet. That prep easily takes months, especially when they are doing it part-time.
* Most CS colleges do not actually prepare their students for interviews. Some top ones do, but a large majority of them are not calibrated to churning out students capable of handling interviews at top tech companies. If you went to one of those colleges, and want to try for better companies, you have to prepare explicitly and separately. You have to re-learn CS with a level of specificity, intensity and extensiveness that your school never provided. Yes, you only have to do it once, but that one time, it may take many months.
- geoelectric 10y agoThis is a really awesome response, coming from an expert in the field. It makes me a little sad to read some of this, since it runs a little counter to what I thought was becoming a more general understanding about how to and how not to interview candidates. I give search/social companies a pass because the algorithms and graph theory are core skills there, but in general it's well-known that any kind of closed question isn't all that valuable in an interview, tech or otherwise. I don't see programming problems any differently. Looking for a "right" answer just means they know what you know and maybe think like you think. It's a very egocentric way to proceed, to be honest. I don't need a team of me! But it does open my eyes a bit to the fact that new grads may have a pretty different experience than others. I'll try to keep that in mind in the future. I don't want to interview this way, but if I know someone has expected to interview this way it'll help me understand them better.
- lj3 10y ago> It takes a certain level of life-confidence to just go to an interview with what you know and take the rest head-on. Apparently, I have that kind of confidence. In my experience, confidence is good for winging the personal questions and talking about my past projects, but at the end of the day technical interviews come down to being able to solve problems you'd never (or rarely) see on the job. If you walk in unprepared, you will fail. I usually fail the first 5-10 in my job search before I get a yes. Walking in unprepared is ridiculously suboptimal. Just to clarify, I don't mean just the google style interviews where they ask you graduate level DS and algo questions. Thankfully, a lot of smaller companies are transitioning to asking questions about the tools, languages and techniques specific to the field. But, that still requires weeks of study because the level of detail most interviewers go into far exceeds what you see working on CRUD apps. Not to mention the difficulty of memorizing every CSS3 property available.
- Retra 10y agoI've been pretty seriously studying CS for a while, and there's a trillion things I don't know. >If they ask you to merge sorted arrays and you don't know that Heap sort is the best way to do it, you've lost the interview no matter [...] ... no matter the fact that there are a hundred ways to sort an array, and you think you know the best one? Has it been proven the best, or is it just the best you know? How many ways do you actually know to sort an array? Has all research on array sorting ground to a halt because there's no better way to do it? If someone asked me the best way to sort an array I'd say "probably radix sort." If you expected "merge sort," then you're the fool. My point being, I study a lot, but that doesn't give you answers. I gives you a base from which further study can happen.