Stop learning frameworks
December 2018 · Riga, Latvia · comments
We are developers. We need to stay up to date with technology. Every day, we learn programming languages, frameworks, and libraries. The more modern tools we know — the better.
Keeping up to date with Angular, React, Vue, Riot, Ember, Knockout is fun.
But we are wasting our time.
Time is the most precious resource we have. Time is limited, nonrenewable and you cannot buy more of it.
Technology, like fashion, is changing at the speed of light. To catch up, we need to run very fast. This race has no winners because it has no end.
My mentor once taught me a lesson:
Mentor: “Ed, what are you doing?”
Me (proud): “I am reading a book about building modern Java apps with GWT.”
Mentor: “What for?”
Me: “As a Java developer, I need to keep up with trends. GWT is a thing.”
Mentor: “What technology book did you read before GWT?”
Me: “It’s a 500-page-long Apache Tapestry book. Tapestry was a thing.”
Mentor: “Is Tapestry still a thing?”
Me: “Not anymore. GWT is a thing.”
Mentor: “Can you re-use Tapestry skills to solve current problems?”
Me: “No, no one is using it today.”
Mentor: “Does Tapestry knowledge help you understand GWT better?”
Me: “No, it doesn’t. But I see some overlapping patterns.”
Mentor: “It’s Design Patterns. Do they help you solve current problems?”
Me: “Yes. Many of them.”
Mentor: “Technology come and go, but it has a lot in common. Set priorities right. Invest 80% of your learning time in fundamentals. Leave 20% for frameworks, libraries and tools.”
Me: “Hmm… Only 20% for frameworks, libraries, and tools?”
Mentor: “Yes. You’ll learn them at work anyway while solving problems.”
Mentor: “You’ll thank me later.”
This advice has changed my life. I removed all framework books from my bookshelf. The guilt pile shrank from 50 to 0 books. What a relief!
I bought a set of evergreen books. These books took 80% of my learning time:
- The Pragmatic Programmer
- Clean Code
- The Clean Coder
- Domain-Driven Design
- Growing Object-Oriented Software, Guided by Tests
- Continuous Delivery
Check out the full list here.
I also bought a single book on the current technology. The Lindy effect suggested that Spring Framework must be a good investment:
The future life expectancy of technology is proportional to its current age. Every extra period of survival implies a longer remaining life expectancy.
The longer a technology is on the market, the safer investment it is.
Don’t rush to learn new technology – it has a high probability of dying.
Time will show which technology is worth investing in. Time is your best advisor. Learn to wait.
Ten years have passed since then. I helped 50 different software projects. Thanks to the advice, everything I learn is portable across companies, teams, domains. My knowledge is still relevant today. I did not waste my time.
All projects seem different unless you look under the surface:
- Programming languages are different, but design smells are alike.
- Frameworks are different, but the same design patterns shine through.
- Developers are different, but rules of dealing with people are uniform.
Remember – frameworks, libraries and tools come and go. Time is precious.
Invest your golden time in transferable skills. Skills that will always be relevant.
Microservices frameworksEvolutionary Architecture New programming languageClean Code, Design Patterns, DDD LeSS, SAFeLean manufacturing principles HystrixFault Tolerance Patterns DockerContinuous Delivery AngularWeb, HTTP and REST