We've been working hard on Version 7.0 of the freeCodeCamp curriculum. Here's what we're building.

Some of these improvements - including 4 new Python certifications - will go live in early 2020.

Note: if you're already going through the current version of the curriculum, keep going. As you'll see, there's no reason to stop.

The Version 7.0 curriculum...

Will take a person with very basic computer knowledge...

Build that person up through 3,000 hours of coursework...

Ramp up their programming skills...

Solidify their software engineering fundamentals...

And they will emerge on the other side as a well-rounded developer, ready for most entry-level developer jobs.

As always, there are no electives. There is no guesswork. You can just power through the curriculum from start to finish.

And along the way, you'll learn the tools and concepts used by modern software development teams.

With Version 7.0, you'll still learn Front End Web Development skills and Back End API design.

And now you'll also learn Python and its powerful suite of Data Science and Machine Learning tools.

Improvement #1: We're adding 4 new data-focused certifications.

In addition to the 6 certifications we've had since 2017, we're adding 4 new certifications, all using Python:

  • Scientific Computing
  • Data Analysis
  • Information Security
  • Machine Learning

You'll use libraries like Numpy, Matplotlib, and TensorFlow to build a wide variety of projects.

Improvement #2: Instead of individual lessons, everything will be a project.

Our current curriculum has blocks of individual lessons. These can feel disconnected from one another - and even a bit like "interactive documentation."

This approach has been effective enough to help 40,000 people get their first developer job. But building projects is a lot more fun. And learning should be fun. 🙂

So with Version 7.0, we're replacing these optional lessons with our all-new Practice Projects.

For each of these Practice Projects, you'll build up a codebase - one passing test after another.

Until - hundreds of passing tests later - you have a fully functional project.

For example, instead of learning JavaScript through a series of 200 discreet lessons, you'll learn JavaScript by building a fully playable role playing game.

We will build in a lot more repetition to help you strengthen your "muscle memory" for coding.

Improvement #3: We're adding Crash Courses on Git, Linux, and SQL.

Past versions of the freeCodeCamp curriculum taught Git, Linux, and SQL.

But we wanted to make the curriculum fully interactive. No articles. No videos. Just coding from start to finish.

So we made our curriculum run completely client-side. You could just jam through freeCodeCamp in your browser and ride a zero millisecond feedback loop.

Conventional wisdom at the time was that teaching Git, Linux, or SQL would require a file system. And this would require servers. And servers would introduce a lot of latency.

So we removed these parts from our curriculum and basically said: "go learn these from our YouTube channel or from other resources."

Well today, I'm thrilled to announce that we're working on some interactive crash courses for these three tools.

These will not be certifications. They will be stand-alone tutorials. And you'll be able to do them whenever you want. No other parts of the curriculum will depend upon these skills.

Since we're teaching these in your browser, we can only approximate a full server environment. But we're confident we can still teach you a lot of the core concepts interactively.

Here's the full Version 7.0 curriculum. All 111 projects.

By the end of 2020, freeCodeCamp's curriculum will look something like this:

[HTML+CSS] Responsive Web Design (16 projects)

🛠️ Practice Projects:️

  • Learn Basic HTML by Building a Cat Photo App
  • Learn Basic CSS by Building a Blog
  • Learn Intermediate CSS by Building a Picasso Painting
  • Learn the CSS Box Model by Building a Rothko Painting
  • Learn CSS Variables by Building a City Skyline
  • Learn CSS Animations by Building a Ferris Wheel
  • Learn Typography by Building a Nutrition Label
  • Learn Accessibility by Building a User Feedback Survey
  • Learn Responsive Web Design by Building a Piano
  • Learn CSS Flexbox by Building a Photo Gallery
  • Learn CSS Grid by Building a Magazine

🏆 Certification Projects:

  • Tribute Page
  • Survey Form
  • Product Landing Page
  • Technical Documentation Page
  • Personal Portfolio Webpage

[JavaScript] Algorithms and Data Structures (13 projects)

🛠️ Practice Projects:

  • Learn Basic JavaScript by Building a Role Playing Game
  • Learn Intermediate JavaScript by Building a Calorie Counter
  • Learn Regular Expressions by Building a Spam Filter
  • Learn Debugging by Building a Dice Game
  • Learn Data Structures by Building a Shopping Cart
  • Learn Basic Algorithms by Building an Algorithmic News Feed
  • Learn Intermediate Algorithms by Building a Yahtzee Game
  • Learn Functional Programming by Building a Spreadsheet

