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)
- Introduction to Programming and Computer Science (freeCodeCamp)
- Data Structures – Computer Science Course for Beginners (freeCodeCamp)
- CS50’s Introduction to Computer Science (Harvard University)
- Introduction to Computer Science and Programming Using Python (MIT)
- Introduction to Computational Thinking and Data Science (MIT)
- Algorithms, Part I (Princeton University)
- Algorithms, Part II (Princeton University)
- Analysis of Algorithms (Princeton University)
- Principles of Computing (Part 1) (Rice University)
- Principles of Computing (Part 2) (Rice University)
- Algorithmic Thinking (Part 1) (Rice University)
- Algorithmic Thinking (Part 2) (Rice University)
- Divide and Conquer, Sorting and Searching, and Randomized Algorithms (Stanford University)
- Graph Search, Shortest Paths, and Data Structures (Stanford University)
- Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming (Stanford University)
- Shortest Paths Revisited, NP-Complete Problems and What To Do About Them (Stanford University)
- Algorithmic Toolbox (University of California San Diego)
- Data Structures (University of California San Diego)
- Algorithms on Graphs (University of California San Diego)
- Algorithms on Strings (University of California San Diego)
- Advanced Algorithms and Complexity (University of California San Diego)
- Genome Assembly Programming Challenge (University of California San Diego)
Git and Github Courses (2)
- Git and GitHub for Beginners – Crash Course (freeCodeCamp)
- Git & GitHub Crash Course For Beginners (Brad Traversy)
HTML Courses (7)
- Basic HTML and HTML5 (freeCodeCamp)
- HTML Full Course – Build Your Own Website (freeCodeCamp)
- Introduction to HTML5 (University of Michigan)
- HTML Tutorial for Beginners: HTML Crash Course 2021 (Programming with Mosh)
- HTML Crash Course For Absolute Beginners (Traversy Media)
- Learn HTML (Codecademy)
- HTML For Beginners The Easy Way (html.com)
CSS Courses (9)
- Responsive Web Design (freeCodeCamp)
- CSS Tutorial – Zero to Hero (freeCodeCamp)
- Sass Tutorial for Beginners – CSS With Superpowers (freeCodeCamp)
- Intro to HTML and CSS (Udacity)
- HTML and CSS Tutorial (MarkSheet)
- CSS Crash Course For Absolute Beginners (Traversy Media)
- Introduction to CSS3 (University of Michigan)
- CSS Basics (W3C)
- Bootstrap 5 tutorial – crash course for beginners in 1.5H (Keep Coding YouTube channel)
JavaScript Courses (18)
- JavaScript Algorithms and Data Structures (freeCodeCamp)
- Learn JavaScript – Full Course for Beginners (freeCodeCamp)
- Full Stack JavaScript (the Odin Project)
- The Modern JavaScript Tutorial (javascript.info)
- JavaScript Tutorial (javascripttutorial.net)
- LearnJS (learn-js.org)
- Eloquent JavaScript (eloquentjavascript.net)
- Learn JavaScript (Codecademy)
- JavaScript (SoloLearn)
- JavaScript Essentials (Udemy)
- MDN JavaScript (MDN web docs)
- JavaScript Tutorial for Beginners: Learn JavaScript in 1 Hour (Programming with Mosh)
- JavaScript: Understanding the Weird Parts – The First 3.5 Hours (Tony Alicea)
- TypeScript Course for Beginners 2021 – Learn TypeScript from Scratch! (Academind)
- APIs and Microservices Course (freeCodeCamp)
- Quality Assurance Course (freeCodeCamp)
- Node.js and Express.js – Full Course (freeCodeCamp)
- Node.js Tutorial for Beginners: Learn Node in 1 Hour (Programming with Mosh)
JavaScript Frameworks and Libraries (14)
- freeCodeCamp React Course (freeCodeCamp)
- Scrimba React course (Scrimba)
- Codecademy React Course (Codecademy)
- React JS – React Tutorial for Beginners (Programming with Mosh)
- React JS Crash Course 2021 (Brad Traversy)
- freeCodeCamp Redux Course (freeCodeCamp)
- Redux For Beginners | React Redux Tutorial (Dev Ed)
- Thinkster Angular Tutorial (Thinkster)
- Angular Crash Course (Brad Traversy)
- Learn Angular – Full Tutorial Course (freeCodeCamp)
- Learn Vue.js – Full Course for Beginners (freeCodeCamp)
- Vue JS Crash Course 2021 (Brad Traversy)
- Data Visualization with D3, JavaScript, React – Full Course [2021] (freeCodeCamp)
- freeCodeCamp jQuery Course (freeCodeCamp)
Python Courses (12)
- Programming for Everybody (Getting Started with Python) (University of Michigan)
- Python Data Structures (University of Michigan)
- Using Python to Access Web Data (University of Michigan)
- Using Databases with Python (University of Michigan)
- Capstone: Retrieving, Processing, and Visualizing Data with Python (University of Michigan)
- An Introduction to Interactive Programming in Python (Part 1) (Rice University)
- An Introduction to Interactive Programming in Python (Part 2) (Rice University)
- Scientific Computing with Python (freeCodeCamp)
- Data Analysis with Python (freeCodeCamp)
- Information Security (freeCodeCamp)
- Machine Learning with Python (freeCodeCamp)
- Python Django Web Framework – Full Course for Beginners (freeCodeCamp)
Mobile App Development Courses (4)
- Android Development for Beginners – Full Course (freeCodeCamp)
- React Native Tutorial for Beginners – Build a React Native App [2020] (Programming with Mosh)
- Kotlin Course – Tutorial for Beginners (freeCodeCamp)
- Swift Programming Tutorial for Beginners (Code with Chris)
Game Development Courses (2)
- CS50’s Introduction to Game Development (Harvard)
- Learn Unity – Beginner’s Game Development Tutorial (freeCodeCamp)
UI/UX (11)
- Foundations of User Experience (UX) Design (Google)
- Start the UX Design Process: Empathize, Define, and Ideate (Google)
- Build Wireframes and Low-Fidelity Prototypes (Google)
- Conduct UX Research and Test Early Concepts (Google)
- Create High-Fidelity Designs and Prototypes in Figma (Google)
- Responsive Web Design in Adobe XD (Google)
- Free Adobe XD Tutorial: User Experience Design Course with Adobe XD Course (Bring Your Own Laptop Youtube channel)
- The 2019 UI Design Crash Course for Beginners (DesignCourse)
- Figma Tutorial – A Free UI Design/Prototyping Tool (DesignCourse)
- UXpin: Free UX Ebooks (uxpin.com)
- 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.