Your all-in-one coding academy

One place to learn all things code.

Explore 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.

codecrafters / examples / hello
One idea, different languages
#include <stdio.h>

int main(void) {
    printf("Hello, world!\n");
    return 0;
}
Many languagesChoose your path
Core conceptsUnderstand how computing works
Learn your wayStart simple, grow at your pace

Read something new

A topic picked for you

Explore a computer science idea in a quick, focused lesson.

Read this topic

A simple learning roadmap

Not sure where to start? Try this.

You do not need to learn everything at once. Follow a small path, then branch out when a topic catches your interest.

Choose a first step

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 guide
Build the foundations

Practice problem solving

Learn to break a challenge into smaller steps, make a plan, and check your answer before you code.

Explore problem solving
Connect the ideas

Explore computer science

Follow your curiosity into algorithms, data structures, networks, and other ideas behind software.

Browse CS concepts

Already know what you want to learn? Browse all language paths or search the concepts.

Beyond the syntax

Computer science, made approachable.

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.

Problem solving

Break a challenge into smaller steps and design a clear solution.

Open topic ↗

Data structures

Choose useful ways to organize, store, and access information.

Open topic ↗

Algorithms

Learn repeatable methods for searching, sorting, and more.

Open topic ↗

How computers work

Discover memory, operating systems, networks, and architecture.

Open topic ↗

Operating systems

Explore processes, memory, files, and how software shares hardware.

Open topic ↗

Computer networks

Learn how devices address, route, and exchange information.

Open topic ↗

Databases

Model information and query it reliably as applications grow.

Open topic ↗

Cybersecurity

Understand core security ideas and build safer software habits.

Open topic ↗

Software engineering

Design, test, deliver, and maintain software with a team.

Open topic ↗

Distributed systems

Understand the challenges of coordinating computers over networks.

Open topic ↗

Programming languages

Explore how languages express ideas and how compilers run programs.

Open topic ↗

AI and machine learning

Learn how models find patterns, make predictions, and need evaluation.

Open topic ↗

Cloud computing

Explore on-demand computing, cloud services, deployment, and cost.

Open topic ↗

Data science

Turn data into useful evidence with analysis, visualization, and care.

Open topic ↗

Computer graphics

Discover how computers create, transform, and display images.

Open topic ↗

Human-computer interaction

Design usable, accessible experiences around people's needs.

Open topic ↗

Web development

Learn how browsers, HTML, CSS, JavaScript, and servers build the web.

Open topic ↗

Parallel computing

Explore concurrency, parallel work, speedup, and coordination.

Open topic ↗

Information theory

Understand information, uncertainty, compression, and communication.

Open topic ↗

Formal methods

Use logic, specifications, and proofs to reason about programs.

Open topic ↗

Computer architecture

Explore instruction sets, processors, caches, and the memory hierarchy.

Open topic ↗

Robotics

Learn how robots sense, plan, and act in the physical world.

Open topic ↗

Computer vision

Discover how computers process and interpret images and video.

Open topic ↗

Numerical computing

Understand floating-point numbers, error, and scientific computation.

Open topic ↗

Quantum computing

Explore qubits, quantum algorithms, hardware limits, and realistic applications.

Open topic ↗

Internet of Things

Learn how connected devices sense, communicate, and act in the physical world.

Open topic ↗

Edge computing

Understand why data is processed near devices, users, and machines.

Open topic ↗

Extended reality

Discover the technology and design behind virtual, augmented, and mixed reality.

Open topic ↗

About CodeCrafters

Learn how to think, not just what to type.

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.

A learning path built around you

Start with the fundamentals

Build confidence with core programming ideas and computer science concepts.

Learn by exploring

Move between languages, examples, and topics as your interests grow.

Go at your own pace

Come back to a lesson, practice a concept, and keep building step by step.