It is no secret that tech companies place high value on side or non-classroom projects when making hiring decisions. Most of the top companies including Google 1 and Facebook 2 will not even consider you if you do not show any side projects. Many students have asked me why side projects are so highly valued by tech companies for internships and full-time opportunities in tech. Let’s delve into understanding the importance of side projects for tech opportunities.
Interviews can only go so far. Interviews can reveal your competency in a subject area, but they do not reveal your natural interest in building stuff, ability to learn quickly, or ability to work on something for a long time.
Having a side project will open up a deeper and engaging conversation. Peeking at examples of code someone has written and shared reveals a lot. A question I always ask candidates is something along the lines of: “tell me about a project that you have worked on” 3. This is where I can assess candidate’s ability to analyze costs and trade-offs, remark about programming style, passion, personality, and even assess writing abilities. A fantastic outcome of such conversation is if both the candidate and I learn something from each other.
Side projects demonstrate your ability to build, your ability to apply what you have learned overall (e.g., in a Computer Science curriculum), and that you actually know how to program. [A bonus is if someone can build something completely with documentation, tests, bugfixes, etc.] Especially for software engineering roles, companies look for builders, hackers, the hands-on and creative types. The building, hacking, creative, and hands-on skills are generally not reflected in the classroom setting. Students have been trained all their life to do homework assignments, take tests, and perhaps aim to get top grades for classes. The aim of homework assignments is to apply recent concepts learned and most assignments are one-offs. Tests, quizzes, and certifications almost never show anything about a person’s hands-on abilities. This cycle does not reflect how the real world works. For most, there are not enough opportunities in the academic setting to put-it-all-together. Sadly, the result is many students graduate with a Computer Science degree but do not feel they know how to program as evident by this sobering discussion on StackExchange.
Side projects demonstrate drive, passion, self-motivation, and the ability to work on unstructured problems. This is the complete the opposite of assignments in an academic setting: the problem is defined (sometimes too defined), the answer(s) are known in advance. This is a reason why classroom projects listed on a résumé hold little to no weight. I’ve been appalled by how students are generally uncomfortable with working on unstructured and open-ended problems. The problem becomes glaring during students’ first internships as I constantly see comments in Curricular Practical Training (CPT) reports such as “I wish my supervisors had described the overall structure in a little more detail” or “I was simply freaking out with the fact that I did not have an assignment with a roadmap.” My response is always: “welcome to reality.” The professional world “is unstructured, with competing priorities and decisions that need to be made on the fly. College is very task-based: take an exam, finish a paper, attend a club meeting, go to practice. The workplace is more of a mash-up of activities with no scheduled end.” 5
Side projects help build your track record and portfolio. There is a number of people who started coding or programming very recently because of the push and many initiatives to learn programming including bootcamps, White House’s Computer Science For All. One of the worst-kept secrets in the last few years is the number of students who are majoring in Computer Science because that’s “where the money and opportunities are” or because “mommy and daddy told me to major in Computer Science because that’s where the money and opportunities are.” Alas, this is a major reason for the exploding demand in Computer Science education. You will not and cannot learn everything in classroom, it is impossible. Just doing the bare minimum coursework is not enough to get you opportunities. Experience and track record are paramount for any opportunity from first full-time opportunity out of college to senior-level position. How can people trust you and your work when you have little or nothing to show for?
If you do not want to put in the effort to go the extra mile, someone else already has and that person ate your lunch. The amount of available tools, technologies, and frameworks now is massive and accessible. A few years ago over lunch, my friend Jeff Seibert said two words that still resonates: no excuse –there is absolutely no excuse to not take advantage of the opportunities, tools, technologies, and resources that are available and accessible. While it is impossible to learn everything that is available, there is absolutely no excuse to not learn something.