Fundamentals 8 min read

Things I Don’t Know as of 2018

In this reflective essay, Dan Abramov lists numerous programming topics—from Unix commands and low‑level languages to containers, serverless, microservices, and functional concepts—that he admits to not fully mastering, highlighting the inevitable knowledge gaps even experienced engineers face.

UC Tech Team
UC Tech Team
UC Tech Team
Things I Don’t Know as of 2018

Dan Abramov, a member of the React team and author of Redux, shares a candid essay titled “Things I Don’t Know as of 2018,” in which he enumerates the many technical areas he still feels unfamiliar with.

He begins by challenging the unrealistic expectation that senior engineers must master every tool and library, noting that long “learning roadmaps” can be intimidating and that confidence often swings between impostor syndrome and the Dunning‑Kruger effect.

He emphasizes that even seasoned developers have knowledge gaps, and that acknowledging these gaps does not diminish their professional value.

He then provides a disclaimer list of topics he admits to lacking expertise in, including:

Unix commands and Bash scripting

Low‑level languages such as Assembly and C

Network stack fundamentals (IP, DNS, TCP/IP)

Containers (Docker, Kubernetes)

Serverless architecture

Micro‑services concepts

Python internals

Node.js backend development

Native mobile platforms (Objective‑C, Swift, Java)

Algorithms beyond basic sorting

Functional programming languages and terminology

Modern CSS layout (Flexbox, Grid) and methodology (BEM)

SCSS/Sass, CORS, HTTPS/SSL

GraphQL, sockets, streams, Electron

TypeScript, deployment/devops, graphics APIs

He notes that the list is not exhaustive and that many other areas remain unknown to him.

The purpose of the essay is threefold: to remind readers that even their favorite developers have blind spots, that confidence fluctuates regardless of skill level, and that expertise is often specialized despite overall experience.

He concludes that recognizing his own gaps motivates him to learn new technologies when curiosity or project needs arise, without devaluing the knowledge he already possesses.

programmingsoftware developmentcareerlearningknowledge gaps
UC Tech Team
Written by

UC Tech Team

We provide high-quality technical articles on client, server, algorithms, testing, data, front-end, and more, including both original and translated content.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.