The Copy-Paste Mindset
As we head towards the end of the year, an idea that has been lingering with me for quite a while sprang right back into my mind. I could never fully grasp it, feel it, or articulate it correctly.
But today - one day after a presentation about HTMX by one of my colleagues - it finally clicked.
The box
Throughout history we have become more technologically advanced. In recent years, the consumption of content in all its forms have reached its peak. All but the oldest people in society are consuming digital content in one way or another. Some of us consume the most obvious forms of content like being on TikTok or Instagram, while others consume content like certain podcasts, forums or books. Most of it is related to one certain subject, one certain niche. So much that we, unconsciously, begin to identify with it.
The funny thing is that we tend to despise “the other side”, while simultaneously doing the same thing - but just in a slightly different way.
Because of this, many of us have unknowingly been developing a copy-paste mindset. It’s hidden in plain sight, but visible, as what we consume impacts everything we produce. People unconsciously categorize themselves into subcategories and everyone in those subcategories read, think and look the same. But not exactly the same.
It’s kind of similar to equality in JavaScript 😉:
[] === []
> false
[] == []
> false
[] == ""
> true
Out of bounds exception
This categorizing everything into strict borders that should not be crossed does not stop at the content we consume. This is exactly the current trend in software engineering as well. Instead of merely being proficient software engineers, we now categorize ourselves into increasingly narrower categories. We all tend to cling to our increasingly smaller niches. We went from being software engineers, to frontend/backend engineers, to React or Spring Boot Developers. We focus on information about a very specific niche (often a single language or framework even), which causes us to fail to look beyond the borders of said niche.
And to keep our precious job titles as specific as possible we welcome complexity.
Let’s go virtual DOM and Redux! Let’s just build two applications instead of one because that really helps our customers!
It is a fundamentally flawed idea that we’re now slowly coming back from, tail between legs. Some of us just don’t realize it yet.
The goal of software engineering
Why are we, as a community of engineers, not thinking about delivering value as our first priority anymore? Where is the so needed curiosity to learn new things you know nothing about, instead of iterating on the same old problems using slightly different solutions?
Are we, as the engineering community, slowly creeping into a fixed mindset?
What’s stopping us from learning about servers, other languages, hosting, cloud, frontend, backend, CSS, animations, design or software architecture - all at the same time? We have the best learning materials ever available at the tips of our fingers, often for free! And then there’s people convincing themselves (or even worse: others) that you can only become really good at one of them 😆.
It’s better to stop identifying with your precious programming language or framework. Learn from concepts and languages you have yet to learn. Preferably from people you currently think are crazy to work or think in a certain way. Learn from those you think you disagree with.
Because it’s all going to pass. Your cherished library, framework, or language will be replaced. Even Java, C# and Python will become the COBOLs of tomorrow. We just don’t know when yet. The only thing that will stay the same are the concepts you learned along the way.
And there will always be a maximum amount of useful concepts you can learn in a single niche.
Don’t allow yourself to be enslaved to a small niche, because only then you can’t be copy-pasted when the moment of real change arrives.