Tyler Smith

I'm an applications programmer

Programming is a maze that's easy to get lost in. There are so many technologies, techniques and tools competing for our attention at all times. It's hard to know what to focus on; it's all so interesting! Every now and then, I get lost while exploring my options.

I recently took an interest in Go. I'm not even interested in learning Go: I just want to understand what problems it solves. I subscribed and listened to Changelog's Go Time podcast, watched a bunch of YouTube videos, and learned the basics of what systems programming is about. I learned the high-level differences between TCP vs UDP. I learned that Go is syntactically simple. I learned that you can create Go Docker containers without a base OS. That's about all I learned.

It's easy to get deep in the weeds like this. I've occasionally even toyed with the idea of building a JS library for React, because the world definitely needs more of those.

But after I lose a week to these explorations, eventually I come to and ask myself, "What am I doing?"

I got into programming because I wanted to build things that non-technical people can interact with. I don't get excited about building low-level tools.

It's good to learn about different languages, and it's good to learn about parts of the system under and adjacent to the applications I build. But it should be with the intention of using what I learn to create cool stuff for users.

I'm not a network engineer. I'm not an operating system architect. I'm not a DBA or CI/CD tooling specialist. I'm an applications programmer. This is my North Star.

I think it's important for those of us who code to discover what part of the stack they find interesting. This knowledge doesn't prohibit us from going on interesting sidequests, but maybe it'll help us distinguish what is a sidequest vs what is working towards a bigger goal.