Use this site as inspriration for Googling beyond the few links I've posted here.

General Resources

csunplugged.com A site for kids and teachers, but I learned a lot too!

UChicago Masters Program in Computer Science. You don't need a CS background to qualify! A great career enhancer, practical skills and applied computer science.

CS Topic Generator. Let's not take ourselves too seriously.


Charles Babbage started everything by building mechanical machines that went beyond simple arithmetic: Wikipedia entry

Ada Lovelace worked with Babbage (remotely! via snail mail) and developed the first computer algorithm! Wikipedia entry

Alan Turing advanced cryptography, came up with the notion of a general-purpose programming language, and saved millions of lives in the process. Wikipedia entry

Margaret Hamilton was the lead developer for the Apollo space program. She coined the term "Software Engineer", and pioneered the field of software reliablilty. Wikipedia entry

Grace Hopper invented Cobol, the notion of a compiler, the term "debugging", and about a zillion other cool things. Wikipedia entry

Algorithm Complexity (Big O)

Nice explanation of Big O.

The graphs in one glance. Remember, the coefficients never matter, only the exponents (or logarithms).

Data Structures and Algorithms

Most languages have many standard data structures: array, hash, set, queue, matrix, and more.

To really get a feel for the insights that are possible, try to build the following structures without using any of the language's built-in list or collection classes.

Remember: start from first principles. You cannot use any built-in list-like data containers!

How the Atom Editor team solved a thorny performance issue: by using a better data structure and an algorithm to match.

The Binary Search algorithm explained.

The Binary Search algorithm explained again.

Stack Overflow article on hierarchical data vs. relational database tables