A Craftsman & Their Tools- Tools you’ll use when learning Rails.

vim, tmux, dotfiles, and other weird sounding things, simply defined for the new developer.

Jesse Waites
5 min readMar 10, 2014

The expectations of life depend upon diligence; the mechanic that would perfect his work must first sharpen his tools.” — Confucius

he more I learn about programming and Ruby on Rails, the more I realize the importance of having control over my instruments. Coming from the world of surgery, I suppose this would be an easy analogy for me to make. After a whirlwind year of learning from others, learning alone, and learning online, I heard through friends that Kaplan and thoughtbot were starting their own Rails developer training course called Metis. thoughtbot is the #1 Rails consultancy in the world and make a lot of the gems (Ruby code libraries) Rails developers use professionally, like Factory Girl and Paperclip, so of course I jumped at the chance to learn Rails from thoughtbot engineers via Metis. Thanks to my Upstart.com investors, Kaplan, thoughtbot, and Metis I’m finally able to learn these things properly. (Gratuitous plug- My Upstart profile is still funding, and I’d love it if you’d have a look at my profile and consider investing.) I’m a very persistent person professionally (and apparently an alliteration afficionado) and have dedicated the past year of my life to learning Rails, and my acceptance into Metis tells me that persistence has paid off. I appreciate the opportunity and wanted to write this as a way to give back to the Ruby and Rails community. OK. Let’s do this.

Tools of the Trade

eing that I’ve been studying and researching Rails for the past year, I still have a good understanding of what it is like to be completely new at all of this. vim, Sublime, and other words that sound straight out of a Joss Whedon script. This guide is meant to clear some of these things up and get you feeling confident and ready to begin your actual learning. I can’t think of a better place to start that reading Michael Hartl’s free Ruby on Rails Tutorial. Completing that book is a bit like a Jedi learning to build his or her first Lightsaber. Its something nearly everyone does and is a great, great place to start. I can also recommend working through the “Learn Ruby on Rails” book by Daniel Kehoe. It’s a very gentle introduction to Rails and a great place to start for true beginners.

Ruby and Rails versions

There are various different versions of Ruby and Rails. For example, different versions of MacBooks ship with different versions of Ruby, depending on when it was manufactured. I recommend asking your mentor how he or she manages their Rubies (chruby? RMV? Rbenv?) There are a few options someone can walk you through. It’s an open secret that most Rails developers seem to be very opinionated on which is the best to use and I can tell you that there is no general consensus on this, so just listen to your Mentor while you’re starting out and do what they do. (Need a Mentor? Go here.)

Editors

A text editor is where you will do most of your work. There are different ones that work in slightly different ways. Different types of text editors include Emacs, Vim, Atom, and Sublime Text. I recommend using Sublime Text if you are new and watching this video to get up to speed. If anyone tells you to start off using Vim, distract them by asking questions about their Unix environment until they forget about it.

Paper and Pen.

Get some. Get one. Take notes. I actually bought some index cards and would quiz myself different Ruby things, such as operators like “!=”, “&&”, “||”, etc. until I had it down cold. Learning programming builds on itself, so it is important to have the fundementals down before proceeding to more complex things. Quizzing yourself with flash cards is a great way to get up to speed by studying them for 10 minutes every few hours. Repetition and persistence is key, friends.

Image Manipulation

Photoshop? Don’t worry about it. You don’t need it. If you did, you could use Pixlr or Pixelmator. Omnigraffle is pretty great for wireframing but you might not need that either. I wouldn’t sweat it.

Super Bonus “Chrome Extensions for Web Developers” Round

I’ve been doing web development in non-Rails frameworks for quite some time now and have discovered a variety of Chrome Extensions that make my web development life easier. The first is What Font. With What Font, I can simply turn it on and hover over an text on a page, and the extension will tell me what Font is being used. I keep a Wunderlist of fonts I like that I stumble across for use in future projects.

Eye Dropper is a Chrome Extension that selects color from any web page- Really useful when working on the front-end of an application.

Google Font previewer for Chrome- An excellent tool to preview Google Font combinations/options on any web page right from your browser. Highly recommended tool. I can go to an web page (Like one I’m building) and view it with any font I’ve previously selected with What Font. Saves me a lot of time changing the font code- I can experiment in the broswer until I find something I like. Can you tell I’m a bit of a typography nerd?

dotfiles

dotfiles are files the begin with… a dot. (Such as .bashrc) Dotfiles are configuration files that are hidden from the system. It took me a while to figure this out, but basically, developers are nerds (It’s ok nerds, calm down- I’m a nerd, too) and they like to nerd out on their systems and configurations and customize the default behaviour of the programs they use. Developers share their dotfiles and the thoughtbot folks have a standard set of configurations for vim, irb, git, zsh, and more that I plan to use at some point. As the expression goes, “that’s a little above my pay grade” at the moment, so I’m laying low on this until I get further up to speed with vim.

tmux

tmux enables a number of simultaneous terminal instances, each running a separate program to be created, accessed and controlled from a single screen. Honestly, don’t worry about it right now. Ask your mentor in a few months.

Thanks for reading, and please reach out to me on Twitter with any further recommendations or edit suggestions. Metis is going really great right now, and I highly recommend checking it out and taking it under consideration if you think professional web development is right for you!

--

--

Jesse Waites

Full-Stack Ruby on Rails Developer, Author, High Altitide Mountaineer.