Exactly one semester ago, I got to wear a manly green dress with a square hat. Today at my alma mater, other people get to do the same. Are you one of them?
This post will be mostly focused on software engineering, on how to get a software position, but I’ll try generalizing each point to any technical position. This is actually exactly what I did, and managed to have started my career within four months of graduation!
Before getting into the meat of this post, just remember this. This is a blog about creation. Your life is just beginning, and life is what you make of it. Create your own life. Create your own future!
- Technical Interview Questions
- Company Research
1. Technical Interview Questions
As we engineers know, we’ve got one of the hardest interviews anyone could possibly be in. Every potential employee has to go through questions about their resume, thrown in with some situational questions that may or may not be difficult, maybe with some questions about soft skills and culture. In addition to all this, as software engineers* we’re practically taking another exam, being thrown programming questions left to right. Perhaps even harder than a typical exam thanks to having someone judge you when you’re thinking and writing on the whiteboard. The number of topics that an interviewer can cover is endless… almost. With these three tools and enough preparation however, you’ll be above all other interviewees and you WILL get the job – one that you’ll enjoy and excel in too!
* For non-software engineers, expect similar technical questions. Electrical engineers with circuits, mechanical engineers about heat and forces, civil about materials and environmental factors, etc.
Technical Preparation List
- Programming Interview Book(s)
- Programming Online Judges
Programming Interview Books
Going through a programming interview book – or two – is practically essential to get the software engineering job. Even if you are the top coder in your graduating class, being able to think right on the spot and how to verbalize your thought processes in programming is something almost no new grad is familiar with. These books will not only give you interview questions and answers, but also in-depth solutions: not only the steps needed to get to the right answer, but also explaining thought processes, which is invaluable. Some of the most popular books:
- Elements of Programming Interviews by Adnan Aziz, Amit Prakash, and Tsung-Hsien Lee
- Cracking the Coding Interview by Gayle Laakmann McDowell
- Programming Interviews Exposed by Eric Giguere, John Mongan, and Noah Suojanen
I’ve personally gone through Programming Interviews Exposed, which I thoroughly enjoyed and learned a lot from. I’ve only heard about the other two books after however, but pretty much every site (book site, programming site, blogs, etc) will say that Elements of Programming Interviews and Cracking the Coding Interview are the best books to prepare with (in fact, as of writing they both have exactly a 4.25 rating on Goodreads!). If you have the time and dedication, go for two or even three of them! But definitely one should suffice given you prepare properly.
What do I mean properly? Reading the questions and attempting at solving the problems yourself before reading the solution. Just like a good book or movie, you wouldn’t want spoilers right? Try your very best. Even if you get stuck on the very first problem, just try your best. Once you absolutely have to look at the solution, go through the solution one sentence at a time. Each sentence is another hint to the solution, and that may or may not be enough for you to figure it out. Interviewers may do the same thing, giving you a hint or two, so practicing this on your own will be valuable.
Spend a good time going through the books. I spent an average of about half a chapter per day, sometimes even an entire chapter if not two. As new grads, we have nothing else to worry about! (Except maybe loans, but remember this if so: the more time you can invest per day into preparing now, the sooner you can get that engineering position and start paying them off! Defer the loans if possible; the typical six months should ideally be enough). Invest the time and practice and I promise it will pay off. (Remember, you’re investing a few hours into what could be the next several years of your life!)
Bonus: You can find all of these books as free pdfs via a simple Google search! Having a physical copy to mark up thoughts, as I do with any other book I read, helps immensely. Alternatively you can just print out the pdfs, maybe even two pdf pages per printout page, back and front if you want to be absolutely frugal. In the end, just don’t be too cheap with your own learning.
* Non-software engineers: There will always be a book on whatever field you’re in. Google search for the most resourceful books and follow similarly.
Programming Online Judges
There are several other online judges online, but I have not heard too much about one being stronger than the other, so for simplicity’s sake I’ll just leave this one site here which will more than suffice. Practice a few problems a day and you’ll be set!
All of the above – the reading and the LeetCode – should take you between a month or two, given about ten hours a week. Feel free to start applying for jobs if you haven’t already, since by the time you finish preparing, you may at the perfect time get that interview offer.
2. Company Research
- Company’s Website!
Research the company! See what they do, what you’ll possibly be doing, see the culture of the company is like. Many will have a blog that you can peruse. Sounds like an ideal fit? Go apply! Don’t forget the cover letter as well. I won’t cover it here (sorry…) since so many sites and blogs will, but if you show in your cover letter that you’ve research the company, more power to you. It does take time catering every cover letter to each company you apply for, but again it will all be worth it in the end.
Glassdoor is a nice career-based community supported by none other than fellow employees. Users can share valuable information such as comments about their job position, salaries, and even the interview process. This last part feels like we’re cheating the system, but if it’s an available resource, use it! If you’re lucky, the interviewer may give you a question that’s been stated on Glassdoor; if not, at least something very similar. Expect similar culture questions as well.
Bonus: Glassdoor works for all fields! Not just software engineering; not even just engineering. Everyone can and should make use of it!
If you’re having trouble finding companies, literally look everywhere! Glassdoor itself posts job positions. LinkedIn (if you haven’t created a profile, do so! Recruiters can contact YOU with zero effort on your part!) also posts jobs. University career fairs (let’s face it; public career fairs won’t have software positions unless if it’s working with something like databases), your university’s career site, Indeed.com, EngineerJobs.com, heck even CraigsList.com. Ask your previous employers and professors. Be creative in your search and don’t limit yourself!
Just a quick bullet here since you’ve read a whole bunch of resume articles and attended those resume workshops. Before your interview, prepare an elevator talk for everything you mention on your resume! It’s a shame to go in to an interview when the interviewer asks you about that sophomore project you have on there and you forgot most of the details already. Saying “I was the software lead and we coded in [language]. It worked in the end and we got an A!” won’t suffice. Explaining your thought process during the project, the decisions you made and how, etc. will go far. If even after given much thought in preparing you can’t provide enough information, leave it off the resume.
After you’ve had your interviews, enjoy your break! If you’ve been working on projects and internships the past summers while in college, this may have actually been your first real vacation since as far back as high school. You’ve earned it. Go inspire yourself, go inspire others, go travel. Do anything BUT programming now, even if you enjoy it so much that you could do it for the rest of your life. This is your one chance before you become a 40-hour slave. Take advantage of it.
If you want to plan a huge trip, expect to start working sometime between three to six months after applying. Most of my interviews within one company were a whole month apart, even phone interviews. If you want to plan your vacation early and buy a ticket while it’s cheaper, possibly to another continent, just keep this in mind. If a company ends up trying to schedule something during your trip, just say you cannot during that specified time and they will have to reschedule it to a week or two earlier without problem. However, I do suggest taking this trip only after your interviews, or at least after interview preparation, while you’re still hyped and motivated from graduation.
Hope this quick guide was helpful! Part two coming up in a day or two: how to stop art majors from becoming starving artists! Stay tuned!