This post is a follow up to a previous entry, “Letter to a Young (Or New) Programmer”.
So you’ve been working through some of those excellent online resources, like Learn Code The Hard Way, or Code School, or whatever. You think you can build something now, and you want to get out there in the world and hack things better, but there’s this one little problem… you have a degree in Philosophy or Psychology or no degree at all, and no résumé-worthy coding experience.
Not. A. Problem.
Well, not necessarily a problem. There’s an easy solution. Just. Get. Hacking.
So you don’t know about XP, Agile, Scrum, Kanban, Waterfall… there’s always Programming, Motherfucker.
So you haven’t built an Enterprise Expert System with the AbstractVisitorFactoryAntiPatternCringeGenerator pattern… I told you to make an account on Github, didn’t I? And I know you take my advice because you’re building actual goddamn software.
Put your stuff on Github. Ask for help on IRC.
Find projects that interest you, fork ‘em, submit pull requests. Lots of projects even have issues labeled as “suitable for n00bs”.
The Enterprise Dilemma
Okay, sure. There are places out there that care more about your résumé and pedigree than your coding chops. I can tell you something about those places. You don’t want to work there. I mean, getting your foot in the door is a good thing and all, but in the long run, you’ll hate your life and maybe even learn to hate coding, and I don’t want to see you go down that road. There are so many of us who narrowly escaped that kind of enviroment that we could form our own support group. Don’t even worry about it.
Any shop worth working at cares so much more about your coding chops, your potential, your intelligence than bullshit like résumés and academic credentials that if you can demonstrate your ability and still don’t get the job, it’s a blessing.
On the other hand, you do need a first coding job. And if you’re not getting it based on your Github activity, you’re probably getting it based on nepotism.
How does this happen? Still goes back to Github, IRC, meetups, etc. So go to some meetups. Talk to people, go to the pub nights, go to the open hack nights. Hack on open source projects, submit pull requests, get in on some projects that will get you recognized. Eventually, you’ll have hacker friends who will hire you or recommend you to take over their shitty Enterprise jobs that you can use to build your résumé should you go down that route. It’s not that hard. Hang out with nerds, learn the craft, make connections. Programming is one of the few fields where it really is what you know, but who you know can help too. But those connections are best made by being a badass hacker.
Open Source is the Key
At the end of the day, though, even if you do all sorts of networking at confs and meetups and the like, you need a strong presence in the Open Source community. I can’t emphasize this enough: PUT YOUR CODE ON GITHUB.
Or Bitbucket or whatever if you prefer, but open source that shit, get other people involved, and get involved in other people’s projects.
I’m in the position of having to evaluate and hire developers at An Estuary, and since I want to run the dev shop I wish existed, I’m trying to hire that way. When we list positions, we require a Github URL because I want to see what you do, not what your former employers think of you. I assume they’re “former” (or soon-to-be “former”) for good reason. When we interview you, I want to talk about your code, not your former supervisor’s probable inferiority complex.
In summary, just get hacking. Just keep hacking. Build cool shit. Show it to the world. Talk to other nerds. Maybe try some remote pairing (Tweeting with the hashtag #pairwithme is often productive). But just make stuff. Then show me what you can do when you want a job. If you start off with a great company, that should be all you need.