11 ms·
I'll try to stay active on this thread if anyone has any more specific questions. (Context: I'm the author of Cracking the Coding Interview)
by gaylemcd 9y ago
I'll try to stay active on this thread if anyone has any more specific questions. (Context: I'm the author of Cracking the Coding Interview)
- throwawayosiu1 9y agoI've tried getting interviews at Google and the only time their recruters have contacted me back were from internal referrals (none of those worked out in the end as they wanted me to move to SF, and I wanted to work from Canada). How would one go about getting your foot in the door at such companies (I've had similar experiences with both Microsoft & Facebook as well) ?
- gaylemcd 9y agoReferrals are honestly a great strategy. Often employees will be open to referring you even if you don't know them well. Use social media, Facebook groups, Quora, etc. Recruiters want to be found. Have an active github. Make yourself Google-able. Have a website where you list projects. Screenshots help make things feel more "real", especially if it's a recruiter/sourcer who might not understand some of the technical details. Hackathons and conferences also. They're swarming with recruiters.
- fhrow4484 9y agoFor people not in college anymore, those are great advices. Having been on the recruited and recruiting side for one of the big 5, I'd add an extra advice: Don't panic if you don't have any of the things mentioned above, especially when still young in College. I didn't have an active github, nor a website, nor screenshots of my side projects. If you're genuinely passionate when you talk about it (no matter how small you think this is), the recruiter will notice this. One of the most important advice that was given in this article for me is: "Show initiative even at the risk of failure" -> You did X in a class project : It won't matter so much because you had to do it to pass your class. If it's a group project it will matter even less because there's no way for the recruiter to know if you did 90%/50%/5% of the job. -> You did a small Android app or a personal command line tool for you, but you didn't publish it at all on github, and it's a private thing (a tool to help your grandma do X remotely), it's fine, but like the Amazon interviewee who started her game company: Mention this on your resume and to the recruiter!! I've also seen people downplay achievements because they thought it looked lame compared to what is produced by Google/Amazon/FB/Microsoft ... but those products have dozens if not hundreds of engineers behind them, PM, UX teams etc. Of course your project will be lame compared to it. Still put it on your resume. If you're going at a top CS school, having all of these doesn't matter as much, the recruiters usually know that the projects/classes you took are not trivial (via Alumni giving feedback on those), if you go to an average one, you need to show your passion in one way or another, working on a small side project you genuinely enjoy is a great way of showing this. Finally, if you have very little time for side projects because you're busy working multiple side jobs to be able to pay your tuition and rent, mention it somehow when talking with a recruiter. You certainly don't want the recruiter to perceive you as what the authors describe "mentally lazy" when in fact the reason you're not doing that much in the side-project side is because you're working your ass off to simply be able to graduate. You can also use some of those side jobs experiences to show the recruiter you have some applied leadership/teamwork skills.
- parmen10 9y agoThis github/side project thing is at the far end of diminishing marginal returns. It of course wouldn't hurt but most people I've met at these companies (where I also worked for a while) do not have side projects or public code. So if your goal is to get the interview, go through referrals. Don't expect anything from side projects.
- gaylemcd 9y agoOh, you don't have to have side projects. But if you are struggling to get noticed, it can help.
- throwawayosiu1 9y agoanother quick question: in general, would it be considered ok to find recruters (and maybe employees from the same team that's hiring) on LinkedIn and contact them?
- lazyasciiart 9y agoFind a team that works in the location you want to work at. Get a referral for that team.
- holydude 9y agoThe biggest problem I have with these companies is that they feel like a cult. And the people working there are doing a lot to keep that cult spirit alive. All of these companies want you too feel and act like they are the single best entity in the entire universe and you should be honored that they even acknowledged you. This works great for young graduates that are full of dreams and hopes but it discourages experienced people from even attempting to go through the interview process. Oh and the always responsive HR or whoever is in charge. Getting back to you after 6 months. Thanks but no thanks. I would rather make more money in a stupid corporate job than working on more aggressive ways of making people to click on ads.
- ThePawnBreak 9y ago> I would rather make more money in a stupid corporate job than working on more aggressive ways of making people to click on ads. Could you name a few "stupid corporate jobs" that pay better than Google or Facebook (200k - 300k for a senior engineer) ?
- holydude 9y agoAre you sure the majority of senior engineers earns 200 - 300k ?
- keville 9y agoThat's probably a reasonable estimate (including stock compensation) for the companies mentioned.
- gniv 9y agoSee for example: https://www.glassdoor.com/Salary/Google-Senior-Software-Engineer-New-York-City-Salaries-EJI_IE9079.0,6_KO7,31_IL.32,45_IM615.htm https://www.glassdoor.com/Salary/Google-Senior-Software-Engi...
- TulliusCicero 9y agoI'd ballpark the average range for senior engineers at Google at being around 250-300k in the US. Staff engineers (one step above senior) will make significantly more than that, although not everyone reaches that level.
- acrefoot 9y agoI would love to know instead what companies and recruiters have learned from interviewing, hiring, and monitoring the performance of candidates at these companies. What productive trends have you seen in how these companies adjust their hiring process?
- gaylemcd 9y agoIt's very difficult to correlate interview performance and job performance. No one is willing to hire at random to really get the data. Companies only look at who got hired. I've seen some companies decide "well, whiteboard interviews are flawed" and just scrap the whole thing and replace it with something else... that's much more flawed. They're really not being honest with themselves about what the flaws exactly were in whiteboard interviews and if those are fixable, or what the flaws are in their new process. There's a lot that can be done to make whiteboard coding/algorithms interviews less flawed. - Be clear with candidates and interviewers about expectations. What knowledge is okay to assume? What knowledge is not? - Clear guidelines on what makes a good question. A lot of companies ask very simple or well-known questions but think they're emulating what Google does. They are not. - Good interview training. Most companies don't have interview training, beyond maybe basic legal stuff. Even the companies that do have training typically have crappy training. - Interviewers should candidates with certain things that might not be obvious. For example, writing examples of input and output on the whiteboard is helpful. Don't rush into coding. There is A LOT that can be done to make whiteboard interviews more effective. You can also replace them with some other things, but understand that those will come with their own flaws. Scrapping whiteboard interviews is not going to deliver you some perfect system.
- gm-conspiracy 9y agoI enjoyed your article. Does your book have more anecdotes of candidate "fails"? Would you be willing to share some more stories?
- meggar 9y agoCTCI is a great book. Is it acceptable to ask an interviewer for a different question? For example, if you're really bad at chess algorithms and you get the N-Queens question?
- gaylemcd 9y agoThis is actually a really interesting point. (Context: In chess, a queen can move along a row, column, or diagonal to attack. The N Queens problem is to place N queens on an NxN chessboard such that no two queens can attack each other.) No one does poorly here because they are "bad at chess algorithms." They might do poorly because they think they're bad at chess algorithms. But this is not a "chess algorithm." It's an algorithm, with a chess skin. But, sure, if you're bad at chess algorithms, I'll give you this problem: Given an N by N boolean matrix (all falses), set N cells to true such that no two rows, columns, or diagonals have two trues. Same question, but with a boolean skin. Now will you be able to tackle it? So, advice: Don't assume you're bad at __ type of algorithm question. For the most part, this isn't true. At most, there's a tiny bit of knowledge to tackle it (so you're not bad at it; you just don't know something). Nearly every time I hear someone say they're bad at some type of question, it's actually just an insecurity. They aren't even missing any knowledge. The only partial exception here is recursion/dynamic programming, which does have its own little approach. At a higher level: Can you ask for a new question if you're bad at that type? You could, but it's risky. If I ask you a question that really involves pointers and you don't understand them, then okay. But realize that this might be a deal breaker for me. I might need that knowledge, or I might be concerned about the tendency to give up. You're probably better off just voicing something like: "To be honest, I haven't worked much with pointers. I'm happy to give it a shot though, unless you want to move onto a different question."
- wayn3 9y agoDo you think it makes sense to ask interviewees to solve backtracking problems, given the fact that its mostly about already knowing the solution? Someone who's never come in contact with backtracking won't be able to solve n queens "in time", unless they pull a mathematics stunt, but those who do know backtracking won't struggle much. On a higher level - how much of an "already seen the algorithm" crapshot are tech interviews? And given the fact that a lot of the problems in your book are trivial in higher level languages (reversing a string is only hard if you somehow don't know how to do pointers) - what's your opinion on trying to use Java on a whiteboard in 2017? Has python officially become synonymous with pseudocode?
- namelezz 9y agoIf you do not get an offer even though you did well on technical questions(verified your answers online). Should you reapply? Why? Personally I think it's the sign of cultural fit issue so they unlikely will like you just because you reapply.
- gaylemcd 9y agoWhen people don't get an offer after a technical interview, it's typically about technical skills. Even if they think they did well because they verified their answers online. Often, although their answers were eventually correct, it took them too long to get there which the interviewer perceived as weak problem solving skills.
- FLUX-YOU 9y ago>Often, although their answers were eventually correct, it took them too long to get there which the interviewer perceived as weak problem solving skills. Does CtCI publish those times for its problems? How would I know I'm too slow to solve a kind of problem before interviewing?
- Shamiq 9y agotriplebyte mentions taking a particular problem from CtCI and solving it within 30min on a whiteboard (pen/paper, plaintext editor).
- gaylemcd 9y agoNo, I don't publish times. The times are misleading. Interviewers often give hints, which can dramatically change the amount of time. And there can be random factors that change the amount of time.
- deleted 9y ago[deleted]
- aero-002 9y agoyour videos on algorithms with hacker rank really helped me a lot. I just thought I'd take this chance to thank you for that.
- MarkMc 9y agoWould you say that candidates who have completed online courses (MOOCs) tend to perform better in interviews? Edit: The question is based on this article I read a few months ago: http://blog.interviewing.io/lessons-from-3000-technical-interviews/ http://blog.interviewing.io/lessons-from-3000-technical-inte... The bar chart in that page is very interesting. HN discussion here: https://news.ycombinator.com/item?id=13272840 https://news.ycombinator.com/item?id=13272840