How Do I Learn
You may have noticed that I didn’t get around to write that many blog posts over the last two months. While some of you may regret this, others would argue that the universe has been a much better place since then :-). Anyway, I haven’t been picking my nose these last couple of months. I’ve been working on a small sample application (which is still very much work-in-progress) to straighten out some of my thoughts about application design and architectures. While working on this “home project”, I also get a chance to dive into some cool stuff like Fluent NHibernate, StructureMap, DSL’s, etc. While I’ve been having fun, I completely neglected to write blog posts. That’s something that I definitely want to improve over the next couple of months.
Anyway, back to the point that I’m trying to make here. The only way I can learn is by actually doing development work, whether its as big as a two year project or as small as a Code Kata. In order to become a software craftsman someday, I need to practice. Lots and lots of practice.
I also learn a lot from reading books, articles, blog posts, watching screencasts or video recordings from conferences and last but not least by reading code from respectful open-source projects. But in the end, they only sharpen my theoretical skills. In order to really challenge my thoughts, I need to be practicing.
Practice is what makes people craftsmen in other fields as well like surgeons, plumbers, repairmen, etc.. But for some reason, developers think that they can sit back, write code from nine to five and muddle on. While there is a time and place for everything in our lives, this particular attitude makes that the state of our profession can be much compared to the dark ages. We need to become better at what we do and who we are.
Somehow related, I completely agree with this blog post from Uncle Bob where he talks about being responsible for your own career.
YOU, and NO ONE ELSE, is responsible for your career. Your employer is not responsible for it. You should not depend on your employer to advance your career. You should not depend on your employer to buy you books, it’s great if they do, but it’s not really their responsibility. If they won’t buy them, YOU buy them! It’s not your employers responsibility to teach you a new language. It’s great if they send you to a training course, but if they don’t YOU teach the language to your self!
Every book I’ve ever read about software development is a book that I bought myself from my own money. All the magazines I’m subscribed to, I pay from my own pocket. I’m responsible for my own learning, and I’m willing to invest whatever it takes to accomplish that. Whenever I want to learn something new, I’m not waiting for my employer to give me an opportunity. I make my own opportunities!
I realize I’m a bit late for the previous Butter’s Monthly Bone. I can only hope that Butters won’t eat me alive ;-).