Yes, you can learn to code for free, from the convenience of your own home, and at your own pace. I'm going to show you 101 courses where you can learn computer science and programming for free.

The freeCodeCamp courses are completely free and some of them include a free certification that you can add to your LinkedIn or résumé.

Note that some of the non-freeCodeCamp courses I've listed here (such as the university courses) are free to audit, but do require you to pay a fee if you want a certificate.

Here is the complete list of free courses, arranged by topic. Once you find a course that interests you, click that link and it will jump you down to a more detailed description of that course.

Computer Science Courses (22)

  1. Introduction to Programming and Computer Science (freeCodeCamp)
  2. Data Structures - Computer Science Course for Beginners (freeCodeCamp)
  3. CS50's Introduction to Computer Science (Harvard University)
  4. Introduction to Computer Science and Programming Using Python (MIT)
  5. Introduction to Computational Thinking and Data Science (MIT)
  6. Algorithms, Part I (Princeton University)
  7. Algorithms, Part II (Princeton University)
  8. Analysis of Algorithms (Princeton University)
  9. Principles of Computing (Part 1) (Rice University)
  10. Principles of Computing (Part 2) (Rice University)
  11. Algorithmic Thinking (Part 1) (Rice University)
  12. Algorithmic Thinking (Part 2) (Rice University)
  13. Divide and Conquer, Sorting and Searching, and Randomized Algorithms (Stanford University)
  14. Graph Search, Shortest Paths, and Data Structures (Stanford University)
  15. Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming (Stanford University)
  16. Shortest Paths Revisited, NP-Complete Problems and What To Do About Them (Stanford University)
  17. Algorithmic Toolbox (University of California San Diego)
  18. Data Structures (University of California San Diego)
  19. Algorithms on Graphs (University of California San Diego)
  20. Algorithms on Strings (University of California San Diego)
  21. Advanced Algorithms and Complexity (University of California San Diego)
  22. Genome Assembly Programming Challenge (University of California San Diego)

Git and Github Courses (2)

  1. Git and GitHub for Beginners - Crash Course (freeCodeCamp)
  2. Git & GitHub Crash Course For Beginners (Brad Traversy)

HTML Courses (7)

  1. Basic HTML and HTML5 (freeCodeCamp)
  2. HTML Full Course - Build Your Own Website (freeCodeCamp)
  3. Introduction to HTML5 (University of Michigan)
  4. HTML Tutorial for Beginners: HTML Crash Course 2021 (Programming with Mosh)
  5. HTML Crash Course For Absolute Beginners (Traversy Media)
  6. Learn HTML (Codecademy)
  7. HTML For Beginners The Easy Way (html.com)

CSS Courses (9)

  1. Responsive Web Design (freeCodeCamp)
  2. CSS Tutorial - Zero to Hero (freeCodeCamp)
  3. Sass Tutorial for Beginners - CSS With Superpowers (freeCodeCamp)
  4. Intro to HTML and CSS (Udacity)
  5. HTML and CSS Tutorial (MarkSheet)
  6. CSS Crash Course For Absolute Beginners (Traversy Media)
  7. Introduction to CSS3 (University of Michigan)
  8. CSS Basics (W3C)
  9. Bootstrap 5 tutorial - crash course for beginners in 1.5H (Keep Coding YouTube channel)

JavaScript Courses (18)

  1. JavaScript Algorithms and Data Structures (freeCodeCamp)
  2. Learn JavaScript - Full Course for Beginners (freeCodeCamp)
  3. Full Stack JavaScript (the Odin Project)
  4. The Modern JavaScript Tutorial (javascript.info)
  5. JavaScript Tutorial (javascripttutorial.net)
  6. LearnJS (learn-js.org)
  7. Eloquent JavaScript (eloquentjavascript.net)
  8. Learn JavaScript (Codecademy)
  9. JavaScript (SoloLearn)
  10. JavaScript Essentials (Udemy)
  11. MDN JavaScript (MDN web docs)
  12. JavaScript Tutorial for Beginners: Learn JavaScript in 1 Hour (Programming with Mosh)
  13. JavaScript: Understanding the Weird Parts - The First 3.5 Hours (Tony Alicea)
  14. TypeScript Course for Beginners 2021 - Learn TypeScript from Scratch! (Academind)
  15. APIs and Microservices Course (freeCodeCamp)
  16. Quality Assurance Course (freeCodeCamp)
  17. Node.js and Express.js - Full Course (freeCodeCamp)
  18. Node.js Tutorial for Beginners: Learn Node in 1 Hour (Programming with Mosh)

