Learning a New Technology Without Abandoning the Fundamentals

by Arif Ikhsanudin, Backend Developer

The Framework That Changed Everything (Until the Next One Did)

A developer spent six months deeply learning a frontend framework. They got good at it. They knew its patterns, its performance characteristics, its ecosystem. Then the industry shifted. A newer framework became dominant. They started over.

This pattern repeats. It has repeated for twenty years. Rails replaced Struts. Node replaced a generation of server frameworks. React replaced Angular replaced a generation of DOM manipulation libraries. In each transition, the developers who adapted fastest were not the ones who'd studied the previous framework most deeply. They were the ones who understood what the frameworks were doing underneath.

The framework is a specific implementation of ideas that are more stable than the framework. Understanding the ideas means the framework is something you learn, not something you depend on.

The Stable Layer Underneath

Every technology sits on top of more fundamental concepts that change more slowly:

HTTP/REST frameworks implement: request routing, middleware pipelines, serialization/deserialization, authentication/authorization patterns, error handling conventions. These concepts are the same whether you're using Spring MVC, Express, FastAPI, or Gin.

ORMs and database libraries implement: SQL generation, connection pooling, transaction management, result mapping. The concepts are the same whether you're using Hibernate, SQLAlchemy, ActiveRecord, or GORM.

Message queue clients implement: producer patterns, consumer patterns, acknowledgment semantics, error handling and dead-letter routing. The concepts are the same whether you're using the Kafka client, the RabbitMQ client, or the SQS SDK.

When you learn a new framework, the question to ask first is: which of these concepts does this framework implement, and how? The learning curve is mostly about the specific API — the underlying concepts you already know.

The Transfer Problem

Shallow knowledge of a technology doesn't transfer when the technology changes. Deep knowledge of the concepts the technology implements transfers almost completely.

An engineer who understands SQL well can learn any SQL database. An engineer who learned specific ORM incantations without understanding the SQL being generated will struggle when the ORM changes or when a performance problem requires understanding the generated queries.

An engineer who understands event-driven architecture, consumer groups, and at-least-once delivery semantics can learn any message queue client. An engineer who memorized the RabbitMQ Python client API without understanding the underlying semantics will find the Kafka client foreign and confusing.

The investment in fundamentals has compounding returns. The investment in framework specifics has a finite shelf life.

How to Learn a New Technology Through the Fundamentals Lens

When encountering a new framework or library:

Start with "what problem does this solve?": Not "how do I use this" but "what problems existed before this, and how does this address them?" This grounds the learning in the conceptual context.

Map it to things you know: "This is like X in Y, but with Z difference." The mapping forces you to identify the underlying concept and recognize how the new technology implements it differently.

Read one level below the abstraction: For an ORM, look at the SQL it generates for your common queries. For a framework's routing, understand how it maps URLs to handlers at the middleware layer. This isn't about re-implementing — it's about understanding what the abstraction is hiding and when that hidden information matters.

Identify the failure modes: Every technology has categories of problems it handles poorly or not at all. Finding these early — in documentation, in post-mortems from other teams, in experimentation — prevents the expensive discovery of these limits in production.

The Practical Example

Learning Kafka after experience with RabbitMQ:

Not: "What are all the Kafka concepts and APIs?"

Instead: "Kafka is a durable, ordered log rather than a queue. Consumer groups implement the consumer pattern I know from RabbitMQ, but position tracking works differently — the consumer tracks its own offset rather than the broker tracking delivery. The key difference is that messages aren't deleted after consumption, which enables replay. How does my existing understanding of at-least-once delivery and idempotent consumers apply here? The same rules apply — consumers still need to be idempotent — but the mechanism for deduplication is different."

This approach learns Kafka as an evolution of a known concept, identifying the differences and their implications. It's faster and more durable than learning Kafka as a new foreign system.

The Practical Takeaway

For the next technology you need to learn, spend the first thirty minutes mapping it to concepts you already know. Write down: what does this replace or improve on? What problem is it solving? Which concepts from technologies I already know apply here? Where does it differ from my expectations based on those concepts? That mapping is the learning foundation. The API specifics can be filled in from documentation as you go.

Scale Your Backend - Need an Experienced Backend Developer?

We provide backend engineers who join your team as contractors to help build, improve, and scale your backend systems.

We focus on clean backend design, clear documentation, and systems that remain reliable as products grow. Our goal is to strengthen your team and deliver backend systems that are easy to operate and maintain.

We work from our own development environments and support teams across US, EU, and APAC timezones. Our workflow emphasizes documentation and asynchronous collaboration to keep development efficient and focused.

  • Production Backend Experience. Experience building and maintaining backend systems, APIs, and databases used in production.
  • Scalable Architecture. Design backend systems that stay reliable as your product and traffic grow.
  • Contractor Friendly. Flexible engagement for short projects, long-term support, or extra help during releases.
  • Focus on Backend Reliability. Improve API performance, database stability, and overall backend reliability.
  • Documentation-Driven Development. Development guided by clear documentation so teams stay aligned and work efficiently.
  • Domain-Driven Design. Design backend systems around real business processes and product needs.

Tell us about your project

Our offices

  • Copenhagen
    1 Carlsberg Gate
    1260, København, Denmark
  • Magelang
    12 Jalan Bligo
    56485, Magelang, Indonesia

More articles

The Difference Between a Test Suite That Gives Confidence and One That Just Passes

A passing test suite and a trustworthy test suite are not the same thing. The difference comes down to whether your tests are designed to catch failures or designed to avoid them.

Read more

Hollywood, Gaming, and Startups All Want the Same LA Backend Developers

Los Angeles has three of the most technically demanding industries in the world competing for backend talent. Startups are usually last in line.

Read more

Logs Are Useless If Nobody Reads Them

Most applications produce logs. Few produce logs that are useful during an incident. The gap between logging and observable behavior is where debugging goes to die.

Read more

How Taipei Startups Are Solving the Backend Hiring Gap With English-First Async Remote Contractors

Taipei's senior backend hiring market is thin and slow. Some startups have found a working model that doesn't require solving that problem before shipping.

Read more