Learn C
Learn the language underneath everything, one byte at a time.
- 15 lessons
- 24 code exercises
- about 3.5 hours
- Free
Learn by doing. Each track is a sequence of short lessons with quizzes and hands-on practice. Your progress, streak and badges are saved as you go.
40 tracks in 7 categories
Learn to write programs in a specific language.
Learn the language underneath everything, one byte at a time.
Build expressive, efficient programs with modern C++.
Learn a modern, strongly typed language built for the .NET ecosystem.
Make programs respond, one clear step at a time.
Learn to turn clear ideas into useful programs.
Build strong programming foundations with a language made for big ideas.
Learn modern Swift with safe defaults, clear syntax, and practical coding drills.
Learn safe systems programming with ownership, strong types, and practical exercises.
Build clear programs and learn the language designed for simple concurrency.
Learn an expressive language built around readable, flexible code.
Build and style web pages that work in any browser.
Give every page a clear structure, one element at a time.
Shape the feel of a page, one style rule at a time.
Query, clean and analyze data.
Ask better questions of relational data.
Ask clear questions, analyze data, and explain what the evidence supports.
Understand and build with machine learning and language models.
Teach computers to work with words, one useful idea at a time.
Help computers find patterns in pixels and video.
Connect language models to useful, traceable evidence.
Connect AI applications to tools, data, and reusable workflows.
Understand how language models learn, generate, and get evaluated.
Write prompts that get reliable, checkable results - and prove it with tests.
Build reliable observe, act, and check cycles for AI agents.
Teach models from data, measure what they learn, and monitor what happens next.
Build neural networks from scratch, train them, and understand the architectures behind modern AI.
See how machines think and learn - from mazes and games to neural networks, rewards, image generators and ethics.
How software runs at scale, and the tools teams use every day.
Track changes, build confidence, and collaborate without losing work.
Collaborate, review, automate and ship on the platform where the world’s code lives.
Command the shell: navigate, wrangle text and automate anything with scripts.
Automate anything with a shell that pipes objects, not text.
Follow data from a local link to the services that power the web.
Prepare for system design interviews, from requirements to scalable architectures.
Reason about delay, failure, coordination, and scale across machines.
Split a system into independently deployable services - and keep them consistent, reliable and observable.
Ship software fast and safely: automate the road from commit to production, and run what you build.
Route traffic deliberately and keep services available under changing load.
Build intuition for how VMs boot, scale, connect, and stay secure in real systems.
Protect systems, data and identities.
Protect systems and data with practical security fundamentals.
Make sure the right identities get the right access at the right time.
Prepare for interviews and negotiate your offer.
Master the patterns behind coding interview problems, from hash maps to dynamic programming.
Tell clear, credible stories about your experience - and close the process with confidence.
Understand every part of a software engineering offer - and negotiate it with confidence.
Prefer to watch? Browse the video courses, or look up a subject in Topics.