How to become a full stack Javascript developer in 2019

28 Oct, 2019

If you want to become a Full-Stack Web Developer in 2019 and land your first job, below is a reference guide with a list of things you should learn.

A Full-Stack Developer is someone who is able to work on both the front-end and back-end portions of an application. Front-end generally refers to the portion of an application the user will see or interact with, and the back-end is the part of the application that handles the logic, database interactions, user authentication, server configuration, etc. Being a Full-Stack Developer doesn’t mean that you have necessarily mastered everything required to work with the front-end or back-end, but it means that you are able to work on both sides and understand what is going on when building an application.

If you want to become a Full-Stack Web Developer in 2019 and land your first job, below is a reference guide with a list of things you should learn.

HTML/CSS

Almost every single program, whether online or in-person, that is teaching you how to be a web developer will start with HTML and CSS because they are the building blocks of the web. Simply put, HTML allows you to add content to a website and CSS is what allows you to style your conten

JavaScript

JavaScript is the most popular language in both Full-Stack, Front-end, and Back-end Development. It’s the only language that runs natively in the browser, and can double up as a server-side language as well (as you’ll see below with Node.js)

Backend Language

Node.js: This is a great option because Node.js is itself just a JavaScript environment which means you don’t need to learn a new language. This is a big reason why a lot of online programs and bootcamps choose to teach Node.js. The most popular framework you’d most likely learn to aid you in developing web applications is Express.

Ruby: Some popular frameworks for developing in Ruby are Rails and Sinatra. Plenty of programs teach Ruby as a first back-end language.

Python: Some popular frameworks for developing in Python are Django and Flask.

Java: The Java language isn’t taught so much these days when it comes to Full-Stack Web Development, but some companies do use Java as their back-end and it is still a very in-demand language (see image above).

PHP: PHP is rarely taught in programs these days, but just like with Java, it is still very in-demand and it is a cornerstone of the web today.

Databases & Web Storage

When learning to build web applications, at some point you’ll probably want to store data somewhere and then access it later. You should have a good grasp on the following topics related to databases and storage.

  • Understand the benefits of relational data, e.g. SQL.
  • Learn about NoSQL databases, e.g. MongoDB.
  • Understand which would be better in certain situations.
  • Know how to connect a database with your chosen back-end language (e.g. Node.js + MongoDB).
  • Understand the benefits of in-memory data stores like Redis or memcached.
  • Web storage to store sessions, cookies, and cached data in the browser.
  • Scaling databases, ACID, and ORM (all optional)

HTTP & REST

HTTP is a stateless application protocol on the Internet — it’s what allows clients to communicate with servers (e.g. your JavaScript code can make an AJAX request to some back-end code you have running on a server which will happen via HTTP). Some important topics you should learn about are listed below:

  • What is REST and why is it important in regards to the HTTP protocol and web applications.
  • Best practices for designing a RESTful API. POST/GET requests.
  • Learning how to use Chrome DevTools can be extremely helpful.
  • What are SSL Certificates.
  • HTTP/2 & SPDY (optional).
  • WebSockets, Web Workers, and Service Workers (all optional).

Web Application Architecture

Once you think you have a grasp on HTML/CSS, JavaScript, back-end programming, databases, and HTTP/REST, then comes the tricky part. At this point if you want to create a somewhat complex web application, you’ll need to know how to structure your code, how to separate your files, where to host your large media files, how to structure the data in your database, where to perform certain computational tasks (client-side vs server-side), and much more

Basic Algorithms & Data Structures

This topic is somewhat polarizing in the development world because there are developers who don’t think there should be such a heavy focus on computer science topics like tree traversal, sorting, algorithm analysis, matrix manipulation, etc. in web development. However, there are companies like Google that are notorious for asking these types of questions in their interviews


Same series:

A Developer Lost in Thoughts