Bijan Boustani


  • 54 Courses Completed
  • 170 Screencasts Watched
  • 1,777,090 Total Points

Master Status

Path Status

Achievement Badges

Ruby: 12 Courses Completed


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


Rails Best Practices

Learn Rails best practices with the most useful Rails patterns and techniques. If you're a Rails developer, consider this your new Rails programming playbook.

  • 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 Testing for Zombies

Rails Testing

Learn Rails testing for your applications with these testing fundamentals. Brush up on testing best practices with Rails Testing for Zombies.

  • 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


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.


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.


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


Testing with RSpec

Rails Testing

Learn to use this trusted testing framework for Ruby applications. Brush up on testing best practices with our Testing with RSpec course.

  • 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.


Surviving APIs with Rails

Intermediate Ruby on Rails

Learn how to build and test REST APIs using Ruby on Rails. See how to leverage the HTTP protocol to create robust web APIs that can serve different client applications at the same time.

  • Recap

    Understanding REST and setting up your first API end points.

  • Resources and GET

    Restricting resources and the GET method.

  • Content Negotiation

    Catering to different API clients.

  • Post, Put, Patch, and Delete

    Creating, updating, and deleting resources.

  • Versioning

    Adding new features without breaking existing clients.

  • Authentication

    Preventing unauthorized access to protected resources.


Rails 4: Zombie Outlaws

Intermediate Ruby on Rails

Learn to build faster and more secure web apps with Rails 4. Review the Rails updates that will help get your apps up to speed on Rails 4 best practices.

  • A Bloody Tale of Revenge

    Support for Ruby 1.9.3, ThreadSafety, and Routes

  • The Hangman's Daughter

    Changes to the ActiveRecord API, and more on ActiveRecord and changes to ActiveModel

  • Dead Man Walking

    Whitelisting user parameters with Strong Parameters and using Remote Forms. Reviewing new syntax for controller Filters, working with Session & setting Custom Flash Types

  • Concerning the Events of Santa Maria

    Reviewing new view helpers & the Ruby template handler

  • The Killing Fields

    Learning the new test structure

  • The Undead Express

    Declarative ETags, the new Dalli memcache client, and working with Cache Digests

  • Why's and Wherefores

    Streaming with ActionController::Live and faster page loading with Turbolinks


Rails 4 Patterns

Intermediate Ruby on Rails

Learn helpful patterns and techniques for building and maintaining complex Rails applications. Make your application easily scale in size and complexity.

  • Models

    Use Models to encapsulate core business logic and avoid common ActiveRecord pitfalls.

  • Scopes and Class Methods

    Learn the intricacies of using class methods that run queries, and learn the benefits of using scopes.

  • Concerns

    Review how to extract reusable code into Model and Controller concerns.

  • Decorators

    Extract view logic out of Models with Decorators.

  • ActiveModelSerializers 1

    The basics of using ActiveModelSerializers to build a JSON API.

  • ActiveModelSerializers 2

    Use ActiveModelSerializers to simplify your JSON API.

  • FineTuning

    Speed up queries, secure user parameters and manage your processes.


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

Ruby: 55 Screencasts Watched

HTML/CSS: 10 Courses Completed


CSS Cross-Country

Intermediate CSS

Learn the fundamentals & foundational elements of CSS with CSS Cross-Country. Review all the web-styling necessities 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


Functional HTML5 & CSS3

Learn to build functional sites with HTML5 & CSS3. Watch design video tutorials and take programming challenges with our Functional HTML5 & CSS3 course.

  • 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

  • Placeholder Completion Badge

    Footer & Forms

    Learn about new form elements and build a functional footer


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


Fundamentals of Design


Improve the visual competency of any website or application by keeping design in mind. Learn the fundamental design principles of typography, color, and layout.

  • Typography

    Learn to recognize beautiful and functional type.

  • Colors

    Review color theory and application principles.

  • Layout

    Familiarize yourself with visual hierarchy and balance.


Front-end Formations

Getting Started With HTML and CSS

Learn the latest versions of HTML & CSS. Take a look at new HTML5 tags, form elements, attributes, input types, border-radius, box-shadow, gradients, 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.


Assembling Sass

CSS Preprocessors

Learn Sass and start improving your front-end CSS workflow. Try Sass on large-scale applications for efficient, time-saving styling.

  • Foundation

    An introduction to Sass, imports, comments, and nesting.

  • Variable

    Creation and use of recallable information.

  • Mixin

    Writing reusable styles mixed with optional arguments.

  • Extend

    Easily manage CSS class reuse and inheritance in the stylesheet, rather than HTML.

  • Directive

    A primer on the programmatic tools in Sass, including functions and each loops.

  • Math + Color

    Perform arithmetic and color alterations directly to stylesheet values.

  • Responsive

    Simplify and optimize your responsive design workflow via Sass.


Assembling Sass Part 2

CSS Preprocessors

Learn advanced Sass & Compass for further improving your front-end CSS workflow. Revolutionize your front-end efficiencies with these coding techniques.

  • More Sass

    A deeper dive into core Sass functionality

  • Compass

    Introducing the Compass add-on and enabling its use

  • Utility

    Traversing helpers and utilities included with Compass

  • Rhythm

    Establishing and maintaining baseline grids with the vertical rhythm module

  • Sprite

    Relegating sprite generation and maintenance to the sprite module


Front-end Foundations

Getting Started With HTML and CSS

Learn how to create a website with HTML and CSS, and in the process build 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.


Blasting Off with Bootstrap

CSS Frameworks

Learn how to use the Bootstrap framework's pre-built styles and functionality to easily add polish and useful behavior to your website.

  • Lift Off

    Get your website off the ground by adding the Bootstrap library and getting familiar with the container class.

  • Designing in Grids

    Use the grid design pattern to add structure and style to your application.

  • Typography

    Use Bootstrap’s custom classes and Glyphicon icons to make your site easier on the eyes.

  • Enough CSS to be Dangerous

    Make your site stand out from the rest by adding a custom navigation and a splash of colorful buttons.

  • JavaScript Components

    Use Bootstrap’s Collapse and Dropdown plugins to add needed behavior to your website.


Unmasking HTML Emails

Intermediate CSS

Explore the nuances of email clients and how to build designs for them with inline styles, tables for layout, and conditional comments.

  • Clients and Markup

    Learn the mystifying moves of email client preprocessors and how HTML and CSS is written for them.

  • Tables for Layout

    Apply the ancient art of wrapping content in tables, rows, and cells.

  • Mucho Media Queries

    Use modern markup techniques to wrestle tables and content into many screen sizes.

  • Targeting Specific Clients

    Twist, turn, and tag your way through multiple client hacks to fight for your layout.

  • Small Screen First

    Refactor existing code to create flexible layouts for all screens, even without media queries.

HTML/CSS: 19 Screencasts Watched

JavaScript: 16 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.

  • Placeholder Completion Badge

    Fasten your Seatbelts

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


jQuery Air: Captain's Log

Learn jQuery best practices & useful techniques of jQuery's efficient JavaScript library. Let jQuery Air: Captain's Log help you make the most of your code.

  • 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

  • Placeholder Completion Badge


    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


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.


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.


Try jQuery


Learn the basic building blocks of jQuery 2.0 and enjoy new video tutorials for beginners with related programming challenges.

  • 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.


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.


Shaping up with Angular.js

Client-side Frameworks

Learn to use Angular.js by adding behavior to your HTML and speeding up your application's responsiveness. Get ready to dive into all the angles of Angular.js!

  • 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 Angular forms.

  • Custom Directives

    Create custom directives for more organized and maintainable Angular code.

  • Services

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


Real-time Web with Node.js

Server-side Frameworks

Learn Node.js and start building lightweight, real-time applications. Our interactive course will teach you the fast and scalable perks of Node.js. This course has been updated to teach Node ~0.10.x and Express ~4.9.

  • 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


Building Blocks of Express.js

Server-side Frameworks

Learn how to use the Express framework to build powerful Web APIs in Node.js.

  • 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.


Anatomy of Backbone.js Part 2

Client-side Frameworks

Learn more advanced Backbone.js for building sophisticated and structured web apps. Take your front-end to the next level with the Anatomy of Backbone Part 2.

  • More Models

    Getting your models to work with non-standard servers.

  • Customizing Collections

    Handling pagination in collections, sorting collections, and building aggregate functions.

  • Real Routes

    Handling optional parameters, limiting parameters to integers using regex, handling catch-all routes.

  • Varying Views

    Using an existing element, handling extra initialization options, escaping HTML, changing handling event bindings between Models and Views.

  • Working with Forms

    Build an ajax Form View to create and edit model objects.

  • App Organization

    Namespacing your App objects, building an App View to handle link clicks inside of Backbone, boostrapping data.

  • Customizing Backbone

    Using Mustache.js templates instead of underscore.js, replacing your persistence strategy, utilizing localStorage.


Warming Up With Ember.js

Client-side Frameworks

