Thursday, March 29, 2007

Learn the art of system development

I read a good post on "how to prepare for a career in software development" by Jeff Atwood. This blog post really got me thinking about this topic. As Jeff points out the only way to learn is to be on the battlefield. I totally agree. What many developers seems to forget is that software development is a handicraft. You must learn from the bottom up. You must write your rows of code and you must make your mistake to become a good software developer or architect. Of course you can (and should) learn from mistakes other people made and you take small short cuts when reading the work of others but you can't skip some steps in the process.

Fairly often I see new developers (and others for that matter) trying to take short cuts and skips some steps. Sometime this works out but this often lead to small or bigger holes in the map of knowledge. This often ends up with problems for the projects they works in. So be patient and learn step by step. There are no cheap short cuts.

The most effective way to learn is by try - evaluate - refactor. Nobody makes all decisions right. At least not the first time. There are always thing to do better. Often you don't know all requirements in the beginning and often the requirements and environment shift along the process. Do what you think is right and then evalute the outcome and learn from that and change the decisions for the better. Work with constant refactoring. I haven't met somebody that made all right on the first try.

Jeff has an list of actions to get better. A couple of my actions are the same. My list.

  • Start your own hobby project. Gather some friends with good ideas and implement one or many ideas. Learn from each other and have fun while doing this project.
  • Try to get a mentor. To have a more experienced person to talk to and to help you developing yourself is very helpful. Someone who can guide you is worth so much.
  • Start a blog. Start with small ambitions. Try out what you want to write about and how you want to write. Start to read other blogs to get your own thinking going. Comment other posts and then start writing your own articles. You don't have to be to too serious at first.
  • Participate in user-groups. It's amazing how many good free seminars there are. Instead of reading and searching for information you can go for a seminar listen and get some free food instead. More fun and you learn more. I always gets a surprice when I see that out of all developers and architects in Stockholm there are only like 30 people in this seminars, and it's always the same guys.
  • Listen to podcasts and see webcasts. Microsoft, .NET Rocks, ARCast etc give out great podcasts. Listen and learn.
  • University. In Sweden the universities are free. There are alot of good classes for C#, MSF, .NET architecture etc to attend.

No comments: