Picking a project
Ferdy Christant has an article titled Learning Strategies for Developers. A very good read.
Something he touches on which is quite topical for me, is this:
There is so much out there to learn, and only so little time to do it. You will need to make choices. I solved the puzzle as follow. First, I split my learning needs in two parts: professional needs and personal needs. The professional needs I consider the most important. I have bills to pay, if I can't, I cannot continue my way of living. Personal needs I consider important as well, but are mostly targetted towards fun and the expression of creativity.
I'm happy professionally, but I've battled a bit with the personal needs part, mainly because first from accounting to IT, and then from Notes to more mainstream development, I've always had the 'how do I get there?' fear, where everything I did in my own time, when I got to do it, felt like it had to be strictly aimed at gaining skills which would allow me to 'break in' to the kind of career I wanted.
It was only last year, really, realising that I was in a comfortable and fairly future-proof position career-wise, that I started to indulge myself, and tried to get over the idea that working on things that weren't strictly career-focused was wasteful. Sure, you have to put in the hours on technologies and skills that keep you employable, but it shouldn't take up every last minute of your free time. I still battle with the idea that the goal of a personal project can be fun and creativity, nothing more, and that those are worthy goals in their own right.
The question, then, is what to do to satisfy my 'personal needs'. There's just so much, and last year I dabbled in all sorts of things, but made no real progress with any of them. I tinkered with some OpenGL programming, and de-rusted my C++ skills. I played with C. I hacked up a poorly-performing xscreensaver module that bounced a ball around the screen. I did some Linux kernel tutorials and captured interrupts and klogged them (and let's be honest, a SCSI driver isn't far off once you've done that, is it?), I started working my way through some of my Unix programming books and wrote silly little network apps and played with processes and signals and stuff, and for the third year in a row I started to play with Eclipse RCP before getting side-tracked.
Problem is, I had no sense of accomplishment from anything because I didn't go far enough with anything. Studies and moving (and Eve Online) got in the way, but the truth is I lacked focus: everything was interesting, and I couldn't pick one thing and stay with it. So this year, once I'm past the Jan/Feb exam rush, I want to pick one personal project, and set some goals about what I want out of it, and then make it happen. Once I'm done, I'll move on to the next thing.
So, what to choose? I've been mulling over this for a while. As Ferdy goes on to say:
With your personal needs, it is wise to also follow market movements and trends. This way you can combine the fun factor with something useful for the future.
That's very wise, and to an extent I did that first with my blog app and then with my half-baked Eve Online market app, but being sensitive to the frivolity:guilt cycle, there's part of me which is inclined to pick something completely removed from what I do at work. I'm not sure.
Not much of a conclusion to a blog posting, but since exams are just around the corner, there's no rush. My efforts last year were rather schizophrenic at times, and I never blogged about them simply because I knew I was all over the map and had nothing useful to say about them. If you're on to something, it's usually less embarassing to blog at milestones than blabber before doing, in case you don't finish. Maybe the flipside will help me focus: pick a project, and then force myself to jabber about it so that I don't wander off in a million directions.
{2007.01.10 09:37}