8 ms·
Ask HN: How to keep yourself prepared for potential interviews?
I'm a software engineer with more than 5 years experience. There have been more than 1 time I am contacted by big companies for interview opportunities. And every time I find myself in a position where I'm totally unprepared for it.
I know the drill, and I know my skills. I'm not terrific with algorithm problems. I need preparation and frequent practice to stay sharp. In the past, I have tried spending 1-2 hours each day to practice. But as I gain more experience, I find myself spending more and more time working on side projects, exploring things that interest me, solving problems at a different scale. I can't really keep myself motivated to practice random algorithm problems anymore.
I do want to be prepared when the chance comes, but I can't balance my time. What would you do if you were me?
- deleted 11y ago[deleted]
- sumitgt 11y agoI have reached a point where I am comfortable enough with implementing things that I do not need to practice as long as I understand how it works. So I get to spend all my free time on side projects just like you. I have a set of downloaded algorithm lectures by Robert Sedgwick from Coursera (text version: http://algs4.cs.princeton.edu/home/ http://algs4.cs.princeton.edu/home/) that I watch before every interview. I make it a point to do this even if I think I remember it well. In fact, I now know parts of the course so well, that I can watch it as 2x speed in VLC, and that refreshes everything in my mind. To be fair, I'm still in college, and all my interviews were for internship positions and algorithms focussed, so it might definitely differ from your situation. However, what I learnt from this set of videos has never failed me with any of the big companies. PS: I use scripts like these (https://github.com/coursera-dl/coursera https://github.com/coursera-dl/coursera) to download useful courses from Coursera that I can then watch before interviews.
- darkxanthos 11y agoAlways be interviewing. This has a few advantages: * You get practice and insight into interview questions * you always have an idea of your worth * interviewing stops being something you only do when you NEED a new job. Now it's just a day to day thing and it's less nerve wracking. You don't really want a new job so the pressure is off. * you may find a much better job and decide to take it. I'm sure there's more positives as well. The downside is it takes time away from other things including work. As you do it regularly though you'll find it takes less and les time since your resume is always up to date and you get better at weeding out companies you wouldn't want to work for.
- swombat 11y agoI wonder how you would feel if the reciprocal attitude was adopted by your employer - i.e. if they continually interviewed potential replacements for your position, to: * get practice at interviewing people for your role * have an idea of what your market worth is, so they can use this in salary negotiations * stop interviews being a difficult process they only do when you leave * keep the option of finding a better candidate and replacing you on such occasions. I'm going to take a wild guess and assume you would not tolerate that from your employer. It would show a lack of respect, trust, engagement, etc, basically it would convey to you that your employer doesn't even care about maintaining an appearance of giving a damn about you as a person. You've only just started there last week, and they're already thinking about firing you and replacing you with someone better. Personally, whilst I think the attitude of getting upset because someone leaves the company is immature, I also think your attitude is disrespectful and shows such a contempt for the place where you're working, such an extreme lack of even the remotest sense of loyalty, that I wouldn't want to employ someone with your attitude ever. This is without even delving into the fact that you're imposing a tax on the system, taking time away from your current employer (presumably with this attitude you're quite happy to pull sickies to cover your frequent job interviews), as well as other potential employers (interviewing people costs time and money; interviewing people who have no interest in changing jobs is a total waste of money for the company). If everyone suddenly behaved like you, regularly applying to even just a dozen jobs a year even though they have no intention of changing jobs, the recruitment process would incur such gargantuan costs that the economy would suffer, if not crash. Basically, your suggestion above seems to convey that you only really care about yourself. At least that's what it makes me feel from the really self-centred way you've described it. I'm sorry that this reads like a personal accusation, but you made statements about your personal system of behaviour and I find that system deeply objectionable. If I got the wrong end of the stick (perfectly possible), please do correct me...
- 6d0debc071 11y ago> What would you do if you were me? Ignore recruiters unless I was actively looking and start practising whatever the relevant set of questions; silly flash card memory tricks, etc; were if that became true.
- falcolas 11y agoTo be frank, I have never gotten a job I've really enjoyed which required me to know my algorithms in an interview. Such questions are a negative indicator which indicate to me that the interviewer is more interested in showing off than getting things done. The only practice I keep up with is talking to people. Being able to maintain a conversation with a non-technical person for more than a minute will has furthered my career more than any amount of algorithmic knowledge.
- joezydeco 11y agoThis is great advice. One good way to start is to take a project that you've been heavily involved with and create a small presentation out of it. Draw up the architecture in Google Docs, keep any confidential stuff out of it, add some screen captures. Print it out and keep it in a small binder. Practice explaining the project in under 5 minutes. Try it out on some friends that might not understand the tech completely. Rehearse questions and answers that people might ask. Being comfortable speaking like this with management and future coworkers has worked well for me, more so than FizzBuzz on a whiteboard.
- jtheory 11y agoThis is excellent advice specifically because it's not about "prepping for interviews"; honing these skills simply makes you more valuable to any company, and it's an aspect of your capabilities that you can show off in a decent interview process... so take advantage of that.
- joezydeco 11y agoJust to add to my comment above, I recently did a round of hiring for a new embedded engineer. I had a handful make it to the in-person interviews. When asked about previous projects, almost every single one waved their hands and tried to explain how they glued widget A to framework B and <magic> got product C. Exactly one candidate brought materials to show things he had worked on and how the skills he used in those projects applied to the work we were doing. You could see eyes light up when he was asked "so, tell us about <project z>" and he smoothly pulled out some pages to show. He blew everyone else away and got the offer.
- fsloth 11y agoI do the same as you. For me it's far more important to maintain energy level and motivation in self improvement projects than to do some specific trick question kata for a hypothetical interview. Some people like those, I can't stand them. I get a huge kick from algorithms when they solve a specific problem at my current problem elegantly. I suppose for me my algorithm learning plan is to constantly ask myself "what is the simplest form of data that I need and which algorithms then process it most elegantly for my current problem". The only thing I know for sure is a) people learn differently b) each must find a learning strategy that fits his or her strengths the best.
- g8gggu89 11y agoIt seems like you've already identified that the problem is you needing to know 'algorithm problems', so I would work on that. You shouldn't need to memorize hundreds of random problems. I think a few simple (not requiring much time to learn or to maintain) things would go a long way if you really are willing to make yourself put in some effort. Learn how to do basic big oh analysis. Learn how to apply recursion to simple enough problems, like the boggle question. Learn how merge sort and quick sort work and be able to implement them (they're not even that many lines of code). If you're already working on side projects and solving problems at different scale, that should help you naturally stay up on these things. Being able to talk about different libraries you learn and how you worked at different scales should also be valuable during an interview.
- pathikrit 11y agoDo something like TopCoder SRMs or CodeForces rounds. They are not only fun but they take up only about 2-4 hours of effort per week. You can judge yourself how well you are doing compared to college kids and competitive programmers. After the contest, read the editorial about the problems that you could not solve during the contest. After about 3-6 months of this, I can confidently say, I can pass the pure algo/data-structure rounds of any company..
- fsk 11y agoI reversed my attitude for interviews. If the employer has an interview process that doesn't respect my time, my experience, and my ability, then I don't want to work there. My attitude isn't "As a candidate, I failed that interview." My attitude is "That employer failed to have a process that enabled them to hire someone as awesome as me." I know that I'm a 10x-100x programmer at the places I've been, and if your interview process can't identify that, then that's your problem and not my problem.
- pknerd 11y agoLiked that attitude.
- perdunov 11y agoMy takeaway from being both an interviewee and an interviewer is that the most correct attitude after a failed job interview is "We don't match each other". The interviewer is testing their own ability to properly conduct a job interview as much as they're testing the candidate. I realized it when I was interviewing candidates myself. Also, people and companies are drastically, surprisingly and ridiculously different. You may fail badly at one interview, and it means nothing, you can just move on to the next company and prosper.
- a3n 11y agoYes, everyone should keep in mind that you are interviewing the company as much as they are interviewing you. Everything is a signal.
- hopeless 11y agoStop drilling pointless "interview questions" and instead prefer employers that value your ability to do the actual work. If you can build and ship side-projects your preferred employer will hire because of that, not some tricky interview question. You can safely reject employers that want to, if you get the analogy, hire scrabble players instead of writers
- hopeless 11y agoalso, what a sad indictment of the tech sector when someone thinks they need to spend time practising interview questions instead of actually, ya know, programming. Crazy stuff
- burger_moon 11y agoI'm currently making the round of interviews and I'm spending hours every day practicing and reading up on technical terms for interviews. Even this weekend has been completely dedicated to this. It's not fun but I don't have a choice because every job wants me to solve an arbitrary code test and drill me on technical definitions even though I have a github account filled with code I've written and a nicely made portfolio with live examples.
- whatthehack 11y agoWhen camels are on sale in the markets, buyers look at the animal's teeth to find out if its a good healthy camel. They don't like to go and do scientific health checkups. Same with tech candidates. Its better to brush up on algos :)
- RogerL 11y agoPhone interviews, take home projects, all day grillings, we can't decide, come back for more grillings, is not 'looking at the teeth'. Looking at my resume and asking me to explain something on it is inspecting my teeh.
- iamthepieman 11y agoI just do interviews constantly. Not frequently but I keep my resume updated and keep alert for relevant positions and some position that aren't an exact fit as well. I will respond to recruiters and do interviews until I am pretty sure that its not a good match. If I happen to find an awesome company to work for in this way then that's just an added bonus. Basically I'm always on the lookout for my next job.
- eranation 11y agoInterview cake newsletter is a nice weekly refresher to keep you sharp
- guest 11y agoThe real question is not how you as a well educated computer science professional stay ready for interviews. The question is whether or not the US economy is going to be able to handle integrating and making use of modern technology in an efficient way, or if the US software industry will be collapsed by incompetence in the same way the US auto industry was.
- guest 11y agoThe real question is not how you as a well educated computer science professional stay ready for interviews. The question is whether or not the US economy is going to be able to handle integrating and making use of modern technology in an efficient way, or if the US software industry will be collapsed by incompetence in the same way the US auto industry was.
- Nimi 11y agoFound myself in similar situations in the past. My tentative solution was to maintain a corpus of resources for practice (beyond the usual suspects of implementing the standard data structures etc.), and hope that when the chance comes, 1-2 hours each day for a week before an interview would suffice. And when I do practice, I don't use a code editor, either paper or plain editor with no way to execute the code, simulating the (horrible) conditions of interviews as best as I can. Obviously, this doesn't get you the benefit of being constantly drilled, but should provide some advantage. If you do care enough to get yourself a bigger advantage, maybe try to clear a few weeks before a round of job searching (if that's how you operate), then use those weeks for a few hours of practice each day.
- dominic_cocch 11y agoInterview Cake is great: https://www.interviewcake.com/ https://www.interviewcake.com/
- freedevbootcamp 11y agoAlways be looking for a job. Always be interviewing. Because recruiters are whores your boss will find out. Just tell them that you are looking for a part time job. Schedule all your interviews during lunch or after work.
- deleted 11y ago[deleted]