Learn Foundations

Explore Ruby and other programming languages and paradigms to level up your coding.

Trails

Foundations

Ruby Challenges

Open-ended challenges designed to test your problem-solving skills. These start easy, but get hard. Watch out!

?

Open-ended challenges designed to test your problem-solving skills. These start easy, but get hard. Watch out!

5 hours
Next Up

Analyzing Shakespeare

Write a command-line program that prints the number of lines spoken by each character in Macbeth.

Unstarted

Sudoku Validator

Write a program that reads a file containing a Sudoku grid and validates it.

Unstarted

Ranking Poker Hands

Write a program that accepts two poker hands and returns the winner.

Unstarted

Solving Every Sudoku

Write a program that can solve any Sudoku puzzle.

Unstarted

The Wiley Word Square

Write a program to find the largest possible square of letters such that every row forms a word (reading left to right) and every column forms a word (reading top to bottom).

5 steps remaining
Visit trail
Foundations

Analytics for Developers

Build. Measure. Learn.

?

Build. Measure. Learn.

2 hours 8 minutes
Next Up

Part 1 - Big Data & Big Stories

Unstarted

2: Visualization, Applying Analytics To Your Business & Event Data Overview

Unstarted

3: Analytics Infrastructure & Modeling Events

Unstarted

4: Common Techniques, A/B Testing, Funnels, Cohort Analysis

Unstarted

5: Retention & Churn

Unstarted

6: Using Event Data to Answer Business Questions

Unstarted

Part 2 - Project Setup

Unstarted

8: Analytics Library, Events & Collections

Unstarted

9: Tracking Events & Adding Multiple Parameters

Unstarted

10: Stat Metrics & Graphing Analytics

Unstarted

11: Frontend vs Backend & Special Collection Methods

11 steps remaining
Visit trail
Foundations

Regular Expressions

Regular expressions (or regex) are a powerful way to search for text that matches a given pattern. At their best they are simple, elegant, and incredibly useful. This series of exercises will help you learn regex beyond the basics and build more sophisticated regular expressions to match complex and subtle patterns.

?

Regular expressions (or regex) are a powerful way to search for text that matches a given pattern. At their best they are simple, elegant, and incredibly useful. This series of exercises will help you learn regex beyond the basics and build more sophisticated regular expressions to match complex and subtle patterns.

4 hours
Next Up

Regular Expressions: Repeating Patterns

Avoid repetition in your regular expression by using built-in repetition operators.

Unstarted

Regular Expressions: Character Classes

Use character classes to make more-general regular expressions.

Unstarted

Regular Expressions: Anchors

Anchor your regular expression to the beginning of a line, the end of a line, or to a single word.

Unstarted

Regular Expressions: Tying it all together

Use everything you've learned so far to take your regular expressions to the next level.

4 steps remaining
Visit trail

The Weekly Iteration

Hosted by

Derek Prior and Chris Toomey

Derek Prior
Chris Toomey

On this week's video, Chris is joined by Derek to discuss web security. Tune in to learn about the available resources and tools, and some specific issues to watch out for in Rails apps.

Hosted by

Chris Toomey and Matthew Mongeau

Chris Toomey
Matthew Mongeau

In this episode of the Weekly Iteration, Chris is joined by Matthew Mongeau, aka [Goose][], to discuss regular expressions. Learn how to work with them, where they fit, and perhaps more importantly where they don't.

Hosted by

Chris Toomey and Matthew Mongeau

Chris Toomey
Matthew Mongeau

On this weeks episode Chris and Goose present an introduction to writing a programming language. From lexing to parsing find out more by watching this week's episode.

Hosted by

Chris Toomey and Ben Orenstein

Chris Toomey
Ben Orenstein

Chris and Ben discuss the magic of speaking, from lightning talks all the way to conferences. Tune in to learn the specific tips and approach that will help you land a spot and deliver a great talk.

Hosted by

Derek Prior and Chris Toomey

Derek Prior
Chris Toomey

Derek gives Chris a rundown on a11y, aka web accessibility. Tune in to the learn why accessibility matters for all apps, how to approach it, and what tools are available to help on the journey.

Hosted by

Joel Quenneville and Chris Toomey

Joel Quenneville
Chris Toomey

