Learn programming by doing, not by reading

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

Learn Rails

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

Advanced Ruby

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


Beginning/Intermediate Ruby
Short questions on Ruby methods.
Intermediate Ruby
Intermediate Ruby questions on methods and manipulating data.
Beginning OOP
Classes, objects, class methods, instance methods, etc. Questions are inspired/sourced from the book Beginning Ruby.
Ruby programming practice quiz on files and directories
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.
Make a Ruby Gem
Understand the code generated by Bundler to make a gem
Ruby's syntactic sugar
Demystifying Ruby's confusing implicit syntax

Core CS

Classic recursion problems including factorial, palindrome, etc.
Big O
Time complexity of algorithms


Beginning/Intermediate jQuery
Use jQuery to hide elements, change fonts, and more.


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

Unix / Bash

Learning Unix for OS X
Beginner Unix quiz on core concepts (based on book by Dave Taylor).

Learn CSS

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