Yesterday I wrote a controversial article about how I see and hear that the Ruby community is more and more influenced by poor developers. I knew it would stir up a shit storm, but the amount of tweets and comments on various sites still surprised me. We’re talking 7,000+ unique visitors in the first 18 hours. The first 5 hours were good for 80% of that amount (opinionated blog posts hardly ever have a significant long tail).
Only Suzan Bond asked the obvious question: “So, how do we turn this thing around?” (paraphrased). While I’m pretty sure we can’t fix everything, here are some things you can do (both as a seasoned or a novice developer). Ruby or otherwise, it’s all about education. Be a teacher and a student.
Stay (or become) current
There are a lot of great on line resources to stay up to date with anything going on in your field. As a novice it may be hard knowing where to start and what (not) to read. The easiest way to find out is to ask others. Follow influentials on Twitter and see what they talk about. Ask them and others what they are reading. Watch screencasts. Create or join a “book club” at a local (or on line) user group. If you have suggestions, drop me a line and I’d be happy to create an overview of resources right here.
Don’t be shy
A lot of developers are introverts. I used to be one, and I still don’t consider myself a social animal. The truth is, you’re not going to meet new people and engage into actual conversation and discussion by only reading blog posts from the comfort of your home. Find a local user group or go to a conference. Attendees at user group meetings and tech conferences are birds of a feather. It makes it easier to connect. Feel free to skip the smalltalk and talk shop.
Organize or go to user group meetings
User group meetings are a great place to meet like minded developers. It’s free and you may already know some of the people there, making it less intimidating than going to a conference. User groups always welcome new people and can help you find the right people to guide you, if you’re looking for that. I organize events for the Amsterdam Ruby User group and for our tri-monthly Hack Nights I try to actively attract novice developers. There always are people who like to team up with them to answer questions and pair program. If you don’t want to ask people directly to pair with you, ask the organizers to introduce you to developers who would be willing to.
Those user groups don’t appear out of thin air. Someone needs to start one and I’ve learned it’s been a very rewarding way of meeting new people. Visitors will know which company you are with (or that you are freelancing) and they will definitely remember the name. It’s most likely important for your brand to be “top of mind” and running a local user group certainly helps. If you’re a company with money and/or meeting space to spare, I’m sure your local user group will happily give you exposure in return.
Attend or speak at a conference
Conferences usually offer a great combination of hearing interesting talks and doing fun things with your fellow attendees at the same time. Some of the speakers you may only know from their blog or Twitter and this is a great time to talk to them. They’re all more than willing to offer advice or just have some drinks. This year I’ll speak at 11 conferences across Europe and the US. It’s awesome meeting so many people and making friends for life (I’m not exaggerating).
If you think you have nothing new to bring to the table, you’re wrong. Everyone knows things that others don’t. If it’s not a die hard technical talk, the story about you turning your life around by going from farmer to developer may be just as interesting. There’s more to development than just the code. I’ve heard great talks on sleep patterns, meditation, theater & yoga at tech conferences that gained just as much attention as any of the more technical talks. Overcome your stage fright and share your unique knowledge.
Drag a developer along
You may be going to a user group meeting, while your co-workers aren’t. Invite them to come with you. Maybe they’re intimidated by groups of people they don’t know. Knowing that you’ll be there may be just the push they need. They don’t need to be at your side the entire event; introduce them to people they can have a conversation with. See, now you’re helping out two people at once. Understand that not everyone was born with great social skills.
Opinions are like assholes; they’re both pretty useful. Someone else’s view helps you form an opinion about things you maybe hadn’t thought of. They can help bring structure to your thoughts; maybe you were thinking the same but didn’t know how to word things? Read what others are saying. Call them out on it. Talk to people about stuff that bothers you and see where they stand. A fresh pair of eyes or ears never hurts. User group meetings and conferences are great places to put this into practice. If you write opinionated articles on your blog, make sure you have thick skin.
Join a program like Rails Girls as a coach or trainee
Rails Girls, Rails Bridge and many more are great places to start coding if you have (close to) no experience at all. Everyone’s welcome to join and they start at the absolute beginning. You’ll be guided through getting your laptop ready for coding and coaches are with you every step of the way. They’re great for teaching the basics and experience the feeling of creating actual working software. But then there’s the day after. You’ve made this one thing, but you’re sure you don’t know enough to write this application you’ve been meaning to create for years. This may be a good time to get in touch with a local user group or see if you can participate in an apprenticeship program.
Start an apprenticeship program (or be in one)
An apprenticeship program takes on novice developers and turns them into junior or even medior developers by giving them lots of guidance and hands on experience. There are several of these programs in the US and they’re starting to appear in Europe as well. Although my company didn’t have an official program, someone who took part in one of my workshops mailed me about opportunities. I had been toying around with the apprenticeship idea for a while already, so this happy coincidence leads to me taking on our first apprentice. Mid October she will start a 3 month program in which she’ll work at our office for 3 days a week. The remaining two days she can work on her skills at home or digest all the new impressions. The great thing about apprenticeships is that they are about much more than just writing code. It’s about interacting with a team, learning to work with version control and picking up a lot of soft skills on the way. To not stress out yourself or your apprentice I suggest keeping them off the critical path, or maybe not have them work for clients at all. These programs cost time and money, without direct monetary results. It’s a great way to “create” new quality developers though. I believe starting such a program is a sensible thing to do if you care about the future of our business.
Complete this list
I’m sure the above is just the tip of the iceberg. If you have something to add, please be so kind to leave a comment. Questions and links to resources that aren’t too be missed would be great too!