Nick Ang profile picture

Nick Ang

Remember why you are programming

spectacles sitting in front of a laptop focusing text on screen - remember why you are programming blog post banner Photo by Kevin on Unsplash

As a programmer, you probably get a little carried away once in a while. You know, getting engrossed in the sophistication of another developer’s implementation, be it beautiful or ugly (or both) and having an engaging conversation with your colleague about it. Yeah, I can tell you know what I’m talking about!

But I recently realised that that can sometimes happen at the expense of good user-centric development.

Today was one of those days for me - I’d been spending the past 2 days figuring out how to incorporate Jest into our growing code base so that our team can start writing unit tests for our JavaScript functions and, yes, React components. As it is with integrating third-party packages, it’s been a rollercoaster of self-loathing and triumph.

Jest has a fascinating feature called ”snapshot testing” that I’d been testing out. From what I can tell so far, it is going to do wonders for our team by automating React components testing.

So I got a little carried away discussing the details with my colleague HS about how all of it worked, and how amazing it is for the people at Facebook to have come up with this… and so on.

As this was happening, I noticed our friend Esther from another company was sitting next to us, and there she was, politely waiting for us to finish our “engineer talk” (emphasis mine) before attempting to make conversation.

Because our friend wasn’t an engineer (she’s a business developer and community manager), she had no idea what we were talking about.

But that isn’t a problem - the fact that I had been talking with HS about something so deeply technical is.

It made me stop to think: What’s the point of us talking about all this again?

My answer was this: we’re talking about this so that we can develop better products, which is ultimately meant for the user, to solve their problems.

So, if what we’re doing is for the users, why was Esther disinclined to even try to understand what we were talking about? The topic was, after all, incredibly fascinating (at least to us)!

That was the moment when I was reminded that programming is ultimately just a means to an end, even if it can sometimes be beautiful, even poetic when done well.

It’s as Dan Abramov (co-author of Redux and FB engineer) says in his bio: we’re “(b)uilding tools for humans.”

The hack to remember

If you buy this line of thinking, then you’d probably need a way of bringing yourself back to your purpose as a programmer from time to time.

My little hack? Try as best as you can to spend more time with friends and colleagues who are UI/UX designers, community managers, customer service reps, and product managers.

Ask your acquaintance from the other team if you can join him for lunch. Or if you’re in one, ask someone from another company who works in your co-working space.

Surrounding yourself with a mix of people from different functions will provide you with the constant reminder you need to remain true to your purpose as a programmer - to make tools for humans.