Saturday, March 28, 2009

Professional Development

Back when punch cards ruled and dinosaurs roamed the Earth I knew going into programming would mean almost constant development of my skills.

The technology is always changing - MS-DOS to Windows to Web to Web 2.0. Simple compile & run to fancy IDEs (integrated development environment). Objects to dynamic and functional languages. Even just different languages - my old job switched from Visual Basic to C# when we switched to using the .Net framework. The Pragmatic Programmer recommends learning a new language every year (among other things). As they point out - it gets you to think in different ways.

One of the big problems with any kind of education for programmers is good projects. The infamous 'Hello World' program just does not cut it anymore even as a first attempt at getting something to run. Some of the projects in books are OK for learning the basics of a new technology/language. Most, however, lack depth. Programs like Baby Smash give a little more to chew on and has the right size in my opinion.

Still, as I have gotten older sitting around writing code as an academic exercise just to be tossed out has lost a lot of appeal. Especially when I am not getting paid :). Don't get me wrong, digging into a DLL or other system on my own time that would benefit my work time is useful. But when I am just looking to exercise my brain it would be useful if I could work on something that would benefit me at home as well.

Project size has always been an issue. Too often I start down a path, the project grows (hey, just like at work!) then I get bored and move on. That or I get to a point where I cannot move forward and abandon the project. Moving forward may mean new hardware (not my strong suit) or the time investment does not seem worth the eventual payoff.

I have been reading about Casey Chesnut's eva project. Eva is a speech based virtual assistant, to quote the project site. I have to say there is a lot there to like. Casey has an interest in ubiquitous computing, something I find interesting but had not explored. Home automation was something I have always had a little interest in, but just never got around to exploring beyond setting mom up with some X-10 switches when she was on a walker.

Still, how to make something along the lines of Eva useful to me. Being a bad programmer I do not have a server setup at home. Yea, I know, hard to believe. I have no X-10 interface for the computer. Being out of work I am not sure this is the time to rush out and get a server & other hardware. I do have an old PC sitting around. Windows ME no longer works on it and I was going to scrape it out. The hardware was fine, it just needed paved over with a fresh OS. It might be able to take Windows XP if I upped the memory. It might be able to take Vista, except there is no DVD drive. I have thought about putting Ubuntu on it just for fun. Not sure how much time I would get to spend with it though.

I have a couple of little projects to explore in C#, maybe even in Ruby. After I clear them up I hope to start on something along the lines of Eva.

No comments: