Introduction

I'm writing this guide to help those new to the game of software engineer employment. It's also a great chance for me to review my technical skill sets and keep me from getting rusty. Since this is the first edition, there will likely be mistakes – please let me know about them, so they can be corrected in the future.

It is composed of all the information I've obtained through me and my friends' job hunting experiences that I figured would help posterity. Since the dominant programming language in the software industry today is Java, I will concentrate on Java topics. I'll try to include C/C++ information as applicable, though.

For our mutual amusement, I'm writing this as a sort of game walkthrough, to keep an otherwise stressful experience more enjoyable. (The job hunting, not the writing.)

Actually, the technical job application process is very similar to a game.
There are basically 3 levels:
1. Resume + Cover Letter
2. Phone Screen
3. Interview

You need to beat each level before progressing to the next. If you beat the interview, you win the game and get to a bonus round: compensation negotiation. However, if you "game over" on a level, you have to start over - usually 6 months later if you're applying to the same company.

But more importantly, it's a good template for how you should really treat this experience - as a game where knowing the rules helps a lot in beating it.

I’ve tried to order the practice problems to be increasingly difficult, but often difficulty is a personal opinion so your mileage may vary.

Please be aware that this guide should not serve as legal advice, merely an educational and entertaining resource. I can't be held responsible for what happens to you with the information I provide. I hope you'll find it helpful, though.

Webfaction is the ULTIMATE hosting platform for any serious developer.
SSH, WordPress, Rails, Django, cronjobs, compile and execute anything.
ProgrammingInterview.com is proudly powered by Webfaction.