Skip to content

Instantly share code, notes, and snippets.

@b-coimbra
Created January 20, 2018 19:44
Show Gist options
  • Save b-coimbra/614999f0aa88f0b285febb5b2882575e to your computer and use it in GitHub Desktop.
Save b-coimbra/614999f0aa88f0b285febb5b2882575e to your computer and use it in GitHub Desktop.

A Complete CS Education Reading List

How Computers Work - A Casual Intro

  1. The Pattern on the Stone - Hills
  2. Code - Petzold

Actual Programming

  1. Haskell Programming From First Principles
  1. Parallel and Concurrent Programming in Haskell
  2. Software Foundations
  1. The Idris Tutorial
  1. Functional C
  2. Understanding and Using C Pointers
  3. Elements of Programming

Language Design

  1. Build Your Own Lisp
  1. Engineering a Compiler
  2. Programming Language Pragmatics
  3. Practical Foundations for Programming Languages

Computer Architecture

  1. Structured Computer Organization
  2. Operating Systems in Three Easy Pieces
  1. Operating Systems Design and Implementation
  2. Computer Networks - Tanenbaum

Math

  1. A Book of Abstract Algebra
  2. A First Course in Graph Theory
  3. Conceptual Mathematics
  4. Category Theory for Programmers
  1. Introduction to Lattices and Order
  2. Concrete Mathematics

Databases

  1. The Reasoned Schemer
  2. Database Design and Relational Theory: Normal Forms and All That Jazz

Algorithms

  1. Algorithmics: The Spirit of Computing
  2. Grokking Algorithms
  3. Algorithms and Data Structures - Wirth
  1. Purely Functional Data Structures
  2. Pearls of Functional Algorithm Design
  3. The Algorithm Design Manual
  4. Clever Algorithms

Security

  1. The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities
  2. Data Hiding: Exposing Concealed Data in Multimedia, Operating Systems, Mobile Devices, and Network Protocols
  3. Crypto 101

Software Development

  1. Patterns, Principles, and Practices of Domain-Driven Design
  2. Clean Code: A Handbook of Agile Software Craftsmanship
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment