4 ms·
I recently had my first interview for a programming internship that I was applying to. It was over the phone, and I more or less "froze up." I haven't had a lo
by solipsist 15y ago
I recently had my first interview for a programming internship that I was applying to. It was over the phone, and I more or less "froze up."
I haven't had a lot of formal CS education - most of what I know has been self-taught. However, I'm looking for a way to prepare for interviews in the future. I have tried coding on the whiteboard, reviewing sorting algorithms, reading interview blogs, going over data structures, etc.
However, the interview was nothing like I had expected. It was not about prior knowledge (which was lucky for me) - and rather about thinking on the spot. What stopped me from doing my best during the interview was a combination of the anxiety and time pressure that I felt looming over me.
It would be great to get some advice on these types of phone interviews and how to stay calm during them. Knowing ways to reason through or tackle programming problems that are new to you (and can seem intimidating) would also be helpful.
If anyone's feeling especially helpful, it would even help to have some practice coding sessions over the web.
Thanks!
- dondi 15y agoYou can work on your problem solving/programming skills online on a number of sites: * http://projecteuler.net/ http://projecteuler.net/ * http://www.topcoder.com/ http://www.topcoder.com/ * http://www.spoj.pl/ http://www.spoj.pl/ * http://online-judge.uva.es/problemset/ http://online-judge.uva.es/problemset/ As for keeping calm during the interviews, it would help to try to keep the frame of mind that you are just having a normal conversation with another person. Take a breath before giving an answer. This should also give you a few moments to compose an answer in your head. If you feel you need more time to think you can use a phrase that will buy you a few seconds like "That's an interesting question..." or "Let me think about this a bit", etc. Finally, get some practice. Have conversations with people as frequently as possible. These don't have to be technical conversations, any situation where you get to practice framing your thoughts into clear, concise sentences will help. If possible also go on more interviews. Practice makes perfect. Don't get down on yourself if you do not get the job(s). It is usually not due to a deficiency on your part. Maybe the interviewer had a bad day. Maybe you sound/look like a person that the interviewer hates....
- mikegreenberg 15y agoLet's put the "interview" part of this aside. I think the biggest problem here is anxiety. There's a lot riding on the outcome of this conversation and that makes you choke. I suffer similarly and, agreeing with the other reply, practice is what it takes! There's a particular frame of mind that you can develop which turns these "interviews" into just another conversation. For me, the easiest way I was able to achieve this was by doing a lot of interviews. Go to college job boards and blanket apply to everything. Learn what they are looking for in their hire and try your hardest to come across as that person. You don't have to lie. But applying for a job which you're not qualified (even remotely) will do a few things for you: a) Most importantly, you don't care if you fumble. Enough rounds of not caring will become habit-forming after some time. The goal of these interviews is not to get the job. (A job offer will always help your ego, but you'll also learn how to say "no" and politely decline opportunities which aren't inline with your goals....another really helpful skill.) The primary goal is to help you stop caring about the outcome and focusing more about the conversation and providing value to the interviewer. They could be asking you about programming languages which you're not familiar with, but what's to stop you from sharing your interest in learning new languages and offering relevant anecdotes that communicate the value that you suspect the interviewer is looking for. (The skill here is reading people and understanding conversation flow.) b) You'll improve your awareness of what companies are actually looking for in a developer. You'll learn where to best focus your time... what technologies, what tools are they using, what algorithms they are interested in, etc... Job descriptions aren't always reflective of what they are really looking for and talking with companies directly will help flesh these details out for you and give you a better professional roadmap than any university could give you. c) You'll also learn that being a good developer isn't just about knowing algorithms and tools. Really good software engineers know how to put systems together in non-obvious ways. Being able to design solutions around impossible problems is a skill EVERYONE needs. Interviewers will constantly try to challenge you to understand your methodology and approach to solving these problems. "How many gas stations are optimal in a city?" "What is the optimal placement of a parked elevator in a 10-story building?" "What if there are two elevators? How does your algorithm change?" These questions can be tough, but practice will be the equalizer you need to really do well. Some people might feel like this creates a lot of overhead for interviewers and is bad form. I completely disagree. But that's another conversation altogether. Hope this gives you some food for thought. Follow questions are welcome.