must read

you must read these books.

The Little Schemer

By Daniel P. Friedman and Matthias Felleisen

This book is an introduction into the world of Lisp. It teaches you to think in terms of recursion.

Just some of the things it contains:

  • Building on top of primitives
  • Functions: the essence of abstraction
  • Approaching computation from a functional perspective
  • Termination
  • Applicative-order Y combinator
  • Meta-circular evaluator

Get it

Sequels: The Seasoned Schemer, The Reasoned Schemer


The C Programming Language

By Brian Kernighan and Dennis Ritchie

Essential to understanding how most modern programming languages work under the hood.

Introduction to basic algorithms and data structures:

  • Linked list
  • Hash table
  • Sorting algorithms
  • Recursive descent parser
  • Binary search tree
  • Virtual stack machine

Get it


Understanding Computation

By Tom Stuart

Fundamental understanding of what computation is at its core. Computer science topics explained in a very approachable way, through implementing various simple machines in very few lines of ruby code.

Just a rough sampling of what it covers:

  • Semantics
  • Finite state machine
  • Pushdown automata
  • Turing machine
  • Lambda calculus
  • Universality
  • Halting problem

Get it


Code

By Charles Petzold

How computers work. Explains all the details of how hardware operates with almost no handwaving, including a whole bunch of historical information. Finishes with building an actual computer from scratch.

  • Binary codes
  • Basic electronics
  • Logic gates
  • Binary adder
  • Flip-flops, Clocks
  • CPU
  • Assembly

Get it


Gödel, Escher, Bach

By Douglas Hofstadter

A beautiful journey through formal systems, levels of abstraction, recursion, attempting to describe how consciousness can arise from lower levels. Decent introduction to propositional logic. Punny dialogues.

  • Strange loops
  • Formal systems
  • Recursion
  • Intelligence
  • Levels of abstraction
  • Meaning
  • Propositional logic
  • The brain
  • Consciousness
  • Computation
  • Genetics
  • Artificial intelligence

Get it


The Annotated Turing

By Charles Petzold and Alan Turing

A very heavy but authentic description of turing machines and the unsolvability to the Entscheidungsproblem. Requires some understanding of turing machines and propositional logic to grasp. Lots of little historical notes.

  • Number theory
  • Turing's machine
  • Universal machine
  • Propositional logic
  • Entscheidungsproblem
  • Equivalence to lambda calculus
  • Intuitionistic logic

Get it


Unlocking the Clubhouse

By Jane Margolis and Allan Fisher

Boys invent things and girls use things boys invent.

We have a diversity problem. It's a cultural problem. This book sheds some light on why women and other minorities are "out of the loop" of computing, and how we might fix the leaky pipeline.

This case study at CMU showed that by changing culture and mindset, computer science education can be made more accessible, so that future generations of makers will be diverse enough to survive.

We should probably also fix the toxic culture in our industry to actually keep these diverse people.

Get it


Feminism is for Everybody

By bell hooks

What is feminism?

Feminism is a movement to end sexism, sexist exploitation and oppression.

Come closer. See how feminism can touch and change your life and all our lives. Come closer and know firsthand what feminist movement is all about. Come closer and you will see: feminism is for everybody.

Get it PDF


Logicomix

By Apostolos Doxiadis and Christos Papadimitriou

A graphic novel telling the tale of Bertrand Russel's journey through early 20th century mathematical logic.

It is indeed an epic search for truth.

Get it


Unspeakable Things

By Laurie Penny

I will make you a sandwich. It will be stuffed with the dust of history, and I hope you choke on it.

The chapter on cybersexism is particularly relevant to all nerds. Just read it.

Get it

Igor

Brought to you by @igorwhiletrue.

Projects you may be interested in: Silex, Stack, YOLO, React.