Thursday, December 09, 2010

Updating my tech skills

At work, I mostly am still using the same techniques, platforms, and languages I learned back in college and soon after. When I do programming it's most often in C and Visual Basic; I don't know the first thing about PHP, Ajax, Ruby On Rails, C#, Dot Net, and whatever's about to be hot next week. I have never had trouble doing the design, planning, development, and testing of a program, using the techniques we learned back then which aren't really that methodical or precisely defined, but which worked fine; I know nothing about Agile or Scrum, and even object-oriented seems like a refinement of encapsulation to me. I learned HTML by looking at web page code, reading documentation, and experimentation, but I don't know how to develop in Flash or Ajax, never really did more than dabble in CSS, and know almost nothing about the differences between various versions of HTML. I've read about XML and used it in a few things, but I never quite got how it's game-changing, not in a way that I can connect back to an actual application. I have only dabbled in Sharepoint enough to see how it can be huge, but not enough to get a solid idea how to make it that way, or where we'd use it. And so on.

Once in a while I get a chance to explore something a little newer and refresh my skills, but it happens very, very rarely. I'm usually just so busy keeping up with the stuff we're doing now that I can never spend time on going to classes or reading books. There's always too much to do.

But in the rare case I am able to explore something more up to date, the real problem I have is that I never get to apply it, so it slips away. For instance, years ago I did a self-directed course, as part of getting my bachelor degree, on object-oriented programming theory and practice, in which I did some coding in Java that was designed to explore how its object-oriented design differed from working in earlier procedural languages like C. But I've never had occasion to do anything much with that since. If we can't put it to use at work somehow and it doesn't get used in a project at home, it tends to melt away under the harsh light of my everyday level of being busy.

I'm already struggling at work to find ways to get more modern technology into our systems just because we need to move away from the old legacy stuff we're saddled with, but due to the perpetually increasing imbalance between resources and demand, we're doing it by doing less and less development, and more and more use of third-party, already-completed systems. About the only place I've found the thin end of a wedge is Sharepoint: I'm working on learning how to work with it so we can use it for various projects, but time has been scarce. But when am I ever going to have either the opportunity to learn something like PHP or Agile or Dot Net or Ajax, and the chance to use it, when we can't even find time to buy new systems, let alone develop them?

Maybe what I should be doing is spending more of my off-work time to both study and use these more modern technologies. I wish I could find a way to fit that in with things I already want to be doing, because my project list is already too broad to be adding something big like that into it. Then again, maybe I really shouldn't be worrying about it.

1 comment:

litlfrog said...

This gets pretty quickly to a matter of prioritization, I think. It might be time for a fresh look at that project list and think about whether some things should be dropped due to constraints of time, energy, and fulfillment. I know I feel really jazzed when doing even the minor bits of computer languages and web design that I've learned.