June 25, 2019
Get In, Get Outopen source advice for new programmers breaking into the industry
When new programmers ask me about open source, I tell them:
What do you need to land a job?
Get on GitHub, tick those boxes, get out, and go get your job.
Longer-term, you’ll reassess. But short-term, the goal of anyone who wants to get paid to program computers ought to be to get paid to program computers.
That is not the same as showing that some large-famous company uses your software, or that lots of people star or download it. If that software is permissively licensed open source, you’re headed in the wrong direction.
Open source adoption is a credential that says, among other, more positive things, “I will do free work.” What you need more than anything, starting out, is a credential that says “My work is worth paying for.” Until you’ve established that fact, don’t do free programming without direct job-seeking benefit when you could be doing the obvious: portfolio, applications, interviews, and networking.
In the future, after you’re established, you may decide that showing lots of adoption of open source you give away, or releasing important open source in a niche area, is important to you. It may feed a greater sense of accomplishment and purpose. It may afford opportunities to work on interesting projects outside the scope of your paid work. It may help you keep current, or aid in transition to a new platform or programming language. All valid goals that open source participation can advance.
But in the meantime, you need to be very mindful of your immediate task, how open source will and won’t contribute, and the need to defend your time. Yes, even if you’re unemployed.
I say “defend” in all seriousness. Open source is thoroughly social-media-gamified. GitHub wants “contribution” like Twitter wants “engagement”. It is designed to get you hooked in, and to keep you coming back, blindly indifferent to any cost-benefit analysis on behalf of your fledgling career. Whether you’re doing your first pull request or declaring issue bankruptcy, the mechanics of the game are the same.
So is the social landscape. Companies and their workers want free work—code, feature additions, support—from open source maintainers. Thanks to GitHub, many open source maintainers drown in these requests, and need all the help they can get, including from you, to keep up with them. Some successful programmers who also happen to do open source don’t defend their own time, and actually suffer guilt about their inability to do all the free work others ask for.
Don’t get stuck in that loop. Especially when you can’t afford it.
If you think it’s important to demonstrate particular aptitudes, like Git, GitHub, a specific language, or work in a particular field, then by all means, go do that through open source. Make a list of all the tools, platforms, technologies, and use cases that you want to show on your resume, as a checklist, and go make one public pull request for each. Put the URLs on your resume. Send that resume to would-be employers and clients. It’s diminishing returns from there.
If you think open source is important to network with other programmers, and you don’t have a more personal, full-spectrum way to do that, like local meetups, a hackerspace, or volunteering, then you can try to meet people through open source. But recognize that merely corresponding online does not count.
If you can get free tickets as a newbie, attend conferences. Don’t be afraid to ask. Then skip all the sessions, and stick to the hallway track.
When open source work goes well—you land a pull request, someone makes you a collaborator on a repository—reach out to your collaborator privately, and see if you can’t “upgrade” to a phone call. Introduce yourself, talk shop, mention you’re out for work, and ask their advice.
Remember your goal: paid job programming computers. Everyone you meet who already has that job ought to know you’re after one.
Ignore the other people you will see online churning out open source seemingly 24/7. Yes, some of them are new programmers, too. Yes, they will receive more attention and Internet dopamine cookies than you will. But it is on them to mind their cost-benefit, as it is on you to mind yours. Their circumstances may be entirely different. They may have time, money, or other enabling circumstances that you do not. Or they may be just like you, except they’re doing what social media tells them to do, and you’re giving it more thought.
Long-term, you want to learn as much as you can. Open source can teach you a lot, but not nearly as much, or as quickly, as a mentor with a vested interest in your progress at a full-time job that values your contribution. There is no magic bridge from open source to paid source. There is no professional scouting committee trawling GitHub for candidates with your best interest in mind. How open and paid programming will relate, as part of your career, is up to you, and depends on you.
Programming can be lucrative. You can make good money, sitting at a desk, without exposure to dangerous chemicals, operating heavy machinery, dodging bullets, or grinding your joints to dust. But programming is also rife with inequality, worker abuse, and systemic unfairness. It is, after all, an industry.
In the United States, unpaid internships for employer benefit are illegal. But somehow “GitHub is your resume” is fine, even for new programmers who haven’t had any jobs that allow contribution on company time. Firms are effectively requiring unpaid internships while offloading even the burden of providing that kind of mentorship. Because they can.
There is no better deal for companies than open source under popular licenses like MIT, BSD, and Apache. If they could get all their software that way, and never pay another programmer, they would.
That is not the deal you are after, breaking into the industry. When you’re willing to code for free, by contributing to open source or otherwise, make very sure you’re being rewarded in some other, concrete way that advances you toward financial and professional self-sufficiency. In other words, make sure the deal is as good for you as everyone else. It’s not on you, the one without a job, to subsidize the industry. It’s on the industry to ensure that when it needs programmers, they’ll be there.
Your thoughts and feedback are always welcome by e-mail.
back to top — edit on GitHub — revision history