Learn to demystify the Ember.js JavaScript framework by breaking it down. See how to build an application from scratch using Ember.js and Twitter Bootstrap.

  • Warming Up

    Learn how to create an Ember application, set up your first Handlebars template, and meet the Ember Router.

  • Rendering the Flame

    Expand on Handlebars with Helpers and learn how Ember Controllers can provide data for your templates.

  • A Route Through the Woods

    Start using resource routes, dynamic segments in your URLs and finish off with nested routes.

  • Acorn Models and Pinecone Data

    We'll show how to use Ember Data to create related models using the Fixture Adapter and the REST Adapter.

  • Controlling Our Growth

    Dig deeper into ArrayControllers, computed properties and the advantages of nesting your controllers.

  • The Template Forest

    Use Ember Components, partials and the Embers Render method to keep your Templates organized.

  • Acting on Instinct

    Put the pieces together then learn how to react to user events.


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.


ES2015: The Shape of JavaScript to Come

JavaScript Language

Stay in tune and learn some of the new features of ES2015, the most extensive update to the JavaScript language since it was first released in the '90s.

  • Declarations

    Learn about the new types of variable declarations and how they can help with some well-known JavaScript gotchas.

  • Functions

    Explore new features added to functions, like default parameters, rest parameters, spread operators, and arrow functions.

  • Objects, Strings, and Object.assign

    Find new ways to work with JavaScript Objects and Strings.

  • Arrays, Maps, and Sets

    Learn how to work with Arrays and more efficient alternatives to working with collections, like Maps and Sets.

  • Classes and Modules

    Discover how to write object-oriented code using the new class syntax and how to leverage the new module system to keep things clean and organized.

  • Promises, Iterators, and Generators

    Learn alternatives to writing async code, iterator objects for navigating sequences more efficiently, and special functions that return those objects.

JavaScript: 24 Screencasts Watched

Git: 4 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.

  • Placeholder Completion Badge

    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


Git Real 2


Learn advanced Git by practicing Git version control with Git Real 2. Continue to increase your Git skills by learning more advanced systems within Git.

  • Interactive Rebase

    Edit your commits through the use of interactive rebase

  • Stashing

    Not quite ready to commit? Git stash is the perfect solution

  • Purging History

    Accidentally commit something sensitive? Purge it!

  • Working together

    Make Git work together on multiple operating systems

  • Submodules

    Ever wanted to use another repository inside of another?

  • Reflog

    Undo almost anything and find lost commits using reflog


Mastering GitHub


Learn advanced tips, tricks, and proven best practices for collaborating more effectively with GitHub.

  • Fork Based Workflows

    Tuning your Git config and better collaboration through forking.

  • Single Repository Workflows

    Best practices for collaborating in a single repository.

  • Tags, Branches and Releases

    Tracking production releases using Git Tags, release branches, and GitHub Releases.

  • Issues, Wiki's and GitHub Pages

    Using GitHub Issues, Wikis, and Pages to collaborate and communicate.

  • Managing and Securing GitHub

    Repo setup, tracking project progress and managing access to your repositories.

  • Automating GitHub

    Integrating existing services, creating custom webhooks, and working with the GitHub API.

  • Command Line GitHub

    Using hub to create, fork, clone and collaborate on repositories - no browser needed!

Git: 2 Screencasts Watched

Electives: 4 Courses Completed


Discover DevTools


Learn how Chrome DevTools can sharpen your dev process and discover the tools that can optimize your workflow and make life easier.

  • Elements

    Dig into the elements panel, learn how to make changes to the DOM and update styles.

  • Sources

    New workflows to speed up your development time.

  • Console

    Review the DevTools console and learn how to examine exceptions and use timesaving shortcuts.

  • Debugging

    Great workflows for debugging problems in your JavaScript.

  • Network

    Speed up your network interactions using the network tab and the page speed extension.

  • Profiles

    Get familar with your applications rendering performance and learn how to use CPU profiling to identity performance problems.

  • Memory

    Learn how to find and identify memory leaks in your application.


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.

  • Placeholder Completion Badge

    What's Next


Discover Drive


Learn to build applications with the Google Drive API to organize, back up, and share photos, videos, and other documents in the cloud.

  • Save to Drive Button

    Creating a simple button for saving files to Google Drive.

  • Google Picker with Drive

    Creating a widget for selecting and uploading files.

  • Authenticating with Drive

    Using the Google API Ruby Client to request access to a user’s Drive.

  • Uploading Files

    Performing multipart and resumable uploads with the Google API Ruby Client.

  • Retrieving Metadata

    Retrieving metadata for single files and lists of files, as well as performing file searches.

  • Downloading & Sharing Files

    Downloading files from Drive and managing permissions.

  • Updating & Deleting Files

    Updating, trashing, and permanently deleting files.

  • Folders

    Organizing files with folders and using the Application Data Folder.

  • Push Notifications

    Getting notified when a file changes.

  • Installing And Showcasing Your Application

    Installing your application to the Drive UI and listing it in the Chrome Web Store.


Breaking the Ice With Regular Expressions


