Learn Something New Every Day

Person reading

You can't stay relevant for over 40 years without learning new things.

In my first job in the early 80s, learning new things was a fundamental requirement to being a programmer—almost everything you did was new, both to you and often to everyone else. I started a habit of reading about new things every morning before I started doing whatever my job was, and I still do it today despite being retired from programming for a living (I make art now with it).

Knowing what is happening in the world of programming, what is new, what is fading, what is speculative—all these things give you an advantage over people who simply grind in their job every day. Programming for a living is hard, as everything changes constantly, and what was hot last year is often dead today. It's easy to get left behind, and while that isn't always a bad thing (someone has to maintain old code that is still necessary), it can leave you potentially obsolete.

Of all the people I still know who started programming in the 1980s, I am the only one still doing leading-edge programming at the end of my career (in my case, iOS development in Swift). Many people who learned nothing new discovered they could no longer work as programmers, entered management or even left the industry completely. New is so common in this industry. Ignoring it is not an option.

In the 80s, there weren't many easy ways to learn what happened since this was before the Internet, blogs, open source, computer books, etc. There were a few magazines and scientific journals you could read, but that was about it. Often you didn't even know anyone else doing what you were doing. Most of my friends did not own a computer and had little idea what one could do. So I had to be creative to learn something new.

I read everything I could, manuals, the PC catalog from IBM (helpful since I knew it better than the local salespeople, who called me for advice), basically anything interesting. I bought a C compiler at work despite working in Pascal and Assembly Languages because it seemed like the future. In the 90s, with the rise of the Internet and blogs, and the rush of computer books going into print, I started a regular reading session every morning. No day would start without some discovery, even if only a small one.

Over time, I began to see changes happening in the programming world when they were first visible and would experiment with anything that could be important for the future. In 1985 I read Byte magazine, which featured object-oriented programming (primarily Smalltalk). In 1988 I was able to add object extensions to C that I used to solve tricky problems in building Deltagraph. In 1999 I tried to convince my employer to switch from WebObjects to Java/J2EE by presenting to the entire company (I called it Alien Technology for some reason). Then I worked on our first project in Java for a customer. This happened because I read and played with Java on my own time. I was the first person I knew who tried unit testing and built several apps as Javascript single-page applications (and got yelled at by others who thought it was something I bought without authorization).

All of these things don't make me a genius; just someone who reads every day and tries out something that looks useful. Sure, you could wait until your employer decides what is important and just do your job until then. I've seen way too many people fall into that trap and discover their employer no longer needed them, nor any other. It's part of what your career as a programmer is about, always moving along the crest of the wave. If you make it a daily event to learn something new, you see what is happening over time, and seeing something worth studying more on becomes easier. Just looking every once in a while, or waiting for someone to tell you to do something, means you are unlikely to be able to distinguish real change from noise.

Previously in this blog, I always used the metaphor of a steam roller (the big machine with a wheel that flattens pavement as it is laid) driving directly behind your head—if you stop and decide you know everything you need to know, it runs you over. Don't get flattened; stay awake and keep your eyes on the future.