JavaScript Frameworks and Libraries (14)

  1. freeCodeCamp React Course (freeCodeCamp)
  2. Scrimba React course (Scrimba)
  3. Codecademy React Course (Codecademy)
  4. React JS - React Tutorial for Beginners (Programming with Mosh)
  5. React JS Crash Course 2021 (Brad Traversy)
  6. freeCodeCamp Redux Course (freeCodeCamp)
  7. Redux For Beginners | React Redux Tutorial (Dev Ed)
  8. Thinkster Angular Tutorial (Thinkster)
  9. Angular Crash Course (Brad Traversy)
  10. Learn Angular - Full Tutorial Course (freeCodeCamp)
  11. Learn Vue.js - Full Course for Beginners (freeCodeCamp)
  12. Vue JS Crash Course 2021 (Brad Traversy)
  13. Data Visualization with D3, JavaScript, React - Full Course [2021] (freeCodeCamp)
  14. freeCodeCamp jQuery Course (freeCodeCamp)

Python Courses (12)

  1. Programming for Everybody (Getting Started with Python) (University of Michigan)
  2. Python Data Structures (University of Michigan)
  3. Using Python to Access Web Data (University of Michigan)
  4. Using Databases with Python (University of Michigan)
  5. Capstone: Retrieving, Processing, and Visualizing Data with Python (University of Michigan)
  6. An Introduction to Interactive Programming in Python (Part 1) (Rice University)
  7. An Introduction to Interactive Programming in Python (Part 2) (Rice University)
  8. Scientific Computing with Python (freeCodeCamp)
  9. Data Analysis with Python (freeCodeCamp)
  10. Information Security (freeCodeCamp)
  11. Machine Learning with Python (freeCodeCamp)
  12. Python Django Web Framework - Full Course for Beginners (freeCodeCamp)

Mobile App Development Courses (4)

  1. Android Development for Beginners - Full Course (freeCodeCamp)
  2. React Native Tutorial for Beginners - Build a React Native App [2020] (Programming with Mosh)
  3. Kotlin Course - Tutorial for Beginners (freeCodeCamp)
  4. Swift Programming Tutorial for Beginners (Code with Chris)

Game Development Courses (2)

  1. CS50's Introduction to Game Development (Harvard)
  2. Learn Unity - Beginner's Game Development Tutorial (freeCodeCamp)

UI/UX (11)

  1. Foundations of User Experience (UX) Design (Google)
  2. Start the UX Design Process: Empathize, Define, and Ideate (Google)
  3. Build Wireframes and Low-Fidelity Prototypes (Google)
  4. Conduct UX Research and Test Early Concepts (Google)
  5. Create High-Fidelity Designs and Prototypes in Figma (Google)
  6. Responsive Web Design in Adobe XD (Google)
  7. Free Adobe XD Tutorial: User Experience Design Course with Adobe XD Course (Bring Your Own Laptop Youtube channel)
  8. The 2019 UI Design Crash Course for Beginners (DesignCourse)
  9. Figma Tutorial - A Free UI Design/Prototyping Tool (DesignCourse)
  10. UXpin: Free UX Ebooks (uxpin.com)
  11. UI UX Design Essentials: Create a Design System in Sketch (Udemy)

Now I'll give you a bit more detail about each course.

Computer Science Courses

Introduction to Programming and Computer Science

In this freeCodeCamp YouTube course, you will learn about arrays, loops, functions, recursion, conditions, and data structures.

Data Structures - Computer Science Course for Beginners

In this freeCodeCamp YouTube course, you will learn about arrays, Big O notation, linked lists, hash tables, heaps, and tries.

CS50's Introduction to Computer Science

This Harvard course will teach you basic computer science concepts like algorithms and data structures through a series of problem sets and a final project.

Introduction to Computer Science and Programming Using Python

This MIT course will teach you basic computer science concepts like algorithms, data structures, testing, and debugging through a series of problems sets.

Introduction to Computational Thinking and Data Science

In this MIT course, you will learn about Stochastic Thinking, Monte Carlo Simulation, and Graph-theoretic Models.

Algorithms, Part I

In this Princeton course, you will learn about analysis of algorithms, sorting algorithms, heaps and binary search trees. (Intermediate)  

Algorithms, Part II

In this Princeton course, you will learn about Breadth-First search, Depth-First search, Graph API, directed graphs, and maximum flow and minimum cut problems. (Intermediate)

Analysis of Algorithms

In this Princeton course, you will learn about recurrence relations, asymptotics, analytic combinatorics, trees, and permutations. (Advanced)  

Principles of Computing (Part 1)

