Insight into a Computer Engineering Job Interview

If (as in, if I decide to go to college, not if I get in) and when I move on to college, I intend to major in computer engineering or computer science. I have been refining my programming skills for many years, however, and rather than focus on what I would learn in college, I have begun to focus on what employers might want me to know.

I have a friend who has interviewed at plenty of companies for software engineering positions and currently works at Amazon. Many times he has even walked me through what a typical interview would consist of, as well as quizzing me with common questions posed to a potential employee. I asked him for a bit more detail and he gave some valuable insight into just what you might encounter during a software engineering interview.

“For lower level SDEs, they want to know if you code and if you can think,” he said. “They ask you something that requires you to think up a solution applying well-known algorithms (or even your own algorithm if necessary, but be careful about that), and then writing a solution in code on a whiteboard.”

Insight into a Computer Engineering Job InterviewHe continued with an example: “Common low-level SDE questions are centered around application of sorting and searching algorithms. Sometimes even as simple as writing out the algorithm or writing a data structure and then throwing in a curve ball (e.g., ‘write a singly linked list’ for part one, and then ‘write an algorithm to reverse the first N items’ as part two).”

I would like to note something critical here. More and more frequently, I notice that young kids and teens approach computer science and engineering with the false idea that the more programming languages they know, the better they are at programming. While knowing a variety of languages is a big plus on your resume, keep in mind that in the earliest days, programs were designed directly on the circuit itself. Computer science and engineering primarily revolves around problem solving.

I would advise kids who want to start out that they should stick to one language (I have grown particularly fond of C) and learn as many algorithms and data structures as possible. It wasn’t too long ago that I came across this realization myself, and subsequently designed my own linked list, dynamic array, and hash table implementations. After writing my own structures, I felt as if I had learned more than I would have by simply learning syntax of various languages, and with obvious reason. I began to apply the language I knew versus simply sitting around saying I knew the syntax.

I then questioned my friend on the importance of a college degree when interviewing; here’s what he had to say:

It used to be common that the degree was essential. These days it’s less important. Some companies are a bit more stuffy about it, particularly ones with lots of academics working as engineers. You most likely wouldn’t get to the interview process if you don’t have a degree and they care about that sort of thing. They don’t want to waste your time nor waste the interviewers’ times by interviewing a candidate they have no interest in. But most of the more relaxed companies (e.g., Amazon, Google, etc.) care less about degrees and more about raw skill.

I find it funny, really, that in recent years, tons of emphasis has been placed on going to college and earning a degree. While for most fields of study I would definitely agree with that idea, I also agree that in this new, technological era, a college is not the only place to learn the right know-how for a job. I learned how to program through various tutorials and reference sites I found online. The Wikipedia articles on various sorting algorithms and data structures also contain a great wealth of information to get you started. In addition, after watching taped college lectures of an introductory computer science course, I can say I learned in the elapsed course of weeks what most computer science majors learned in months. The Internet is truly the teacher for a new age, and those with the motivation and passion for learning how computers work and how to make them work for you can do so without leaving their homes.

Do you want to be a computer engineer someday, working at a huge tech company such as Google, Amazon, or Microsoft? All I can say is: Make sure you know your stuff.

Side note: For those who are interested, my implementations for a linked list, dynamic array, and hash table are all available as GitHub Gists.

Article Written by

  • 3050it

    It would be good to know what websites were used it would sure help us as young programers .

  • http://lance.compulsivetech.biz/ Lance Seidman

    For me, I have been programming and running some form of my own business since 1998 and eventually quit High School to make it my full time job. It’s now 2011 and embarking on to 2012 and have won multiple awards, worked for some huge companies and have developed my own applications originally “just for fun” and turned them in to a profit, especially with Mobile App’s and implementing Ad’s verses Shareware.

    When someone tells you, you need a degree? Well I was self-taught and only book I ever purchased was the O’Riley Perl book and that should say how long ago it was on it’s own. Ever since I have built great relationships but I will tell you, I continue to rock a beard as when I go in to offices without one, they’re very unsure about me even if they know everything I have done for public businesses or have been hired on even by their partners.It’s much easier to work for yourself now days as you can run a business behind a desk no one can see and by submitting App’s to a store you don’t maintain and not having to get a merchant account for processing cards if you should try and sell your App’s as the big guys do it all for you but best of all, no hosting the downloads which if your App is popular can become outrageous and quite pricey. However I do highly recommend making a storefront so people don’t think you’re a fly-by-night operation as many might think before they hire you/your company for work. I currently have our website down for something new I have been working on for the past year on/off and because I offer a forum that no one uses and a Support section, it has caused many to download my products more often when a price tag exists. Good news, it does get better but took me 10+ years to get to the point where I do actually have an office but only for the drop-off of computers/misc. devices for repairs and my other programmers/artists/etc are all working remotely with me as I developed my own “Project Manager” that is web-based and yes has Webcam Support, we manage to do quite well and sure only 5 people I personally pay but sometimes you can’t be the star and have to accept somehow that you need help and allows you to take on more work and perhaps different types of work that maybe you don’t excel in but someone else does and hard to swallow your pride but it’s business, not personal and sure overly used but true to the ‘T’ as your client could give 2 cents about your personal problems until it becomes obvious and you’re no longer probably a good choice for them as you may compromise the end mission, a working product.