You Can Always Learn More About Web Development

Junior, Mid or Senior, you've probably felt that you are at the peak of your knowledge, and probably do so at this very right moment.

Even so, you know that there's still a lot more to learn about Web Development, be it Frontend, Backend or DevOps.

3 cartoon people holding and lifting computer folders that denote that there is software code inside them. The photo suggests that the post is about software development, specifically web development.

5 min read

Published:28/12/2022

Author:Valentin Constanda, Founder

Category:Web Development

Technology:React, Node.js, NestJS

We've all been there at least once, feeling that we have gained so much knowledge in the past few months that it completely overshadows everything we previously knew.

With that usually comes the question "What should I learn next to grow as a software developer?".

I have personally asked myself that before, still do every once in a while.

Deciding whether to try a new Framework or Language

I believe that these are the deciding factors when choosing to learn a new Framework or Language:

  • Platforms it is designed for (Web, API/Backend, Mobile)

  • Differences to the current stack (React vs Angular vs Vue)

  • Learning time needed to feel productive while working (and do Code Reviews)

Take the following example:

You are a Junior/Mid Frontend Developer, working on a daily basis with React, therefore the language you interact with on a daily basis is JavaScript.

You'd like to start coding Backend on your personal projects so that you can become a Full Stack Developer in time.

You have worked in teams that use PHP and decide to learn it so that you may soon start using Laravel.

After a week you realize that learning PHP is very difficult, and you're not so sure about the decision anymore. What happened?

Well... there is nothing wrong with wishing to learn a new programming language... but it is very difficult.

Let's evaluate PHP based on the decisive factors that we've listed:

  • Platforms it is designed for: API/Backend

  • Differences to the current stack: High, a completely new programming language

  • Learning time needed to feel productive while working: >12 months

It does look like the choice was not one that would allow you to learn more about Backend Development quickly, but rather one that requires you to first learn the inner workings on a new programming language, and then the techniques every Backend Developer needs to know to be proficient.

The alternative:

As a React Developer, your go-to solution to learn how to work with Backend is Node.js, specifically Express or NestJS.

An Express project can be bootstrapped in less than 2 minutes using the official express-generator library, using the following command:

npx express-generator

It will provide you with a boilerplate that needs to be extended with as little as environment management, using the dotenv package, and you're ready to start learning Backend Development, without the necessity to learn a new programming language.

By choosing to use Node.js, you're still working with JavaScript, therefore the decisive factors look like this:

  • Platforms it is designed for: Web, API/Backend, Mobile, Desktop & more

  • Differences to the current stack: None, you're still using JavaScript

  • Learning time needed to feel productive while working: less than 3 months

By choosing Express or NestJS you have removed the necessity to learn a new language and you're keeping your focus towards becoming a Full Stack Developer.

Choosing the right thing to learn will greatly impact your learning experience and the results will be the ones you expect.

Becoming proficient in your current technical stack

As a Software Developer, your main objective should be to become proficient in a technical stack of your choice.

My personal web developer career path started with React, when ES6 was being rolled out, with many features and operators still having to be included in projects as experimental.

In the first year I also wanted to learn Backend, and I started with a pre-built CRUD app written in PHP, which I tried to customize, but never got the hang of.

At the time decision was lead by necessity, and my immediate necessity was to be able to have user accounts for my Frontend Applications.

Looking back, choosing to move away from PHP and to learn Express was the best choice I could have ever made.

Why?

Thanks to the flexibility and scalability of Express, throughout the following 6 years, I have had the opportunity (and the necessity) to learn:

  • Micro-services architectures: Ad-Hoc, Docker, Kubernetes and Serverless

  • Database Query Optimizations: NoSQL and SQL

  • Networking, Firewalls and Permissions on both self-hosted Cloud Instances and Cloud Services Providers, such as AWS IAM

  • A lot of techniques to add functionality, secure and optimize Backend Systems

  • How to create good architecture for Backend Systems that are developed in either one of a highly or non-restrictive environment

And these are just a few of the things I was able to learn by not getting distracted by other programming languages, and even Frameworks. (except for NestJS, which is awesome for structuring a Backend project)

By sticking to the MERN & Jamstack, and never losing the focus by learning another programming language, for something that I could do with JavaScript, I have became a Full Stack Developer.

That is why you should stick to the technical stack you're working with on a daily basis.

What's next?

We never know what the future may bring, I've been reading on DevOps, and I have implemented everything that I learned for our team, from our own Jenkins instance to using SAST and DAST tools, to preventing supply-chain attacks for our clients and more.

The takeaway is:

You Can Always Learn More About Web Development.