Monday, October 09, 2006

Getting Ready For Your Entry Level Software Interview

So, you're fresh out of college and want to take your Computer Science/Computer Engineering degree into the software field? What you learned in 4 years of college might not be enough to get you through round 1 of your interviews. I know this because I just went through it and thought I would share some advice with others that will soon be interviewing for entry level software engineer positions. So here's a few things that can help you land that job:

Understand OO Principles

If you got a degree in some form of computer field, you probably did you fair share of object oriented programming. You've heard of inheritance, polymorphism, and encapsulation. You know the difference between private and public modifiers. But do you know why all of it is important? Well I've had 3 interviews where the first question was, "Can you explain the main principles of object oriented programming and why they are important?" I listed them above (inheritance, polymorphism, and encapsulation), but you need to know that we use these for reusability, robustness, easy maintenance, etc. You also need to know why we want our code to be reusable, robust, and maintainable (it saves time, money, headaches). Go to Wikipedia, open your textbooks, do whatever it takes to know this stuff.

Know The High Level Stuff

Employers think it's great that you got some real world experience at your internship or co-op, but if you can't explain your understanding of a software system at a high level, you're in trouble. You could work on small pieces of code in a J2EE or .NET application and get pretty good at knowing the code in that particular system, but if you can't explain what the JVM is or what the Common Language Runtime is, it means nothing. It would do you some good to purchase or borrow a book for whatever language you are interviewing for (this is an almost obvious statement, but people don't think it's worth the $$$$). You don't need to read every chapter, but definately read the first one or two where everything is explained at a high level. You are guaranteed to be asked several high level questions pertaining to a particular framework or technology.

Learn Design Patterns

I have been asked about design patterns in every single interview I've had within the software field. It might be a while before you are truly exposed to them, but your employer wants you to know them, because it exemplifies good programming practices. The most common design patterns I've been asked about are Singleton (probably because its the easiest), Factory, and Model-View-Controller (MVC is a must-know for web applications).

Know What A Relational Database Is

Most computer science majors took a course on relational databases, so if this is you, you already know this stuff. Many computer engineers do not take any courses in this category (and some CS majors do not), so if you don't know anything about relational databases, you should learn. Every modern application interacts with a database in some form, so even if you aren't aspiring to be a database engineer, you should know what's going on. If you could only learn a few things about relational databases, know what these terms mean: one-to-one, one-to-many, many-to-many. It might also be a good idea to know some simple SQL statements. (I was once asked to write a few query statements to retrieve some data given a database schema, nothing terribly complicated, but if you haven't done a query statement, you might look bad).

Practice, Practice, Practice!

There is a good chance that you will be asked at least once to write a program in a short window of time. If you've never done anything of this sort, it is very different than writing a program with unlimited time and a wide array of resources available to you (APIs, IDEs, Google, etc.). You really need to be able to write your program on paper or a command line and not rely on external resources. You won't need complicated API functions or anything of that sort, so don't go memorizing anything outside the common stuff. The test is really to see how well you can problem solve with a little pressure applied. You really need all of your energy to focus on writing the required algorithm in an efficient manner. You don't want to get caught up in remembering syntax (which they don't really care about anyway). I highly recommend going through your old programming books and doing the exercises at the end of the chapters. Time yourself and don't use anything that you won't have at an interview. When you're finished, check yourself and see if it works and if there are any ways to improve it. (During my first interview I wrote the correct algorithm, but the interviewers quickly explained to me how it could be better, don't put yourself in this position.)


Blogger Rasmus said...

Oh my god. Does this mean that we actually have to know things about use cases, scenarios and UML?

10/09/2006 3:22 PM  
Anonymous Anonymous said...








12/26/2008 4:22 AM  
Blogger Yaro Gabriel said...

jordan shoes
off white
coach outlet
soccer jerseys
barcelona jersey
nobis outlet
merrell shoes
chelsea jersey
prada handbags
links of london

6/13/2018 8:59 PM  
Blogger Yaro Gabriel said...


kappa clothing
kate spade outlet
ralph lauren polo
nike shoes
dc shoes
ferragamo shoes
air jordan 4
longchamp handbags
michael kors outlet
cheap jordans

6/13/2018 9:02 PM  
Blogger Fghkfhk Dfgaert said...

true religion outlet
lacoste polo shirts
jordan shoes
true religion jeans
jordan 32
fitflops sale clearance
carrera sunglasses
canada goose outlet
undefeated clothing
true religion outlet

6/28/2018 3:15 AM  

Post a Comment

<< Home