Neat Little Tricks by Anup Bishnoi

Why I love programming and always will

I finally figured it out. What I basically love about programming is that it involves higher-order thinking as compared to going about your life.

For example, using a product or website, or consuming content, involves first-order thinking. “Hey, do this”

Making a product or coding that website involves second-order thinking. You’re not issuing commands, you’re coding the behavior in response to the user’s commands. “Hey, respond in this way when that person tries to do that”

And because that’s what I like about programming anyway, as I’ve progressed in my career, I’ve consistently went for higher and higher-order work.

For example, Tooling or DevOps work is one further order removed from the product you’re enabling the person who is enabling the person to do something with the product.

Making Tools that Tooling or Ops people use is one further step removed!

God, will this fun ever stop? I’m not tired of programming, and if I keep walking up this chain

I don’t think I’ll ever be!

Of course, we simplify it greatly by setting protocols between the layers, so I believe the complexity doesn’t strictly keep increasing as we get further removed from the end user using the product.

In the domains that are already mature, and well-figured out, you can basically get by just by thinking about the next layer alone, i.e., your specific users, which is end user for product engineers, product engineers for platform engineers, and so on.