The Self-Improving Developer

A career in programming can look like this:

  • Learn C++ at university.
  • Obtain a Computer Science degree.
  • Get a job as a C++ Software Engineer.

But in most cases, it doesn’t.

[A]lmost 90% of all developers say they have taught themselves a new language, framework, or tool outside of their formal education. — StackOverflow Survey 2019

In most cases, according to my reading of the best science available to me, programmers kind of stumble upon their career.

StackOverflow data for

I’m one of those people. I did program from an early age, enjoyed building software in high school, and even went to get a Computer Science degree. But I abandoned that path, and became a journalist instead. Smart move, I know.

Well, code never really left my horizon, and in the years since I left the path, I still programmed and educated myself in the arts of software engineering.

Today, I’m working in Silicon Valley. I program every day, and teach others to do so, too. I’ve found the perfect niche for someone like me, a technical person with a knack for explaining stuff.

Programming has enabled me to go from a career of a potentially struggling journalist in a small European country to a person who can work and live anywhere, and even execute on some of the idealistic visions of his teenage years.

Don’t get me wrong: programming is not a get-rich-quick scheme. It’s hard and it’s one of those things that you can’t ever learn completely. But it is definitely an enabler, in today’s world.

This blog is for people who already taught themselves to program to some degree, but would love to improve their skills and their understanding of technology. It is an attempt to bridge the gap between the “I can write code” level and the “I understand reified types” level of software development.

I can send you a short email when there’s a new post

(You can obviously unsubscribe at any time. There’s also RSS if you’re old school.)

The name of the blog, if you’re curious, is a nod towards self-organizing maps, self-hosting compilers, self-replicating machines, and other cool self-* stuff.