The Advanced Ruby Studio is an intensely hands-on, interactive workshop that takes you deep inside the Ruby language and its accompanying tools.
If you're using Ruby in any capacity—writing libraries or utilities, automating your software project, building dynamic web applications with Rails, integrating systems in your enterprise, or anything in between—then you owe it to yourself to truly master Ruby's advanced features.
After this Studio your productivity will soar as you write more readable and more maintainable Ruby programs.
Who Gives the Studio?
Dave Thomas and Chad Fowler. In this premiere Studio you'll learn directly from two renowned experts on Ruby.
Dave Thomas is, among many other things, the author of Programming Ruby: the definitive reference manual that introduced Ruby to the western world.
Chad Fowler is a leading contributor in the Ruby community, a cofounder of Ruby Central, Inc., an organizer of RubyConf, and the author of Rails Recipes.
Who’s It For?
Experienced Ruby Programmers The Studio is taught by programmers for programmers. It isn't lots of dry theory. Over the course of three days you'll watch the instructors code examples of advanced Ruby, and then you'll spend time coding your own solutions to advanced Ruby problems.
This Studio is right for you if:
- You have a good working knowledge of the Ruby language, but you want to take it to the next level
- You've tried what you consider to be advanced features in Ruby, but you want to understand when and how experts use those features
This isn't a course on Rails, and no previous experience with Rails is required.
What Will I Learn?
Advanced Ruby Techniques and Approaches
Thinking in Ruby: Ruby is different than the languages you're used to. If you're still using the techniques that work with those languages, you're not exploiting the power of Ruby, and you're writing more code than you need.
- Object Oriented design in a dynamic language: Reuse mechanisms unique to Ruby and dynamic languages, mixins, composition and delegation, runtime class extension
- How to organize your code: libraries and APIs, require and load tricks, supporting multiple Ruby versions, static builds of Ruby, using and creating Gems, best practices for file and directory organization
Spreading The Code: It's a networked world. Let's move beyond HTTP and find ways of getting programs to talk to programs.
- Different methods of networking: DRb, custom network protocol implementation
- Threading, managing processes, creating server daemons
- Java integration with JRuby
Advanced Programming Techniques
- Blocks, Procs, and closures in depth
- Meta-classes and the meta-object protocol
- Taking advantage of interpreter and system hooks
- Duck-typing protocols and coercions
- Using reflection to discover and inspect classes, inheritance hierarchies, defined methods, and instantiated objects at runtime
Advanced Meta-programming: Everyone talks about Ruby, meta-programming, and Domain Specific Languages. But let's see how to do it for real.
- Techniques for runtime class and object extension
- The many faces of eval
- Internal Domain Specific Languages
Real-World Ruby: We may know all the secrets of coding Ruby, but we still need to make it work in the real world.
- Performance: taking out the garbage, C extensions, integrating with shared libraries using DL
- The future of Ruby: 1.9, YARV, and beyond
- How (and why) to read Ruby source code
- Understanding the Ruby compile process
- irb tricks
- RDoc/Ri
- ERb
- Debugging and Profiling
If you're just getting started with Ruby, then consider attending the Ruby Studio.
“Dave and Chad brought us backstage and demystified some of the Ruby magic. Unlike the disappointment of learning the secret behind a magician's trick, the class made me even more enthusiastic about the language and the community. I now have a clearer understanding of the Ruby language and its surrounding idioms.”
—Ryan McGeary
What's a Studio Like?
Interactive Learning. In a Studio you learn in a significantly different way than reading through the books. Attending a Studio complements what you may have read, but in an interactive environment where you'll:
- get your questions answered by the experts, and your peers
- discuss up-to-date topics that aren't in the books
- learn techniques from live coding sessions
- cement the concepts you've learned in the books
We think Studio offers the best developer training there is. But don't take our word for it. Just ask our alumni. Check out their reviews and applications they've built! The Studio experience continues after the Studio with our members-only alumni mailing list.
“The strictly guarded Alumni group is one of the best programming resources I have ever seen.”
What Should I Bring?
You and Your Laptop. It wouldn't be a programming workshop if you didn't walk away having written some code. You'll be most productive on the laptop you use regularly. (On average, 60% bring Mac OS X, 30% bring Windows, and 10% bring Linux.)
A few weeks before the Studio, we'll send out detailed instructions for installing everything you'll need. During the Studio, you'll get hands-on experience working through prepared exercises, and experimenting on your own, too.