Search for text patterns using regular expressions and learn to validate emails and URLs, capture information, and use simple patterns to save development time.

  • The String Story

    Learn what regular expressions are, and write your first expression. Discover literals, operators, character sets, modifiers, and metacharacters.

  • Crew Emails

    Journey into validating emails with wildcards, escaping characters, groups, and anchors.

  • Confirmative

    Take a voyage to the edge with word boundaries and creating optional variations. Negate characters within character sets, and then use the negated shorthand. Finally, match specific amounts of characters with interval expressions.

  • Multi-line Strings

    Discover multi-line strings, and journey deeper with much larger subject strings. Search the globe and properly drop anchors with global and multi-line modifiers.

  • Capture Groups

    Grab the loot with capture groups, and learn how to extract sections of text for reference. Also discover when it's appropriate to have groups not capture.

Electives: 56 Screencasts Watched

iOS: 5 Courses Completed


Try Objective-C

Objective-C Language

Learn the basics of iOS development with the Objective-C language. Start learning to develop iPhone, iPad, and Mac apps by building a foundation on Objective-C.

  • Grass World

    Create and log common objects

  • Ice World

    Sending messages and getting results

  • Sand World

    Control the flow

  • Lava World

    Create your own classes

  • Space World

    Learning from mistakes


Try iOS

Getting Started With iOS

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 Operation: Models

Getting Started With iOS

Learn iOS development as you organize and move your app data from Controllers to Models. This sequel to Try iOS will help you master the use of Models.

  • App-A-Pushy

    Create Model Classes and instantiate Model objects.

  • Golden UI

    Fill Models with data during instantiation.

  • The App With The Golden Thumb

    Use Model objects to display data in Views.

  • Live and (Don't) Let The Battery Die

    Allow the user to change the data in Model objects.

  • Swipe Another Day

    Save and retrieve Model object data.

  • A View To Build

    Use Model data to enhance an app's user experience.


iOS Operation: MapKit

Mapping Frameworks

Learn Apple's MapKit framework for adding real-world location data to your app. Display location data loaded from the web and combine frameworks to enrich data.

  • UIFall

    Opening a map location in the Apple Maps app.

  • The Spy Who Plugged Me

    Adding a map view inside of your app.

  • For Your Thumbs Only

    Adding and customizing a map annotation.

  • Mapmaker

    Working with multiple annotations and data from a network request.

  • Dr. Scroll

    Building an annotation search field and using a geocoder to get complete location data.

  • The World Is Not An App

    Using methods in the CoreLocation framework to enhance map annotation data and offer an alternative way to display map data.


Exploring Google Maps for iOS

Mapping Frameworks

Learn how to display Google Maps in your app with the Google Maps SDK for iOS. Get started with the basics and use interactive maps to learn as you explore!

  • Displaying a Map

    Learn how to display a map, enable map features, and adjust default map options.

  • Creating Markers

    Learn how to display points of interest as markers and customize the way marker information is shown.

  • Network Requests

    Learn how to create map markers with data from network requests and user gestures.

  • Other Google APIs

    Learn how to use Google services like geocoding and the Directions API to add more value to markers.

  • Drawing on the Map

    Learn how to draw lines and shapes on the map for showing data like city boundaries and direction routes.

  • Street View

    Learn how to display a Google Street View inside of your app.

iOS: 8 Screencasts Watched

Database: 3 Courses 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.


The Sequel to SQL


​Learn the most important parts of the SQL language so you can create tables with constraints, use relationships, and write powerful join queries.

  • Aggregate Functions

    Learn how to use SQL aggregate functions, including COUNT, SUM, and AVG, to do calculations on groups of data.

  • Table Constraints

    Add constraints — like NOT NULL, UNIQUE, FOREIGN KEY, and PRIMARY KEY — to your tables to increase data integrity.

  • Normalization and Relationships

    Apply normalization rules to create tables without duplicate data and build the appropriate relationships.

  • Inner Joins, Aliases, and Outer Joins

    Explore writing a single query to pull data from multiple tables and using aliases to create succinct queries.

  • Subqueries

    Dive deeper as you learn how to write queries within queries.


The Magical Marvels of MongoDB


Explore the basics of MongoDB and learn what it means to store data in a document-oriented database.

  • Conjuring MongoDB

    Capture the mystical basics of MongoDB and try your hand at inserting and finding documents.

  • Mystical Modifications

    ​Learn the lore behind performing updates and transform your data.

  • Materializing Potions

    Dig deep into the spell book to learn how to conjure and customize queries.

  • Morphing Models

    Summon the wisdom to guide you in your journey of modeling data.

  • Aggregation Apparitions

    ​Explore the realm of aggregations to see how data can be combined in miraculous ways.

Database: 5 Screencasts Watched