Software developer/engineer typical interview

Associate
Joined
4 Nov 2007
Posts
275
Location
Liverpool
Hi all,

I have recently got in to software development as a sort of hobbie. Initially I thought for a career change but now I am thinking that is a little ambitious as I am a little late to the game (27).

But this got me thinking. What is involved in a typical job interview for a software developer ? Is it a problem based interview ? I appreciate it might be varied but I literally have no idea of the industry or what is involved so be gentle with me :)
 

GeX

GeX

Soldato
Joined
17 Dec 2002
Posts
6,895
Location
Manchester
For my current job I had the usual interview stuff, and then was given some printed c# code, told to figure out what it does and then to tell them once I'd finished. I then had to explain what it did to someone who wasn't a developer.
 
Associate
Joined
14 May 2006
Posts
1,287
I got presented with 'pseudocode' and asked to say what the code did, identify bugs and say how I would write a 100% code coverage test plan! Also was given a quiz on defining key terms, explaining stuff like normalising to the third form (with example data) and what polymorphism was etc.
 
Associate
Joined
12 Nov 2012
Posts
1,075
Location
Gloucestershire, UK
varies, I have had interviews that have just consisted of a chat and questions about uni/hobbies etc ... then some that have been pure interview technical questions and asked to draw diagrams/write code to solve a problem.
my very first interview I had an informal chat, then went through to an office was sat infront of a mac and asked to write a basic form application with code igniter (php).

They can vary, I would just say know your basics and if you have lied they will probably find it. I did not lie on my CV but I know people who did and did not get far at all.

27 is not too late if you are serious, also degree's can be largely irrelevant in software developent, my work place has degrees from Comp Sci and physics to English Lit (yes he his a software engineer).

Be warned, it can be rewarding and stressful.

Good luck in your endeavor though.
 
Associate
Joined
16 Oct 2007
Posts
302
Location
Wales
27 is definitely not too late, I have been developing on and off since I was 26 and finally got a serious gig 30 months ago which has progressed to a much better job with great prospects, and I'm 36 now.
 
Associate
OP
Joined
4 Nov 2007
Posts
275
Location
Liverpool
27 is definitely not too late, I have been developing on and off since I was 26 and finally got a serious gig 30 months ago which has progressed to a much better job with great prospects, and I'm 36 now.

Great! This fills me with some hope! It is something I have always wanted to get in to but my job at the time was very demanding and I had trouble finding the time to lean, hence why it has been left for so long.

The biggest problem I have at the moment is I have never been in a situation where the thing I am learning is 100% self directed. I find resources such as wibit.net awesome because it provides me with a path to follow to learn I only wish I could find more resources like this!

If you don't mind me asking did you go to uni and study this sort of thing or was it just a sort of hobbie/interest like me?
 
Associate
Joined
16 Oct 2007
Posts
302
Location
Wales
I did uni but didn't finish due to a number of reasons; I did however do two years of java and definitely learnt a lot about oo from it - applying that to php is not too difficult although different.

Depending on your aptitude I would say uni is optional, it tends to be very theoretical and doesn't really teach you much about making software in the real world under real constraints, as this is something I think you can only learn with experience.
 
Caporegime
Joined
18 Oct 2002
Posts
32,623
Where I work candidates a given a programming problem, either a 24hr problem or 72hr- based on search and optimization. The code is reviewed to understand the data structures and algorithms used. Only about a 1/3 of candidates will pass this suitably and get flown out for an interview.

On the interview day there is a large mix so standard interview questions plus sme more intensive technical questions. The easier stuff involves looking at some C++ code and asking them to find any issues such as memory leaks. We then ask some questions where they will need to produce pseudo code, we will then ask them about the runtime complexity of their code and if they believe a more optimal solution exists etc. Questions are related to things like permutations, sorting, search trees.

Most people with a software engineering degree fail, most mathematicians and physicists pass, CS people usually do OK but it is shocking how many just lack any fundamentals on algorithms.
 
Associate
OP
Joined
4 Nov 2007
Posts
275
Location
Liverpool
I suspect it is like most things and experience counts for a great deal. The challenge is getting your foot in the door so that you are able to gain this much needed experience. As soon as your are in that environment I would think it is easier to pick things up.

Is that interview process standard regardless of experience?
 
