When I was young, my father never used to play football with me. We never played rough and tumble games together, or watch sports on TV, or do any of traditional, manly, sickly-sweet "father-son bonding" rituals. We still had a close relationship, but one based around a shared common interest - technology.

I have been around some kind of computer for almost as long as I can remember. It was Christmas when my father bought me, aged seven, a Commodore 64. This would later be upgraded with extra bits of hardware, and finally traded for an IBM PC. But it was the humble Commodore 64 that sparked my interest in computing, together with my dad.

At first, being young, I just used the machine to play games. My mother hated the thing. Something about a father-son team, sat for hours in front of a TV screen playing Thomas the Tank Engine and a lively game named Guts just didn't agree with her. But play we did, and I had a great time. Whilst I was tucked away in bed, my father taught himself to program in the Commodore's native BASIC. Eventually, he got very good at it, and despite the shortcomings of the language, started to write games and hideous "edutainment" tools to help me with my school work. I remember one program featured a spider, and a large anvil. A quizmaster would ask multiplication sums (always my weak spot) and only a correct answer would save the spider from impending squishiness.

Dire as they were, they were games, and games made up of nothing but something called code. Something you could make yourself, and more importantly, something my own dad could understand. I was fascinated by the pages and pages of text. It seemed so complex and powerful, and to be honest, I was a little daunted. But I desperately wanted to be able to make games, so my father started to teach me BASIC. He would write little example programs for me to dissect with his help, and we typed in vast programs printed in Commodore magazines, like Commodore Format. He would set me increasingly complex challenges: a dice simulation, simple ASCII animation, controlling sprites, using the joystick. Before too long, I knew everything he did.

Fast forward a year or five. The Commodore sat unused in a cupboard, and now we have a top of the line PC, running Windows 3.1: the best part of being a second generation geek is that the higher earning first generation geek is only too happy to spend money on gadgets. Whilst my dad set to work on learning DOS, I carried on playing with BASIC, only this time it was Microsoft Quick BASIC, and I had to learn how to use functions and subroutines.

Leap forward again, and again. Every few years would bring a new PC or gadget, and we would start learning all over again, always talking, and always alienating my mother and poor sister. She never got the chance to be a daddies girl, we always had our heads down in the bits, hacking away. We've learnt BASIC and DOS batch programming, how to tame most flavours of Windows, networking, HTML, PHP, mySQL, Visual Basic and a whole host of other computer stuff along the way. But we've always done it together. We have a solid ten years of tinkering behind us, and it shows no signs of stopping. I don't want it to. I want to be able to show my dad my latest little hack, or to argue with him over the relative merits of one language over another. He's still better than me at programming, and can often see the answer in the simplest way after only a moment's thought.

One day, sometime in the future, maybe this second generation geek will have a geek of his own, whose father and grandfather can teach him or her BASIC or C or whatever language we're using by then. If my own geek is as happy "geeking out" with me as I am with my father, I would be very happy.