Header image Learning Resources

Vanderbilt classes can be the core of your computer science education. However, there are so many resources out there for you to learn the domain-specific skills you want to learn. In addition to our weekly sessions and the almighty google search engine, here is a list of some good places to start if you're looking for some online resources. Also, we've listed a lot of interesting articles that we've come across over time, covering a broad range of CS topics.

Resume Review

Send us an email to get a free quick resume review with helpful comments.

Also, check out our library!

Miscellaneous Computer Science Topics

The areas covered below include:

AWS

Triggering Code Via Text Message With AWS Lambda

Algorithms

Core Algorithms Deployed - Stack Overflow

Planning Algorithms Book

Artificial Neural Networks

Introduction to Artificial Neural Networks (blog post)

Compilers

Build Your Own Lisp in C (book)

Create Your Own Programming Language (book)

The Difference Between a Compiler and an Interpreter (article)

Hello JIT World: World Joy of Simple JITs (article)

So You Want To Write Your Own Language

Write a compiler in Python Write yourself a scheme in 48 hours using Haskell Writing an Expression Evaluator

Cryptography

Crypto 101

Introduction to Cryptography in Python

Distributed Systems

Distributed Systems for Fun and Profit (free ebook)

Garbage Collectors

Baby's First Garbage Collector

Interviews

Cracking the Coding Interview (book)

Programming Interviews Exposed (book)

Interviewing Tips (article)

Machine Learning

Deep learning with Javascript

Free ebooks for Machine Learning

How to Get Started with Machine Learning with Python (PyCon video)

Deep Learning Tutorial

A Guide to Data Mining

Machine Learning is Way Easier Than it Looks (article)

Machine Learning YouTube Channel

Swiftly Machine Learning

The main trick in Machine Learning | Edinburgh Hacklab

Building Machine Learning Systems with Python (book)

Operating Systems

Creating a Bare Bones Bootloader

How to Make a Computer Operating System Book

How to write a kernel (and more)

How to Write A Simple Operating System In Assembly Language

How to Make a Computer Operating System Kernel 101: Let's Write a Kernel

NixOS

OS Dev Index

Operating Systems

Package Management And Brilliant OS Design Philosophy

Roll your own toy UNIX-clone OS

ThinkOS: operating system design book

Peer to Peer Messaging

Libjingle: Peer to Peer library written in C++

Networking in iOS

Peer to Peer Socket Based Chat Python and iOS - StackOverflow

Websocket tutorial

Raspberry Pi

DIY Apple Beacons

Recommendation Engines

Ruby Recommendation System

SICP

Why and How to Start SICP (article)

Design

Design

Chrome browser emulation tools

HTML5 templates

Learn CSS layout site

Single page Latex resume design

Static Site Generator

Fonts

"What Font Should I Use?": Five Principles for Choosing and Using Typefaces | Smashing Magazine

25 Outstanding Google Fonts for Web Design | Vandelay Design Blog

Clear Sans

Cool Fonts are In The Comments of this HN Article

Cousine coding font

Great Free Fonts

Terminal Font, Luculent

Themes

Bootstrap themes

Programming Languages

Bash

Automate workspace start up for projects

Better Bash Scripting in 15 Minutes

Writing shell scripts

C

Bottom Up Computer Science

How to make a Makefile

http://www.altdevblogaday.com/2011/11/09/a-low-level-curriculum-for-c-and-c/

Making a simple Makefile

Recursive Make Considered Harmful - Peter Miller

Clojure

Clojure From the Ground Up

Brave Clojure

Video: Organizing Functional Code for Parallel Execution

Web Development In Clojure

Why use Clojure?

Y-Combinator Functional Programming Talk

Go Language

Free screencasts to learn Go

Go by example

Haskell

A Brief Introduction To Haskell And Why It Matters

Introductions to Advanced Haskell Topics

Learn You A Haskell Book

Real World Haskell

What I wish I knew when I learned Haskell

Javascript

Bluebird: Fast promise library

JavaScript Allonge: Writing Functional JavaScript Code

Macro library for JavaScript

Moment.js | Parse, validate, manipulate, and display dates in javascript.

Node Habits

Devtools Console, from Novice to Ninja

Speaking JavaScript Book

TodoMVC

Objective-C

Creating a table based form on the iPhone

Customizing UITableView cells

iOS Layouts In Code

Quality Coding: Objective-C Video Tutorials

UI Table View displaying cells at the end

Programming Languages

A brief, incomplete and mostly wrong history of programming languages

Python

Not So Obvious Python Stuff

PrettyTable 0.7.2 : Python Package Index

Regex

Learn Regex

Regex reference

Regexper - A Regex parser/visualizer that helps you write regex code

Scala

Scala Tutorials: Interactive Tour of Scala

Scheme

Fear of Macros in Scheme

Tools

Emacs

EmacsWiki: Speed Bar

Keyboard macros

Magit

Multiple Cursors Mode

Emacs Strip Tease

Project Mode

Solarized theme

Using Nuance and Python to Code by Voice and avoid RSI (video)

Github

Adapter-git - Create a git based database

Build Git to learn Git

Git add -p (patch mode) tutorial

GitHub Flow – Scott Chacon

Libgit2

Sublime Text

A Quick Guide to Sublime Text

dzhibas/SublimePrettyJson

My Top 10 Sublime Text Plugins | Henrique Barroso

Tools

Levinux: short stack Linux program for teaching fundamental tools to beginners

Vim

Learn Vim Progressively

Seven habits of effective text editing video

Xcode

Text System Defaults and Key Bindings

Xcode Keybindings Gist