Most of the development job descriptions I've seen lately have had a "minimum years of experience" requirement--some of them even list the required years of experience per technology (5+ years of Swift? Very confusing). I understand the motivation to list these requirements. Even with the strictest standards, any interviewer will have the unfortunate (and frustratingly frequent) experience of wasting an hour finding out that a seemingly qualified applicant doesn't know how to code. This leads companies, especially big ones, to constantly raise their standards, hoping to weed out unqualified candidates.
If you've never been on the other side of the table, here's a brief explanation: there are many, many people in this world who have the experience of a senior developer and the approximate coding ability of a mountain goat. Weird, right?
The flip side of this is that there are plenty of developers who only have a few years of experience on their resume, but are excellent programmers. As an extreme example, consider Simone:
Liquid error: internal
Simone has 0 years of career experience as a programmer. Her resume wouldn't get past the scan-and-reject stage of the average Human Resources office. But she has curiosity and passion and twice as many solo projects as me. And if there's a single software shop in the country that has a clue, she'll have a job offer waiting in her mailbox the day she turns 16.
Simone is particularly bright, but she's hardly a rare exception to the rule. Many developers (myself included) started coding as a childhood hobby. Code comes easily to many kids and teenagers. Maybe it's because the world still seems like a logical and organized place to them, so their ideas find easy expression in code. In any case, a few years of hacking on fun projects before adulthood is the most underrated form of experience in the development world. Where do you put that on a resume? How do you communicate to a potential employer that long before high school, you figured out how to mod your favorite game? That you customized an Android build for your first smartphone? That you programmed a robot to wash dinner plates, and that you've been totally in love with code since you were twelve?
Another too-often-overlooked form of experience is the hobby project. Building a simple app or tool from scratch in order to satisfy your curiosity or try out a new technology is just as valuable as doing a similar project in the workplace, if not more. After all, if you're the sole proprietor of a project, it forces you to become an expert in the technologies you're using and the problem you're solving. No one but you will fix it if it breaks. No one but you will build the parts that you don't know how to build. If your knowledge is fuzzy in a couple areas, it will have to get un-fuzzy because no one else is bringing in expert knowledge. My GitHub graveyard has been far more valuable to my computer science education than any job I've had, even though I haven't invested nearly as much time in it.
But again we face the same problem: how do you demonstrate this value to an employer? Where on your resume do the passion projects go?
I could add several things to this list and so could you. Many developers contribute to popular open-source projects and although this builds their skill set in a big way--both technical and soft skills are required for effective open-source collaboration--it is usually overlooked by employers. Some developers mentor others, which in my experience is a more powerful learning experience for the teacher than the learner. And even developers who choose not to code outside of their 40-hour work week are often incredibly motivated on the job, voluntarily taking on difficult projects and punching above their weight.
Employers are constantly at risk of hiring developers with 20 years of job experience but no passion or drive, instead of developers with 4 years of job experience, 6 years of childhood hackery, 3 years of weekends on GitHub, and a lifetime of enthusiasm for cool software.
It's a disservice to you to be judged only by your three or four most recent jobs. And it's a disservice to employers everywhere to unknowingly reject awesome candidates without a technical interview because they don't have enough "professional experience."
What's the solution?
We have to demand that employers meet us halfway. Put a GitHub link on your resume, and give preference to employers that indicate they've looked at your projects. Mention your open-source and hobby project experience in your cover letters. If you're a junior developer, prove that you deserve to be treated like a veteran. Learn about code quality, and show that you care about it. When someone gives you a technical interview--especially if they're dubious about your skills--blow their freaking mind. Teach the world that developers are more than their resumes.
And then, in five or ten years when you're a full-fledged senior developer or architect, remember where you've been.
Listen: I'm not saying that experience doesn't matter. Of course it does. The wisdom of decades in software is immediately apparent in the senior developers I work with, and it's super valuable to me and to the company. But experience comes in all shapes and sizes, and someday I hope that developers like me will be measured by all of it, not just the parts that look good on a resume.
EDIT: As many have brought up in the comments, open-source and side projects should definitely be a part of your resume. It sounds like there are indeed some companies that value this as highly as job experience, which is very cool.
Top comments (13)
Reminds me of a bit I use in some of our internal training - "I've known people with 15 years experience, and I've known people with one year experience repeated 15 years in a row... at the annual dinner they get the same pin."
Gets an interesting mix of thoughtful and confused looks.
I can't claim it as original, I've seen various variations on that theme over the years.
I don't really understand, you keep repeating "Where on your resume do the passion projects go?" etc., when the answer is "on your resume". There is no unwritten rule or law anywhere that says you can't list your personal projects, hobbies, or write a block of text describing your passion in your work in your CV. It's more like the exact opposite, everyone should do that.
As an employer I absolutely value passion and talent more than years of expertise etc., and I actually rarely read CVs as such. The CVs are full of years of expertise and other useless information, and for your skills I mostly care about
1) how good you really are
2) how passionate you are, if programming is "just a job" and you have little skill, don't waste my time
3) how good are you at learning new things and adapting to changing situations
I generally attempt to find these out by first giving a practical programming test, and then having a 1:1 chat with the person to talk through their solution, and potential issues with it. I will check your CV for how many programming languages you have experience with, and links to GitHub or similar, the rest I will pretty much find out in an interview.
The cover letter I would generally use for specifying why exactly that place you're applying to is interesting to you, and maybe some special qualifications you would have specifically to work there.
Your CV should overall glow in a way that tells you are passionate about your work, if that's what you are. That you can do by adding a brief description of yourself and how you got interested in programming and learned your craft. If that is by modding your favorite game, great! Write it there.
There are a lot of different kinds of companies out there, if they do not want to hire you for your passion you probably wouldn't want to work for them anyway, just keep looking.
If you see an experience requirement on a job posting that you want to apply for, don't walk away from it! Job postings are often written by committee, and different resume screeners will focus on different things. Apply anyway. A good employer will know how to see past their own "required" bullet points.
The advice in this article to include your Github link is absolute gold. And where do your passion projects go on a resume? They should be a first class citizen on your resume, right alongside job experience and education! I've been involved in developer hiring for nearly 15 years, and developers who demonstrate that code is more than just a job are by far the most exciting potential hires.
Your post are 🔥, Isaac. Keep it up!
I'm currently working as a QA Analyst and between work and college I try to dedicate some time to the few apps I have on GitHub so that I can show what I can do.
I try to read as much as I can about clean code, best practices, principles, and so on. Just so I can show my future interviewers that the only thing holding me back is time/experience.
It's really easy to get burnout, but I know it will pay off later on :)
My plan is to refactor my apps to a point where I'm comfortable (adding unit test, end-to-end tests, decent UI, etc) before I apply to any job 🤓
Add a section toward the end of your resume titled "Other Related Experience". Put a few interesting sounding bullets about these projects. This just may intrigue the H R person to ask questions and want to know more. Then you have a chance to talk about your hobby projects that really are experience.
Wait, are people not listing their hobbies and side projects on their resumes? Just list everything you want highlight. You can even put a long-term side-project right in with your career experience (just stop calling it "job" experience).
If you've been programming for 5 years, then it's 5 years experience. I don't care whether that was paid or hobby work.
However, I do value experience. If you read my article I'm proud to be a programmer you'll see the extent of experience a good programmer needs. This isn't something you can just magically have -- you need to actively work on projects where you'll get it.
But you're absolutely correct that just accumulating "job" years indicates nothing. I consider the years a prerequisite, but not a satisfying condition. Actually, when I do interviews it's often easiest to discover bad programmers with lots of questionable "experience". They tend not to be able to answer difficult programming questions, which they should be able to with that level of experience.
I partially agree on this, but this behaviour would lead to other issues: what about people coming from places where internet is really slow? And people with other hobbies other than coding?
The point is that there isn't a one-fits-all method for recruiting technical people.
About "Mention your open-source and hobby project experience in your cover letters." it can be added even if are still small contributions not really hard coding and implemented with high technologies, i didn't' have for example pull requests in nodejs or deno , all my contributions are to improve some readme files or fix data or add other useful resources , should be added ?
Yes! Your contributions matter.
Great insight, I am teaching myself to code but do plan to get a Master's in Computer Science. Ill browse job opportunities from time to time to see what skill sets are in demand but am finding a lot of desirable experience >= x many years :(
Perfection!