Learn by doing

JavaScript Book

I wrote a book to teach programming with JavaScript. It is completely open source and lets you practice while you learn.

Learn Ruby

Beginner Ruby Quiz #1
Variables, strings, and numbers
Beginner Ruby Quiz #2
Ruby practice questions on arrays, conditionals, and while loops
Quiz #3
Variable scope and methods
Quiz #4
Symbols, array methods, and hashes
Quiz #5
Intro object oriented programming
Quiz #6
Iteration and nested data structures
Quiz #7
Modules, classes, and inheritance

Intermediate Ruby

Ruby Array Quiz
Closer look at Ruby's Array class
Hash quiz
Grokking the Hash class
Object Oriented Programming
Instance variables, constants, self, and message sending
More OOP
Monkey patching, attr_*, modules, and singleton methods
Inheritance path, overwriting methods, and super
Object Oriented Design
Creating flexible and maintainable software
Code Blocks
Methods that use code blocks

Learn JavaScript

Quiz #1
Variables, strings, numbers, and types
Quiz #2
Comparison operators, conditionals, loops, and arrays
Quiz #3
Functions and variable scope
Quiz #4
Intro to objects
Quiz #5
Constructor functions, the global object, and function invocation context

Intermediate JavaScript

Quiz #1
Function Basics
Quiz #2
Functional programming
Quiz #3
Function invocation
Quiz #4
More functions

Learn Go

Quiz #1
Types, Variables, Assignment
Quiz #2
Conditionals, Arrays
Quiz #3
Quiz #4

Learn SQL with Rails 4

Single Table Queries
Two table queries
has_many, belongs_to, includes
has_many :through join queries
Intermediate queries

Learn Rails 3

MVC without generators
Create a RESTful model, view, and controller without using any rails generators.
Nested Resources
Create the model, view, and controller for a nested resource.
Database Queries
Structure database queries to get specific information from a database efficiently.
Make a resource that belongs_to two other resources for nested comments.
Active Record
Associations, delegation, callbacks, etc.
Many to Many Relationships
Rails practice problems on has_and_belongs_to_many and has_many :through relationships

Rails TDD

Model Specs
Testing Rails models with RSpec
Controller Specs
Rails controller testing

Advanced Ruby

Singleton Class
Singleton methods, inheritance, and method lookup
Scope gates, bypassing scopes, and top level context
Closures and Bindings
First class procs and binding objects
Object model and privacy
Private / protected methods and instance variables
Including and extending
Method Missing
Metaprogramming Ruby

Core CS

Classic recursion problems including factorial, palindrome, etc.
Big O
Time complexity of algorithms
Linear Data Structures
Stacks, queues and deques
Linked lists
Creating and reversing linked lists
Converting number bases
Base-ten, Octal, and Hexadecimal Numbers

Ruby TDD

Quiz #1
String and Integer code for RSpec tests
Quiz #2
RSpec Array quiz

Learn CSS

CSS quiz on selectors
Inheritance and the cascade
CSS practice questions on inheritance


Basic Git Commands
Covers basic Git methods including $ git init, $ git add, $ git status, etc.
Basic Git
How to use and merge Git branches
Git Rebasing
Rebasing is the alternative to merging and is not scary once you understand it.
Git branch off a branch
Create a branch off a branch and merge them together
Git interactive rebasing
Squash commits and make a clean commit history with interactive rebasing

Learn Bash

Quiz #1
Intro Bash commands: mkdir, rm, ls, etc.
Quiz #2
Commands and options
Quiz #3
Pathnames, wildcards, environment variables
Quiz #4
Redirection and grep
Quiz #5
Hard and symbolic links

Intermediate Bash

Quiz #1
Quiz #2
Quiz #3
Environment and variables
Quiz #4
Test and if
Quiz #5
More redirection
Quiz #6
While and for loops
Quiz #7
Quiz #8


Beginning/Intermediate Ruby
Short questions on Ruby methods.
Intermediate Ruby
Intermediate Ruby questions on methods and manipulating data.
Files and directories with Ruby
How to use the File, CSV, and Dir Classes
Practical Object Oriented Design
Based on a book by Sandy Metz
The Well Grounded Rubyist
Based on the excellent book by David Black.
Ruby's syntactic sugar
Demystifying Ruby's confusing implicit syntax

Learn MySQL

Quiz #1
Intro to MySQL
Quiz #2
Quiz #3
INNER JOIN, alias, primary key
Quiz #4
Grouping and aggregates
Quiz #5
Quiz #6
Like and regular expressions