Don't spend money learning to code.

Forget about putting your life on hold and spending tens of thousands of dollars on a coding bootcamp only to teach yourself information you can find for free online.

Once you know what you need to study and when, you can teach yourself on your own timeline and only spend as much money as you want.

The information is free

Coding bootcamps will charge you tens of thousands of dollars to "teach you how to code." Unfortunately, you'll often find either that the curriculum didn't measure up to expectations, they don't provide adequate career support, or you don't even get taught, you just have to read and practice curriculum on your own.

Even worse, if you don't have the tens of thousands of dollars up front, you often have to sign an "income-share agreement", where the bootcamp gets 10-15% of your income for the next several years! Imagine working your way up to a $100,000 salary, and then you have to pay $15,000 of that back to a coding bootcamp where you didn't even get much support!

And don't even think about going to one of those part-time "flexible" coding bootcamps either!


Flexible bootcamps aren't so flexible

There are several major problems with "cheaper", "flexible" part-time coding bootcamps where you pay per week or per month until the program is finished.

First, they often claim the curriculum pace is part-time, but you'll put in the hours and still feel behind because they don't pace the material realistically for most people.

Second, the support you get in the first place is very disjointed and often doesn't work with your schedule. You join the flexible bootcamp because you want to study and receive at the times that work best for you, but they run at their own times.

Finally, they cut you off from support and mentorship at their set end date, regardless of how ready you are for the software developer job market. You just blew close to $10,000 to teach yourself material you can find online, and you received next to no help through the experience. What a horrible experience!


What do I really need?

As long as you have a computer, a working internet connection, and a will to become a software engineer, all you really need is:

  • Guidance on what to study and how to navigate the sea of free and cheap resources already out there

  • (Optional) An instructor-led community providing you with clearer understanding, guidance, and accountability

  • (Optional) One-on-one mentorship for career guidance, resume writing, and a customized approach to your job search once you're ready

Start learning to code for free!

If you sign up below, you'll get a free curated curriculum, blog posts about how to navigate your software development career, and notifications about when we're starting regular instructor-led classes and one-on-one mentorship if you decide you want personal guidance.

You will learn the following:

  • Important terminology in the software industry

  • How to use the necessary tools and programs for web development

  • Mobile-responsive web page development with HTML5 markup and CSS3 styling

  • Writing and debugging JavaScript code

  • Using the ReactJS web framework to build scaleable, dynamic web application frontends

  • Strongly typing your code with TypeScript, a programming language that structures JavaScript better

  • Using code libraries to enhance the capabilities of your React web applications

  • Skills you need to know for software developer job interviews

  • How to prepare a portfolio of your skills once you know enough to begin looking for work

  • How to network with software professionals to get noticed by prospective employers

Industry Glossary

This is a living, breathing document. Consider bookmarking this page to refer back to it for more jargon explanations. For feedback and suggestions, email info@zerotocodefastandcheap.com.

Not all of these terms will be useful to you immediately. However, as you continue to learn and really begin your software development career, they will inevitably come up, and you can keep this page handy as a quick guide.

Terms

Acceptance test: An automated test that essentially ensures that your code fulfills the business requirements of the task(s) you needed to complete.

Application: the software program (or set of software programs) that you work on; also referred to here as "app".

Application developer: someone who builds software; interchangeable with "software engineer", "programmer", "coder" or "software developer".

Automated test: A method of code that executes somewhere in the software pipeline that tests a specific piece of the application without human intervention.

Behavioral interview: A software engineering interview in which you are asked about your experience, disposition, and situational behavior.

Bootstrap: This can either refer to the popular responsive web library or to "bootstrapping" your code, which means building out some quick reusable code upon which you can create more custom functionality.

Career changer: Someone who finished schooling and did a job other than coding for a substantial amount of time before beginning learning how to code.

Commit code: When you save updates to code to the version control system. This does not necessarily include "pushing" code, uploading it to a central repository for everyone involved in writing the code to see it.

Continuous deploy: Taking a "built" application (see Continuous integration) and releasing it to the server(s) from which users can reach the application. This will include releasing the updated what happens when a user accesses the app's URL with the new code from the built application.

Continuous integration: An automated process of committing your code and building it (compiling the code, adding code libraries, running unit tests, everything needed to create a runnable version of the app).

Clean code: Code that is easy to read, maintain, update, and build upon as needed.

Co-op: A work experience that takes place over the course of a traditional school semester as well as into the summer/out of the summer. It's different from an internship in that an internship generally only lasts about three months (give or take).

Coding bootcamp: A X-week educational program that promises to take an individual from zero to being able to start looking for work as a new software engineer.

Cultural fit: How well you can get along with your teammates and the ideology of the company. It may sound like an HR buzzword, but if you can't get along culturally in a company, you will NOT succeed there.

Framework: A tool that provides you with templates and functionality that you can use to build software much faster than if you wrote all of the code from scratch.

Hackathon: A competition in which software developers get together and create some sort of software application to solve a problem. These events usually take place over a weekend, and there are generally prizes for top competitors and recruiters looking to hire these participants who are spending their free time writing more code.

Internship: A work opportunity in which someone can spend a few months working as a junior-level employee at a company, usually during the summer. Generally, self-taught students are not eligible for internships since they usually require a four-year computer science or related degree.

Networking (computing): This refers to the interfacing of multiple devices and resources so that they can share data.

Networking (interpersonal): This refers to meeting people, usually within your industry or your career sphere, so that you can share ideas and make friends.

Production support: The act of being there to identify and resolve any issues with your application when it's running live and providing service to its customers. If customers have an issue with the application itself (different from when a customer doesn't understand something about the app), depending on the severity of the issue, you may immediately need to spring into action and resolve the issue, no matter what time of day it is.

Pushing code (verb): When you commit your code to the version control software and upload the changes to the main repository where the code is hosted.

Repository: The central location for the code that makes up a codebase. Often this is on GitHub.

Staffing agency: A company that recruits you to work at a separate company as a contractor. For example, you work with ABC Recruiting to get you a position at JP Morgan Chase. In this example, you work as an employee of ABC Recruiting, contracted out to JP Morgan Chase.

Technical interview: A software engineering interview in which you are asked coding questions. These kinds of questions usually require a strong understanding of data structures and algorithms.

Unit test: An automated test for testing a specific input (scenario) for a single method or a single isolated unit of code.

Workshop: An event that spans anywhere from several hours to a work week for which the goal is specifically to learn some skill, usually to get you started on a certain toolset or development technique. These events are often expensive to attend, but since March 2020, it is easier than ever to find free or cheap virtual workshops.

Acronyms

API: Acronym for Application Programming Interface. In most cases, this refers to a set of HTTP endpoints through which your code can interact with another application.

CI/CD: Short for continuous integration/continuous deploy. Continuous deploy means for that build (the result of the aforementioned tasks) to be deployed to whichever environment is necessary.

OOP: Acronym for object oriented programming. This is a programming language paradigm in which programmers define classes of code called objects, which contain attributes about something and functions that something can perform.

SDE: Acronym for software development engineer; an individual with this job role is (on paper) primarily responsible for writing production code and building the software that ultimately ends up in the hands of the end user.

SDET: Acronym for software development engineer in test; an individual with this job role is (on paper) primarily responsible for writing automated acceptance tests.

SOLID: Refers to a set of design principles to build clean and easily maintainable object-oriented code.

Software industry FAQs

This is a living, breathing document. Consider bookmarking this page to refer back to it for more answered questions. For feedback and suggestions, email info@zerotocodefastandcheap.com.

How long will it take me to get a job as a software engineer?

It depends. It takes anywhere between 500 and 1000 total hours (or more) of focused study on the right materials to learn enough to begin working as a new software engineer.If you're starting right now and you're studying and practicing the right material twenty hours a week, you can pretty confidently have the skills to be ready in a year, maybe less.Zero to Code provides you with a curated collection of free resources you can use to learn the concepts and skills. If you study the Zero to Code material, you can be confident that you're not spending time on skills that will not help you get your foot in the door as quickly as possible.

I'm bad at math, can I still succeed as a software developer?

Yes! In your day-to-day work in web development, you will rarely have to use any more advanced math than basic arithmetic.However, if you want to branch into data science, artificial intelligence, or machine learning, you will have to learn linear algebra, statistics, and possibly single-variable and multi-variable calculus.

What does natural career progression look like for a software engineer?

In short, you go from junior to mid-level to senior developer, then you might choose to lead a team, become a software architect, or get into management.Progressing through the first three ranks can take anywhere between two and eight years of work, often depending on the specific company. Some companies give you the opportunity to achieve a senior title in as little as two to two and a half years, and others won't call you it even if you have eight years' experience.If you're after quick career progression, consider the following:

  • Work at a small company (less than 100 total employees). They have less barriers to quick career movement and it's easier to get your title and compensation more closely tied to your performance in an environment like that.

  • Work at a consulting company. Consulting companies are eager to promote high performers because they get to charge clients more for engineers with higher titles.

What's the difference between a software developer and a software engineer?

For most intents and purposes, there is no difference. The two terms are usually used interchangeably. The only time the difference between the two terms will affect you is if a specific company uses them differently.

Zero to Code FAQs

This is a living, breathing document. Consider bookmarking this page to refer back to it for more answered questions. For feedback and suggestions, email info@zerotocodefastandcheap.com.

What is a realistic timeline for getting a job after starting the program?

This depends on how much you study. If you're studying twenty hours a week, you can expect to be job ready in roughly one year.Re-training into a new career field is not quick or easy. Many people these days coming out of shorter coding bootcamps (10-16 weeks) either end up going back to what they were doing before, struggle for many months to find a job, or even get fired from their first job because they simply have not had enough time for the knowledge and understanding to soak in.

All this curriculum is free, but what's the catch?

Every resource provided in the Zero to Code curriculum has been released for free by other people. We do not claim credit for writing ANY of the material you see on the curriculum.We believe you should not have to pay for information that you can find for free, so we organized this free information into a logical timeline to help you direct and organize your effort.If you decide you want live instruction or one-on-one mentorship, you can sign up for paid sessions one at a time or in packages. While you are not required to buy anything to view the curriculum, learning directly from the experienced software engineers instructing and mentoring can help supercharge the start of your career in software development.

Why such a strong focus on reading and less focus on educational videos? People learn better in different ways, after all.

Software developers have to spend a lot of time reading and understanding code. In fact, in a regular day as a software engineer, you only spend a small portion of your time actually writing code. Instead, most of your time is spent figuring out what code to write.As a gainfully employed software engineer, you often figure out how to solve problems either reading internal resources (code in the codebase and internal process wikis), reading documentation or code examples online, or asking co-workers, who will often point you to written articles and documentation.You will eventually reach a point in your software development career where problems are complex enough that people have not made video tutorials to solve them. Therefore, you will have to research and synthesize a solution from written materials.

Zero to Code in 5 Hours a Week

This is a living, breathing document. Bookmark this page to refer back to it in case pacing changes or resources are added or moved around. For feedback and suggestions, email info@zerotocodefastandcheap.com.

Understand that if you're starting from zero and you're dedicating less than twenty or so hours a week, it will take quite a while to learn enough to start working as a software engineer.

Also understand that this pacing is a work in progress. If you find that five hours a week is too much time or too little time to do the work required, feel free to do more or less up to that five hour mark. You can refer back to this web page frequently for any changes.

You will be completing exercises and tutorials as well as going through articles that explain the ideas behind the exercises and tutorials.

How to go through the exercises

You don't necessarily have to read the articles before doing the exercises if you feel like you learn better doing the exercises and then reading the articles. The exercises get you used to the actions and the actual things you write as a software developer, and the articles help you wrap your head around the larger concepts.

It's not important for you to memorize how exactly to write code. It's far more important for you to know when you need to write certain code and in which order.

In week 1, watch this video to learn how to complete the FreeCodeCamp exercises on your own computer instead of just inside their platform.

Important terminology in the software industry

See Glossary.

How to use the necessary tools and programs for web development

Week 1

Mobile-responsive web page development with HTML5 markup and CSS3 styling

Week 2

Week 3

Week 4

Week 5

Week 6

Week 7

Week 8

Week 9

Week 10

  • Complete "Tribute Page"

  • Read through the "Working with CSS" section of this article. Read through the sections "Spacing Out", "Box Model", "Shorthand Properties", "Layouts: Display", "Layouts: Positioning", "Layouts: Flex", "Responsive: Media Queries", and "Other Considerations".

Week 11

Week 12

Week 13

Week 14

Week 15

  • Complete through exercise 40 in "CSS Grid by Building a Magazine"

  • Read this article about CSS variables. This is in place of completing the CSS variables course from FreeCodeCamp. Don't worry too much about SASS - for your purposes right now, it's just a different way to write styling that can be turned into regular CSS that the web browser will actually understand.

Week 16

Week 17

  • Complete "Personal Portfolio Webpage". Get creative with this and use the skills you learned in the previous material. This will be the springboard from which you can display your skills to recruiters in the future when you're looking for a software developer job.

  • Publish using Github Pages. Github Pages is a service through Github that allows you to easily make your website accessible on the internet

Writing and debugging JavaScript code

Week 18

Week 19

Week 20

Week 21

Week 22

Week 23

Week 24

ES6, otherwise known as ECMAScript 6, is an updated style of writing Javascript code. ECMA is a standards organization. Understanding writing ES6 syntax will be incredibly useful when you begin getting into using front-end Javascript frameworks.

When you're starting as a real-world software engineer, you will likely work heavily with Javascript frameworks like React or Angular.

Week 25

Week 26

Week 27

Week 28

Week 29

  • Read this article about arrays. Don't worry about learning all the details about each of the array methods, but understand JavaScript has a series of ways for you to do complex data manipulations.

  • Read this article about JSON, which is just the key-value mappings you learned about in "Basic Data Structures".

Week 30

Week 31

Week 32

Week 33

Week 34

Week 35

Week 36

Week 37

  • Complete through "Convert HTML Entities" in "Intermediate Algorithm Scripting". Remember to break down the problem into individual bite-size pieces that you can write code for.

Week 38

Week 39 and 40

  • Complete "JavaScript Algorithms and Data Structures Projects". This is gonna take a little bit of time, and you're likely to struggle with some of these. That's totally okay. Remember to keep breaking down the problem into bite-size code. Try solving the problem manually with a small test case and see if you can come up with an algorithm from there.

Using the ReactJS web framework to build scaleable, dynamic web application frontends

Week 41

Zero to Code in 10 Hours a Week

This is a living, breathing document. Bookmark this page to refer back to it in case pacing changes or resources are added or moved around. For feedback and suggestions, email info@zerotocodefastandcheap.com.

Understand that if you're starting from zero and you're dedicating less than twenty or so hours a week, it will take quite a while to learn enough to start working as a software engineer.

Also understand that this pacing is a work in progress. If you find that ten hours a week is too much time or too little time to do the work required, feel free to do more or less up to that ten hour mark. You can refer back to this web page frequently for any changes.

You will be completing exercises and tutorials as well as going through articles that explain the ideas behind the exercises and tutorials.

How to go through the exercises

You don't necessarily have to read the articles before doing the exercises if you feel like you learn better doing the exercises and then reading the articles. The exercises get you used to the actions and the actual things you write as a software developer, and the articles help you wrap your head around the larger concepts.

It's not important for you to memorize how exactly to write code. It's far more important for you to know when you need to write certain code and in which order.

Important terminology in the software industry

See Glossary.

Installing necessary tools and learning mobile-responsive web page development with HTML5 markup and CSS3 styling

Week 1

Week 2

Week 3

Week 4

Week 5

Week 6

Week 7

Week 8

Week 9, Part 1

  • Complete "Personal Portfolio Webpage". Get creative with this and use the skills you learned in the previous material. This will be the springboard from which you can display your skills to recruiters in the future when you're looking for a software developer job.

  • Publish using GitHub Pages. Github Pages is a service through Github that allows you to easily make your website accessible on the internet

Writing and debugging JavaScript code

Week 9, Part 2

Week 10

Week 11

Week 12

ES6, otherwise known as ECMAScript 6, is an updated style of writing Javascript code. ECMA is a standards organization. Understanding writing ES6 syntax will be incredibly useful when you begin getting into using front-end Javascript frameworks.

When you're starting as a real-world software engineer, you will likely work heavily with Javascript frameworks like React or Angular.

Week 13

Rest and catch-up week

Week 14

Week 15

Week 16

  • Read this article about arrays. Don't worry about learning all the details about each of the array methods, but understand JavaScript has a series of ways for you to do complex data manipulations.

  • Read this article about JSON, which is just the key-value mappings you learned about in "Basic Data Structures".

  • Complete through exercise 6, "Confirm the ending" from "Basic Algorithm Scripting"

Week 17

Week 18

Week 19

Week 20

  • Complete "Intermediate Algorithm Scripting". Remember to break down the problem into individual bite-size pieces that you can write code for. If you find it takes longer than the amount of time you have allotted, we can revise and review.

Week 21

  • Complete "JavaScript Algorithms and Data Structures Projects". This is gonna take a little bit of time, and you're likely to struggle with some of these. That's totally okay. Remember to keep breaking down the problem into bite-size code. Try solving the problem manually with a small test case and see if you can come up with an algorithm from there.

Using the ReactJS web framework to build scaleable, dynamic web application frontends

Week 22

Week 23

Week 24

  • Read this article on React concepts. While it's important for you to understand React component lifecycle, you don't need to worry as much (these days) about calling the individual lifecycle methods such as componentDidMount or componentWillUnmount.

  • Complete "React". Ideally, see if you can use some of the hooks you learned about to mimic the same functionality.

Week 25

  • Complete "Redux" and "React and Redux"

  • Read this article on understanding Redux. Fun fact: in real-world React development, Redux is only used when your app's state is so incredibly messy that you have to use a library. You don't use Redux just for the heck of it unless you're learning about it to be ready to use it when it's actually necessary.

More coming soon!

Zero to Code in 15 Hours a Week

This is a living, breathing document. Bookmark this page to refer back to it in case pacing changes or resources are added or moved around. For feedback and suggestions, email info@zerotocodefastandcheap.com.

Understand that if you're starting from zero and you're dedicating less than twenty or so hours a week, it will take quite a while to learn enough to start working as a software engineer.

Also understand that this pacing is a work in progress. If you find that fifteen hours a week is too much time or too little time to do the work required, feel free to do more or less up to that fifteen hour mark. You can refer back to this web page frequently for any changes.

You will be completing exercises and tutorials as well as going through articles that explain the ideas behind the exercises and tutorials.

How to go through the exercises

You don't necessarily have to read the articles before doing the exercises if you feel like you learn better doing the exercises and then reading the articles. The exercises get you used to the actions and the actual things you write as a software developer, and the articles help you wrap your head around the larger concepts.

It's not important for you to memorize how exactly to write code. It's far more important for you to know when and where in your software you need to write code.

Important terminology in the software industry

See Glossary.

Installing necessary tools and learning mobile-responsive web page development with HTML5 markup and CSS3 styling

Week 1

Week 2

Week 3

Week 4

Week 5

Week 6, Part 1

  • Read through and complete this tutorial

  • Complete "CSS Grid by Building a Magazine"

  • Complete "Personal Portfolio Webpage". Get creative with this and use the skills you learned in the previous material. This will be the springboard from which you can display your skills to recruiters in the future when you're looking for a software developer job.

  • Publish using GitHub Pages. Github Pages is a service through Github that allows you to easily make your website accessible on the internet

Writing and debugging JavaScript code

Week 6, Part 2

Week 7

Week 8

ES6, otherwise known as ECMAScript 6, is an updated style of writing Javascript code. ECMA is a standards organization. Understanding writing ES6 syntax will be incredibly useful when you begin getting into using front-end Javascript frameworks.

When you're starting as a real-world software engineer, you will likely work heavily with Javascript frameworks like React or Angular.

Week 9

Week 10

Week 11

Week 12

Week 13

Rest and catch-up week

Week 14

  • Complete "Intermediate Algorithm Scripting". Remember to break down the problem into individual bite-size pieces that you can write code for. If you find it takes longer than the amount of time you have allotted, we can revise and review.

Week 15

  • Complete "JavaScript Algorithms and Data Structures Projects". This is gonna take a little bit of time, and you're likely to struggle with some of these. That's totally okay. Remember to keep breaking down the problem into bite-size code. Try solving the problem manually with a small test case and see if you can come up with an algorithm from there.

Using the ReactJS web framework to build scaleable, dynamic web application frontends

Week 16

Week 17

  • Read this article on React hooks. We're repeating these in different weeks to help the concepts stick and click.

  • Watch this video starting at 4:41:37, "Create React App" and complete up to 9:51:34, "Build a Notes App"

  • Read this article on React concepts. While it's important for you to understand React component lifecycle, you don't need to worry as much (these days) about calling the individual lifecycle methods such as componentDidMount or componentWillUnmount.

  • Complete "React". Ideally, see if you can use some of the hooks you learned about to mimic the same functionality.

Week 18

  • Complete "Redux" and "React and Redux"

  • Read this article on understanding Redux. Fun fact: in real-world React development, Redux is only used when your app's state is so incredibly messy that you have to use a library. You don't use Redux just for the heck of it unless you're learning about it to be ready to use it when it's actually necessary.

More coming soon!

Zero to Code in 20 Hours a Week

This is a living, breathing document. Bookmark this page to refer back to it in case pacing changes or resources are added or moved around. For feedback and suggestions, email info@zerotocodefastandcheap.com.

Understand that this pacing is a work in progress. If you find that twenty hours a week is too much time or too little time to do the work, feel free to do what you can up to that twenty hour mark. You can refer back to this page frequently for any changes.

You will be completing exercises and tutorials as well as going through articles that explain the ideas behind the exercises and tutorials.

How to go through the exercises

You don't necessarily have to read the articles before doing the exercises if you feel like you learn better doing the exercises and then reading the articles. The exercises get you used to the actions and the actual things you write as a software developer, and the articles help you wrap your head around the larger concepts.

It's not important for you to memorize how exactly to write code. It's far more important for you to know when you need to write certain code and in which order.

Important terminology in the software industry

See Glossary.

Installing necessary tools and learning mobile-responsive web page development with HTML5 markup and CSS3 styling

Week 1

Week 2

Week 3

Week 4

Week 5, Part 1

  • Complete "Personal Portfolio Webpage". Get creative with this and use the skills you learned in the previous material. This will be the springboard from which you can display your skills to recruiters in the future when you're looking for a software developer job.

  • Publish using GitHub Pages. Github Pages is a service through Github that allows you to easily make your website accessible on the internet

Writing and debugging JavaScript code

Week 5, Part 2

Week 6

ES6, otherwise known as ECMAScript 6, is an updated style of writing Javascript code. ECMA is a standards organization. Understanding writing ES6 syntax will be incredibly useful when you begin getting into using front-end Javascript frameworks.

When you're starting as a real-world software engineer, you will likely work heavily with Javascript frameworks like React or Angular.

Week 7

Week 8

  • Read this article about arrays. Don't worry about learning all the details about each of the array methods, but understand JavaScript has a series of ways for you to do complex data manipulations.

  • Read this article about JSON, which is just the key-value mappings you learned about in "Basic Data Structures".

  • Complete through exercise 6, "Confirm the ending" from "Basic Algorithm Scripting"

Week 9

Week 10

  • Complete "Intermediate Algorithm Scripting". Remember to break down the problem into individual bite-size pieces that you can write code for. If you find it takes longer than the amount of time you have allotted, we can revise and review.

  • Complete "JavaScript Algorithms and Data Structures Projects". This is gonna take a little bit of time, and you're likely to struggle with some of these. That's totally okay. Remember to keep breaking down the problem into bite-size code. Try solving the problem manually with a small test case and see if you can come up with an algorithm from there.

Using the ReactJS web framework to build scaleable, dynamic web application frontends

Week 11

Week 12

  • Read this article on React concepts. While it's important for you to understand React component lifecycle, you don't need to worry as much (these days) about calling the individual lifecycle methods such as componentDidMount or componentWillUnmount.

  • Complete "React" and "Redux". Ideally, see if you can use some of the hooks you learned about to mimic the same functionality.

Week 13

Rest and catch up week

Week 14

  • Complete "React and Redux"

  • Read this article on understanding Redux. Fun fact: in real-world React development, Redux is only used when your app's state is so incredibly messy that you have to use a library. You don't use Redux just for the heck of it unless you're learning about it to be ready to use it when it's actually necessary.

More coming soon!