Teach yourself to be a developer

I am a self taught developer. I have never been employed by anyone but myself to write code and have never worked on a team where skills are shared between members. There have been advantages, and disadvantages to this way of learning.

The journey has been difficult. Until recently, all of my work was done on internal business applications with nothing in the wild. No one looked at my code, and no one knew what I was working on. I knew that without outside input, there were only two options: I could teach myself through trial and error or I could be satisfied with where my skills were at. But I chose to become a developer mostly because there is always something new to learn - more technical technical knowledge, more business acumen, more self-discipline and time management skills.

So, I created a virtual curriculum for myself. I committed time each week to watching screencasts and reading blog posts about technologies that I knew nothing about. Fast forward 2 years while working on a short engagement with Obie Fernandez and he said, “You’re expensive, but you’re good.”

I had no idea. But it turns out that paying attention to what people are saying, trying new technologies and being eager to take on projects with large, interesting scopes pays off.

Here are my hints for staying current:

Watch Screencasts

I’m a Rails developer, so here are my top picks:

  • RailsCasts - Ryan Bates has put together a huge catalog of free screencasts here. A pro subscription will you get access to some of the most informative Rails information available anywhere. If you want to know a way to do something in Rails, Ryan has probably covered it here.

  • Destroy All Software - Gary Bernhardt has put together 4 seasons of screencasts that focus on Ruby, testing, Unix and Vim. These have been the single most important screencasts in helping me how to write maintainable, clear code. I cannot recommend these highly enough.

  • Ruby Tapas - Again, high quality ruby screencasts by Avdi Grimm. Quick bursts of dense information a couple times a week.

Read Technical Blog Posts

I pay attention to new stuff on Hacker News, but try not to spend too much time there. The community is a bit negative for my tastes. I haven’t found a really great JavaScript blog, any recommendations?

  • thoughtbot - one of the best Rails consultancies around and really contribute back to the community.
  • CSS-Tricks - whenever I’m struggling with something with CSS, Chris Coyier has probably written a post about it.

Practise

If you read about something that interests you, find somewhere to incorporate it with your code. Putting a new concept into practise will help you explore the topic and will create a lasting memory of it. Just do it.

Teach

Blog or run a tech meet-up where you can talk about new tech and ways to incorporate it into your own practise. Giving back to the community will always bring back greater rewards for yourself. Once you know something, you can always give this skill back to those around you. A strong community means less bad code and a better experience with development for anyone practising our craft.