College students going into a technical field like computer science need an internship. There is no way around it. Computer science is a vast field that is evolving all the time, and the fastest way to learn anything in the field is through experience. Books and lectures are helpful, but they aren’t near as helpful as getting that real hands on experience.
Getting an internship, much like a regular job is all about standing out. What can someone sell about themselves to stand out and be selected? The first thing that many people will gravitate towards is grades. After all, it was grades that most likely got them accepted to college, so they should carry over into the first steps outside education, right? Well, only partially.
Having good, or even stellar grades theoretically shows that you are capable of mastering different concepts in technology, have a strong understanding of how computers and software work, and should excel in a role where your primary job is learning. That just isn’t always the case. Due to the complexity and depth of computer science, it is easier for many students to use strategies such as memorization rather than master the concepts that are being taught in class. This has a detrimental effect on the knowledge a student can take away from a class, even if they got a good grade in the process. Employers know this, so simply showing that you have good grades in college won’t prove that you know what you are talking about when it comes to technology.
Even though the goal of an internship is to gain experience, a great way to stand out is by having some experience. It is a little counter intuitive, however, this experience doesn’t have to be professional. My experience involved a series of personal projects that I had completed over the past five years. I provided source code of past projects and talked intelligently about topics that I had researched on my own time. This helped prove that I knew a thing or two, and might be a good fit for the role.
Don’t be afraid to show the mistakes you have made in the past either. I created a program called “Record Keeper” which was a JavaFX text editor that would encrypt the information with a password the user provided. Looking back with what I know now, it was terrible! I didn’t hash the password securely (no key stretching), and I used my own simple stream cipher (a big no-no in the security world), but it didn’t matter. It showed that I had interest in cryptography and was willing to try and make something, even if it wasn’t commercially marketable. It was proof that I had vested interest in programming.
Show your thought process, rather than just taking a guess at the answer. Sundog presented me with a “Skills Test” to complete before my initial interview. It involved analyzing code written in a language that I hadn’t even heard of before with all these strange object names and keywords. Initially I was lost, as I didn’t have a clue what it was attempting to do. Then I took a step back and processed each line until I had a detailed understanding of what the code did. Finally, I relied on my experience to guide me towards the correct answer. The takeaway here is that I detailed what I was thinking and why I chose the answers that I did. In this way, I proved that I had thought about the code and relied on knowledge I already had. Even if I was wrong, I showed that I knew something, which is always better than nothing.
Be prepared for unexpected questions as well. In one interview, I was asked to state the difference between a primary and foreign key in a relational database as well as a definition for database normalization. Even though I knew the answers, the questions took me off guard as it was something I wasn’t expecting to be asked. This was because I hadn’t done my homework on what the internship would be focused on. As I found out in the interview, it had to do with cloud computing and database management, so understanding these topics is essential. I knew my internship here at Sundog had to do with software engineering, so understanding how databases are related to each other, while important, probably wouldn’t be the focus of the interview. Understanding object oriented programming and the technologies Sundog utilizes are very important topics, so I researched that before the interview.
Finally, be yourself. Many companies, like Sundog are looking for someone who will be a good fit in the workplace, rather than someone who claims to know something about everything. Employers know that you are going to be doing a lot of learning during your internship, so it is more important for them to know you will be able to work well with others. So long as you know something, and can prove that, you will have a much better chance at being considered. Good luck out there!
Sundog Software Engineering Intern