Pragmatism vs Idealism

cover

I thought of the title of this article, then it gave me huge Fitter Happier vibes, at which point the cover had to happen (source). Anyway…

Over the last few months, I’ve been watching more and more videos by Theo Browne and ThePrimeagen. Although their content and opinions on web dev topics are not identical, something in common drew me to these channels: they have strong and detailed opinions about programming and programmers. You may be following them or seeing similar discussions on Reddit or wherever else.

That kind of content compares languages and frameworks, argues why one thing is better than the other, discusses (or questions) paradigms and best practices, and busts misconceptions… All for you to become a better developer and choose better tech stacks for your use case. That’s idealism.

But I can’t spend my whole time like that! Not in a job of developing software with a team for a business that wants to ship products and make money. In that situation, I have to pick popular and in-demand technologies, not pristine but obscure ones. I have to write code fast and possibly cut corners to meet deadlines, sometimes at the cost of code quality. That’s pragmatism.

So, which one is right? Well, let’s overthink it.

Think Continuum, not Binary

Many things in life aren’t just black and white but rather infinite shades of gray between two extremes, and this topic here is no exception. We only get to choose which direction to walk towards. So, looking in the direction of idealism, these guys are so ahead of me. They really know what they’re doing and why they’re doing it.

Me? At this point, I don’t have that much experience. If I’m building something for my job, I go for popular frameworks. There are lots of new challenges, and I stumble my way out of them. I make uninformed decisions with software that will go out there for people to use. If I shift towards idealism, I would say my very own work is unacceptable! So, I’m staying closer to pragmatism.

It’s not Impostor Syndrome (I hope)

Was that too negative to say about myself? Am I falling into Impostor Syndrome? The way I see it, not really. Inexperience doesn’t mean I’m a fraud. It just means there are better programmers than me, and I look up to them. Plus, these negative things I said earlier don’t prevent me from continuing to learn and develop. I’m only trying to position myself in terms of skill with minimum bias.

To be honest, though, getting sucked into discussions like that might risk falling into Impostor Syndrome, or at least feeling bad about using a technology others think is inferior. So be careful if you watch that kind of content. If you are happy with your choice, don’t let the internet’s negativity about it discourage you and just stick to it.

Which Way to Go

Hopefully, I painted a clear picture of the situation by now and pinned down where I am in that picture. But where to go from there? Again, like many things in life, it depends!

I believe personality plays a large role in the matter. Some people are just born idealists, and I consider myself one of them. I think coding is part art and part science, and I am doing my best to perfect both parts. I explore new languages and paradigms (at the time of writing this, I am trying Clojure) and tweak and tinker with everything including my workflow, editor shortcuts, themes, etc. I am always looking for better ways to write code and to think about code.

Some personalities work quite the opposite. They’re completely fine with a decades-old technology as long as it “gets things done.” They pick the popular options, and that gives them an abundance of code to copy from StackOverflow and ChatGPT, rarely having to write anything themselves. They do get things done, and they do make money. They never once worry about pure functions, clean code, or technical debt.

Still, I believe that no matter what personality you have, different situations will require different mindsets, and you need to be flexible so that you can be as pragmatic or as idealistic as the situation dictates. That will make your life less painful when things go against your preference, and they will from time to time. I try to be as pragmatic as possible in the job, even if it’s against my idealist personality. But I still try to go the other way on my own, and maybe that’ll help my job eventually.

Conclusion

I presented a dilemma, and I solved it with the best answer ever: “It depends!” Kinda perfect for this kind of topic, right? So, this concludes my overthinking. Maybe you have similar thinking already, and maybe that was some new food for thought for you. In either case, feel free to share your take, and thanks for reading!