Elm is a new language for building browser based applications that brings together the purity of Haskell and the pragmatism of JavaScript in hopes of getting the best of both worlds. Tune in as Chris and Joël dive into Elm to see what it's all...

Hosted by

Chris Toomey and Harry Schwartz

Chris Toomey
Harry Schwartz

We've avoided it for a hundred episodes now, but the time has finally come to talk about that other text editor. Join Chris and Harry as they dive into the wild world of Emacs and see what things look like on the other side of the aisle.

Hosted by

Chris Toomey and Derek Prior

Chris Toomey
Derek Prior

SSH is a foundational topic for anyone working on the web, and at a minimum it's important to understand how SSH is used for authentication with Git and similar tools. In this episode we'll cover these basics as well as some of the more...

Hosted by

Matthew Sumner and Chris Toomey

Matthew Sumner
Chris Toomey

REST is the core architectural pattern we use to build our Rails applications, but it's not always clear what exactly is and isn't REST. Tune in as Matt Sumner joins Chris to discuss exactly what REST is, and how best to embrace it in your Rails...

Hosted by

Chris Toomey and Harry Schwartz

Chris Toomey
Harry Schwartz

Computer science can seem scary, but with the right mental framework it's actually quite approachable. Follow along with Harry Schwartz, thoughtbot developer in Boston, as he walks you through his favorite parts of computer science and why it even...

Hosted by

Tute Costa and Chris Toomey

Tute Costa
Chris Toomey

Join Tute Costa and Chris Toomey to learn about contributing to open source projects. Let's dispel some of the myths, learn how to be a better contributor, and start giving back to the projects we use every day.

Hosted by

Gabe Berke-Williams and Ian C. Anderson

Gabe Berke-Williams
Ian C. Anderson

In this video we'll show you the range and power of type systems of various languages, and explain why you might be interested in checking out a more strongly typed language.

Hosted by

Gabe Berke-Williams and Melissa Xie

Gabe Berke-Williams
Melissa Xie

Meetups are a great way to involve yourself in your local programming communities, as well as find other people with similar interests. Join Melissa Xie and Gabe Berke-Williams to learn how to organize and run your own meetups.

Hosted by

Chris Toomey, Joe Ferris, and Ian C. Anderson

Chris Toomey
Joe Ferris
Ian C. Anderson

Retrospectives are a core part of our process for keeping projects running smoothly, encouraging open communication, and hitting our goals. In this video, Joe Ferris, thoughtbot CTO, leads Chris and Ian through a typical retro while describing the...

Hosted by

Chris Toomey and Joe Ferris

Chris Toomey
Joe Ferris

Often when talking about optimizing data SQL in web applications we focus on the application layer concerns like n+1 queries and the like, but occasionally we'll need to dive down into the database layer itself to optimize our queries. In this...

Hosted by

Joshua Clayton and Chris Toomey

Joshua Clayton
Chris Toomey

Blocks are a core concept in Ruby, and while they make frequent appearances in Ruby code, developers may not be aware of exactly how they work or all the things they can do. In this video, Boston Development Director Josh Clayton walks through...

Hosted by

George Brocklehurst and Chris Toomey

George Brocklehurst
Chris Toomey

What is a line editor, and how can you use it in your workflow? In this Weekly Iteration, George Brocklehurst and Chris Toomey explore Readline, the most common line editor. Learn how to use it in the shell, your REPLs, and even in your GUI.

Hosted by

Paul Smith and Chris Toomey

Paul Smith
Chris Toomey

Elixir & Phoenix, so hot right now! On this week’s episode we’ll take a look at some of the great features of both Elixir and Phoenix through the lens of Bamboo, a library for sending emails in Phoenix apps, recently released by thoughtbot...

Hosted by

Joel Quenneville and Derek Prior

Joel Quenneville
Derek Prior

Our languages give us great tools in the form of primitives: things like integers, strings, and arrays. However, over-relying on these leads to problems. This practice even has it's own fancy code smell name: Primitive Obsession. In this video,...

Hosted by

German Velasco and Stephanie Viccari

German Velasco
Stephanie Viccari

Elixir shines when it comes to concurrency. On this episode, German and Stephanie look at the foundations of concurrency in Elixir as they build an abstraction to handle asynchronous tasks.