🏆 Certification Projects:

  • Palindrome Checker
  • Roman Numeral Converter
  • Caesars Cipher
  • Telephone Number Validator
  • Cash Register

[JavaScript] Front End Libraries (10 projects)

🛠️ Practice Projects:

  • Learn Basic React by Building a Quiz App
  • Learn Intermediate React by Building Flappy Bird
  • Learn Basic Redux by Building and Exercise Tracker
  • Learn Intermediate Redux by Building Tetris
  • Learn TypeScript by Building a Poker Game

🏆 Certification Projects:

  • Random Quote Machine
  • Markdown Previewer
  • Drum Machine
  • JavaScript Calculator
  • Pomodoro Clock

[JavaScript] Data Visualization (11 projects)

🛠️ Practice Projects:

  • Learn CSV by Building a Mailing List
  • Learn JSON by Building a Sports Team
  • Learn AJAX by Building a View Counter
  • Lean Data Visualization by Building a Dashboard
  • Learn SVG by Building a Solar System
  • Learn D3 by Building a Map of Earth

🏆 Certification Projects:

  • Bar Chart
  • Scatterplot Graph
  • Heat Map
  • Choropleth Map
  • Treemap Diagram

[JavaScript] APIs and Microservices (10 projects)

🛠️ Practice Projects:

  • Learn npm by Building an npm Module
  • Learn Node.js by Building a Web Server
  • Learn Express.js by Building an Stock Trading Platform
  • Learn RESTful APIs by Building a Weather Service
  • Learn MongoDB by Building a Movie Review Database

🏆 Certification Projects:

  • Timestamp Microservice
  • Request Header Parser Microservice
  • URL Shortener Microservice
  • Exercise Tracker
  • File Metadata Microservice

[JavaScript] Quality Assurance (10 projects)

🛠️ Practice Projects:

  • Learn Testing Basics by Building a Recipe Ingredient Parser
  • Learn Unit Testing by Writing Tests for an E-Commerce Site
  • Learn Integration Testing by Writing Tests for an E-Commerce Site
  • Learn Functional Testing by Writing Tests for an E-Commerce Site
  • Learn Jest and React Testing Library by Testing a React Tic Tac Toe Game

🏆 Certification Projects:

  • Metric-Imperial Converter
  • Issue Tracker
  • Personal Book Library
  • Sudoku Solver (Replacing Stock Price Checker, which is moving to Information Security)
  • Grammar Checker (Replacing Anonymous Message Board, which is moving to Information Security)

[Python] Scientific Computing (10 projects)

🛠️ Practice Projects:

  • Learn Python Basics by Building a Blackjack Game
  • Learn Intermediate Python by Building a Contact Book Program
  • Learn Object Oriented Programming by Building a Minesweeper Game
  • Learn Recursion by Solving the Tower of Hanoi Puzzle
  • Learn Concurrency by Building a Prime Number Generator

🏆 Certification Projects:

  • Arithmetic Formatter
  • Time Calculator
  • Battery Life Calculator
  • Polygon Area Calculator
  • N Queens Solver

[Python] Data Analysis (10 projects)

🛠️ Practice Projects:

  • Learn Basic NumPy by Creating and Manipulating Arrays
  • Learn Intermediate NumPy by Building Conway's Game of Life
  • Learn Pandas by Analyzing Sales Data
  • Learn Data Wrangling by Organizing the USDA Food Database
  • Learn matplotlib and Data Visualization by Graphing Website Analytics

🏆 Certification Projects:

  • Mean-Variance-Standard Deviation Calculator
  • Demographic Data Time Series Analyzer
  • Medical Data Visualizer
  • Academic Citation Grapher
  • Product Review Data Dashboard

[JavaScript + Python] Information Security (11 projects)

🛠️ Practice Projects:

  • Learn Information Security by Building a Credit Card Form (JS)
  • Learn Cryptography by Building a Digital Signature System (JS)
  • Learn Authentication by Building a Signup Page (JS)
  • Learn Websockets by Building a Chat Room (JS)
  • Learn About Network Security by Building a Packet Sniffer (PY)
  • Learn Scapy by Creating Packets from Scratch (PY)

🏆 Certification Projects:

  • Stock Price Checker (In existing curriculum, being moved)
  • Anonymous Message Board (In existing curriculum, being moved)
  • Port Scanner
  • Packet Capturer
  • Secure Real Time Multiplayer Game

[Python] Machine Learning (10 projects)

🛠️ Practice Projects:

  • Learn the Basics of Machine Learning by Building a Program to Identify Handwritten Digits
  • Learn Tensorflow by Building a Movie Recommendation System
  • Learn Regression Models by Building a House Price Predictor
  • Learn Classification Algorithms by Classifying Iris Flower Images
  • Learn Deep Learning by Analyzing Traffic Signals

