Preparing for a software interview is very tricky. But, the fact that
you are reading this page gives you a bit of a head start on the
competition. And, you absolutely must prepare to give yourself the best
possible chance to succeed at an interview. A good way to approach it
is to think of a software engineering interview as an exam for which you
must study – but the only thing is that you usually have less of an
idea of what will be on the exam than you would in a college or high
school exam. But, if you do your research and put in the preparation
you should have some general idea of the kind of questions that will be
asked in a specific company, and you should also have some answers for
those questions. This leads us to our first piece of advice.
The reason I say that you shouldn’t even apply to a job until you have put in some serious preparation time is because of the fact that you will – assuming you have a decent resume – start getting a lot of responses very quickly from companies, and you will quickly be overwhelmed just talking to various recruiters, sending emails, and setting up appointments to chat with people in human resources or whoever is handling hiring. This means that you probably will not have much time to prepare, because all this communication with the companies is a very time consuming job in itself.
And, if you do have a few interviews and you completely fail because of your lack of preparation, then you are already losing out on what could have been some great opportunities. Wouldn’t that be foolish when if you just set some more time aside to prepare you could have easily got some job offers?
I have seen too many people make the mistake of preparing for a software interview just 2 days or 1 day before an actual interview. While that might be OK if you really, really know your stuff, I think for 95% of programmers out there that my golden rule holds true. The reason why you absolutely must put in so much time is that software interviews can potentially cover a huge variety of subjects – from data structures to SQL to operating system concepts. And those are just a few of the subjects that every programmer is expected to know and could be covered in any software developer interview.
For example, if you are a PHP developer looking for a senior PHP developer role then you absolutely must review some advanced PHP interview questions, and of course you must also review your PHP fundamentals. Because you can’t possibly perform in an advanced PHP developer position if you don’t have any experience with programming in PHP, and you must be able to demonstrate that ability in an interview. And the same holds true for any software position that demands someone with a more specialized skill set – because you will of course be working with some specific technologies on the job, whether it’s Java, PHP, C++, etc. So, if you are not already, be well aware of what kind of technologies you will be expected to know for the job that you are applying for, and be sure to prepare to face those technology-specific interview questions.
Very highly advanced and experienced programmers should naturally expect most of the questions to be in their target area of expertise, and they probably won’t even face the more basic programming fundamental type questions since those would be considered far too easy for people who have some really great experience.
The golden rule to preparing for a software engineering interview
Here’s my golden rule that I really think everyone should follow when looking for a new job in the software industry: Do not even start applying to jobs until you have already put in at least 40-50 hours of preparation time.The reason I say that you shouldn’t even apply to a job until you have put in some serious preparation time is because of the fact that you will – assuming you have a decent resume – start getting a lot of responses very quickly from companies, and you will quickly be overwhelmed just talking to various recruiters, sending emails, and setting up appointments to chat with people in human resources or whoever is handling hiring. This means that you probably will not have much time to prepare, because all this communication with the companies is a very time consuming job in itself.
And, if you do have a few interviews and you completely fail because of your lack of preparation, then you are already losing out on what could have been some great opportunities. Wouldn’t that be foolish when if you just set some more time aside to prepare you could have easily got some job offers?
What to do if you’ve already applied, but haven’t prepared
You may be reading this article after already having applied to a number of jobs, or even after having faced a few rejections from different companies. In this case, my advice would be to try to postpone any interviews you have set up in the future in order to give yourself more time to prepare – an extra week or two could be very valuable in terms of giving you more time to do the necessary prep work. Just because the software job market is hot does not guarantee that you will get a job – you absolutely must put in the time to prepare for every interview you have.Looking for a job while already employed in software
And, if you are looking for a new job while already working full time, you are almost certainly setting yourself up for failure if you don’t do your prep work before applying for jobs. This is because having a full time job means that you will have even less time to prepare than your competition – some of whom may not even be working full time, and therefore have more time to prepare. Many people don’t think of getting a job in terms of the competition out there, but that is the reality of the situation – you are trying to beat other people to land a job – and the most well-prepared person wins. You might be the most well qualified person, but if you can’t answer every technical question asked in the interview, you certainly will not look like the most qualified person!I have seen too many people make the mistake of preparing for a software interview just 2 days or 1 day before an actual interview. While that might be OK if you really, really know your stuff, I think for 95% of programmers out there that my golden rule holds true. The reason why you absolutely must put in so much time is that software interviews can potentially cover a huge variety of subjects – from data structures to SQL to operating system concepts. And those are just a few of the subjects that every programmer is expected to know and could be covered in any software developer interview.
How many hours should I spend preparing for a software interview?
You might be thinking that the 40-50 hours of preparation time we mentioned earlier for a programmer interview sounds excessive. But, believe me, it’s not. In fact, you may even need to put in a lot more time, depending on how efficient and intense you are when you study. Especially if you are currently working a very non-challenging job where you do the same thing every day – you will definitely not be ready for the type of questions that interviewers will ask you, because they will throw you out of your comfort zone. A common mistake that people make is to think that number of years of experience translates to ability to perform a job – but that is absolutely not true because some people can achieve in 2 months what it takes others to achieve in 2 years. So, don’t delude yourself into thinking that your 5 years of experience (or whatever it may be) has any merit – you can’t rest on your laurels when interviewing.Broad versus specific subjects covered in an interview
I want to make a distinction between the “broad” subjects that could be covered in any interview and the more specific interview questions that would only be asked for more specific programming positions that you may be interviewing for – like Java Developer, LAMP (Linux Apache MySQL Php) developer, or a C++ developer. When I say “broad” subjects, I mean the things that every programmer is expected to know – read on for a list of these broad subjects.A list of subjects every programmer should cover before an interview
Before jumping into an interview, every programmer should cover certain subjects that are considered programming fundamentals – because they are the foundation of software engineering, and are the types of knowledge that all software engineers are expected to know well. Of course, you may never use some of these things in your working life, but interviewers love to ask these types of questions. These subjects include: data structures, SQL/Databases, operating systems, and concepts like recursion, Big O Notation, inheritance, and polymorphism.Preparing for more specific and advanced software interview questions
In any software job you apply to you will definitely be working with some very specific technologies and programming languages – like Python, Ruby On Rails, MySQL, etc – that you may be expected to have some experience with before you can get that job.For example, if you are a PHP developer looking for a senior PHP developer role then you absolutely must review some advanced PHP interview questions, and of course you must also review your PHP fundamentals. Because you can’t possibly perform in an advanced PHP developer position if you don’t have any experience with programming in PHP, and you must be able to demonstrate that ability in an interview. And the same holds true for any software position that demands someone with a more specialized skill set – because you will of course be working with some specific technologies on the job, whether it’s Java, PHP, C++, etc. So, if you are not already, be well aware of what kind of technologies you will be expected to know for the job that you are applying for, and be sure to prepare to face those technology-specific interview questions.
How to allocate your time when preparing for a software interview
When budgeting your study time before an interview, you should first try to cover all of the general subjects that we mentioned earlier, simply because those types of questions are the ones that you could encounter in any interview. Then, you absolutely must study up on specific interview questions, especially if you have been working in a very specific field of programming (like a senior Oracle developer) and you are only interviewing for those types of positions.Very highly advanced and experienced programmers should naturally expect most of the questions to be in their target area of expertise, and they probably won’t even face the more basic programming fundamental type questions since those would be considered far too easy for people who have some really great experience.
No comments:
Post a Comment