If you've felt yourself stagnating as a programmer recently, I have a cure for you. That's right, a ticket out of the back room or cubicle you've been stuck in for the past few years, into an exciting world that is changing daily. The secret is joining an open source community.
This is a step-by-step path to making more money AND having more fun at the same time. It may not always be easy, but doing something worthwhile almost never is. Here's how:
- Pick an Open Source Project
- Read a Book
- Attend a Meetup
- Launch Something
- Write a Blog
- Commit Some Code
- Travel to a Conference
- Create a Presentation
1. Pick an Open Source Project
First things first, you have to find a project with a growing community that excites you. Speaking for web developers, I'd highly recommend either Drupal or WordPress. Both of these projects are on a crazy growth curve, have glut of career opportunities and a vibrant community. Between the two, my personal preference is Drupal, so I'll examine the next steps from the perspective of someone looking to get involved with Drupal.
2. Read a Book
It's amazing what you can learn from a book, and books are hands down the best intro into most Open Source projects; they are cheaper than training seminars and more digestible and structured than Google Searches. The current best introductory book to Drupal (for a programmer) is the Definitive Guide to Drupal 7. Go out, buy it and read it from cover to cover. If you find that you don't like a few of the approaches, don't worry about it right now. Standards exist for a reason, and many coding practices take some getting used to.
3. Attend a Meetup
Once you've got your bearings (you did read that book, right?), it's time to meet other members of the community. Meetups for Open Source projects exist everywhere. For Drupal, it's simply a matter of finding your closest group on groups.drupal.org, finding out when the meetings happen and making the trek out there. For a lot of developers this step can be pretty tough. You may run into groups that feel like they have established cliques, but in general people are friendly and are very open to new visitors showing up. The meetup is a critical part of your professional evolution because this is one of the most likely places to hear about fabulous new employment opportunities and/or interesting chances for collaboration.
4. Launch Something
If you've already read an introductory book and said hello to your future peers, you've probably gone past writing "Hello World" and done a little tinkering. Now it's time to actually launch something in the real world. Pick a project (your friend's band, your cat, etc.), build a website using your new platform and then launch it. Taking the project from beginning to live-on-the-internet is absolutely critical. Put it on DreamHost, GoDaddy, whatever - just make sure it's out there in the public sphere. In the case of Drupal, doing this will give you exposure to:
- Initial setup
- Creating a dev environment
- Webserver configuration
- The theming system
- The module system (remember: don't hack core!)
- Real world issues
...and many more things I may be forgetting to list. In a few years, you'll look back on this first project and shake your head at all the mistakes you made, but hey, you have to walk before you can run.
5. Write a Blog
No matter what your first project is, someone, somewhere will be interested in your story - so put it out there. You likely already have an established online identity (mine was metaltoad), so it's time to start defining what that name means. Don't get to hung up on how you publish your blog. Yes, you can use Drupal, but you can also get it out the door by posting to Tumblr or Blogger. What you say is way more important that the platform you use. And saying something is way more important than "getting it right". Get it out there.
6. Commit Some Code
Committing code to Open Source projects may seem like a daunting task, but like many things just getting started is the hard part. Start small, and start looking at existing bug queues and help people patch them. In Drupal, you'll need to get setup with a Git (some open source project host their own version system, and others use public services like GitHub). So start there, and then head on over to the Drupal Getting Involved Guide. Remember, consistency across the project matters and you don't want your commits to be rejected for cosmetic reasons, so be sure to adhere to established coding standards.
7. Travel to a Conference
The next step in your career is hopping on a plane and going to a conference. If you are lucky, you may be able to convince your existing employer to pay for your ticket, hotel, meals and/or pay you to attend. If you aren't so lucky, pay for it out of your own pocket. A lot of people get hung up on this, but if you can afford a flatscreen TV and a game system, you can afford to invest a few thousand dollars in your career (how much did you spend on college for that matter?!). Getting on a plane and completely immersing yourself in this code & community you have selected is an amazing experience. Recruiters abound, epiphanies will be had and friendships will be forged. For Drupal, the big one is DrupalCon, which happens to be in Portland for the year 2013. Last year it was in Denver, but no matter where it is, get on a plane and go. You won't regret it.
8. Create a Presentation
By now, you should have a decent blog, have some code commits under your belt and be a regular at your local meetup. It's time to give something back and help people avoid some of the pitfalls you fell into along the way. Everyone has something to say and creating a presentation is a key element to raising the visibility of your personal-professional brand. You can present at local meetups to start and move on to larger events. If public speaking is really not your thing, you can always publish something on Slideshare.
What's in it for You?
That's it for the step-by-step process. If you do get involved in an Open Source project here's what's in it for you:
- More money
- More job satisfaction (money isn't everything, right?)
- Fantastic peers
- A greater sense of accomplishment
- A sense of community
- More options
Sounds pretty good, right? So what are you waiting for? Get started today.