🏆 Certification Projects:

  • Rock Paper Scissors Analyzer
  • Cat and Dog Image Classifier
  • Music Recommendation Engine
  • Linear Regression Fuel Economy Calculator
  • Neural Network Text Analyzer

🛤️ And our 3 Crash Courses:

  • Relational Databases - Learn SQL by Building a University Database
  • Linux - Learn Bash basics by Playing Capture the Flag
  • Git - Learn Git by Creating an Open Source Project

🏋️‍♀️ And, of course, our Coding Interview Prep section (already available) offers thousands of hours of extra practice:

  • Advanced Algorithms (9 algorithms)
  • Advanced Data Structures (46 algorithms)
  • Rosetta Code Algorithms (134 algorithms)
  • Project Euler Algorithms (480 algorithms)
  • Take Home Projects (20 projects)

How we're rolling everything out

We're rolling out these changes in 4 stages. None of these are breaking changes. The curriculum will remain fully backward compatible.

If you've earned a certification in the past, you'll keep it. Nobody will have to re-do projects.

Stage 1: Publish Python Certification Projects

Stage 2: Update Our User Interface to support New Practice Projects

Stage 3: Publish Python Practice Projects

Stage 4: Publish JavaScript Practice Projects to replace existing JavaScript lessons

Frequently Asked Questions

I'm in the middle of the current curriculum. Should I keep going?

Yes. Keep going. None of this will affect anything you're learning today. The new curriculum is fully backward compatible.

I've already earned certifications with the current curriculum. What will happen to these?

Congrats on your certifications. Good news: our current 6 certifications aren't changing. They will still be in the curriculum, and each of them will keep the same 5 Certification Projects.

Remember: in order to earn a certification, all you need to do is build its 5 Certification Projects. All the lessons are optional.

So even though we're replacing these lessons with Practice Projects, you won't need to go back and do these. The Practice Projects - just like the lessons - will be completely optional.

What are the other changes I should know about?

We are changing the name of the "Quality Assurance and Information Security" certification to just be "Quality Assurance." We're doing this because we have a new certification focused just on Information Security.

The Quality Assurance certification will cover a lot more testing. Two of its old Certification Projects are being moved to the new Information Security certification. And we're replacing those with 2 new Quality Assurance Certification Projects.

If you've already earned the old Quality Assurance certification, you won't need to build these 2 new projects. But you can build them if you want for extra practice.

Do I need to do all 3,000 hours of coursework before I can start applying for jobs?

In practice, very few people complete the entire curriculum before going out and getting a job.

So don't think of this curriculum as "everything you should know before you start your job search."

Instead, think of this as: "everything a modern developer should know early in their career." You can keep learning new skills through the curriculum even after you've gotten your first developer job.

Can I apply for data science jobs with this?

Data Science is a multi-disciplinary field that combines programming, statistics, and domain knowledge. It is not an entry-level field, but rather a career you transition into once you get your Ph.D. or work a variety of jobs in industry.

We teach a lot of data science tools because these are valuable for generalist developers as well. Note that we do not teach the math or industry-specific domain knowledge you'd need as a data scientist. So if your goal is to become a data scientist, you'll probably want to learn those in school or on the job.

What exactly will be added on January 1?

On January 1, you will be able to earn each of the new 4 Python-focused certifications by building their 5 Certification Projects.

You'll be able to build these 20 projects in your browser or on your local computer.

Note that we won't add each of these new certifications' Practice Projects until early 2020. So in the meantime, you'll need to use other Python resources as a reference for building these.

Back in 2017, we used this approach of launching Certification Projects before their corresponding lessons. It worked fine, and allowed us to make these new certifications available sooner. (The new Practice Projects and user experience overhaul will take additional time.)

How can I help?

We are a tiny nonprofit with a comically small budget. But we are extremely efficient. In 2019 we provided more than 1.1 billion minutes of instruction on a budget of only $373,000. That comes out to 50 hours of instruction per dollar donated.

The best way to help our mission is to support freeCodeCamp.org directly with a donation.

You can also help by hanging out on the freeCodeCamp forum and answering people's questions. We are now one of the biggest programming communities on the web, thanks to so many helpful volunteers.

Thanks again for being part of the freeCodeCamp community. 2019 has been a year of groundwork. 2020 will be the year that our efforts come to fruition.

I'm grateful that you'll be here with us as our community takes its next big step into the future.