Begin with a language
New to programming? Start with a complete C, C++, or Python course. Other language paths have chapter-by-chapter outlines to help you plan what to learn next.
Start the C guideExplore popular programming languages and the computer science ideas behind them. Start with the language you like, build strong foundations, and keep growing.
For curious beginners and lifelong learners.
#include <stdio.h>
int main(void) {
printf("Hello, world!\n");
return 0;
}
A simple learning roadmap
You do not need to learn everything at once. Follow a small path, then branch out when a topic catches your interest.
New to programming? Start with a complete C, C++, or Python course. Other language paths have chapter-by-chapter outlines to help you plan what to learn next.
Start the C guideLearn to break a challenge into smaller steps, make a plan, and check your answer before you code.
Explore problem solvingFollow your curiosity into algorithms, data structures, networks, and other ideas behind software.
Browse CS conceptsAlready know what you want to learn? Browse all language paths or search the concepts.
Choose a learning path
Pick a language to explore its course. Start C now, or open a starter page for another learning path.
Build strong foundations and understand how software works.
Start C course ↗Build from first programs to advanced Python practice.
Explore 24 lessons ↗Bring websites to life and build interactive experiences.
Browse 24 chapters ↗Learn a versatile language for apps and larger systems.
Browse 24 chapters ↗Learn modern C++ from core ideas to advanced systems topics.
Explore 24 lessons ↗Create desktop apps, games, and services with .NET.
Browse 24 chapters ↗Get started with clear, efficient tools for modern software.
Browse 24 chapters ↗Explore a modern systems language focused on reliability.
Browse 24 chapters ↗No matching languages. Try another search.
Beyond the syntax
Great programmers learn more than a language. Explore the ideas that help you solve problems and build better software.
Showing 8 featured concepts. Use View more to explore the full collection.
Break a challenge into smaller steps and design a clear solution.
Open topic ↗Choose useful ways to organize, store, and access information.
Open topic ↗Learn repeatable methods for searching, sorting, and more.
Open topic ↗Discover memory, operating systems, networks, and architecture.
Open topic ↗Explore processes, memory, files, and how software shares hardware.
Open topic ↗Learn how devices address, route, and exchange information.
Open topic ↗Model information and query it reliably as applications grow.
Open topic ↗Understand core security ideas and build safer software habits.
Open topic ↗Design, test, deliver, and maintain software with a team.
Open topic ↗Understand the challenges of coordinating computers over networks.
Open topic ↗Explore how languages express ideas and how compilers run programs.
Open topic ↗Learn how models find patterns, make predictions, and need evaluation.
Open topic ↗Explore on-demand computing, cloud services, deployment, and cost.
Open topic ↗Turn data into useful evidence with analysis, visualization, and care.
Open topic ↗Discover how computers create, transform, and display images.
Open topic ↗Design usable, accessible experiences around people's needs.
Open topic ↗Learn how browsers, HTML, CSS, JavaScript, and servers build the web.
Open topic ↗Explore concurrency, parallel work, speedup, and coordination.
Open topic ↗Understand information, uncertainty, compression, and communication.
Open topic ↗Use logic, specifications, and proofs to reason about programs.
Open topic ↗Explore instruction sets, processors, caches, and the memory hierarchy.
Open topic ↗Learn how robots sense, plan, and act in the physical world.
Open topic ↗Discover how computers process and interpret images and video.
Open topic ↗Understand floating-point numbers, error, and scientific computation.
Open topic ↗Explore qubits, quantum algorithms, hardware limits, and realistic applications.
Open topic ↗Learn how connected devices sense, communicate, and act in the physical world.
Open topic ↗Understand why data is processed near devices, users, and machines.
Open topic ↗Discover the technology and design behind virtual, augmented, and mixed reality.
Open topic ↗No matching concepts. Try another search.
About CodeCrafters
CodeCrafters is a growing, self-guided learning hub for programming and computer science. It brings language courses and foundational concepts together so learners can build practical skills and understand the ideas behind their code.
Lessons are designed to make complex topics approachable with clear explanations, worked examples, and room to practice at your own pace. Start wherever you are curious, then follow that curiosity into the next idea.
Build confidence with core programming ideas and computer science concepts.
Move between languages, examples, and topics as your interests grow.
Come back to a lesson, practice a concept, and keep building step by step.
Support the academy
If CodeCrafters has helped you learn, your support can help us create more lessons and improve the academy. Donation options are not available yet; we’ll share a verified way to contribute here when they’re ready.