Caporegime
Joined
18 Oct 2002
Posts
32,623
Are you asking me? That is the interview process regardless of experience, as I said we interview a lot of candidates with a Math background. These people that don't know how to program even a single line of code in any language get the same questions (obviously skipping things like reviewing C++ code for me leaks) - if they are good at solving logical problems and understand concepts of complexity, scalability and the math behind things like optimization then they are in good standing to become great engineers.
Remember, the concept of programming actually comes form mathematical techniques. Algorithms like Dynamic Programming, linear Programming, MILP, etc. existed before computers were invented, the programming refers to the technique, nothing to od with software.

Our company does not easily consider experience directly. Most candidates are recent graduates. Learning to program in a particular language and learning the necessary tools is easy. Being smart and good at solving problems, determined, hard working cannot be learned. We hire based on ability and potential, not the fact you sat in an office being bored for 10 years in a soulless software engineering job. The more experience you have the harder the interview process will be because the higher the expectations, and the higher the paycheck so the benefit has to be there.


Experience is really over appreciated. Someone with 1 year experience may be for more knowledgeable and have greater potential than someone who did the same stuff for 10 years who does not have the ability to learn new techniques.

Companies are interested in smart, adaptable, dynamic, hardworking, motivated people. people that can quickly solve problems, hit the road running, can learn new tools, techniques, software and languages on the go in order to best solve a problem. Experience doesn't add anything much to that.

Also a lot of the best programmers wont be so experienced because one they reach a certain experience level they tend to do things like create their own startup, move into more senior management or CTO type postilion. This is actually well known across industries, someone who has been doing the same job for 10 years may simply not be capable enough of progressing. The very talented smart ones will have moved on up the corporate ladder to new challenges. That is a generalization, some people love the job they are doing and aren't motivated to progress careers.
 
Last edited:

Pho

Pho

Soldato
Joined
18 Oct 2002
Posts
9,325
Location
Derbyshire
I'm glad the past two (PAYE) jobs I've had have been through recommendation rather than having to go down a formal interview process. Whilst I (consider myself) good at problem solving and logical thinking algorithms have always been my weak point.

(and yes, I do have a CS degree, shame on me :p)
 
Associate
OP
Joined
4 Nov 2007
Posts
275
Location
Liverpool
Are you asking me? That is the interview process regardless of experience, as I said we interview a lot of candidates with a Math background. These people that don't know how to program even a single line of code in any language get the same questions (obviously skipping things like reviewing C++ code for me leaks) - if they are good at solving logical problems and understand concepts of complexity, scalability and the math behind things like optimization then they are in good standing to become great engineers.
Remember, the concept of programming actually comes form mathematical techniques. Algorithms like Dynamic Programming, linear Programming, MILP, etc. existed before computers were invented, the programming refers to the technique, nothing to od with software.

Our company does not easily consider experience directly. Most candidates are recent graduates. Learning to program in a particular language and learning the necessary tools is easy. Being smart and good at solving problems, determined, hard working cannot be learned. We hire based on ability and potential, not the fact you sat in an office being bored for 10 years in a soulless software engineering job. The more experience you have the harder the interview process will be because the higher the expectations, and the higher the paycheck so the benefit has to be there.


Experience is really over appreciated. Someone with 1 year experience may be for more knowledgeable and have greater potential than someone who did the same stuff for 10 years who does not have the ability to learn new techniques.

Companies are interested in smart, adaptable, dynamic, hardworking, motivated people. people that can quickly solve problems, hit the road running, can learn new tools, techniques, software and languages on the go in order to best solve a problem. Experience doesn't add anything much to that.

Also a lot of the best programmers wont be so experienced because one they reach a certain experience level they tend to do things like create their own startup, move into more senior management or CTO type postilion. This is actually well known across industries, someone who has been doing the same job for 10 years may simply not be capable enough of progressing. The very talented smart ones will have moved on up the corporate ladder to new challenges. That is a generalization, some people love the job they are doing and aren't motivated to progress careers.

Thanks for the information D.P! I think I am trying to run before I can walk to be honest. I need to do a lot more learning before I need to start worrying about these things.

Although I don't have a maths background as such (my background is biochemistry) problem solving is one of the reasons I started playing around in the first place. Maybe I am not cut out for it, who knows, but while I enjoy it I will carry on playing :)

Thanks again
 
Caporegime
Joined
18 Oct 2002
Posts
32,623
If you enjoy solving problems then you have great potential. A lot of the math isn't really that hard but it is useful to know why some methods work and why some wont, why some techniques will scale appropriately. One of the interview questions we ask is similar to the Skyline problem:
http://sandrasi-sw.blogspot.com/2012/12/the-skyline-problem.html
They have about 15 minutes to put up some pseudo-code. Mathematicians tend to do very well, bog standard programmers fail miserably. we will ask some simple math related to the problem in order to see if they properly understand their algorithm and the problem space. One of the most enlightening questions is to simply ask if it is possible to create a solution in O(log n), which is clearly impossible (e.g. given an unsorted array of numbers, find the smallest number - at a minimum you are going to have to touch eery element, hence Log n fails). It is alarming how many people state such an algorithm would be possible even although it is trivial to imagine counter examples. The smart people look at you as if you are stupid when you ask such trivial questions.


My advice is to never treat anything in software as a black box - make sure you understand what is going on under the hood. E..g if you are using a map and someone suggests to use a hashmap - make sure you fully understand the difference in implementations (which can vary across languages).
 
Caporegime
Joined
18 Oct 2002
Posts
29,491
Location
Back in East London
D.P.s interview process is extremely specialised. Don't be put off by it. Plenty of places won't be that intense nor specific to logic and more concerned with your ability to communicate and demonstrate understanding. Sure they will all be looking at your ability to write and maintain code, but not to the degree of optimising every last flop. You will work with people more than you will machines.
 
Caporegime
Joined
18 Oct 2002
Posts
32,623
D.P. you seem surprised that mathematicians are the only people to excel at answering a maths question. What software do you guys develop?

No, I am surprised at how many computer science grads don't know fundamental computer science. Computer science is a branch of mathematics and is the science of understanding computational theory and information. The "math" questions asked are what any computer scientists should know both explicitly through their taught knowledge of complexity theory, algorithms, data structures etc. during their studies, but just as importantly also intuitively in their ability to understand and solve computational problems. And that is where mathematicians tend to do so well despite lacking explict knowledge of computer science theory, their mental analysis of problems leads them to correct and insightful answers. And thus math and physics grads so frequently make such excellent computer scientists while many so called CS grads fall flat on their. A very sad state of affairs really. Of course there are plenty of exceptions and many CS grads to posses appropriate knowledge and abilities as expected.

The company I work at does a lot of software for both civilian and military clients in areas of MD optimization, search, navigation, planning with small bits of machine learning and data mining. Mix of server side, desktop and smartphone development. In the past it has dabbled in things like quant trading, video encoding, dynamic system analyss, traffic prediction and analysis.


To be clear, we don't look for mathematicians to do math, we are only looking for good programmers that understand the basics of how computers and compilers work, how to develop algorithms or understand problems suffient ly to apply known algorithms.

I may have made out that some of our requirements are extremely complex and theoretical but it is really not most of the time. To give an example one of the programming problems involves creating a dictionary of character sequences and they will have to check if a particular sequence is in the dictionary. Too many so called software engineers have submitted code where they put the words into a Isimple linked list or vector, and to check if a sequence is a word in the dict they will iterate over all 100thousands words linearly! You would hope for a least a binary tree or hashmap, even better would be a Trie or a DAG structure due to further parts of the problem greatly benefiting from a tree or graph. Mathematicians will typically easily come up with a tree structure as it is a natural representation for them.
Another problem simply involves finding permutations of sublists. Many software engineers flounder and look for perverse iterative solutions when a simple recursive solution is relatively evident. Again, the mathematicians and good CS people see the recursive solution, much like proof by induction.
These are the sort of problems that need to be coded on a daily basis. Nothing deeply theoretical, just sound understanding of algorithms, data structures and the ability to problem solve.
 
Last edited:
Caporegime
Joined
18 Oct 2002
Posts
32,623
D.P. hit me up for an interview :)

At the moment the company is mostly only looking for US citizens who can get security clearance. We've been trying to hire like crazy these last 6 months but have recently come across quite a few good developers. And to be honest, the company has a few issues that need to be resolved before I can recommend upping sticks and moving to the US. The Us budget cuts had an effect on the main project.
 
Back
Top Bottom