How To Learn Just Enough Ruby For DevOps and Automation
I spoke with a reader recently who is wanting to increase their Ruby proficiency before diving into the Chef side of things.
I totally get it. Learning a language can be hard. You read tutorial after tutorial, maybe comparing it other languages you've learned or just trying to wrap your head around some of the more complex builtins.
The good news is that it doesn't have to stay that way or be that way. You don't have to learn everything about the language, or worry about all the unknown unknowns (after all, you don't know what you don't know) in most cases.
It certainly doesn't have to be that way with Ruby and DevOps. You need just enough. What is just enough? Chances are it’s less than you think, but really only you and what you want to accomplish can decide that.
You can get on the right path. Just enough Ruby can be easy to learn and there are a ton of great resources out there.
If you feel like you know the syntax and just want more practice applying it, Codewars can be a great way to work through bitesize problems that can be checked automatically (with unit tests). Maybe you realize you know more than you think, or maybe you have to google a bit and you learn a new API method. Either way, you're learning just enough.
If you're just curious what's out there, what can you use Ruby for in Chef, or Puppet, or Vagrant, or anything else, you can checkout the api docs. It may sound like reading the dictionary, but its amazing what little tricks you can find. Did you know there is a built in method to do a binary search?
Want even smaller problems or don't want to do it online like codewars? That's where the Ruby Koans come in. Fill in each test to make them past, bit by bit cementing your Ruby knowledge while filling in the gaps.
Want more of a tutorial or walkthrough format? Codeschool has a few Ruby (without Rails) classes.
Once you've been through some of these, how do you know what "just enough" Ruby looks like? Well, it looks like being able to solve the problem you're facing. It looks like being able to make your configuration management software behave the way you had in mind. It looks like feeling comfortable enough to get started and get going.
Still don't feel ready? Shoot me an email and I'll do my best to help get you back on track.