Reflections Upon Turning 40
Or: Now I Know Why Old Men Drink Scotch
When a man reaches a certain age his gaze turns more backwards than forwards. He ponders the value of what he’s done and the goals for his remaining years. Presumably that age is the midpoint of his life, when the years in front are exceeded by the years behind. Though I know I’m likely to reach well beyond 80 given the current trajectory of medical science; for me this age of analysis appears to be forty.
I will be forty years old at the end of the month and right on schedule I've entered a time of personal reflection. Perhaps it's the realization that my only son will be in full time school next year. He is no longer a baby. Perhaps it’s that I’m in the process of finding a new job, which is always a time to ask the question: What do I really want? And to answer that I must first consider: what I have already done.
I would look back at my first forty years, but it’s not really a full forty. The human brain is still forming for the first twenty years, I have few memories before age ten, and high school was a rather miserable experience. I don’t dwell on much before college except for being with family and my amazing uncle who taught me to program and problem solve. (And he is the reason my son’s middle name is Paul).
A child becomes a legal adult at 18 (in the US, anyway), so in a sense my ‘life’ in the context of who I am today only began about twenty years ago. This is an illusion of course. Every experience changes us.
I am no more the person I was at twenty than I will be at sixty. But… if we assume I am a spherical massless particle then the math works out very nicely. So let’s go with it and begin the first lesson:
Don't worry what other people think of you
Twenty years ago I was about to graduate college. I was happy for first time since childhood, as I was finally in a school full of other nerds like myself. Once I entered college I never moved back home; not even for summers when I wasn’t taking classes. I didn’t want to leave my new geeky bubble world. I felt like I found a new existence.
As a child I was happy living in my own little world of Legos and NES. I taught myself to program (with great assistance from my uncle), and would spend hours combing through the meager computer section of the library looking for things; searching for weird ideas to code up.
I once made a ‘graphical adventure game’ consisting of a 10x10 black & white maze and two monsters who would randomly attack you with colored keys. I built a 1bit Mandlebrot generator on a Timex Sinclair (2K rocks!), not understanding the math but hacking away until it worked.
My idillic childhood came to a crashing end at age 16. In summer camp that year I realized I was a geek and didn’t have any friends; and more importantly: for the first time I actually cared about this. This horrible realization kicked off fifteen years of low self esteem and poor dating choices.
I beat myself up for being too short (which I had no control over), too intelligent (which is a stupid thing to be upset about), and uninterested in “guy things” like football, cars, and beer. (Did I mention I grew up in the south?)
Only at the age of 30, when brought to my lowest point by life, did I accept that I was okay by myself, no matter what others thought of me. It is no coincidence I met my future wife a month later and my career shifted from work-a-day coder to forward looking engineer.
Only when I didn’t care what other people thought of me could I really be happy, and start doing the best and most productive work of my life. Why did I waste 15 years figuring that out? I would beat myself up about that too, except for the next lesson:
You have more time than you think
I rush to get things done, and if I’m not working on something I invent new tasks to do. This is still a problem I have, but admitting you have a problem is the first step. We all have more time than we think.
First to market is rarely the advantage you think it will be. You are far more likely to fail because of market apathy than someone else shipping first. An MVP is important, but not because you want to beat your competition to market. An MVP gives you real world feedback as soon as possible. Feedback and iteration matters more than absolute speed.
I’m working on some ideas to reinvent programming. I spend many hours researching the topic, both directly and indirectly. I’ll scour Hacker News and Reddit, filling up Evernote docs with links to read later. I search and search, but never slow down to read what I’ve collected. The answers I seek won’t come from finding more links. It will come from spending time to actually think about the problem, and letting my brain percolate. I still struggle to do this, but I’m trying.
Good work takes time. A lot of time. But that’s okay. I’ve got more time than I think.
It is very true that 90% of your stuff will be a failure, and which is the good 10% is hard to predict. My advice is to just follow your gut and follow your dream. If you think something is important, then work on it; don’t worry if anyone will use it or think it’s cool.
Nothing is good the first time
All good things, even if they seem to spring whole from Zeus’s forehead, are actually the result of endless iteration. I’ve built at least three visual drawing tools. I’ve rewritten graphics toolkits over and over. Who knows how many baby raytracers and sound visualizers I’ve built.
Why do I build the same thing over and over? I'm not entirely sure, but I know that each time through I learn something new. I keep getting better.
Last night I re-read Alan Kay’s “A Short History of Smalltalk”. His team rewrote Smalltalk from the ground up at least four times throughout the 1970s and 80s, and they are still improving today in the form of Squeak. Iteration is good. Reinvention is good. You have time. Kay called it: “Let's Burn Our Disk Packs”.
There's never an excuse for being an asshole
Even if your ideas are incredibly good, there's no excuse for treating other people badly. In fact, the adoption of your ideas is often directly proportional to how you treat others. I’ve seen huge resistance to good ideas simply because they were espoused by people who were jerks (not naming any names). A form of guilt by association I suppose.
If you feel like being an asshole to someone, then stop and ask yourself why. Do they really deserve it, or is there some other reason you are upset? Is there something deeper that needs uncovering.
Maybe you feel rushed. While it may not seem like it, there is always more time than you realize. I connect with people at conferences more by staying after a session to answer questions than I do during the actual talk. In the end, people are the only thing that matter, so be nice to everyone.
Perhaps the best reason to not be an asshole, aside from general human decency, is that you might be wrong someday. Whatever you feel is right, and justifies being an asshole to the other guy, might turn out be wrong. There might be more information that you didn’t know. Or you might simply be on the wrong side of history.
It’s a lot easier to admit being wrong when you weren’t an asshole before. In the distant future when robots and octopuses are granted full citizenship I hope the people who called me a speciesist will forgive my failings because I wasn’t an too much of an asshole.
Nothing is new and that's okay. Do it anyway.
I often work on ideas that could make programming better: new languages, new runtimes, alternate encodings, visual editors. When I think of something new the first thing I do is research what people did before. All to often I find the original idea dates back to the 1970s or earlier. This can make me quite depressed. Either I’m not being original enough to invent new things, or the industry simply won’t accept good ideas and we are doomed to reinvent the same things over and over. Perhaps it’s a bit of both. But that’s okay!
It is perfectly fine to reinvent the wheel, as long as you learn something. No matter how good an idea is it can always be improved. And maybe those good ideas from the 1970s were simply too early. Great innovation can come from shining new light on dusty old ideas. Maybe the time is right and you will be the one to make it popular. At the very least you’ll learn something new.
So go dig in to literate programming, the insane non-ascii language of APL, and the hypertext ideas of Vanavar Bush. Learn LISP and Smalltalk, then learn the lessons of why they didn’t catch on. An idea itself is never the important thing. It is merely a seed. What makes it grow is the fertile ground of your mind to give it nourishment. An idea on paper is meaningless. Ideas only matter when they are used by real people.
The most important thing you will ever do is share your knowledge
I’ve said this before and I’ll keep saying it: the difference between chemistry and alchemy was the sharing of knowledge. Alchemists hoarded their secret knowledge, chemists published. The only knowledge worth knowing is the knowledge worth sharing. This applies in every facet of life, from professional speaking to raising children. Giving a child a passion for learning will carry them through every other challenge in life.
When I look back at the last twenty years, I think I’ve done okay. I went from being a corporate coder to a good (but not great) engineering and spreader of knowledge. Despite the fact that most of the projects I’ve contributed to were failures (JavaFX Script, JavaStore, webOS, countless internal Nokia projects), I’ve always learned something and I’ve always tried to share my knowledge with others. Hopefully I’ve made the world a better place — if only in the tiniest, most minute way.
In the end, I think that’s why we do what we do. We want to change the world a tiny bit, and in doing so ensure that people will remember us when we are gone.
Oh, and regarding scotch
Scotch is expensive and an acquired tasted. You don't chug it down to get blasted. You sip it carefully, savoring every molecule. You appreciate the terroir of the environment where its ingredients were grown and the care of its hand crafted production. Scotch is the essence of growing old gracefully, of working smarter not harder, and truly contemplating the world. You should fetch a dram.