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.