This is about me and my quest for, er... greater things in life? Good food, good drinks, friends and family and my eternal quest to figure out what I want to do when I grow up. (hint: it's probably going to involve code)

Saturday, February 7, 2009

How to learn

I’m going to Austin, TX in two weeks for a job interview where I’ll be asked to demonstrate my coding skills. Now, I’m the kind of guy who’s always humble about his talents. I mean, I grew up surrounded by people with mad hacking skills! They were doing object oriented programming, developing games and creating resident programs to allow us to use the mouse in the school lab when I was still trying to figure out how to program in Pascal.

Later, in College, those guys were rewriting C compilers, just for fun or putting in place a networked messaging system for their Quake-like gaming engine.

Great. I was having trouble balancing a binary tree in C++.

Okay, I’m selling myself a bit short here. After all, I did program a photon mapping engine and an image-based renderer. But we all know these guys. You know, like the one that created Linux in his spare time? These guys can make you seriously doubt your own skill set. On the other hand, they represent only 1% of all programmers so maybe I should really see how I compare to the other 99%. Well, not too bad, I suppose.

The key here is that they knew things I didn’t. They practiced when I wasn’t. So I’m a bit to blame here. However, I’ve recently taken back the “student” mantle and tossed it over my shoulders.

Learning

Here is a great article about learning and understanding. Go read it. I’ll wait.

Okay? Wasn’t that interesting? I mean, I knew practicing was part of the whole equation but I had never looked at the whole learning process like this before.

I’ve decided to put it into practice for the interview I’m going to. I’ve been reading a lot (and I mean *a lot*!) about being agile in the past two years without having the chance to put it into practice where I work. Well that changes now. I vowed to my interviewer that I would learn some Silverlight and show him what I can do. Thankfully, I’m already at the practice stage here since I’ve played with it in the past (a good thing for me since Scott Guthrie’s tutorials are a bit outdated and you’ll have to figure out a thing or two on your own.)

It might be backwards, but I’ve been mixing the learning stages a bit. For example, I’m reading the DDD book and creating domain models as I go, practicing without knowing everything. Same with BDD; I jumped into rSpec on a ruby on rails project without even knowing how it works.

I usually tend to jump into it and fight my way out. But this path can be frustrating to follow, with too much stuff on your plate all at once.

My Goal

I’ve decided to build my Silverlight application using BDD and DDD, two subjects I’m currently studying intensely.

However, I will start by practicing the technologies and practices in isolation, so as not to be burdened too much. I’ve already been going through some Silverlight tutorials. Next, I’ll learn MbUnit and develop a domain model for my app with it. Finally, I’ll create the UI layer with Silverlight. I have 13 days, a wife and two kids. Can I do it and manage to impress a potential future employer?

0 comments: