Programming

Introduction
ToDo

History
ToDo

Debugging
Tips and tricks that will help you find problems, along with saving your sanity.

Data Structures
ToDo

Compilers
ToDo

Machine Learning
ToDo

Wikipedia Articles
ToDo

Books
Clean Code: A Handbook of Agile Software Craftsmanship

By: Robert C. Martin

Code Complete: A Practical Handbook of Software Construction

By: Steve McConnel

Design Patterns: Elements of Resuable Object-Oriented Software

By: Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

Head First Design Patterns

By: Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra, and Elisabeth Robson

Patterns of Enterprise Application Architecture

By: Martin Fowler

Programming Pearls

By: Jon Bentley

Refactoring: Improving the Design of Existing Code

By: Martin Fowler, Kent Beck, John Brant, William Opdyke, and Don Roberts

Test Driven Development: By Example

By: Kent Beck

The Mythical Man-Moth: Essays on Software Engineering

By: Frederick P. Brooks

The Pragmatic Programmer: From Journeyman to Master

By: Andrew Hunt and David Thomas

UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition)

By: Martin Fowler

Working Effectively with Legacy Code

By: Michael Feathers

Coursea
Coursea offers excellent courses on the desciple of computer science. If you can't enroll in a class, try searching around youtube. You might still be able to find the video lectures.

Computer Scientist, Developers and Computer Nerds
The following people are what I consider to be the pillars of computer scientist. They are all incredible smart and do an amazing job on sharing their wealth of information.

Donald Kuth
Donald Kuth help laid the ground work for the computer science filed with his book, The Art of Computer Programming. Kuth is an interesting guy with plenty of information and wisdom to absorb. Your best bet on finding publicly available information from Kuth is to search YouTube. Kuth has quite a few YouTube videos some posted by Standford and others form various talks.

Books:

The Art of Computer Programming

Surreal Numbers

Harold Abelson
Abelson, along with Sussman, is most well known for a course he taught at MIT back in 1986 called Structure and Interpretation of Computer Programs. Both the course along with accompanying text book with the same name are publicly available at MIT and are definitely a most read, programmer or not. Abelson is an amazing teacher and will change the way you look any piece of code or a problem.

Books:

Structure and Interpretation of Computer Programs

Turtle Geometry: The Computer As a Medium for Exploring Mathematics

Blown to Bits: Your Life, Liberty, and Happiness After the Digital Explosion

Gerald Jay Sussman
Gerald Jay Sussman created the influential course at MIT, Structure and Interpretation of Computer Programs with Harold Abelson, which is now publicly available on OpenCourseWare. If you haven't watch the lectures yet, then leave this page and head over. You'll see first hand the power of wishful thinking, or as I like to call it making it up as you go along.

Books:

Structure and Interpretation of Computer Programs

Structure Interpretation Classical Mechanics

Marven Minsky
Marven Minsky is one of the smartest person alive, and a pillar in the artificial intelligence and machine learning disciplines. I believe is only course being offered at OpenCourseWare is The Society of Mind. Books:

The Society of Mind

The Emotion Machine

Web Articles
ToDo