Some learned web development when JavaScript was just a small, but neat script -tag, supporting otherwise static HTML and CSS. Some picked it up during the days of JQuery and Ajax, where every client-side problem could be solved with a magical dollar sign. Others were introduced to a world of extensive frameworks and abstractions, attempting to solve every problem of web development.

I belong to the latter group. I was introduced to the web in 2016, during an internship at my University. React had just started getting traction, and my colleagues wanted to build new applications using this library with a fancy web stack.

Frameworks. A dual-edged sword

Current users of the web have high expectations of modern web applications. Frameworks attempt to solve the most challenging problems that emerges when building such apps. In a lot of ways, they succeed in doing so. Modern frameworks are surprisingly easy to learn, and during my internship, they helped me get productive in a matter of weeks.

Using a modern web stack also meant that every line I wrote was type checked, transpiled, minified and compressed before reaching the end user. Libraries and tools such as React, JSX, Babel and Flow.js helped me write complex applications with relative ease, but what I wrote looked nothing like the resulting HTML, CSS and JavaScript delivered to the end user. In the following weeks or months, I struggled to distinguish what parts of the code was JSX, what was Flow and what was just plain, old JavaScript.

During my internship, this was not a huge problem. I had become productive and was happily delivering features in production. However, the symptoms became much worse when switching to another project with a slightly different web stack. I had become specialized in my current stack, and could not handle libraries, tools and code other than what I initially had learned to love.

Don't invest in the framework. Invest in yourself.

To specialize oneself in a framework is not necessarily a good fundament in a rapidly changing world. Frameworks are fragile. Over the years, they emerge, evolve and disappear, only to be remembered in legacy code. It's okay to learn a framework first. Get productive. But don't forget the fundaments they build upon.

Invest in yourself, rather than the fancy web stack. If you teach yourself HTML, CSS and JavaScript in an isolated context, without the supportive libraries and build tools, you are doing yourself a favor that will pay back in heaps. You will become an adaptive web developer.

Who knows how the frontend landscape will look like in two, five or ten years. I'm not sure we'll still use React, Vue, Elm or other popular frameworks. But I'm pretty sure HTML, CSS and JavaScript are still around, powering the latest and greatest of the future web. Don't just take my word for it. As Allen Wirfs-Brock frames it, "[JavaScript's] role on the web means that it is likely to be one of the world's longest-lived programming languages."

If you missed it, day 13 of this calendar includes a list of resources you can use to learn JavaScript and web development. Make sure to check it out, whether you're new to the web or just need to freshen up your skills!