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 ScreencastsI’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 the legend, Avdi Grimm. Quick bursts of dense information a couple times a week.
- thoughtbot - these guys are 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.
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.
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.