In this Rice University course, you will learn about combinatorics, probability, and randomness in problem solving. (Intermediate)

Principles of Computing (Part 2)

In this Rice University course,  you will learn about stacks and queues, recursion, and trees. (Intermediate)

Algorithmic Thinking (Part 1)

This Rice University course will teach you about pseudocode, Big O notation, and the breadth-first search. (Intermediate)

Algorithmic Thinking (Part 2)

This Rice University course will teach you about MergeSort, binary search, and the Master Theorem.  (Intermediate)

Divide and Conquer, Sorting and Searching, and Randomized Algorithms

In this Stanford University course, you will learn about Big O notation, analysis of sorting and searching algorithms, analysis of divide and conquer algorithms, and the QuickSort algorithm. (Intermediate)

Graph Search, Shortest Paths, and Data Structures

In this Stanford University course, you will learn about Dijkstra's algorithm, Breadth-first search and Depth-first search, heaps, hash tables, and binary search trees. (Intermediate)

Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming

In this Stanford University course, you will learn about Prim's MST algorithm, Kruskal's MST algorithm, and Huffman codes. (Intermediate)

Shortest Paths Revisited, NP-Complete Problems and What To Do About Them

In this Stanford University course, you will learn about the Bellman-Ford algorithm and NP-complete problems. (Intermediate)

Algorithmic Toolbox

In this University of California San Diego course, you will learn about Big O notation, divide and conquer algorithms, and greedy algorithms. (Intermediate)

Data Structures

In this University of California San Diego course, you will learn about arrays, linked lists, stacks and queues, trees, heap sort, and hash tables. (Intermediate)

Algorithms on Graphs

In this University of California San Diego course, you will learn about Breadth-First Search, Dijkstra's Algorithm and the Bellman-Ford Algorithm. (Intermediate)

Algorithms on Strings

In this University of California San Diego course, you will learn about the Knuth-Morris-Pratt algorithm, Suffix Arrays, and Suffix Trees. (Intermediate)

Advanced Algorithms and Complexity

In this University of California San Diego course, you will learn about the Ford–Fulkerson Algorithm, Edmonds–Karp Algorithm, Simplex Algorithm, and NP-complete Problems. (Advanced)

Genome Assembly Programming Challenge

In this University of California San Diego course, you will learn about the 2011 European E. coli Outbreak, De Bruijn graphs, Euler theorem, and assembling genomes from k-mers. (Advanced)

Git and Github Courses

Git and GitHub for Beginners - Crash Course

In this freeCodeCamp YouTube course, you will learn about GitHub, version control, SSH keys, and common git commands.  

Git & GitHub Crash Course For Beginners

In this Brad Traversy course, you will learn about version control and popular git commands.  

HTML Courses

Basic HTML and HTML5

This freeCodeCamp course will teach you basic HTML5 elements through 28 coding exercises that you can do in the freeCodeCamp online editor. (Free Certification)

Introduction to HTML5

This University of Michigan course will cover the history of HTML, the Document Object Model, HTML5 tags, and accessibility.

HTML Tutorial for Beginners: HTML Crash Course 2021

Programming with Mosh will teach you the basics of HTML, how the web works, and how to use the browser developer tools.

HTML Crash Course For Absolute Beginners

This Brad Traversy course will cover the most popular HTML tags and semantic tags.  

HTML Full Course - Build a Website Tutorial

In this freeCodeCamp YouTube course, you will learn about basic HTML tags, how to use a text editor, and how to format your web page.

Learn HTML

In this Codecademy course, you will about basic HTML tags, forms, tables, and semantic tags.

HTML For Beginners The Easy Way

This HTML tutorial will cover the history of HTML, popular HTML tags, attributes, and code editors.

CSS Courses

Responsive Web Design

In this freeCodeCamp course, you will learn the basics of CSS, applied visual design, applied accessibility, responsive web design principles, CSS Flexbox, and CSS Grid. (Free Certification)

Intro to HTML and CSS

In this Udacity course, you will learn the basics of HTML and CSS.

HTML and CSS Tutorial

In this MarkSheet tutorial, you will learn about CSS text, the box model, positioning, pseudo classes, animations, and Sass.  

CSS Tutorial - Zero to Hero

In this freeCodeCamp YouTube tutorial, you will learn about CSS basics, positioning, pseudo classes, and animations.  

CSS Crash Course For Absolute Beginners

In this Brad Traversy YouTube course, you will learn the basics of CSS.

Introduction to CSS3

In this University of Michigan course, you will learn about CSS basics, the box model, positioning, pseudo classes, and animations.  

CSS Basics

