How exactly does one become a front-end developer? Well, it’s complicated. Just consider this road map:

Today, in general, one can’t go to college and expect to graduate with a degree in front-end engineering. And, I rarely hear of or meet front-end developers who suffered through what is likely a deprecated computer science degree or graphic design degree to end up writing HTML, CSS, and JavaScript professionally. From my perspective, most of the people working on the front-end today generally seem to be self-taught from the ground up or cross over into the front-end space from design or computer science fields.
If you were to set out today to become a front-end developer I would loosely strive to follow the process outlined below (Chapter 3 and Chapter 4 will dive into more details on learning resources).
- Learn, roughly, how the web platform works. Make sure you know the “what” and “where” of HTML, CSS, DOM, JavaScript, Domains, DNS, URLs, HTTP, browsers, and servers/hosting. Don’t dive deep on anything just yet, just aim to understand the parts at play and how they loosely fit together. Start by building simple web pages.
- Learn HTML
- Learn CSS
- Learn JavaScript
- Learn DOM
- Learn the fundamentals of user interface design (i.e. UI patterns, interaction design, user experience design, and usability).
- Learn CLI/command line
- Learn the practice of software engineering (i.e., Application design/architecture, templates, Git, testing, monitoring, automating, code quality, development methodologies).
- Get opinionated and customize your tool box with whatever makes sense to your brain (e.g. Webpack, React, and Mobx).
- Learn Node.js
A short word of advice on learning. Learn the actual underlying technologies, before learning abstractions. Don’t learn jQuery, learn the DOM. Don’t learn SASS, learn CSS. Don’t learn JSX, learn HTML. Don’t learn TypeScript, learn JavaScript. Don’t learn Handlebars, learn JavaScript ES6 templates. Don’t just use Bootstrap, learn UI patterns.
Lately a lot of non-accredited, expensive, front-end code schools/bootcamps have emerged. These avenues of becoming a front-end developer are typically teacher directed courses, that follow a more traditional style of learning, from an official instructor (i.e., syllabus, test, quizzes, projects, team projects, grades, etc.).
Keep in mind, if you are considering an expensive training program, this is the web! Everything you need to learn is on the web for the taking, costing little to nothing. However, if you need someone to tell you how to take and learn what is low cost to free, and hold you accountable for learning it, you should consider a traditional instructor lead class room setting. Otherwise, I am not aware of any other profession that is practically free for the taking with an internet connection, a couple of dollars a month for screencasting memberships, and a burning desire for knowledge.
For example, if you want to get going today, consuming one or more of the following self-directed resources below can work:
- Getting started with the Web [read]
- So, You Want to be a Front-End Engineer [watch]
- Frontend Masters Learning Paths [watch][$]
- Introduction to Web Development [watch][$]
- Treehouse Techdegree [watch][$]
- Front-End Web Developer Nanodegree [watch][$]
- Become a Front-End Web Developer [watch][$]
- freeCodeCamp [interactive][watch]
When getting your start, you should fear most things that conceal complexity. Abstractions (e.g. jQuery) in the wrong hands can give the appearance of advanced skills, while all the time hiding the fact that a developer has an inferior understanding of the basics or underlying concepts.
It is assumed that on this journey you are not only learning, but also doing as you learn and investigate tools. Some suggest only doing to learn. While others suggest only learning about doing. I suggest you find a mix of both that matches how your brain works and do that. But, for sure, it is a mix! So, don’t just read about it, do it. Learn, do. Learn, do. Repeat indefinitely because things change fast. This is why learning the fundamentals, and not abstractions, are so important.