Fill Up On The Good Stuff: 25% Off

November 23, 2015

Fill up on the good stuff this Thanksgiving with 25% off all our courses! It's ok to have seconds (or even thirds) of this sale. You can feast on our confidence-filling courses without any extra calories.

No coupon code necessary. Prices are already slashed now through end of day Monday, November 30, 2015.

  • If you've never taken an online course in our Studio, here’s your chance to pull up a seat and get your fill of courses for an amazingly low price.
  • If you're already a Pragmatic Studio alum, you'll save an additional 25% on Ruby and Rails courses.
  • And if you've feasted on all our courses, we are especially thankful for your support! Would you consider sharing the news of this sale with your friends and co-workers?

Bon Appétit!

Courses Updated For Elm 0.16

November 20, 2015

Elm 0.16 Released!

Yesterday Elm 0.16 was released. This is an exciting step forward for Elm and we’ve got you covered!

Course Updates

We’ve made the following updates to both our Elm: Building Reactive Web Apps and Elm: Signals, Mailboxes, & Ports courses:

  • The videos now have callouts where the syntax has changed (It’s minor. See notes below.)
  • The course notes have been updated with explanations of the changes.
  • All the code in the code bundle has been upgraded to be compatible with Elm 0.16.
  • The cheat sheets have all been revised to reflect the new syntax.

How Does This Impact Me?

If you’re currently working through the Elm course, you have two options:

  1. You can simply continue on with the course using 0.15 and the code bundle you’ve already downloaded. After the course, you’ll want to check out the syntax changes summarized below before writing your own Elm app.
  2. Or you can pause the course, upgrade to 0.16 (see the updated notes in the course setup instructions), download a new code bundle, review the Elm syntax changes noted below, and then carry on with the course!

Elm 0.16 Updates

As it pertains to the topics we teach in our current Elm courses, there are three changes necessary to be compatible with Elm 0.16: ...

[Continue Reading…]

Is Learning Elm Worth Your Time? 4 Ways To Know

October 22, 2015

They say time is money, but we all know that you’re giving up more than money when you allocate your time to something. Investing your time also comes with an opportunity cost. Should you learn language A, framework B, or library C next? And what kind of return will you get on that investment? It seems the good developers have a heuristic for narrowing down where best to spend their time.

So, how do you gauge if learning the Elm language is worth your precious time? We think it's worth it if you're one of the following kinds of developers:

1. Curious about FP

First, if you're simply curious about functional programming or you’ve struggled with FP concepts in another language, then you'll find Elm relatively straight-forward to learn.

For me, Elm has been the easiest way into functional programming because it combines all things FP with (and this is the most important part) the ability to create something, for example a reactive web page. Elm goes beyond the theoretical. Its syntax is clean and readable, and you can build practical stuff with it quickly.

2. Front-end Programmers

If you're a front-end programmer who is weary of JavaScript, then you absolutely owe it to yourself to check out Elm as an alternative. With Elm, I find my code is more reliable, stays well-factored, and is easier to maintain as the application grows. And I've yet to get a runtime exception!

If you’re one of the rare front-end programmers who likes JavaScript, then you’ll love hearing that you can use your favorite JavaScript library in Elm apps. You can send messages from Elm to JavaScript and vice versa using ports. In fact, interop with JavaScript is embraced by Elm.

3. Language Nuts...

[Continue Reading…]

New Elm Signals, Mailboxes & Ports Tutorial

September 10, 2015

Signals are the foundation of every reactive Elm app, whether it's a canvas-based game or a web application. To react to any type of user input, you apply a function to a signal. To maintain application state, you create a past-dependent signal. Communicating with JavaScript via ports? You use signals! It's no surprise then that to be effective with Elm you need to master signals.

In our new Elm: Signals, Mailboxes & Ports tutorial, you'll learn not just how these Elm features work but, equally important, when and where to use them effectively in your own projects.

What's an Elm Signal?

In Elm, a signal is a value that changes over time. But that definition can feel fairly abstract until you see signals in action. So we loaded up this course with lots of practical examples and use cases of signals in various scenarios.

What will I learn in this tutorial?

You'll learn how to transform signals to react to a variety of inputs in specialized ways. We'll create both a simple game that responds to multiple user inputs as well as a reactive HTML app with JavaScript interop. Check out the full course outline.

Am I Ready?

If you enjoyed our Elm: Building Reactive Web Apps tutorial, this course is your next step!

We hope you'll join us in The Studio for this fun, new course!

What is Elm? Q&A

July 23, 2015

Thanks to everyone who has picked up a copy of our brand new Elm video tutorial! Since releasing it we've received a bunch of questions and thought we'd roll them all together and answer them here.

Q: What is Elm, in under 144 characters?

A: Elm is a functional programming language that compiles to JavaScript and runs in the browser.

Q: What makes it a functional programming language?

A: In simplest terms, Elm programs are a collection of functions. For example, here's a cheery Elm function that transforms one string into another:

greet name =
  "Howdy, " ++ name ++ "!"

