JOSH SOFTWARE PVT. LTD.
Where Programming is an Art!

Master the Ruby programming language—to write more powerful libraries or improve your Rails applications—by learning advanced techniques from two experienced Ruby developers and authors in this 3-day, hands-on training course.

  • Write Ruby programs and Rails applications with the confidence and efficiency that comes from deep knowledge of how things really work
  • Learn what's new in Ruby 1.9, and how to make the most of it
  • Use your new-found skills to contribute to open source and commercial projects in an impactful way
  • Take your Ruby skills to the next level by focusing exclusively on advanced Ruby techniques for three days with Dave Thomas and Chad Fowler

You'll come away from this Studio feeling like a Ruby Master. You'll not just know Ruby in depth, you'll also understand why things are the way they are. You'll have moved beyond the basic toolbox of the average Ruby developer—you'll be able to exploit the libraries and constructs the true pros use to make their code powerful, compact, and fun to work with.


What Will I Learn?

Basic Ruby, Advanced Ruby Techniques, Tips, and Tricks. Through a series of lecture, hands-on exercises, and discussion, you'll learn how and when to use advanced Ruby features. Topics include:

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 andimagedynamic 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

Ruby 1.9 Features: Ruby is a-changin'. As a Ruby programmer, you'll want to stay on top of all the new syntax and language features.

  • A look at the new classes and libraries
  • Major changes to String
  • New hash goodness
  • Enumerators
  • More powerful regular expressions
  • Multi-nationalization of code and data
  • Fibers and threads
  • Changes to the Ruby parser and execution engine

 

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 implementationimage
  • Threading, managing processes, creating server daemons

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
  • How (and why) to read Ruby source code
  • Understanding the Ruby compile process
  • irb tricks
  • RDoc/Ri
  • ERb
  • Debugging and Profiling

In addition to the prepared topics, you'll have time to ask questions and spark discussions with other experienced Ruby programmers.


Who’s It For?

It is for beginners in Ruby or in RoR who has basic programming knowledge and 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.

Who Teaches the Course?

Gautam Rege

Satish Talim


What Do I Need?

This course is taught on site at your location. As such, you'll need the following:

  • a room to comfortably accommodate your team
  • a laptop projector and screen
  • a whiteboard or flipchart with markers
  • laptops (or desktops) on which each attendee can complete the hands-on exercises, and access rights on those machines to install the required software