In this W3C course, you will learn about CSS selectors, layout, positioning, and accessibility.  

Sass Tutorial for Beginners – CSS With Superpowers

In this freeCodeCamp YouTube course, you will learn about Sass syntax, mixins, variables, nesting, and partials.

Bootstrap 5 tutorial – crash course for beginners in 1.5H

In this Keep coding YouTube course, you will learn about Bootstrap 5 tables, buttons, cards, images, and forms.

JavaScript Courses

JavaScript Algorithms and Data Structures

In this freeCodeCamp course, you will learn about basic JavaScript, ES6, regular expressions, basic data structures, Object Oriented Programming, and functional programming. (Free Certification)

Learn JavaScript – Full Course for Beginners

In this freeCodeCamp YouTube course, you will learn about conditions, loops, functions, objects, arrays, and ES6.

Full stack JavaScript

This Odin Project course will teach you HTML, CSS, JavaScript, and NodeJS through a series of lessons and projects.

The Modern JavaScript Tutorial

In this tutorial, you will learn about JavaScript basics, error handling, promises, Async/await, and the DOM.

JavaScript Tutorial

In this tutorial, you will learn JavaScript fundamentals, ES6, BOM, the DOM, and web APIs.

LearnJS

In this tutorial, you will learn about JavaScript basics, Object-Oriented Programming, inheritance, and data structures.

Eloquent JavaScript

In this digital book, you will learn about JavaScript fundamentals, the DOM, handling errors, and asynchronous programming.  

Learn JavaScript

In this Codecademy course, you will learn about JavaScript fundamentals like arrays, functions, strings, conditions, classes, and promises.  

JavaScript

In this SoloLearn course, you will learn about conditions, loops, functions, objects, arrays, the DOM, and events.

JavaScript Essentials

In this Udemy course, you will learn basic JavaScript syntax and the DOM.

MDN JavaScript

In this tutorial, you will learn about JavaScript fundamentals, asynchronous JavaScript, web API's, prototype-based inheritance, and ES6.

JavaScript Tutorial for Beginners: Learn JavaScript in 1 Hour

In this Programming with Mosh course, you will learn about JavaScript basics like objects, arrays, and functions.  

JavaScript: Understanding the Weird Parts – The First 3.5 Hours

In this advanced YouTube course,  you will learn about Asynchronous Callbacks, Hoisting, Single Threaded, Synchronous Execution, and Function Invocation and The Execution Stack.

TypeScript Course for Beginners 2021 – Learn TypeScript from Scratch!

In this Academind course, you will learn about array types, object types, tuples, function types, and callbacks.  

APIs and Microservices Course

In this freeCodeCamp course, you will learn the basics of Node.js, NPM, Express, and MongoDB. (Free Certification)

Quality Assurance Course

In this freeCodeCamp course, you will learn how to test with Chai, and work with Pug, advanced Node, and Express. (Free Certification)

Node.js and Express.js – Full Course

In this freeCodeCamp YouTube course, you will learn about NPM commands, different modules, async patterns, events, streams, and HTTP basics.

Node.js Tutorial for Beginners: Learn Node in 1 Hour

In this Programming with Mosh course, you will learn about different modules like the path module, OS module, and the file system module and NPM commands.  

JavaScript Frameworks and Libraries

freeCodeCamp React Course

In this freeCodeCamp course, you will learn about JSX, functional components, class components, state, and props. (Free Certification)

Scrimba React course

In this Scrimba course, you will learn about JSX, reusable components, state, lifecycle methods, and hooks.

Codecademy React Course

In this Codecademy course, you will learn about JSX, hooks, lifecycle methods, props, and state.

React JS – React Tutorial for Beginners

In this Programming with Mosh course, you will learn about props, state, hooks, debugging react apps, and handling events.

React JS Crash Course 2021

In this Brad Traversy course, you will learn about JSX, props, state, hooks, react icons, and conditional rendering.  

freeCodeCamp Redux Course

In this freeCodeCamp course, you will learn about actions, reducers, and stores. (Free Certification)

Redux For Beginners | React Redux Tutorial

In this Dev Ed tutorial, you will learn about actions, reducers, stores, combineReducers, and Redux DevTools.

Thinkster Angular Tutorial

In this Thinkster tutorial, you will learn about lifecycle hooks, styled components, NgModel, and Angular directives.    

Angular Crash Course

In this Brad Traversy course, you will learn about components, services, and modules.

Learn Angular – Full Tutorial Course

In this freeCodeCamp YouTube course, you will learn about interpolation and expressions, lifecycle hooks, components, routing, and directives.  

Learn Vue.js – Full Course for Beginners

