It’s not really this bad, but it always feels like you’re never quite as good as you wish you were. Every time I think I’ve arrived at my career destination, I just learn something new that teaches me just how much I don’t know. Software development is a young discipline on a rollercoaster ride, where ideas quickly gain traction and fall away almost as fast. In the field of software development, you’re either learning or regressing. There just isn’t any way to tread water.
Here’s my distressingly long list of the things I want to do over the next 6-12 months to become a better developer:
Things I Should Do
- Since the world is conspiring to force me into an occasional Project Manager role, I’m going to improve my planning and estimation skills by reading Mike Cohn’s Agile Estimating and Planning book.
- Get StoryTeller released. The engine is fine, but I’m going to rewrite some of the UI. I’m not really passionate about the project so much as I simply wanted a tool like StoryTeller.
- Learn more about the financial industry
- Add some better low level knowledge and heavy duty concurrency programming techniques to my belt
Things I Want to Do
- I’m finally going to take StructureMap into the Aspect Oriented Programming arena. Most likely it’ll just be integrated support for an existing AOP technology. I put it off for a long, long time because I just didn’t think AOP was very valuable. I’m starting to see some real examples that are making me change my mind. I fully realize that StructureMap is probably last in terms of adoption, I’m going to keep it going regardless to be my software design laboratory
- I’m going to learn at least a working knowledge of Functional Programming. I just barely started to learn Haskell, but I’ve decided to switch to F# instead. It looks like the F# team has some real momentum and energy and it just might be something you could actually use on a project in the near term. I’m thinking about trying to create some sort of test refactoring support into StoryTeller and use F# to build that functionality. I really don’t want to be that guy who just can’t grok OOP because all they learned was COBOL — except move OOP to the right and backfill the beginning with Functional Programming. Learning Functional Programming is also a way to get ready for the massively multi-threaded application development that’s heading our way in a couple years.
- I’ve got two related ideas for new IronRuby OSS projects, both related to DSL’s applied to WinForms or WPF. One to finally master Ruby instead of just playing around, and two to deeply explore the mechanics of writing internal Domain Specific Language’s.
- I’d like to do more speaking engagements and become a better speaker. I did several talks when I lived in Austin, but not anything lately. I enjoyed DevTeach in Montreal and I’m hoping to speak again in Vancouver. I want to be a No Fluff, Just Stuff speaker when I grow up.
Things I Won’t Do
- I have no interest in becoming a Certified ScrumMaster. If you’ve read this blog before you know I’m a huge proponent of Extreme Programming techniques and Agile development in general, but even so, I think Certified ScrumMaster sounds eerily like certified Snake Oil Salesman. Besides, my passion is for the software construction side of things.
- Dive deeply into WPF, WCF, and WF. I’ll learn them in detail, and with enthusiasm, when I need them, but not a moment before then. There are nuggets of knowledge that serve you well on every project, and there is API memorization that’s only useful on specific projects. I’d rather focus on the general knowledge first. I will say that WCF would have been a beautiful thing for the types of projects I was doing 5 years ago.
- Write a book. I’ve flirted with it. I chickened out once. I was excited about a possible book proposal in May, but it just sounds like too much work right now for not enough gain. Besides, I think I actually get as much “reach” from the blog than I would by publishing a book.
Tag, You’re It! (no tag backs!)
I want to know what these guys are up to: