I Know Nothing

See, I know nothing! — Manuel

I distinctly remember being 17 years old, I’d just finished re-launching a site for a charity I was involved with1, and I confidently declared that I knew all there was to know about building websites. And I believed it.

At the time, I was building sites in PHP, and like every other 17 year-old learning PHP, I’d built entirely my own system for managing the site.

I’d experimented with Flash. I knew some JavaScript, and was reasonably proficient in PHP (a skill that has since been burned from my brain). As far as I was concerned websites were just combinations of text, images and some degree of interactivity, so I could do anything that was possible.

It seems ridiculous now, of course. I didn’t know anything about caching, didn’t know a thing about HTTP, or load balancers2, or deploying properly (apparently there’s something wrong with copy-pasting files around to live servers).

Aside from a few years’ more experience, two important things have changed: I no longer work alone, and I’ve been training, from time to time.

Working alone

Working alone meant I was always the smartest person in my team. My ideas were always the best, and I was always the one to fix my mistakes. No one ever disagreed with me, no one ever had a better idea, no one ever pointed out why my idea was stupid.

All that changed when I finished university and started work - people pointed me at ways of solving problems that were in categories I’d never even heard of.

I started participating in Stack Overflow, and gave answers to questions where I thought I could. Sometimes the answers I gave were good enough, sometimes other people posted better answers, and I learned[3. Stack Overflow was also a pretty good way to get better at writing, as others have said.].

All this is to say that I’ve learned how little I know by accidentally surrounding myself with people who know better. If you think you’re smart, chances are you just haven’t discovered all the things you don’t know yet.

Demonstrating my ignorance

It’s amazing how much you find you don’t know when you try to explain something in detail to someone else. It can start a whole new process of discovery. — Jon Skeet

A few of the training sessions I run from time to time at work involve live coding demonstrations. I open up Emacs, write some code, and then show it running. Invariably someone will ask me what will happen if I change a to b, and painfully frequently the answer is “I’d never thought of doing that, I’ve no idea”. So I make the change, run it, and I try to piece together what’s going on with everyone watching. It’s embarrassing, but maybe it’s good that I’m able to so quickly crush anyone’s misperceptions that I know everything about anything.

  1. Oxygen’s site has gone through several versions since I moved away in 2004 to start university. The wonderful Wayback Machine has a cache of the site from around that time. ↩︎

  2. I still don’t (since none of my various sites get significant amounts of traffic), but hey, at least I know the categories of things which I know nothing about. ↩︎