As a contractor, I must serve two masters: the client of today and the client of tomorrow. I recognize that there are no guarantees for the length of any contract, and I must be prepared for a new client. That preparation includes keeping abreast of current technologies. (It also includes connections and business relationships, but that is for another time.)
The turn of the year is a good reminder to look ahead and identify technologies and skills to learn. Here's my list for 2011:
- Functional programming languages
- Dynamic programming languages
- Virtualization
- Programming for Mac OSX
- Conferences
- Cloud computing
- Fun projects that aren't necessarily client-based
First, programming languages. I'm convinced that functional programming will be the new big thing, replacing object-oriented programming. I've already started by using Haskell on my home PC. I also have a few old projects with Ruby, and I want to re-start them.
Virtualization has been a challenge for me, mostly due to hardware. My PCs are not-quite-enough to support virtualized PCs. In addition, the three virtualization engines that I attempted in the past (that was, um, two years ago) were not quite willing to work for me. Two years and several Linux upgrades later, things may be different.
I've attended conferences in the past, and I expect to attend them this year. I miss the "Software Development" conferences run by Miller-Freeman; they covered different technologies and vendors without a specific agenda. In their place, I find the open source cons educational and informative. I'm looking at OSCON, Open Source Bridge, and the Central PA Open Source Conference for this year.
Cloud computing is the up-and-coming thing, and I would like to examine cloud-based processing. Perhaps with Google's App Engine, or maybe Salesforce.com.
For the fun projects, I'm looking at a software and hardware. For the software, I'm thinking of a class to perform arithmetic operations that respect significant figures. The math for "sig figs" is almost identical to "infinite precision" math, but the rounding is different. I may create something in C++ and then port it to Java, C#, Python, or Ruby. (Or perhaps several!)
The hardware project will be an HP scanner and some OCR software. I'd like to scan some pages from old programming texts and try out the programs.
All in all, this could be a very educational year.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment