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
Sign up for FreeCodeCamp
Sign up for LinkedIn if you don't already have an account
Mobile-responsive web page development with HTML5 markup and CSS3 styling
Week 2
Complete up to Exercise 43 in "Learn HTML by building a cat photo app"
Read through this article about HTML basics
Week 3
Read through another article about HTML basics. If you want to follow along, do it with VS Code instead of Cloud9
Week 4
Complete through Exercise 44 in "Learn Basic CSS by Building a Cafe Menu"
Read through this article about CSS basics
Week 5
Read through another article about CSS basics. Only read through the CSS Syntax section, including "CSS Syntax", "CSS Selectors", "CSS Specificity", CSS Properties".
Week 6
Complete through exercise 48 of "Learn CSS Colors by Building a Set of Colored Markers"
Week 7
Complete "Learn CSS Colors by Building a Set of Colored Markers"
Read through this article on CSS colors. Click through each of the links like "color", "background-color", "text-shadow", etc.
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
Complete through exercise 51 on "Learn Intermediate CSS By Building a Picasso Painting"
Read through this article on CSS
Week 13
Complete through exercise 89 in "Learn Intermediate CSS By Building a Picasso Painting"
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
Read through and complete this tutorial
Complete "CSS Grid by Building a Magazine"
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
Read this article about variables and this article about math in JavaScript.
Complete up through "Finding a Remainder with JavaScript" in "Basic JavaScript"
Week 19
Complete up through "Word Blanks" in "Basic JavaScript"
Week 20
Complete up through "Stand in Line" in "Basic JavaScript"
Read this article about arrays and this article about functions. For each of these articles, please attempt the "Test your skills" sections; you don't have to complete them, but they will help you practice the skills in a less structured environment than inside of FreeCodeCamp.
Week 21
Complete up through "Golf Code" in "Basic JavaScript"
Read this article about equality in JavaScript, this article about operators, and this article about conditionals. In the Operators article, don't worry about reading "Specifications" and beyond.
Week 22
Complete up through "Record Collection" in "Basic JavaScript"
Week 23
Complete "Basic JavaScript"
Read this article about loops in JavaScript and this article about recursion. Recursion is NOT easy; don't worry if you don't get it completely. Also, in my experience, it is not used regularly in industry, but it might help greatly with coding interviews.
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.
Complete up through "Write Concise Object Literal Declarations Using Object Property Shorthand" in "ES6"
Read this article about spread in JavaScript and this article about restructuring objects
Week 25
Complete "ES6"
Read this article describing promises in JavaScript and this article about promise terminology. From the second article, read the sections "What's all the fuss about?", "Events aren't always the best way", and "Promise terminology".
Week 26
Read this article on exceptions and this article on try-catch expressions
Read this additional article on try-catch. Play around with the "Try It" section at the beginning of the article as you continue to learn and understand more.
Week 27
Week 28
Complete "Basic Data Structures"
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
Complete through exercise 6, "Confirm the ending" from "Basic Algorithm Scripting"
Week 31
Complete through exercise 11, "Title case a sentence" from "Basic Algorithm Scripting"
Week 32
Complete "Basic Algorithm Scripting"
Week 33
Complete up through exercise 13, "Change the Prototype to a New Object" from "Object-Oriented Programming"
Read this article on prototypes and this article on constructors. Understand for the prototypes article, there's a
constructor()
method inside of the object because the type of object is aclass
not afunction
like what's used in FreeCodeCamp's course.
Week 34
Complete "Object-Oriented Programming"
Read this article on inheritance. Feel free to stop reading when you reach "Constructors"
Week 35
Complete "Functional Programming"
Week 36
Read this article on using pseudocode to break down problems and this other article on using pseudocode to break down problems
Complete through "Seek and Destroy" in "Intermediate Algorithm Scripting". Remember to break down the problem into individual bite-size pieces that you can write code for. If you don't know how to do an individual piece, feel free to search for how to write code to do one part of the exercise. However, please refrain from searching for complete solutions.
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
Complete "Intermediate Algorithm Scripting". If you find it takes longer than the amount of time you have allotted, we can revise and review.
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
Sign up for FreeCodeCamp
Watch this video describing how to use Visual Studio Code to complete your HTML and CSS exercises
Sign up for LinkedIn if you don't already have an account
Complete up to Exercise 43 in "Learn HTML by building a cat photo app"
Read through this article about HTML basics
Week 2
Read through another article about HTML basics. If you want to follow along, do it with VS Code instead of Cloud9
Complete through Exercise 44 in "Learn Basic CSS by Building a Cafe Menu"
Read through this article about CSS basics
Week 3
Read through another article about CSS basics. Only read through the CSS Syntax section, including "CSS Syntax", "CSS Selectors", "CSS Specificity", CSS Properties".
Complete through exercise 48 of "Learn CSS Colors by Building a Set of Colored Markers"
Week 4
Complete "Learn CSS Colors by Building a Set of Colored Markers"
Read through this article on CSS colors. Click through each of the links like "color", "background-color", "text-shadow", etc.
Week 5
Complete "Learn the CSS Box Model by Building a Rothko Painting" and "Learn CSS Flexbox by Building a Photo Gallery"
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 6
Complete "Learn More About CSS Pseudo Selectors By Building A Balance Sheet"
Complete through exercise 51 on "Learn Intermediate CSS By Building a Picasso Painting"
Read through this article on CSS
Week 7
Complete through exercise 89 in "Learn Intermediate CSS By Building a Picasso Painting"
Complete "Learn Intermediate CSS By Building a Picasso Painting"
Week 8
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.
Read through and complete this tutorial
Complete "CSS Grid by Building a Magazine"
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
Install NPM and NodeJS. Stick with the latest LTS version.
Read this article about variables and this article about math in JavaScript.
Complete up through "Finding a Remainder with JavaScript" in "Basic JavaScript"
Week 10
Complete up through "Stand in Line" in "Basic JavaScript"
Read this article about arrays and this article about functions. For each of these articles, please attempt the "Test your skills" sections; you don't have to complete them, but they will help you practice the skills in a less structured environment than inside of FreeCodeCamp.
Week 11
Complete up through "Record Collection" in "Basic JavaScript"
Read this article about equality in JavaScript, this article about operators, and this article about conditionals. In the Operators article, don't worry about reading "Specifications" and beyond.
Week 12
Complete "Basic JavaScript"
Read this article about loops in JavaScript and this article about recursion. Recursion is NOT easy; don't worry if you don't get it completely. Also, in my experience, it is not used regularly in industry, but it might help greatly with coding interviews.
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.
Complete up through "Write Concise Object Literal Declarations Using Object Property Shorthand" in "ES6"
Read this article about spread in JavaScript and this article about restructuring objects
Week 13
Rest and catch-up week
Week 14
Complete "ES6"
Read this article describing promises in JavaScript and this article about promise terminology. From the second article, read the sections "What's all the fuss about?", "Events aren't always the best way", and "Promise terminology".
Read this article on exceptions and this article on try-catch expressions
Read this additional article on try-catch. Play around with the "Try It" section at the beginning of the article as you continue to learn and understand more.
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
Complete through exercise 11, "Title case a sentence" from "Basic Algorithm Scripting"
Complete "Basic Algorithm Scripting"
Week 18
Complete "Object-Oriented Programming"
Read this article on inheritance. Feel free to stop reading when you reach "Constructors".
Read this article on prototypes and this article on constructors. Understand for the prototypes article, there's a
constructor()
method inside of the object because the type of object is aclass
not afunction
like what's used in FreeCodeCamp's course.
Week 19
Complete "Functional Programming"
Read this article on using pseudocode to break down problems and this other article on using pseudocode to break down problems
Complete through "Seek and Destroy" in "Intermediate Algorithm Scripting". Remember to break down the problem into individual bite-size pieces that you can write code for. If you don't know how to do an individual piece, feel free to search for how to write code to do one part of the exercise. However, please refrain from searching for complete solutions.
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
Follow this tutorial on how to set up a ReactJS app on your computer
Watch this video starting at 1:34:47, "Create React App" and complete up to 4:41:37, "Build a Meme Generator"
Read this article on state and lifecycle in React, starting from "Adding Lifecycle Methods to a Class". Stop reading once you reach "Using State Correctly".
Watch this video on useState and this video on useEffect. We're harping on these two hooks primarily because you'll be using them the most in real-world React development.
Week 23
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"
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
orcomponentWillUnmount
.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
Sign up for FreeCodeCamp
Watch this video describing how to use Visual Studio Code to complete your HTML and CSS exercises
Sign up for LinkedIn if you don't already have an account
Complete up to Exercise 43 in "Learn HTML by building a cat photo app"
Read through this article about HTML basics
Read through another article about HTML basics. If you want to follow along, do it with VS Code instead of Cloud9
Week 2
Complete through Exercise 44 in "Learn Basic CSS by Building a Cafe Menu"
Read through this article about CSS basics
Read through another article about CSS basics. Only read through the CSS Syntax section, including "CSS Syntax", "CSS Selectors", "CSS Specificity", CSS Properties".
Complete through exercise 48 of "Learn CSS Colors by Building a Set of Colored Markers"
Week 3
Complete "Learn CSS Colors by Building a Set of Colored Markers"
Read through this article on CSS colors. Click through each of the links like "color", "background-color", "text-shadow", etc.
Complete "Learn the CSS Box Model by Building a Rothko Painting" and "Learn CSS Flexbox by Building a Photo Gallery"
Week 4
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".
Complete "Learn More About CSS Pseudo Selectors By Building A Balance Sheet"
Complete through exercise 51 on "Learn Intermediate CSS By Building a Picasso Painting"
Read through this article on CSS
Week 5
Complete through exercise 89 in "Learn Intermediate CSS By Building a Picasso Painting"
Complete "Learn Intermediate CSS By Building a Picasso Painting"
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 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
Install NPM and NodeJS. Stick with the latest LTS version.
Read this article about variables and this article about math in JavaScript.
Complete up through "Finding a Remainder with JavaScript" in "Basic JavaScript"
Week 7
Complete up through "Golf Code" in "Basic JavaScript"
Read this article about equality in JavaScript, this article about operators, and this article about conditionals. In the Operators article, don't worry about reading "Specifications" and beyond.
Read this article about arrays and this article about functions. For each of these articles, please attempt the "Test your skills" sections; you don't have to complete them, but they will help you practice the skills in a less structured environment than inside of FreeCodeCamp.
Week 8
Complete "Basic JavaScript"
Read this article about equality in JavaScript, this article about operators, and this article about conditionals. In the Operators article, don't worry about reading "Specifications" and beyond.
Read this article about loops in JavaScript and this article about recursion. Recursion is NOT easy; don't worry if you don't get it completely. Also, in my experience, it is not used regularly in industry, but it might help greatly with coding interviews.
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.
Complete up through "Write Concise Object Literal Declarations Using Object Property Shorthand" in "ES6"
Read this article about spread in JavaScript and this article about restructuring objects
Week 9
Complete "ES6"
Read this article describing promises in JavaScript and this article about promise terminology. From the second article, read the sections "What's all the fuss about?", "Events aren't always the best way", and "Promise terminology".
Read this article on exceptions and this article on try-catch expressions
Read this additional article on try-catch. Play around with the "Try It" section at the beginning of the article as you continue to learn and understand more.
Complete "Debugging"
Read this article teaching how to debug JavaScript in your Chrome web browser
Week 10
Complete "Basic Data Structures"
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 11
Complete through exercise 11, "Title case a sentence" from "Basic Algorithm Scripting"
Complete "Basic Algorithm Scripting"
Complete up through exercise 13, "Change the Prototype to a New Object" from "Object-Oriented Programming"
Read this article on prototypes and this article on constructors. Understand for the prototypes article, there's a
constructor()
method inside of the object because the type of object is aclass
not afunction
like what's used in FreeCodeCamp's course.
Week 12
Complete "Object-Oriented Programming"
Complete "Functional Programming"
Read this article on using pseudocode to break down problems and this other article on using pseudocode to break down problems
Complete through "Seek and Destroy" in "Intermediate Algorithm Scripting". Remember to break down the problem into individual bite-size pieces that you can write code for. If you don't know how to do an individual piece, feel free to search for how to write code to do one part of the exercise. However, please refrain from searching for complete solutions.
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
Follow this tutorial on how to set up a ReactJS app on your computer
Watch this video starting at 1:34:47, "Create React App" and complete up to 4:41:37, "Build a Meme Generator"
Read this article on state and lifecycle in React, starting from "Adding Lifecycle Methods to a Class". Stop reading once you reach "Using State Correctly".
Watch this video on useState and this video on useEffect. We're harping on these two hooks primarily because you'll be using them the most in real-world React development.
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
orcomponentWillUnmount
.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
Sign up for FreeCodeCamp
Watch this video describing how to use Visual Studio Code to complete your HTML and CSS exercises
Sign up for LinkedIn if you don't already have an account
Complete up to Exercise 43 in "Learn HTML by building a cat photo app"
Read through this article about HTML basics
Read through another article about HTML basics. If you want to follow along, do it with VS Code instead of Cloud9
Complete through Exercise 44 in "Learn Basic CSS by Building a Cafe Menu"
Read through this article about CSS basics
Week 2
Read through another article about CSS basics. Only read through the CSS Syntax section, including "CSS Syntax", "CSS Selectors", "CSS Specificity", CSS Properties".
Complete through exercise 48 of "Learn CSS Colors by Building a Set of Colored Markers"
Complete "Learn CSS Colors by Building a Set of Colored Markers"
Read through this article on CSS colors. Click through each of the links like "color", "background-color", "text-shadow", etc.
Week 3
Complete "Learn the CSS Box Model by Building a Rothko Painting" and "Learn CSS Flexbox by Building a Photo Gallery"
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".
Complete "Learn More About CSS Pseudo Selectors By Building A Balance Sheet"
Complete through exercise 51 on "Learn Intermediate CSS By Building a Picasso Painting"
Read through this article on CSS
Week 4
Complete through exercise 89 in "Learn Intermediate CSS By Building a Picasso Painting"
Complete "Learn Intermediate CSS By Building a Picasso Painting"
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.
Read through and complete this tutorial
Complete "CSS Grid by Building a Magazine"
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
Install NPM and NodeJS. Stick with the latest LTS version.
Read this article about variables and this article about math in JavaScript.
Complete up through "Finding a Remainder with JavaScript" in "Basic JavaScript"
Complete up through "Stand in Line" in "Basic JavaScript"
Read this article about arrays and this article about functions. For each of these articles, please attempt the "Test your skills" sections; you don't have to complete them, but they will help you practice the skills in a less structured environment than inside of FreeCodeCamp.
Week 6
Complete up through "Record Collection" in "Basic JavaScript"
Read this article about equality in JavaScript, this article about operators, and this article about conditionals. In the Operators article, don't worry about reading "Specifications" and beyond.
Complete "Basic JavaScript"
Read this article about loops in JavaScript and this article about recursion. Recursion is NOT easy; don't worry if you don't get it completely. Also, in my experience, it is not used regularly in industry, but it might help greatly with coding interviews.
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.
Complete up through "Write Concise Object Literal Declarations Using Object Property Shorthand" in "ES6"
Read this article about spread in JavaScript and this article about restructuring objects
Week 7
Complete "ES6"
Read this article describing promises in JavaScript and this article about promise terminology. From the second article, read the sections "What's all the fuss about?", "Events aren't always the best way", and "Promise terminology".
Read this article on exceptions and this article on try-catch expressions
Read this additional article on try-catch. Play around with the "Try It" section at the beginning of the article as you continue to learn and understand more.
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"
Complete through exercise 11, "Title case a sentence" from "Basic Algorithm Scripting"
Complete "Basic Algorithm Scripting"
Week 9
Complete "Object-Oriented Programming"
Read this article on inheritance. Feel free to stop reading when you reach "Constructors"(https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/#object-oriented-programming)
Read this article on prototypes and this article on constructors. Understand for the prototypes article, there's a
constructor()
method inside of the object because the type of object is aclass
not afunction
like what's used in FreeCodeCamp's course.
Complete "Object-Oriented Programming"
Read this article on inheritance. Feel free to stop reading when you reach "Constructors"
Complete "Functional Programming"
Read this article on using pseudocode to break down problems and this other article on using pseudocode to break down problems
Complete through "Seek and Destroy" in "Intermediate Algorithm Scripting". Remember to break down the problem into individual bite-size pieces that you can write code for. If you don't know how to do an individual piece, feel free to search for how to write code to do one part of the exercise. However, please refrain from searching for complete solutions.
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
Follow this tutorial on how to set up a ReactJS app on your computer
Watch this video starting at 1:34:47, "Create React App" and complete up to and complete up to 9:51:34, "Build a Notes App"
Read this article on state and lifecycle in React, starting from "Adding Lifecycle Methods to a Class". Stop reading once you reach "Using State Correctly".
Watch this video on useState and this video on useEffect. We're harping on these two hooks primarily because you'll be using them the most in real-world React development.
Read this article on React hooks. We're repeating these in different weeks to help the concepts stick and click.
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
orcomponentWillUnmount
.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.