Learn All the Basics of Computer Science in 3 Phases

Navigate your way from beginner to advanced with this comprehensive roadmap

Phase 1: If You're an Absolute Beginner, Start Here

In this phase, you'll get familiar with the core concepts of computer science and programming. These resources are ideal for absolute beginners with little to no prior knowledge.

Option 1: Crash Course Computer Science

In 40 engaging episodes, Carrie Anne Philbin teaches you the basics of computer science! This course is based on introductory college-level material and also follows the AP Computer Science Principles guidelines.

By the end of this course, you will be able to:

  • Outline the history of computers and the design decisions that led to modern computing
  • Describe the basic elements of programming and software
  • Identify the components of computer hardware and their functions
  • Understand how computers have evolved and their impact on society
  • Appreciate how far computers have come and imagine where they could take us next
Start the Crash Course →

Option 2: AP®︎/College Computer Science Principles (Khan Academy)

If you're looking for a more structured learning path with plenty of practice, this free course from Khan Academy covers digital information, the Internet, cybersecurity, programming, algorithms, simulations, and data analysis. You'll also have access to 800+ practice questions and instructional articles and videos.

Explore Khan Academy CS →

Optional Path: If You Already Know Some CS

If you're comfortable with basic programming concepts, or you want to jump into a more challenging course, try CS50 from Harvard University. This course teaches you how to solve problems both with and without code, and focuses on computational thinking, algorithms, data structures, and how computers work under the hood.

Dive into CS50 →

Phase 2: Math Time!

Computer science relies heavily on mathematics, especially in areas like algorithms, cryptography, and data analysis. Here's where you'll build the necessary mathematical foundation.

Option 1: Book Approach - Mathematics for Computer Science

This textbook covers elementary discrete mathematics for computer science and engineering, including formal logic, proof methods, graph theory, counting principles, probability, and more. It's a great resource if you prefer a structured, book-based learning style.

Book: Mathematics for Computer Science by Albert R. Meyer, Eric Lehman, and Frank Thomson Leighton

Option 2: Video Approach - freeCodeCamp Math Playlist

For those who prefer video lessons, freeCodeCamp offers a comprehensive math playlist that covers foundational topics like algebra, calculus, and discrete math—just enough to feel confident and continue your CS journey without being overwhelmed by complex math concepts.

Watch Math Playlist →

Phase 3: Time to Dive Deeper

Once you've covered the basics, you're ready to specialize in a topic that interests you most, or take a more structured, degree-like approach.

Option 1: Dive into a CS Topic of Your Choice

At this point, you can dive into any area of computer science that interests you. Whether you're into artificial intelligence, web development, machine learning, or cybersecurity, the next logical step is to explore these topics in more depth. There are countless free resources and online courses across platforms like Coursera, edX, and Udacity to help you specialize.

Explore Resources →

Option 2: Open Source Society University (OSSU) Curriculum

If you prefer a formal structure, the OSSU Computer Science curriculum is a comprehensive, self-paced curriculum designed to provide a complete education in computer science. It's based on undergraduate computer science degree requirements and uses high-quality, free online resources. This option is perfect for those who want a deep, well-rounded understanding of CS principles and who are ready to study independently with support from a community of learners.

Explore OSSU Curriculum →