Q: OK, but isn't this just like a method in my object-oriented language?

A: The important difference is Elm functions don't run in the context of an object where they share state with other functions. An Elm function is stateless: it simply transforms its inputs into its output, with no side effects. Given the same inputs, a function always returns the same output.

Q: And that's important because... ?

Well, for starters, it means refactoring is easier because you can move code around without worrying about stuff outside the function. And the code is easier to understand in general. With a stateless function, what you see is what you get.

Q: I heard immutability was also an important part of functional programming. What's Elm got to say about that? ...

[Continue Reading…]

New Elm Tutorial: Building Reactive Web Apps

July 21, 2015

There are plenty of JavaScript-based frameworks for building single-page web apps. But there's a common problem with all of them: JavaScript. We need a better solution. Elm offers a fresh approach that makes functional, reactive programming not only possible, but practical!

In our new Elm tutorial, you'll learn how to create a single-page, reactive web app from scratch so you see how everything fits together and can start experimenting on your own!

What is Elm?

Elm is a functional programming language that compiles to JavaScript and runs in the browser. Elm isn't a band-aid over JavaScript's ugly parts; it's a whole new, fresh approach to browser programming.

What will I learn in this tutorial?

You'll learn the ins-and-outs of Elm as we build an actual web app from the ground up. By the end of the tutorial, you'll not only have a thorough understanding of the Elm language, you'll also know how to properly architect Elm applications. Check out the full course outline.

Is Elm for me?

If you want a fun way to learn functional programming or you're ready for an alternative to JavaScript, you should learn Elm! This tutorial is designed specifically for experienced web developers who are fluent in HTML, CSS, and another programming language. No prior experience with functional programming, Elm, or JavaScript is assumed. Check out the first few videos for free!

We hope you'll join us in The Studio for this fun, new course!

Jump In and Save 25%

June 11, 2015

Update (June 17, 2015): We've wrapped up our summer sale (thanks everyone!), but you can still pick up our popular courses at everyday great prices! And don't forget that after purchasing your first online course with us, you immediately become a Pragmatic Studio alumni and get 25% off all subsequent Ruby and Rails courses!

We don't offer sales very often, but the start of summer seems like the perfect time to help you jump into Ruby/Rails and save money doing so!

Today through end of day Tuesday, June 16, save 25% off any of our courses:

Everyone saves during this sale!

  • If you've never taken an online course in our Studio, now is the perfect time to come on in at an amazing low price.
  • If you're a Studio alum, you'll save an additional 25% on top of your alumni discount!
  • And if you've already taken all our courses, consider sharing the news of this sale with your friends and co-workers so they too can jump into Ruby and Rails along with you.

No coupon code necessary—the prices are already slashed.

Come join us in the Studio this summer!

How To Write "Macros" in Ruby

April 14, 2015

In Rails you use class-level declarations such as has_many, belongs_to, and other so-called "macros" all the time. Look familiar?

class Movie < ActiveRecord::Base
  has_many :reviews

class Project < ActiveRecord::Base
  has_many :tasks

Folks new to Rails (and Ruby) often assume these declarations are a magical aspect of Rails. In fact, there is no magic—it's just Ruby code. Indeed, Ruby makes programming in this declarative style easier than you might think.

In this short video tutorial we recreate a simplified version of the has_many declaration from scratch so you understand how to apply this same powerful technique in your own Ruby code!

Thanks for watching and please feel free to leave a comment below!

P.S. If you're using Rails and it feels too magical or you struggle with Ruby concepts, check out our online Ruby course. You can start this course for free today and begin learning how to design object-oriented programs the Ruby way.

How to Create, Preview, and Send Email From Your Rails App

March 31, 2015

Rails 4.2 includes some handy new features in Action Mailer. In this brief tutorial, we'll walk through how to send emails step-by-step using these new features!

For transactional email, consider using a service such as:

For newsletters, announcements, and bulk email, consider using a service such as:

For more details, check out Action Mailer Basics and the full mail method documentation.

If you're new to Rails in general, check out our Ruby on Rails: Level I online course. You can start this course for free today and begin learning how to design full-featured Rails apps with confidence. Then take your Rails skills to the next level in our Level II course.

Thanks for watching and please feel free to leave a comment below!

How To Add jQuery and Ajax To Your Rails App

March 18, 2015

Wondering how to get started adding JavaScript to your Rails app? In this brief tutorial, we'll look at how to add some effects with jQuery and send Ajax requests in a Rails 4 app!

If any of the Rails concepts in this tutorial threw you for a loop—such as forms, partials, redirects, or other Rails conventions—check out our Ruby on Rails: Level I online course. You can start this course for free today and begin learning how to design Rails apps with confidence.

If you need a bit of help understanding Ruby blocks such as those we used with the respond_to method, give our Mastering Ruby Blocks & Iterators online course a look-see. Blocks are used pervasively in well-designed Ruby and Rails apps, and this short course will help you become a blocks master.

Thanks for watching and please feel free to leave a comment below!

« Older Posts