Please note that I don't update this web site anymore. You can visit my new personal blog at

All I Want Is To Kick Ass

Friday, August 5, 2005

Kathy Sierra, over at Creating Passionate Users, regularly talks about making your user feel like he or she is kicking ass. Suppose you find some application that lets you do something that was notoriously hard before. Now you have found a way to master the problem and you think: I kick ass! Of course, it's the software that makes it possible, but that's not what matters. It's not about what the software can do for you, it's about how the software makes you feel.

The kick ass-feeling plays an important role when learning something new. At some point, you discover that you now understand things that you didn't understand before or you have learned to do something that couldn't do before and you think: I kick ass! That's what makes learning fun. If you are a teacher or in some other way involved in designing a learning experience, make sure your students get this kick ass-feeling early and often.

A good friend of mine has been trying to get me hooked on Haskell for quite some time now. He kicks some serious ass with Haskell, so of course he is advocating the language to others. I've followed his instructions and learned the basics. I've seen what the language can do and it's impressive, but I haven't kicked ass with it yet, so I'm not hooked. We are now trying to find a kick ass Haskell-project for beginners, i.e. for me.

When you learn a new language, it's always wise to try and start with a kick ass-project. This can be hard to do on your own, since you don't know the language yet. Fortunately, just about every programming language out there has a community that can help you find a suitable project. If you prefer to find a project on your own, though, I suggest you start searching the library documentation and not the language specification.

Some languages are discouragingly hard to kick ass with early on. C++ is such a language. Most books and tutorials on C++ start you off with some excercises in basic mathematics. Not to teach you mathematics, mind you, but to introduce every single programming construct the language has to offer and, if the course is good, to teach you sound design principals. Now you can swing your leg upwards perfectly, but what's the use if there's no ass to kick? The only way you can offer first-time C++-programmers a kick ass-experience is by choosing some non-standard library that provides some interesting functionality. Do make sure you have the build steps properly preconfigured; first-timers shouldn't be bothered with such boring stuff.

Other languages make it easy to kick ass early. When I first tried out Python, I didn't need anyone to suggest a kick ass Python-project to me, because the libraries that come with the language are just so full of potential. On my first try, I wrote a script to upload files to an FTP-server in only ten minutes. Man, was I kicking ass! Just ten minutes to do something cool in a language I had never used before!

Maybe we should build a 'How to kick ass with...'-database. :-)

Back to blog index


GBGames says:

I had a similar experience when using Gnu/Linux for the first time. I was still learning so I had someone more knowledgable pretty set things up for me. All I had to do was use it, but while I could see the benefits, I just wasn't prepared for it. So I started over from scratch. Installed the system myself. Every piece of software on the system was there because I put it there. Eventually I had a webserver, ftp server, ssh server, and had turned the machine into my jukebox so that my at-the-time main Windows system wouldn't have memory leaks that only happened when I played music for hours at a time. I was kicking ass. That database actually sounds like a good idea. Maybe suggest it to Kathy?

Friday, August 5, 2005 7:50 PM

Tell me what you think

Since I'm not updating this site anymore, I disabled comments. You can visit me at my new site: