Post contributed by Chad Moyer, Developer at 4CTechnologies
Congratulations! You got an interview. Perhaps the hardest part of the job search in today’s economy is simply standing out enough from the pack of resumes to earn a coveted spot in the interview line up. But it’s not smooth sailing yet! Here’s a crash course to preparing for an interview to obtain a career in Software Engineering (like with 4CTechnologies!)
Of course, every business handles their interviews differently, and many companies also change up the interview style per candidate, depending on where their conversations lead. The following is a pretty good guide of what you can expect from a typical interview, however. Practicing answering these types of questions can help exercise your communication skills, so even if they ask something different in the interview you will be able to think quicker and answer better.
Typically to begin an interview, you will be asked various behavioral questions. Sometimes they can be used to get to know your personality to see if you would mesh well with the company, to better understand the information you have on your resume, or even just to ease you into the interview. Behavioral questions are usually in the form of “tell me a time when you…”, and typically ask you to reference a specific example from your work or academic past. This is the time where you can show that you really have a passion for what you do and how you have used your experience to overcoming challenges.
This next piece of the interview process is very important to any CS-student seeking to obtain a career in Software Engineering. We will now discuss some tips and strategies for preparing yourself for the daunting technical portion of your upcoming interview.
The behavioral portion of your interview should be a breeze as you are just speaking about projects and life experiences you have already had. The technical interview however, is to test your knowledge of computer science fundamentals. Most of the time, interviewers are not going to ask you about specific or complex algorithms. To be honest, most of the software engineers don’t remember them off hand either. However, you will be expected to know the basics and be able to implement them. Below is a small table containing information you should be comfortable discussing:
|Linked Lists||Breadth First Search||Bit Manipulation|
|Binary Trees||Depth First Search||Singleton Design Pattern|
|Tries||Binary Search||Factory Design Pattern|
|Stacks||Merge Sort||Memory (Stack vs Heap)|
|Vectors/ArrayLists||Tree Insert/Find/etc||Big-O Time|
This list above comes from a text book called “Cracking the Coding Interview” which I highly recommend for career seeking software engineers. It contains countless amounts of practice questions and tips to help you prepare. Another excellent resource you should consider is Career Cup. It has additional practice questions, examples from real life interview situations, as well as résumé tips and mock interviews.
While this isn’t a comprehensive list of things that will guarantee you a position at the company of your dreams, this will help you to prepare yourself for the challenges lie ahead. From one software engineer to another, I wish you all the best of luck!