Joshua Towns


  • 28 Courses Completed
  • 149 Levels Completed
  • 23 Screencasts Watched
  • 305,410 Total Points

Achievement Badges

JavaScript: 13 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()


Anatomy of Backbone.js

Client-side Frameworks

Learn Backbone.js and start building sophisticated and structured web apps. Try out Backbone’s JavaScript library with a RESTful JSON interface.

  • Introduction

    Learn the very basic of Models and Views.

  • Models

    More on Models, such as syncing to/from the server.

  • Views

    View events, templates, and customization.

  • Models & Views

    More on how Models and Views work together with event binding.

  • Collections

    Working with a set of models with Backbone Collections.

  • Collection Views

    Displaying a Collection with a Collection View.

  • Router & History

    Supporting pushState history and multiple URLs.


Real-time Web with Node.js

Server-side Frameworks

Discover how the Node framework can help you write server-side code and build lightweight, scalable network applications.

  • Intro to Node.js

    An overview of Node.js, blocking vs. non-blocking code, reading files, issuing requests

  • Events

    Event emitters, event requests, event listening

  • Streams

    Reading, writing, piping, solving backpressure

  • Modules

    Exporting, npm installing, dependencies, and semantic versioning

  • Express

    Routes, rendering, layouts, url building, express servers


    Listening for, broadcasting, and answering questions, saving client data

  • Persisting Data

    Redis, working with lists, persisting, emitting, and limiting questions




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

  • 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


Building Blocks of Express.js

Server-side Frameworks

Express provides more robust features to your web application. Learn how to build Web APIs in Node using Express.

  • First Steps

    Installing Express and building some first routes.

  • Middleware

    Understanding middleware and building a custom logger.

  • User Params

    Reading user-submitted parameters.

  • Body Parser

    Adding routes for creating and deleting resources.

  • Refactoring Routes

    Using route instances and extracting code to route files.


JavaScript Road Trip Part 1

JavaScript Language

An introduction to the very basics of the JavaScript language. Build a foundation of JavaScript syntax and learn how to use values, variables, and files.

  • The Cliffs of Value

    Learn to manipulate values on the console.

  • Variable Valley

    Review how to store and use data with variables.

  • Files Falls

    Create JS files and source them within HTML code.


JavaScript Road Trip Part 2

JavaScript Language

A continued introduction to the very basics of the JavaScript language. Learn common programming mechanisms like loops, conditionals, functions, and arrays.

  • The Labyrinth of Loops

    Understand and build loops for repeated code with 'while' and 'for' syntax.

  • Conditional Canyon

    Use conditions to execute different branches of code with if-else blocks.

  • Built-In's Bluff

    Learn to use the basic JavaScript dialog box functions 'prompt', 'alert', and 'confirm'.

  • The Desert of Declarations

    Understand functions and building custom functionality.

  • The Array Archipelago

    Learn to build and manipulate the array data structure.


JavaScript Road Trip Part 3

JavaScript Language

Continue building intermediate skills within the JavaScript web programming language. Master function expressions, closures, hoisting, objects, and the use of prototypes.

  • Forest of Function Expressions

    Learn how to use and manipulate functions as expressions.

  • Cold Closures Cove

    Explore the binding of external variables into local scopes.

  • Hoisting Hills

    Build an awareness of the pitfalls of load order within a scope.

  • Ocean of Objects

    Create, fill, and manipulate the generic JavaScript object literal.

  • Plains of Prototypes

    Using the magic of object inheritance, explore classes, constructors, prototypes, and properties.


JavaScript Best Practices

JavaScript Language

Become a more informed, conscientious user of JavaScript as you explore time-tested, useful techniques that will improve legibility, performance quality, and safety in your scripts.

  • The Sword of Syntax

    Discover useful alternate syntax for conditionals and assignment.

  • The Pendant of Performance

    Explore techniques to improve execution speed and measure performance.

  • The Crystal of Caution

    Examine common JavaScript pitfalls and the best ways to avoid them.

  • The Mail of Modularity

    Learn how to organize code and protect data with a simple Module pattern.


Try jQuery


Learn the basics of jQuery 2.0, a JavaScript library, to modify elements on the page and improve user interaction.

  • Introduction to jQuery

    A gentle introduction to what jQuery is, and what it can do.

  • Traversing the DOM

    Search & walk through the DOM with selectors and traversing.

  • Working with the DOM

    Add & remove from the DOM, more traversing, and user events.

  • Listening to DOM Events

    Listen for events, handle them, and change the default event behavior of web browsers.

  • Styling

    Before landing, tame CSS with jQuery and animate elements on the page.


jQuery: The Return Flight


Learn Ajax and add more interactivity to your projects. Discover how to organize your code using jQuery Plugins and Promises.

  • Ajax Basics

    Learn what Ajax is and how it can be used.

  • JavaScript and jQuery

    Organize your jQuery and JavaScript.

  • Ajax With Forms

    Learn about how to send data to the server and work with JSON.

  • Utility Methods

    Learn about some handy utility methods including $.each and $.map while working with complicated JSON data.

  • jQuery Plugins

    Create your own reusable jQuery plugin.

  • Promises

    Use promises to make your Ajax calls reusable and organized.


Shaping Up With AngularJS

Client-side Frameworks

AngularJS allows your application to have an expanded HTML library. Learn to add behavior to your HTML and speed up your application’s responsiveness.

  • Flatlander's Gem Store

    Get comfortable with expressions by beginning to build a gem store.

  • Built-in Directives

    Use directives to add a gallery and tabs to the gem store.

  • Forms

    Give the gem store review functionality by using AngularJS forms.

  • Custom Directives

    Create custom directives for more organized and maintainable AngularJS code.

  • Services

    Create a new module and learn to use the $http service to get real data into the gem store.

JavaScript: 9 Screencasts Watched

Git: 2 Courses 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 Real


Learn more advanced Git by practicing the concepts of Git version control. Increase your Git knowledge by learning more advanced systems within Git.

  • Introduction

    Learn the basics of Git

  • Staging & Remotes

    Add and remove changed files, and work with remote repositories

  • Cloning & Branching

    Clone repositories and learn how to work with multiple branches

  • Collaboration Basics

    Work simultaneously with multiple users

  • Branching

    Work with remote branches and reference commits

  • Rebase belong to us

    Optimize merging and fix merge conflicts

  • History and Configuration

    Learn how to configure and view commit logs

Ruby: 6 Courses Completed


Try Ruby

Getting Started With Ruby on Rails

Learn the basic building blocks of Ruby, all in the browser.

  • All For One, One For All

    Get an introduction to numbers, Strings, properties, and methods.

  • There Are Always Two

    Learn about conversions, arrays, variables, and more methods.

  • Third Time's The Charm

    Review printing, brackets, and String manipulation.

  • Fourth and Short

    Take a shot at method chaining, hashes, keys, and values.

  • The Highest of Fives

    Study up on blocks, directories, and method arguments.

  • Sixth Sense

    Start building methods, libraries, popups, and HTML with Ruby.


Rails for Zombies Redux

Getting Started With Ruby on Rails

Learn Ruby on Rails, an open-source framework for the Ruby programming language. Rails for Zombies will teach you all the Rails basics with a zombie flair.

  • Deep in the Crud

    How we work with a database in Rails by using Create, Read, Update, and Destroy (CRUD).

  • Models Taste Like Chicken

    We'll learn about ActiveRecord models, validations, and relationships.

  • The Views Ain't Always Pretty

    Get experience linking between views, using conditionals, and how to lookup documentation on common view helpers.

  • Controllers Must Be Eaten

    Sitting between our Models and Views are the Controllers, which use instance variables to keep our code organized.

  • Routing Into Darkness

    Learn how to direct requests to your app to the correct controller actions.


Ruby Bits

Ruby Language

Learn the core bits every Ruby programmer should know. This Ruby tutorial builds upon the basics to keep enhancing your Ruby knowledge.

  • Expressions

    An overview of best practices for writing expressions in Ruby

  • Methods and Classes

    passing optional arguments, raising exceptions, using begin/rescue/end, attr_accessor vs. attr_reader

  • Classes

    Encapsulation, instance & private methods, inheritance, and refactoring

  • ActiveSupport

    Helpers that are built on top of the Ruby Language (arrays, dates, hashes, numbers, and strings

  • Modules

    Namespacing methods, Mixins vs. class inheritance, method hooks, ActiveSupport::Concern

  • Blocks

    Iterating and yielding, passing arguments, returning variables, Enumerable, and refactoring


Ruby Bits Part 2

Ruby Language

Learn the more advanced bits every Ruby programmer should know. This advanced Ruby tutorial will help you take your Ruby knowledge to the next level.

  • Blocks, Procs & Lambdas

    An advanced look at code blocks and how to use procs and lambdas to encapsulate blocks of code

  • Dynamic Classes & Methods

    Techniques for defining, finding, and calling methods dynamically at runtime

  • Understanding Self

    A look at how Ruby uses the value of self and how to change self as your program executes

  • Missing Methods

    Using method_missing to capture, delegate, and respond to methods that don't exist

  • DSL Part 1

    A brief intro to writing Domain Specific Languages in Ruby

  • DSL Part 2

    More advanced tips and techniques for writing DSLs


Rails for Zombies



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

Ruby: 3 Screencasts Watched

iOS: 1 Course Completed


Try iOS

iOS Development With Objective-C

Learn iOS to create iPhone apps. This iOS tutorial reviews app development from the ground up and requires only basic coding experience.

  • App Anatomy

    Together we'll write our first simple iPhone app and learn about the different parts of an app.

  • Subviews

    Placing buttons & labels on our screen.

  • Tabs, Images, & Scrolling

    Adding some tabs to switch between the different parts of our app, adding images, and learning about our scroll window.

  • UINavigation & Buttons

    Navigating between between different parts of our app, and creating custom buttons.

  • Table View Controllers

    Building out table views, a common part of any iPhone app.

  • Networking

    Connecting to the internet to fetch data and using NSDictionary.

iOS: 2 Screencasts Watched

Electives: 1 Course Completed


Try R


Learn the R programming language for data analysis and visualization. This software programming language is great for statistical computing and graphics.

  • Using R

    A gentle introduction to R expressions, variables, and functions.

  • Vectors

    Grouping values into vectors, then doing arithmetic and graphs with them.

  • Matrices

    Creating and graphing two-dimensional data sets.

  • Summary Statistics

    Calculating and plotting some basic statistics: mean, median, and standard deviation.

  • Factors

    Creating and plotting categorized data.

  • Data Frames

    Organizing values into data frames, loading frames from files and merging them.

  • Real-World Data

    Testing for correlation between data sets, linear models, and extending R with additional libraries.

Electives: 5 Screencasts Watched

Database: 1 Course Completed




Learn basic database manipulation skills using the SQL programming language.

  • The Ins and Outs of Databases

    Learn about databases from the inside out, as well as how to perform simple data queries and filter data with special query tools in SQL.

  • Managing Data

    Find out how to add, revise, and remove data in an existing database.

  • Managing Databases and Tables

    Discover basic concepts for creating and altering databases and tables.

Database: 2 Screencasts Watched

HTML/CSS: 4 Courses Completed


Front-end Foundations

Getting Started With HTML and CSS

Learn the fundamentals of HTML and CSS, while building a strong foundation for more advanced front-end development.

  • HTML

    Format text content and links with HTML.

  • CSS

    Change the way that content is displayed with CSS.

  • Classes and Layout

    Reuse CSS across multiple pages and layout content in well-defined sections.

  • Images

    Add content and background images to your site.

  • Fonts and Forms

    Customize fonts and add forms that accept different types of user input.


Front-end Formations

Getting Started With HTML and CSS

Discover the latest versions of HTML and CSS, including HTML5 tags, form elements, attributes, input types, CSS styling, and more.

  • Overview & Updates

    Get an overview of HTML5 and CSS3, and learn which HTML elements have been updated in HTML5.

  • HTML5 Elements

    Learn all of the new HTML5 elements, including the section, article, header, footer, and time elements, and also several others that will help make your markup more semantic.

  • HTML5 Forms

    Learn all of the new HTML5 form input types, elements, and attributes.

  • CSS3 Styles

    Learn modern CSS styling techniques, including border radius, box shadow, text shadow, box sizing, multiple backgrounds, and gradients.

  • Fonts & Interactions

    Learn how to use web fonts with @font-face, create smooth transitions and manipulated elements in CSS with the transition and transform properties, and write CSS according to the principles of progressive enhancement.


CSS Cross-Country

Intermediate CSS

Explore the fundamentals of CSS, and review all the web-styling tools needed for front-end efficiency.

  • Frost-Proof Fundamentals

    Adding style, selectors, the cascade, and floats

  • Clear Carving

    Clearing floats, inheritance, and specificity

  • Box Bindings

    The box model, positioning, and z-index

  • Grooming Your Code

    DRY, display types, and centering

  • CSS Safety

    Protecting your layout and specificity problems

  • Image Issues

    Image use and image cropping

  • Sprightly Slaloms

    Image replacement and sprites

  • Pseudo Sitzmark

    Pseudo classes and pseudo elements


Journey Into Mobile

Intermediate CSS

Learn mobile web design with mobile-first, adaptive, and responsive web design concepts. Review the best practices with our Journey into Mobile course.

  • Foundations for Mobile

    The mobile web and relative font-sizing

  • Fluid Layouts

    Learn the foundations for creating scalable, fluid sites

  • Adaptive Adventures

    Create sites that adapt to a specific context

  • Responsive Adventures

    Create device-agnostic sites optimized for all viewports

  • Responsive Media

    Learn how to scale images, video, and work with retina graphics

HTML/CSS: 2 Screencasts Watched