Architectures endure; technologies come and go
Technologies are fleeting: invest in mastering architectures, paradigms, and methodologies, which will serve you throughout your life.

Technologies are fleeting
Technologies are important: in the end, a front end does get written in React, Angular, or Vue. They serve us well; we love them; I love React.
But sooner or later, nothing will remain of them.
Am I being a Cassandra? No: it’s simply that React, Angular, and Vue are the technologies of today. In 5, 10, or 20 years, others will prevail. They will draw inspiration from and build upon the ones we know today, but they will be different.
Yet we have every right to expect a properly written application to still be around 20 years later.
The Importance of Software Craftsmanship
Because, yes, readable, well-tested, and modular code can be refactored indefinitely. Just as the cells of the human body renew themselves while the individual retains their identity, an application’s code could change entirely without altering the service it provides. We know the importance of refactoring methods.
On reflection, this isn’t really anything to get excited about. It’s an observation we can make today simply by switching frameworks or libraries. But let’s be honest: applications capable of weathering such a change aren’t exactly common. How many applications survive beyond 5 years?
Hence the importance of software craftsmanship: its values and practices. Domain-Driven Design, Test-Driven Development, Functional Programming, refactoring methods… Not to mention operations, which are the cornerstone of teamwork and Agile, and for which Extreme Programming had already laid the groundwork.
Invest in the Fundamentals of Software
Are you a young (or not-so-young) developer? The best investment you can make is to learn the fundamentals of software: methodologies, architectures, paradigms, and patterns, the “underlying” aspects of programming.
They don’t change every other day. Master them, and you’ll easily tackle any new framework or library, because you’ll be able to relate it to foundational concepts that are already familiar to you.
A new front-end framework just came out? No problem. Here are a few questions to ask yourself:
- Since all technologies claim to do everything under the sun, what does this framework actually do?
- In other words, what problem is it intended to solve? What is its intended use? How does it differ from the 400 existing frameworks? Is it the rendering speed? The developer experience?
- How does it work? Does it use a Virtual DOM? If so, we’re dealing with a declarative paradigm.
- Library or framework? Library = I call you; framework = you call me (inversion of control).
- What patterns are at work?
- Who’s behind it? What community?
- Etc.
You get the idea: investing in the fundamentals of software means gaining a broader perspective that will make you so much more adaptable. Work on them in depth, and new languages and tools will seem strangely familiar to you.