Ryan Smith

  • 10 Courses Completed
  • 44 Levels Completed
  • 18 Screencasts Watched
  • 93,300 Total Points

Achievement Badges

Ruby: 5 Courses Completed


Rails for Zombies



Rails Best Practices


  • Controllers in Space

    Fat model/skinny controller, named scopes, scopes with lambda, default scopes, model creation scopes, skipping a filter

  • Controller Command

    Nested attributes, models without the database, using Presenters, rejecting SQL injection, Rails 3 responder syntax

  • Model Pitfalls

    Basic & compound indices, protecting your attributes, using default database values, using callbacks properly, improving validation, database seeding

  • Model Bert

    Optimizing n+1 queries, using counter_cache, batches of find_each, applying The Law of Demeter, using to_s and to_param in the model

  • Froggy Views

    Refactoring views, using helpers, rendering content with partials, handling empty strings, using content_for, meta yield


Rails for Zombies 2

Getting Started With Ruby on Rails

Learn more Rails with this sequel to the infamous Rails for Zombies course. Increase your Ruby on Rails knowledge with even more zombie learning.

  • From the Ground Up

    Installing Rails, creating a Rails app, database migrations, the command line, Ruby 1.9 hash syntax, Bundler, database configuration

  • Models Still Taste Like Chicken

    Named scopes, callbacks, has_one, relationship options, using Includes, has_many :through

  • Rest In Pieces

    Revisiting URL helpers, forms & input helpers, understanding REST, nested resources, view partials, other view helpers

  • Asset Packaging and Mailing

    Sending attachments in mail, asset tags, using the Asset Pipeline, CoffeeScript, creating and sending mail, SCSS, using the JavaScript manifest

  • Rendering Extremities

    Custom RESTful routes, creating AJAX links, rendering custom JSON, AJAXified forms, controller rendering options, sending server JavaScript, using JSON data

  • Test Unit

    Testing philosophies, overview of Test Unit, TDD (Test Driven Development), and using assertions

  • Model Testing

    Preparing the database, running tests, using fixtures, and testing relationships

  • Cleaning it up

    Writing custom assertions, using Test Helper, and introducing Shoulda

  • Mocks and Stubs

    Understanding and using mocks and stubs with Mocha

  • Integration Tests

    Rails integration commands, integration testing with Capybara, and writing and using helper methods

  • Using Factories

    Creating factories, adding associations between factories, and implementing factories in your tests


Testing with RSpec


  • Introduction

    An overview of RSpecs basic syntax and installation.

  • Configuration & Matchers

    Setting up RSpec in a Ruby or Rails project and digging into some RSpec Matchers.

  • DRY Specs

    See how to organize your specs better making readability much easier.

  • Hooks & Tags

    Before hooks, shared examples and RSpecs use of metadata.

  • Mocks & Stubs

    A tour through how RSpec uses mocks and stubs.

  • Custom Matchers

    Walkthough the creation of a custom matcher from scratch.

Ruby: 7 Screencasts Watched

HTML/CSS: 1 Course Completed

  • HTML5

    Learn about the new tags in HTML5

  • CSS3

    Review the new properties in CSS3

  • Header & Navigation

    Build a functional header and navigation area

  • Content

    Develop the content sections of a site

  • Footer & Forms

    Learn about new form elements and build a functional footer

HTML/CSS: 2 Screencasts Watched

JavaScript: 3 Courses Completed

  • Just Enough JavaScript

    Creating variables, dialogs, object & string functions, number-related operations, working with arrays.

  • Take Off

    Downloading jQuery, minified Javascript, loading jQuery, the DOM & jQuery selection, nested elements, pseudo-classes & direct descendants.

  • View from 30,000 Feet

    Direct manipulation with CSS, manipulating multiple attributes, adding & removing classes, toggling classes, hiding & showing content.

  • Contents may shift

    Retrieving & setting text content with text(), querying & setting DOM with html(), manipulating DOM with append() & prepend(), creating peers with :before & :after, adding & removing nodes.

  • Fasten your Seatbelts

    Using document.ready, writing named functions, using click event listeners, keyboard events, animations, AJAX load()

  • Events

    HTML & Text value, HTML5 data attributes, click events, binding & unbinding events, using multiple click handlers, live vs. delegate

  • Ajax

    $.ajax, error handling & callbacks, aborting AJAX & timeouts, receiving and parsing JSON, using JSONP, sending form data

  • Effects

    Chaining effects & adjusting speed, animating with CSS, effect easing, using a queue, adding a delay, stopping an effect

  • Organization

    Each & Map utility functions, creating your own utility functions, creating plugins, encapsulating your code, custom events, jQuery templates




Learn CoffeeScript, the powerful little language that compiles into JavaScript. Take a sip of our CoffeeScript tutorial & learn to get more done with less code.

  • Variables and Functions

    An overview of variables and functions

  • Applied jQuery

    Converting jQuery to CoffeeScript

  • Conditionals & Operators

    Conditionals, chained comparisons, switch cases, and existential operators

  • Arrays, Objects, Iterations

    Using arrays, object literals, loops, list comprehension, and splat arguments

  • Applied jQuery II

    Understanding and using jQuery object notation

  • Object Orientation

    Classes, class inheritance, property arguments

JavaScript: 1 Screencast Watched

Git: 1 Course Completed


Try Git


Learn how to use Git by reviewing the basic concepts of Git version control. Try out this introductory course that was created with GitHub.

  • Discover Git

    Discover the basics of Git, including how to initialize a repo. Learn how to add, commit, and push your code to GitHub.

Git: 1 Screencast Watched

iOS: 1 Screencast Watched