Intro to Ruby
This module goes through a general introduction to Ruby. One thing that I find interesting is how optimistic Ruby is, in the sense that everything except for
nil is true. This is especially interesting from the perspective of comparing true and false in sqlite where sqlite stores 0 as false and 1 as true. I have not had to deal with this yet, but it is nice to keep in mind going forward. Another nice thing that I have not used that much is
irb this is basically a Ruby repl that allows you to quickly test out concepts in your shell. I also love (since I work at a CI company) that the very first lesson about ruby talks about rspec and even has us use it go grade our assignments. It is never too early to start thinking about tests.
Tour of Ruby Data Types
The next module took a nice tour of Ruby data types. I learned some pretty neat things.
- Strings in Ruby super expressive, string interpolation is pretty amazing and very clean. Destructive Methods Have
!, I like this convention, you see it a lot in Clojure.
- %w can make multiple strings into an array (like using .split() in JS)
- You can get a random element from an array with
.sample, pretty neat
- Hash Order is maintained, this is really powerful
I also finally understand how blocks in Ruby (closures) work. (After many years of derping through Vagrantfiles)
Object Oriented Ruby
- All methods public by default
- Clean class creation with useful helper methods for getter/setter
- Talked about how most of the functionality in Collections comes from using the Enumerator mix-in, gave an example of how to use it, super powerful!
Again, I love that this course started right off the bat talking about unit testing. A+ to the course creators for covering this topic. The instructor did a good job talking about the differences between Test::Unit, MiniTest, and RSpec with great examples of how to use all of them.
The final assignment for this module was to write a program that reads a file and calculates word frequency. Overall it was pretty simple, I think the material did a good job preparing us for the task, and caused us to use a lot of the different tools that we learned about Ruby.
I have often heard that Ruby was designed for developer happiness. I really love the clean syntax, well documented API, and elegance. The next module will be a deep dive into Rails, looking forward to using more of the stuff that I have learned in this Ruby crash course.