The Curated Guide to Self-Study as a Full Stack JavaScript Developer

How To Get into Technology

There are three generally accepted routes to become a software developer:

  1. College/university study, generally in the fields of Computer Science, Information Technology or Engineering
  2. Attendance at a coding boot camp - intensive, practical training in the fundamentals of programming, including modern languages, tools and project management methodologies
  3. Self-study, using various free and commercial resources

Pros and Cons of Each Approach

College/University

Pros

  • Depth of education: Gives you a deep understanding of computer science principles, preparing you to solve challenging logic problems found in software development - particularly problems arising from operating software that provides services at a large scale
  • Education outside of Computer Science: Gives you a well-rounded education, as your computer science classes are only one part of a degree program

Cons

  • Time and money: Most degree programs are four years in duration, and annual tuition can be expensive. The average cost of a four-year degree in the U.S., for example, is around $35,000/year as of 2022 - and programs at prestigious institutions with a good reputation in the computer science world can easily cost 2-4 times that amount.
  • Curriculum is often outdated: Due to the challenges in updating curriculum in a highly-regulated system that relies on accreditation, many institutions use technologes that are 10-20 years behind those in current use in the industry. This can make getting up to speed in your first developer job challenging
  • Little practical application: most programs do not include significant practical instruction, especially in the collaborative development process used in creating software applications

Boot Camp

Pros

  • Current: Boot camps often teach technologies and techniques that are currently used in the industry, so you are prepared to contribute as part of a team relatively quickly when you land a job
  • Fast: Most boot camp programs take between 4 and 12 months to complete, depending on how much time you can dedicate to your studies
  • Relatively inexpensive: While tuition can vary widely, the average boot camp cost in the U.S. is around $13,500 as of 2022

Cons

  • Little time for Computer Science: The rapid pace and short length of boot camp training mean that many program don’t dedicate much time to exploring the fundamental principles of Computer Science, meaning you won’t be prepared to tackle some complex development tasks involving optimization and designing for scale
  • Less respect: Boot camps are a new route into the industry, and they faced strong opposition when they began in 2012/2013. As the boot camp industry matured, respect for this route increased, due to improved outcomes and the rise of independent results organizations such as the CIIR (Council on Integrity in Results Reporting) - but some industry professionals still view these programs with suspicion
  • Difficult to integrate into life: Many boot camps are designed to deliver training full-time, so it can be difficult to maintain your studies if you are also keeping up your job and other responsibilities

Self Study

Pros

  • Cost: Many free resources exist, and those that do cost money are often inexpensive
  • Flexible schedule: Since you are studying at your own pace, you can fit your learning around your job and other responsibilities
  • Community: There is a huge community worldwide of people who are on the same journey as you, and they are generally very helpful and supportive as you work to break into the industry

Cons

  • Confusing: There are so many different technologies, languages and tools around, and so many opinions about them, that it can be hard to decide on a route for your study - or to have confidence that the route you choose will lead to a good outcome
  • Poor or inconsistent materials: Many training materials for software development are poorly designed - they don’t define key terminology, and they present highly complex information before the fundamentals underlying that information are presented. It’s almost as if you have to understand programming in order to learn programming

What is this Guide All About?

This guide contains a curated, organized collection of some of the best resources available for self-study as a JavaScript developer.

It has been created for those of you who have chosen the self study route into the technology industry.

By “curated”, I mean that it contains personally-selected resources, chosen very intentionally, and with a specific purpose in mind.

It has been designed to handle those key challenges presented above. In short, it lays out a program for self-study that embodies these principles:

  • Terminology is key: Understanding the terminology of a subject is key to retaining your enthusiasm for the study and ensuring your ability to retain and apply the material. Therefore, this guide will help you find simple, clear definitions and explanations for the many technical terms we use in the technology industry.
  • Learning is best acheived on a smooth gradient: Learning a subject well requires a well-laid out sequence of actions. They should be sequenced in such a way that the complexity of the material increases steadily and smoothly with no extreme jumps. Therefore, this guide is laid out in a specific sequence for your studies, with a clearly-defined goal, and organized so that introductory or fundamental data is presented first, and later data builds on each previous subject, step by step, with no sudden increased in complexity.
  • A clearly-defined goal is vital: Trying to study something without a goal is difficult. Similarly, if the materials you’re studying aren’t aligned towards a clear goal, the outcome will be less than you’d hoped for. Therefore, this guide is written with a specific goal in mind. Anything not aligned with that goal is dispensed with.

Goal of this Guide: to help you become a well-rounded, entry-level full-stack JavaScript developer who can be an effective member of a development team

In short: If you want to become a well-rounded entry level JavaScript developer studying on your own, this guide tells you:

  • What to study
  • What order to study things in
  • What not to study

How to Use this Guide

The guide is most effective by simply starting at the beginning and moving through each subject in order. Skipping around will add confusion to the process.

Who Are You, and Why Should I Listen to You?

My name is Erik Gross. I’m a developer, software architect, writer and trainer with 33 years of experience in technology. I co-founded one of the highest-rated coding boot camps in the world (The Tech Academy); I co-authored seven books on coding and project management; and I train people in technology for a living. I also run Five Live free code school, a full-stack developer training program delivered live online.

I love tech, and I love helping people break into the industry. I’m fairly confident I can help you get there :)

How the Guide is Organized

The guide has several sections. Each is designed to help you learn a key set of data about technology. These sections are in a precise order, and you should study them in that order.

Depending on the subject of a particular section, you may find any or all of the following items present to help you in your studies:

  • Definitions of key terms
  • Articles that will orient you to the subject and set you up to best utilize the various study resources listed
  • Online study resources (videos, articles, etc.), curated by me and selected for accuracy, quality of instruction, simple training approach and timeliness of material
  • Books, generally available online

None of them cost any money, at the time of their inclusion in the guide. I want you to be able to get through your self study for free - all it will cost you is your time and dedication.

How do I know the course material is current?

This is where the guide gets really cool, in my opinion:

The self-study guide will be continually updated as new resources become available, and as existing resources disappear from the web

How does that work?

First, as to content: I am always teaching new people technology, and I come across a wide variety of training resources for self-study. As I find content that can improve the guide, I update the guide with that new material. But don’t worry - I maintain a collection of past versions of the book, so you don’t need to start over on a particular subject if you’re in the middle of the previous resource’s process.

Secondly, as to broken links: This is a continual issue with the web - nothing is guaranteed to live forever out there. I use a daily broken-link checker service, so I’m notified right away if a link to a training resource is not working for some reason. When this happens, I’ll update the guide right away.

Finally, some of the content in the guide is of my own creation. As I develop more resources for self-study, I’ll update the guide to include them.

How can I get started?

The guide is currently in a beta release - I want feedback from a small group of users as I complete version 1.0.

Sign up here.

How much does it cost?

The guide is free for the beta users. As we approach the launch of version 1.0 of the guide, I’ll establish a price. It will be low, and it will give you lifetime access to the guide as it evolves.

I hope you enjoy it, and that you achieve your goals. You deserve to have a rewarding career in technology, and it would make me very happy if I could help you have that.