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.)

2 Comments:

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  
Blogger sexy said...

情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣用品,情趣,情趣,情趣,情趣,情趣,情趣,情趣,情趣,A片,視訊聊天室,聊天室,視訊,視訊聊天室,080苗栗人聊天室,上班族聊天室,成人聊天室,中部人聊天室,一夜情聊天室,情色聊天室,視訊交友網a片,a片


免費A片,AV女優,美女視訊,情色交友,免費AV,色情網站,辣妹視訊,美女交友,色情影片,成人影片,成人網站,A片,H漫,18成人,成人圖片,成人漫畫,情色網,日本A片,免費A片下載,性愛

A片,色情,成人,做愛,情色文學,A片下載,色情遊戲,色情影片,色情聊天室,情色電影,免費視訊,免費視訊聊天,免費視訊聊天室,一葉情貼圖片區,情色,情色視訊,免費成人影片,視訊交友,視訊聊天,視訊聊天室,言情小說,愛情小說,AIO,AV片,A漫,avdvd,聊天室,自拍,情色論壇,視訊美女,AV成人網,色情A片,SEX,成人論壇

情趣用品,A片,免費A片,AV女優,美女視訊,情色交友,色情網站,免費AV,辣妹視訊,美女交友,色情影片,成人網站,H漫,18成人,成人圖片,成人漫畫,成人影片,情色網


情趣用品,A片,免費A片,日本A片,A片下載,線上A片,成人電影,嘟嘟成人網,成人,成人貼圖,成人交友,成人圖片,18成人,成人小說,成人圖片區,微風成人區,成人文章,成人影城,情色,情色貼圖,色情聊天室,情色視訊,情色文學,色情小說,情色小說,臺灣情色網,色情,情色電影,色情遊戲,嘟嘟情人色網,麗的色遊戲,情色論壇,色情網站,一葉情貼圖片區,做愛,性愛,美女視訊,辣妹視訊,視訊聊天室,視訊交友網,免費視訊聊天,美女交友,做愛影片

av,情趣用品,a片,成人電影,微風成人,嘟嘟成人網,成人,成人貼圖,成人交友,成人圖片,18成人,成人小說,成人圖片區,成人文章,成人影城,愛情公寓,情色,情色貼圖,色情聊天室,情色視訊,情色文學,色情小說,情色小說,色情,寄情築園小遊戲,情色電影,aio,av女優,AV,免費A片,日本a片,美女視訊,辣妹視訊,聊天室,美女交友,成人光碟

情趣用品.A片,情色,情色貼圖,色情聊天室,情色視訊,情色文學,色情小說,情色小說,色情,寄情築園小遊戲,情色電影,色情遊戲,色情網站,聊天室,ut聊天室,豆豆聊天室,美女視訊,辣妹視訊,視訊聊天室,視訊交友網,免費視訊聊天,免費A片,日本a片,a片下載,線上a片,av女優,av,成人電影,成人,成人貼圖,成人交友,成人圖片,18成人,成人小說,成人圖片區,成人文章,成人影城,成人網站,自拍,尋夢園聊天室

12/26/2008 4:22 AM  

Post a Comment

Links to this post:

Create a Link

<< Home