Here's the scoop, Hacker News. I've been learning to program for the last few months, and a friend who has essentially been mentoring me in a few disciplines and the general principles of programming suggested to a company that was looking for (Python) programmers that they consider me. It would be my first job in the field, and I want to get it. Bad. My question: what tips would you have for a first-time interview for a programmer?
Know how to do the job. In this case you're applying for Python Programmer, you should be able to easily write Python programs from scratch. If you can't write python programs, don't apply. Be extremely eager to write code at the interview since as a skilled python programmer it is easy for you and you want to show this. If it's not easy, don't apply.
Don't bring a laptop and try to refrain from saying anything not related to the questions because it can and may be used against you.
> try to refrain from saying anything not related to the questions because it can and may be used against you
it's a job interview, not a police interview ...
show interest in the company, understand completely what they do (the number of people I interview that haven't even downloaded my company's (free) app, which the successful candidate will be WORKING ON...), have some thoughtful and insightful questions prepared about their business (ideally ones which challenge their model and shown you've thought critically)
show you're a human being who they'd like to work with, not a robot who they pay to do a job and nothing more.
In this case the job is software developer. For almost any skill, being smart and sociable is enough. But not software 'construction' or programming or whatever you want to call it. This skill differentiates a very valuable employee from one that is still very valuable but can't create software. A very high number of people who aren't skilled at all try to get these jobs hoping its not really that big of a deal and they plan to fake their way through a job creating more work for the employees with these skills. Would you hire a physician just because they are friendly and show interest in cutting someone open?
Companies can do what they want. if they just want people in seats to follow some acquisition strategy, then good for them. But anyone who is honestly trying to make a career of software development should learn the language, tools, idioms, and techniques.
Btw, I've been studying programming for 20 years but would not apply for a Python job because my skills are not current. I would take a minimum of six months before I got to a level where I would consider applying.
I would disagree, and say that proficiency in any given career is necessary, rather than just "being smart and sociable." And a valuable employee is a valuable employee. If they have ability, whether latent or developed, they have ability. if they have exceptional promise, bringing them on early will likely pay dividends later, even if there is a greater up-front cost. The problem is it's an investment, much like the stock market. And like in the stock market, you have investors with good and bad insight. It's all a game, in all honesty, though, and it usually comes down to saying the right things (which is why so many people bullshit their way through interviews and have no skills, and why many people with actual skills don't make it through -- they don't have the bullshit skills).
edit:
> A very high number of people who aren't skilled at all try to get these jobs hoping its not really that big of a deal and they plan to fake their way through a job creating more work for the employees with these skills
This is absolutely true in every industry. EVERY industry.
You should give Programming Interviews Exposed: Secrets to Landing Your Next Job (http://www.amazon.com/Programming-Interviews-Exposed-Secrets...) a read. It gives you a good idea of what to expect and how you can prepare. I read it before I started interviewing a few months ago and I found it to be very helpful.
When answering technical questions or writing code on the whiteboard, think out loud as much as you can. Getting the right answer is often less important than showing that you're smart and know how to think through problems. Think about it from the interviewers perspective - they're trying to figure out whether you're smart and someone they'd like to work with. When you're silent, it's hard for them to gather information.
Also, draw pictures! Before you write code on the whiteboard, discuss your approach, and draw any appropriate data structures/ui/etc. Once you've got buy-in from the interviewer that the approach you outlined sounds reasonable, then begin to implement it. This will not only score you points from the interviewer for taking a methodical approach, but will also make it more likely that the code you do write is well thought out.
Be honest about your skills. Don't try to over-inflate your skillset, the interviewer will be able to tell.
Try to make mention of the fact that you are loving every moment of the learning process that you started a few months ago. Generally, people who consider hiring novice programmers are looking to help grow that person into a lean, mean coding machine, so if you appeal to that fact and tell them you're in it to learn, they'll love it and you should have a higher chance of getting the job.
Otherwise if the company is looking for someone with the know-how from the get-go, your only chance would be to nail the technical aspects of the interview, so study your ass off!
Make sure to have some paper with you to write down names or questions. Sometimes you will hear a technology that you can research after and reference in your thank you note. It shows interest into what the people are doing and that you can grasp new concepts.
I would disagree..On occasions where I have been asked to pair program with one of their developers, it is definitely more optimal to use your own machine (E.g. my mac has natural sense scrolling turned off, caps lock and ctrl swapped etc). Also, nowadays, I have been seeing interviewers who ask me if I want to write code on a laptop rather than at a whiteboard. This is a welcome trend (but seen only in startups though)
Don't bring a laptop and try to refrain from saying anything not related to the questions because it can and may be used against you.