I mentioned before
about my return to blogging on ryanfarley.com and my renewed passion for programming. I've found myself moving from blog to blog reading things that continue to inspire me. I read a post from Justice Gray, titled "How I am becoming a better developer, part 1 of infinity
", that was mentioned on an episode of Hanselminutes. This was a great meme, and although I'm late getting to the table, I wanted to post some thoughts I have on becoming a better developer as well as some goals that I've made for myself.
The following list are some things I am doing to become a better developer:
1. Find/Rediscover Your Passion
I've always believed that to be a great developer you have
to have the passion. What is passion? You know, it's that itch you get as you sit on the couch with your wife (or your husband) watching crappy reality TV and you can't break your thoughts away from sneaking off to write some code. It's that desire you feel to know all there is to know about your language, the framework, emerging new technologies, etc - just because it is fun to know it
. It's that code that is always in your head, just dying to get out. You're not content with put in 8 hours a day writing code, you just have to find that extra time to do it just because you enjoy it. So, how do you rediscover that (or find it if you've never had it?). I think the rest of this list will help with that. I'd recommend starting with Hanselminutes show #72, Be a Better Developer in 6 Months
. Then, make some goals for yourself.
My goal: Keep doing the rest of this list to keep the passion. At the end of the year, add new goals.
2. Remove Distractions
There's always things to get in your way of improving yourself and staying focused on your goals. If you work at your home, like me, turn off the TV
, shut the office door, establish a "work mode" that separates itself from "home mode". I find it helps to turn off notification sound from Twhirl
(or whatever Twitter client you use) as well as other distracting notifications. I found that my eyes would automatically shift to the bottom right corner of my monitor every time that "ping" sound would occur. I think part of "removing distractions" involved establishing routine to some degree. Instead of doing things like going through subscribed RSS feeds periodically throughout the day, disrupting your focus on real work, have a set time at the beginning of each day to catch up on that reading. Then you can stay better focused the rest of the day.
My goal: Keep the TV off. Make work time a little more "formal" to stay focused. Establish a work mode routine and stick to it.
3. Listen to Podcasts & Read Blogs
A long while back, I would listen to DotNetRocks
, but I stopped and that time got replaced with other things. After hearing about the start of the HerdingCode
podcast on Twitter, I ended up giving it a try and loved it
. I was feeling interested in the topics they were talking about and found myself wanting to dig into the topics discussed after the show. It was great. I've known of Hanselminutes
for quite some time from Scott's blog
, but never really gave it a try. So, I threw a bunch of episodes of that and DotNetRocks
on my Zune, as well as the Deep Fried Bytes
podcast that was starting up around that same time. The result was not exactly what I expected. I was
expecting to enjoy listening to these, but it ended up in more than just that. I was feeling inspired. I was feeling excited and couldn't wait to jump into whatever the topic was for the show. Maybe the reason why I thought it was so great is because I do work out of my house. The rest of my development team lives in another state. Being able to hear development related discussions like these is just not the sort of thing I hear around my house (but we're working on that, hehe
). The same can be said for reading blogs. There is always just so much to learn. I've never had a problem with keeping up with reading blogs.
My goal: Listen to a new podcast each morning (weekdays). I've started getting up earlier than I would have to give myself enough time to do a 30-45 minute power walk each morning. The fresh air does wonders, but it also gives me dedicated time to listen to a podcast while walking.
I've taken the first step here with reviving my ryanfarley.com blog. My belief is that, while you can learn a lot from reading from other blogs, you'll learn 10x that by writing posts yourself. The process of thinking through a topic enough to write about it is far more valuable than just reading about that same topic. Any time you can "teach" others, you'll end up growing as a developer by leaps and bounds. This has been my experience throughout my entire career, and I do love teaching others.
My goal: Keep posting reularly on this blog (and my CRM Developer blog too). I'm not going to set a specific number or anything, I'm ok with just saying "regularly" :-) Feel free to contact me and give me a push if "regularly" seems "less-regular".
5. Learn a New Technology Each Month
For me, this is something that without questions comes out of listening to podcasts. Since listening to podcasts, I've found that I really love SubSonic
, ASP.NET MVC, LINQ, & WPF - which are all things I never really took the time to get into before. The problem is that there are just so many things I want to really learn well and I need some focus or I won't learn enough of any of them. Along the same lines as this, I've established at my company weekly developer meetings. We take an hour or two each Thursday and do some internal training. This has been a great way for me to stay focused and current on new things with a dedicated time for me, and my team, to improve ourselves.
My goal: Take the time to learn a new technology every month. Create a side-project using that technology as a reason to learn it. Stick to planned, weekly, developer training sessions with the development team at my company.
6. Get Involved in an Open Source Project
On the Hanselminutes episode #72 that I mentioned earlier, Scott and Carl talk about how the best thing you can do to be a better programmer is read. Not reading books, but reading other people's code. I'll take that one a step further. Not only does reading other people's code help you become a better programmer, but getting involved in writing the code as well will take you even further. While recently migrating
my .Text blog to Subtext
, I dug though probably most of the Subtext source (and was very familiar with the .Text code that it was forked from). I learned quite a bit looking at the code and a huge benefit of that is the ability to jump in and contribute to the Subtext project.
My goal: Pick an open-source project to contribute to over the year.
7. Seek out Local .NET Groups or Nerd Dinners
This one is a big one for people like me that work by themselves in their home. I mentioned earlier that the rest of my team all work in another state. I work out of my home and have a lot of online conferences and meetings as we work on projects together. However, I don't get the social "geek" atmosphere with my co-workers (except when I go out of town to meet with them - which is great). I've never really taken the time to get involved with the other local Arizona geeks. Just having the ability to network with other local .NET geeks and have meaningful conversations about programming topics would do wonders for keeping the passion and focus.
My goal: Seek out my local .NET users group and attend as much as possible. Take the time to meet up with others at local nerd diner meetups.
Well, there you go. My thoughts on ways to improve myself as a developer and my goals to do it. Wish me luck.