10 Things Front-End Developers Should Learn in 2021
Tags: webdev, javascript, beginners, productivity
Published: 2020-11-11 07:59:02

There's no doubt that front-end development will be one of the hottest disciplines in tech in 2021.

It was previously sufficient for developers in the front-end space to know some HTML, CSS, and maybe jQuery to create interactive websites, but today they're faced with a broad and constantly changing ecosystem of skills to develop; tools, libraries, and frameworks to master; and a need to constantly invest in personal education.

The last couple of years brought us awesome new libraries and frameworks, like ReactJS, VueJS, and Svelte, utilizing JavaScript to power major web applications.
This piece aims to give you some guidance on what you should focus on in 2020 as a front-end developer to level up your game, whether you're just starting with programming or already have some experience.

---

## 1. Frameworks
In 2021, we'll probably see a duel between Facebook's ReactJS and the community-driven VueJS. React currently has 159,000 stars on GitHub, while Vue has been starred even more - 175,000 stars. Angular, for example, has only 67,500 stars.
The search volume in 2019 for React (blue line), Vue (red line), Angular (yellow line), and Svelte (green line) supports this assumption - with Vue being slightly above React. Angular cannot keep up in terms of search volume, and Svelte plays absolutely no role in this comparison.

![Framekwork Comparison](https://dev-to-uploads.s3.amazonaws.com/i/9z3c16m3so9f74qu2hf5.png)

So for 2021, front-end developers working with or wanting to work with JavaScript frameworks should focus on React and Vue as their primary choices. Angular is a valid option if you're working on large enterprise projects.

If you want to learn more about these frameworks, check out these great resources:
[React](https://reactjs.org/)
[Vue.js](https://vuejs.org/)

---

## 2. Static Site Generators
Static site generators combine both the power of server-side rendering (very important for SEO but also initial load time) and single-page applications.
Many projects these days choose an SSG even if they don't need server-side rendering because solutions like Next or Nuxt come with handy features, such as markdown support, module bundlers, integrated test runners, etc.

If you're serious about front-end development, you should take a close look into the following projects, and try to get some hands-on experience on them:

- Next (React-based)
- Nuxt (Vue-based)
- Gatsby (React-based)
- Gridsome (Vue-based)

These will probably be the hottest ones in 2020, though there are more out there. Check out these resources if you want to learn more about them:
[Next.js](https://nextjs.org/)
[Nuxt.js](https://nuxtjs.org/)
[Gatsby](https://www.gatsbyjs.org/)
[Gridsome](https://gridsome.org/)

---

## 3. JAMstack
The term JAMstack stands for JavaScript (running on the client - for example, React, Vue, or VanillaJS), API (server-side processes are abstracted and accessed over HTTPS via JavaScript), and markup (templated markup that's prebuilt at deploy time).

It's a way of building websites and apps for better performance - lower scaling costs, providing higher security, and offering a better developer experience.

While these terms are nothing new on their own, they all have the same thing in common - they don't depend on a web server. So a monolithic app that relies on a Ruby or Node.js back end or a site built with a server-side CMS like Drupal or WordPress isn't built with the JAMstack.

There are some best practices if you want to work with the JAMstack:

### Entire project served on a CDN
Because no server is needed, the whole project can be served from a CDN, unlocking speed and performance that can't be beaten.

### Everything lives in Git
Everyone should be able to clone the whole project from a Git repo without the need for a database or a complex setup.

### Automated builds
You can automate builds perfectly because all of the markup is prebuilt - for example, with webhooks or cloud services.

### Atomic deploys
In order to avoid inconsistent states by redeploying hundreds or thousands of files in large projects, atomic deploys wait for all files to be uploaded before changes go live.

### Instant cache invalidation
When a site goes live, you must make sure your CDN can handle instant cache purges for changes to become visible.

Well-known hosters, like Netlify or Vercel, support JAMstack applications, and large corporations use them to deliver great experiences to their users.

It's definitely something you want to get your head around as a front-end developer in 2021. If you want to learn more about JAMstacks, here are some great resources:

[JAMstack](https://jamstack.org/)
[JAMstack WTF](https://jamstack.wtf/)
["New to JAMstack? Everything You Need to Know to Get Started"](https://snipcart.com/blog/jamstack)

---

## 4. PWA
Progressive web apps (PWA) will definitely be a thing in 2021. More and more companies are choosing PWAs over native apps to offer rich mobile experiences to their users.

PWAs are reliable (instant loading, work without internet connection), fast (smooth animations, quick responses to user interaction), and engaging (native-app feeling, great user experience).

They make use of service workers for offline functionality and a web-app manifest file for a full-screen experience.

Reasons for building a progressive web app are, for example:

- Can be added to a user's home screen from the browser
- Work even if there isn't an internet connection
- Support web push notifications for enhanced user engagement
- Make use of Google's Lighthouse features

If you want to learn more about PWAs, feel free to check out these additional resources:

[Progressive Web Apps](https://developers.google.com/web/progressive-web-apps)
["Your First Progressive Web App"](https://codelabs.developers.google.com/codelabs/your-first-pwapp/#0)

---

## 5. GraphQL
One of the hottest topics right now and definitely a thing for you to learn or improve on in 2021 is GraphQL.

While REST has long been considered the de facto standard for designing web APIs by offering great concepts like stateless servers, RESTful APIs are more and more considered inflexible when it comes to keeping up with the rapidly changing clients accessing them.

GraphQL was developed by Facebook to tackle the exact issues developers are facing when dealing with Restful APIs.

With REST APIs, developers would gather data by fetching it from multiple endpoints that have been created with a specific purpose - like, for example, a /users/_id endpoint or a /tours/_id/location endpoint.

Using GraphQL, this would work differently. Developers would send a query to a GraphQL server with their data requirements. The server would then return a JSON object with all the corresponding data.

Another benefit of using GraphQL is it uses a strong type system. Everything on the GraphQL server is defined via a schema using the GraphQL schema definition language (SDL). Once the schema has been created, both front-end and back-end developers can work quite independently from one another because they're aware of the defined data structure.

If you want to learn more about GraphQL, check out these great resources:

[GraphQL](https://graphql.org/)
[How to GraphQL](https://www.howtographql.com/)
["Getting Started with GraphQL Content API"](https://www.contentful.com/developers/docs/tutorials/general/graphql/)
["GraphQL: A data query language"](https://engineering.fb.com/core-data/graphql-a-data-query-language/)

---

## 6. Code Editors/IDEs
Just like in 2020, Microsoft's VS Code will be the number one editor for most front-end engineers in 2021.

It offers almost IDE-like features, like code completion and highlighting, and can be extended almost infinitely via its extension marketplace.

The marketplace, in particular, is what makes VS Code so awesome. Here are some great extensions for you as a front-end developer:

- JavaScript (ES6) code snippets
- npm
- Prettier
- CSS Peek
- Vetur
- ESLint
- Live Sass Compiler
- Debugger for Chrome
- Live Server
- Beautify

These are some pretty cool examples. There's much more to discover in VS Code, so I encourage you to try out it if you aren't already using it.

---

## 7. Testing
No untested code should find it's way to production.

While it might seem convenient to not have any tests in your personal projects, it's mandatory to have them when working in commercial and enterprise environments. So it's better for any developer to integrate tests in the development workflow whenever possible.

One can differentiate between test cases like:

__Unit tests__
Testing a single component or function in isolation.

__Integration tests__
Testing interactions between components.

__End-to-end test__
Testing full-blown user flows in the browser.

There are more ways of testing, such as manual testing, snapshot testing, etc. If you want to move to a senior developer position or aim for a job with a large corporation that has some development standards, you should try to work on your testing skills.

---

## 8. Clean Code
Being able to write clean code is a great skill and is in high demand by many organizations. If you want to step up from a developer position to a senior developer position, you should really learn the concepts of clean code.

Clean code should be elegant and pleasing to read. It should be focused, and you should take care of it. All tests are run in clean code. They shouldn't contain duplications, and the use of entities, such as classes, methods, and functions, should be minimized.

Some things a clean-code developer should do are:

- Create meaningful names for variables, classes, methods, and functions
- Functions should be small and have as few arguments as possible
- Comments shouldn't be required at all - the code should speak for itself

If you want to learn more about clean coding check, out the books and posts from Robert C. Martin.

---

## 9. Git
Git is without doubt, the standard for version control in web development these days. It's really important for every front-end engineer to know basic Git concepts and workflows to work effectively in teams of all sizes.

Here are some popular Git commands you should know:

- git config
- git init
- git clone
- git status
- git add
- git commit
- git push
- git pull
- git branch

While it's always good to know these commands for increasing your productivity, front-end engineers should also learn the fundamental concepts behind Git. Here are some resources for you:

["Explaining the Basic Concepts of Git and How to Use GitHub"](https://thepilcrow.net/explaining-basic-concepts-git-and-github/)
["How To Use GitHub - Developers Collaboration Using GitHub"](https://www.edureka.co/blog/how-to-use-github/)
[GitHub](https://github.com/)

---

## 10. Soft Skills
Often overlooked but really, really important for developers is the acquisition of soft skills.

While it helps to understand the technical side of things, it's equally important to know how to communicate in a team. If you're serious about a career in tech and/or plan to move to a senior position, you should work on the following soft skills:

- Empathy
- Communication
- Teamwork
- Approachability and helpfulness
- Patience
- Open-mindedness
- Problem-solving
- Accountability
- Creativity
- Time management

Always remember: The most important deliverable for a senior developer is more senior developers.

---

## Conclusion
In this article, I showed you 10 important things front-end developers should try to learn, improve, or master in 2021.
This list isn't trying to be complete, but I hope it gives you some inspiration for the next year - the choice is all yours!

I recently started a new blog [The Smart Coder](https://thesmartcoder.dev) where I create free content for the community. This article is from there, you should check it out :)

**If you like what I write and want to support me and my work, please follow me on [Twitter](https://twitter.com/simonholdorf) to learn more about programming, making, writing & careers🥰**