Well, I've got lots to learn. I've coasted the last few years on past knowledge. This doesn't mean I've learned nothing in the past few years, I've learned a lot. But the learning has been incidental and random, not directed and focused.
Unfortunately, one of the reasons I've been dragging my feet is because 1) real life has been chaotic for the last few years, and 2) I'm burning out a little bit. It seems the new ways of doing things focus on best practices and how to do things properly, while bringing very little to the table as far as adding new capabilities and functionality that end users see in the software they use. Much of what I do professionally now doesn't fit into the best practices model, where if I have a spec it literally will be written on the back of a napkin, if I'm lucky. Usually by the time a project at my current company surfaces to me I've got very little time, very vague instructions, and really not even a clue to what I am doing. So I cowboy up, take my best guess, get it wrong, and then reiterate the process until I've got something that works.
Then I go into a hurry up and wait phase until the next project comes along. To be honest my last iteration of doing this fried me quiet a bit and I didn't do the greatest job that I could have. I just simply got tired of asking questions, getting contradictory answers, and to be honest finding out some of the techniques I used weren't the best approaches to solving the problems at hand. What could have taken three days is dragging on for weeks, and it is partially my fault, something that is not good.
So, going forward, I've got to be a total pain in the ass until I get what I need to succeed. If this pisses people off too bad. If they want a quality result, I need some direction to start with. If I disappoint as a mind reader, well too bad. But in the mean while, I've got to retool. If I.T. becomes drudgery I won't last. So what to do?
As I've said, much of the new techniques out there aren't about doing new things, but doing old things a different way. I've decided this isn't the best point for me to tackle while I've burnt out a bit. I will put some effort here, but it will be tritary until I get feeling a little better about working in technology. Just doing the same old crap but wrapping it in extra layers of complexity with the blogosphere telling me the new ways are best when I know that isn't always complex will just depress me.
So what is left? That is an easy one for me. User interface design. I remember trading some wine for my original copy of Photoshop 4 with a guy at Adobe. I love photoshop, but because I work for big corporations almost all my emphasis is on the back end, making things look pretty hasn't been a huge priority. In fact since the last year and a half since I've mainly been working on existing applications I haven't design any user interfaces (with the exception of one in Silverlight, but that closely matched the look of our existing stuff). So my copy of CS3 gets dusty on the shelf.
F that. I'm looking at what people are doing with Photoshop both for art and web design and it is awesome. I've started going through some tutorials and you know what? It isn't all that hard. You don't even have to be a great artist to so 95% of what gets done, you just need to know some basic techniques and know how and when to use them.
Photoshop interest me. So using Photoshop for software interface design is where I'm going to throw most of my effort this year. Hopefully things will become fun again. Plus, if in the future I ever want to strike out on my own, small business like things to look really nice. It is more important that smaller more public applications look nice than it is for corporate apps seen only by a few engineers.
So my learning patter for this year will be as prioritized,
1) UI Design (Photoshop, maybe some entry level 3D apps as well)
3) New ASP.Net capabilities (4.0 stuff), Silverlight
4) Other technologies (PHP, Python, Apache, Memcached, mySQL)
5) Keeping up to date with SQL Server (pretty solid here in my own mind, just spend minimal effort to stay current dealing with CLR type stuff).
And if time permits
The buzz word stuff (Agile, Unit testing, Scrum, etc...)