I had an interesting conversation the other day about expired knowledge. On the current project I'm working on I'm realizing that there are a lot of gaps in my knowledge of WebForms. The other day, I told the person that I was pairing with that this chaotic abstraction of the web is confusing to me. My lack of knowledge of WebForms is not because I haven't learned it yet, it's because I didn't really want to.
I remember the first time I heard the term "complex page life cycle". It had no meaning to me so I googled it to find out what it mean. oh man.. oh man... i remember reading through some MSDN docs about the sequence of events that fire as a page is constructed, and thought to myself. I'm not going to memorize this. This is crazy....
What is an advanced knowledge of webforms going to mean to you in 5 years? how about 10 years? how about 20?
I have no idea what the future holds for me, but I do know that I want to be in software for quite a while, so I do my best to focus on knowledge of software development that wont expire quickly. I would much rather spend my time studying, the intricacies of new programming paradigms rather than learning the intricacies of some new framework.
It sucks when you're doing a demo of your work to a person from business, and they're more impressed by shiny things in the UI, rather than how well tested and loosely coupled your design is.
It's like an owner teaching it's dog that it will be rewarded for certain types of behavior. If I'm rewarded by spending my time learning about how to use the cool new AJAX controls, and shunned for spending my time trying to understand what the Liskov Substitution Principal means, then what am I more likely to do?
What's the moral to this story... don't feel bad, like I do, that you don't know the intricacies of some specific technology. Strive to understand what it is you're doing, and why you're doing it like that.
My focus for this year is to study:
- object oriented programming
- test driven development
- design patterns
What about you?