Computer Science Fundamentals
Start here
There’s some great resources on fundamentals below. Be sure to also check out our algorithms and data structures page.
Watch convention talks on ConFreaks without paying for the cons themselves.
Some of these resources below, like this great look at the AI revolution, are heavy on concepts and light on code. Others are great introductions.
Read this great set of tips on learning to code that the author claims (and I agree!) can save you years of misplaced effort.
But things are not always serious… you can find yourself reading all the wrong books, or possibly even abandoning it all for the arts. But if you stay, we have cats.
Free Computer science courses
- Teach Yourself Computer Science: a spectacular set of resources compiled by several experienced developers. Go through this and you’ll have learned what you otherwise would need a CompSci degree for.
- Check out this spectacular, nearly heroic list of resources for free, high-quality courses. (Might even include all of the rest of this list!)
- iTunes University, free and great recorded video/audio lectures
- Stanford University’s courses, free and available
- Coursera’s computer science courses
- MIT Open Courseware
- State University of NY at Albany open computer science courses to learn online for free
- Harvard’s CS50 course, completely free and great intro to general computer science. This is a classic that everyone links to.
Books covering fundamentals
- An analysis of 40million questions and answers yielded a list of the top computer science books.
- Here’s a huge list of free programming books.
- The Pragmatic Programmer: From Journeyman to Master, by Andrew Hunt
- Code Complete: a Practical Handbook of Software Construction, by Steve McConnell
- How to Design Programs: An Introduction to Programming and Computing, by Matthias Felleisen
- Programming Pearls, by Jon Bentley
- You want even more programming books?!? Then check out this list here.
Object Oriented Programming basics
A vast percentage of web development is done with object-oriented languages, including JavaScript. Get very comfortable with how OOP (object-oriented programming) handles concepts and processes.
- Law of Demeter
- Understanding Object Oriented Programming
- 5 Object Oriented basics learned from Sandi Metz
Functional Programming basics
- “The rise and fall of functional programming and composable software”, explained through and with a focus on JavaScript
- Professor Frisby’s Mostly Adequate Guide to Functional Programming
- Purely Functional Data Structures, by Chris Okasaki
Building for actual users
- “Most hated advertising techniques” that are used on websites.
More computer science resources
- Classic papers in programming languages and logic
- Awesome programming books
- UNIX philosophy
- Writing good documentation
- Intro to machine learning
- Seven Concurrency Models in Seven Weeks: When Threads Unravel, by Paul Butcher
- Structure and Interpretation of Computer Programs, by Harold Abelson
- The Annotated Turing: A Guided Tour Through Alan Turing’s Historic Paper on Computability and the Turing Machine, by Charles Petzold
- Compilers: Principles, Techniques, and Tools, by Alfred V. Aho
- “An animated guide to how garbage collection algorithms work”
- Artificial intelligence and deep learning: “Recognizing Traffic Lights With Deep Learning”, how one developer learned and implemented the deep learning API concept in 10 weeks.
- “Functional computational thinking: what is a monad?”