Learning Resources

A curated collection of high-quality resources for learning about computers, technology, and programming.

Table of contents

  1. Online Learning Platforms
    1. Ada Computer Science
    2. Khan Academy
  2. Video Series
    1. Crash Course Computer Science
  3. Interactive Learning Tools
    1. Computer Science Field Guide
    2. Codecademy
  4. Books and Reading Materials
    1. Beginner-Friendly Books
    2. Advanced Reading
  5. How to Use These Resources

Online Learning Platforms

Ada Computer Science

Ada Computer Science - Fetch-Decode-Execute Cycle

Ada Computer Science is a free, comprehensive platform for learning computer science concepts:

  • Interactive content: Engaging lessons with interactive elements
  • Curriculum-aligned: Materials designed for students and teachers
  • Comprehensive coverage: From hardware basics to advanced programming concepts
  • Quality resources: Created by education experts and computer scientists

Their videos on the fetch-decode-execute cycle are particularly helpful for understanding CPU operations.

Khan Academy

Khan Academy offers free courses on a wide range of subjects, including computer science and technology:

  • Computer programming: Learn JavaScript, HTML/CSS, and more
  • Computer science principles: Algorithms, data structures, and computing concepts
  • Self-paced learning: Progress at your own speed with interactive exercises
  • Video tutorials: Clear explanations of complex topics

Their Computing section is an excellent starting point for beginners.

Video Series

Crash Course Computer Science

Crash Course Computer Science #1: Early Computing

This outstanding YouTube series by PBS provides a comprehensive overview of computer science:

  • 40 episodes: Covering the entire field of computer science
  • Historical context: Traces the evolution of computing from early mechanical devices to modern computers
  • Clear explanations: Complex concepts explained in an accessible way
  • Visual learning: Animations and graphics that illustrate abstract concepts

Key episodes include:

Interactive Learning Tools

Computer Science Field Guide

An open-source online resource for teaching and learning computer science concepts:

  • Interactive chapters: Hands-on learning experiences
  • Comprehensive coverage: From algorithms to human-computer interaction
  • Regularly updated: Maintained by computer science educators
  • Free and accessible: No registration required

Codecademy

Learn to code with interactive lessons:

  • Hands-on coding: Write and run code directly in your browser
  • Immediate feedback: Get instant results as you learn
  • Project-based learning: Apply skills to real-world projects
  • Multiple languages: Learn Python, JavaScript, HTML/CSS, and more

Books and Reading Materials

Beginner-Friendly Books

  • “Code: The Hidden Language of Computer Hardware and Software” by Charles Petzold
  • “But How Do It Know? The Basic Principles of Computers for Everyone” by J. Clark Scott
  • “Computer Science Illuminated” by Nell Dale and John Lewis

Advanced Reading

  • “Computer Organization and Design” by David A. Patterson and John L. Hennessy
  • “Operating System Concepts” by Abraham Silberschatz, Peter B. Galvin, and Greg Gagne
  • “Computer Networking: A Top-Down Approach” by James Kurose and Keith Ross

How to Use These Resources

For the most effective learning experience:

  1. Start with fundamentals: Begin with basic concepts before moving to more complex topics
  2. Mix learning methods: Combine videos, reading, and hands-on practice
  3. Apply what you learn: Try practical exercises and small projects
  4. Be consistent: Regular study sessions are more effective than occasional cramming
  5. Join communities: Participate in forums and discussion groups to learn from others
💡 Learning Tip
Different resources explain concepts in different ways. If you don't understand something from one source, try another explanation from a different resource.

Back to top

Copyright © 2025 Malinda Rathnayake. Distributed under an MIT license.