Setting up and configuring your development environment at first hurts, causes problems and stress. I won’t say there isn’t some significant pain involved in installing and getting everything dialed in.
I’ve felt the same pain, I will help minimize it for you.
I can guarantee there will be hassles, I can guarantee that I won’t know everything, I can guarantee that I will become part of the solution, not the problem.
TAKE MAXIMUM OWNERSHIP OF YOUR MACHINE
In all cases in coding and dev setup, read instructions carefully and follow the details as written, understand that tutorials are inherently brittle and that developing your intuition is of utmost power.
At a mininum, to function well as a professional, a student and a remote pair programming coder, I consider the following tools a must. I don’t necessarily state that you install and configure everything as I do, but you must in some way shape or form possess the capability of each tool.
The following information is a reference of how I have done things and how to verify setup on my own system, depending on any number of control factors, things could be different on your side.
DO BEFORE ANYTHING ELSE IF ON MAC OSX !!!!
INSTALL XCODE, COMMAND LINE TOOLS THEN HOMEBREW
Capability: On mac osx, to get the right level of system access, you must download xcode and install the command line tools package.
The download has been known to take many hours, so be patient. Once you have it installed, install the command line tools.
HOMEBREW aka BREW
Capability: On mac osx, to be able to install interesting software from the internet by issuing terminal commands. Brew is very useful.
special note about brew
If you are on mac osx, install brew before you install lots of other stuff and use brew whenever tutorials or installation instructions say you can use it. You also should make sure to set your osx system software settings to ‘Allow apps downloaded from: Anywhere’ in order for lots of this stuff to run correctly.
RVM or RBENV
Capability: Allow for multiple versions of ruby to be installed and run in different projects.
I use RVM. It works, you know you have rvm installed correctly when;
Capability: To be able to run basic flavors of ruby.
Once you have rvm/rbenv installed, you can install all kinds of rubies. Mac OSX ships with ruby 1.8 already, that is not good enough for our purposes, you need to install rvm or rbenv and install more current version of ruby, like ruby 2.1. You know you are good to go when,
Capability: To be able to build rails application structure with ‘rails new’ command.
If you have rvm and ruby installed properly, installing rails ‘should’ be as easy as…
gem install rails
Capability: To be able to open and edit files/applications from the command line.
Install sublime, or textmate, or anything that makes sense, as long as you can code quickly, set tabs, search for files and have nested panes of code.
I use VIM when I code and sublime mostly to teach. The one detail that is very important is to ensure you configure sublime to be accessible from the command line. Sublime is great software, if you use it please pay for it. Having constant popups while you code interrupts your flow.
A great tutorial on how to configure sublime to be opened from the command line.
Capability: To be able to put applications under version control and push/pull/edit/clone/fork code at github.
It isn’t enough to just have git installed, in order to interact quickly with github, you must configure you ssh keys to work properly as well. On mac osx, homebrew is a good tool for installing git and lots of other programms. Please do not get any crazy ideas about using a GUI git tool, understanding git at the command line is probably the single most important skill to being able to learn and produce software in a collaborative context.
ssh -T email@example.com
Capability: Collaborative real time code sharing with audio and video integration.
Rubyonrailstutor.com wouldn’t be possible without floobits…
Signup for a floobits.com account and send it to me.
Make sure you have a g+ account as well as we need it for audio/video integration.
Also, setup sublime to work with floobits and if you can get flootty installed, you will be really ready to rock and ahead of like 80% of all remote pair programming types.
notes about remote pair progamming
A large monitor is very useful, I use a 22” acer hd.
A decently fast, speed > 1.5 MBS internet connection is very useful.
A good headset is also very useful, I use the SteelSeries Siberia V2, they aren’t the cheapest headset but neither the most expensive. If you are serious about this process, you need to be serious about your tools. Having a good headset makes a binary difference in the quality of our sessions.
SIZEUP (or whatever window management tool you choose)
Capability: Use keyboard commands to dock, move and maximize windows in mac osx.
Please respect how important it is to become a fast coder, the more you use your mouse, the slower you will be. Using your mouse to control the position of windows in your os is a very cerebrally laborious task, use hotkeys. Sizeup is paid, along with the headphones I use, it is one of the few expenses on this page of amazing free tools.
Watch this video of me quickly cycling through and moving windows around. http://quick.as/dv6dszmo