In this freeCodeCamp YouTube course, you will learn about directives, data-binding, Vue devtools, Props and Slots, Vue-router, and unit testing.

Vue JS Crash Course 2021

In this Brad Traversy course, you will learn the basics of Vue.js by building a Random User Generator and Task Tracker.

Data Visualization with D3, JavaScript, React – Full Course [2021]

In part one and part two of this D3 course, you will learn about line charts, scatter plots, bar charts, and choropleth maps.

freeCodeCamp jQuery Course

In this freeCodeCamp course, you learn how to work with jQuery. (Free Certification)

Python Courses

Programming for Everybody (Getting Started with Python)

In this University of Michigan course, you will learn about the basics of programming like functions, loops, conditions, and variables.

Python Data Structures

In this University of Michigan course, you will learn about tuples, dictionaries, lists, and strings.

Using Python to Access Web Data

In this University of Michigan course, you will learn about XML, APIs, regular expressions, and JSON.

Using Databases with Python

In this University of Michigan course, you will learn about relational SQL, CRUD (Create, Read, Update, and Delete) applications, and Object-Oriented patterns.

Capstone: Retrieving, Processing, and Visualizing Data with Python

In this University of Michigan course, you will build a search engine and continue to explore data sources.

An Introduction to Interactive Programming in Python (Part 1)

This Rice University course will teach you the basics of programming like functions, loops, conditions and variables.

An Introduction to Interactive Programming in Python (Part 2)

In this Rice University course, you will learn about tuples, dictionaries, lists and strings.

Scientific Computing with Python

In this freeCodeCamp course, you will learn the basics of the Python 3 while building five projects. (Free Certification)

Data Analysis with Python

In this freeCodeCamp course, you will learn how to analyze data with Numpy, Pandas, Matplotlib, and Seaborn. (Free Certification)

Information Security

In this freeCodeCamp course, you will learn about HelmetJS and penetration testing with Python. (Free Certification)

Machine Learning with Python

In this freeCodeCamp course, you will learn about neural networks and TensorFlow. (Free Certification)

Python Django Web Framework – Full Course for Beginners

In this freeCodeCamp YouTube course, you will learn about Django templates, Django model forms, and class-based views.  

Mobile App Development Courses

Android Development for Beginners – Full Course

In part 1 and part 2 of this freeCodeCamp YouTube course, you will learn how to build an Android application using Java.

React Native Tutorial for Beginners – Build a React Native App [2020]

In this Programming with Mosh course, you will learn how to build an iOS and Android app using React Native.  

Kotlin Course – Tutorial for Beginners

In this freeCodeCamp YouTube course, you will learn about basic Kotlin functions, class methods, higher-order functions, and the Kotlin standard library.  

Swift Programming Tutorial for Beginners

In this Code with Chris course, you will learn about the basics of Swift like variables, constants, data types, functions, and classes.

Game Development Courses

CS50's Introduction to Game Development

In this Harvard course, you will learn how to work with popular game engines like LÖVE 2D and Unity. You will also work with the Lua and C# programming languages.

Learn Unity – Beginner's Game Development Tutorial

In this freeCodeCamp YouTube course, you will learn how to get started building games using the Unity game engine.  

UI/UX Courses

Foundations of User Experience (UX) Design

In this Google course, you will learn about the basics behind good UX design and accessibility.

Start the UX Design Process: Empathize, Define, and Ideate

In this Google course, you will learn about UX research and Wireframing.

Build Wireframes and Low-Fidelity Prototypes

In this Google course, you will learn about building wireframes, prototypes, and storyboards.

Conduct UX Research and Test Early Concepts

In this Google course, you will learn how to create a usability study.

Create High-Fidelity Designs and Prototypes in Figma

In this Google course, you will learn how to create good design mockups with Figma.

Responsive Web Design in Adobe XD

In this Google course, you will learn how to use Adobe XD and create responsive designs.

Free Adobe XD Tutorial: User Experience Design Course with Adobe XD Course

In this YouTube course, you will learn about the basics of UI/UX design and wireframing.

The 2019 UI Design Crash Course for Beginners

In this YouTube course, you will learn about design fundamentals and Adobe XD.  

Figma Tutorial – A Free UI Design/Prototyping Tool

In this YouTube course, you will how to use the Figma design tool.  

UXpin: Free UX Ebooks

UXpin is a resource that offers a variety of ebooks on mobile and web wireframing, usability testing, mockups, and more.  

UI UX Design Essentials: Create a Design System in Sketch

In this Udemy course, you will learn about the pros and cons of design systems and how to create a design system in the Sketch app.