This post is for a person who knows how to program, and wants to learn a modern web development stack. At my new job we use Padrino, an alternative to Ruby on Rails, so I’ll be describing that.
First, learn Ruby. I edit my ruby code in Sublime Text 2, it has nice syntax highlighting. I already knew how to program when I learned Ruby, so I simply read this book to pick up the syntax. I then read the first few chapters of this book to learn Ruby community standards, such as not using tabs, and always indenting with two spaces.
Now learn Sinatra and Padrino. Sinatra is a very lightweight ruby-based web framework you can pick up pretty fast. It’s so lightweight that some folks created Padrino to sit on top of Sinatra to recreate some of the features they missed from Rails. Be warned: padrino and sinatra were written by very experienced ruby on rails developers, and their documentation makes constant reference to rails. I don’t know rails so that made the docs a bit difficult at times. Overall though the docs are excellent.
To do professional software development as part of a team, you need to use version control software. I recommend git. It was written by Linus Torvalds (my hero!) in C. He used his advanced knowledge of filesystems to make git much faster than the competition. Git is also how you use the website github, which is central to the open-source world. Go ahead and make yourself a github profile if you don’t have one already.
There is a lot of talk on hacker sites about SQL and NoSQL data stores. At work we use mongoDB, a NoSQL database system, to store data. The ruby gem to interact with MongoDB is mongoid.
Bundler is a ruby gem that saves a lot of developer time managing libraries (called gems in ruby).
Although it is not strictly necessary, I suggest you learn the twitter rubygem, it’s one of my favorites 😉
Heroku is a way to deploy ruby sites without having to do sysadmin work. They let you put up low traffic sites for free. Once you learn this stack, you’ll be able to put something together in a few days, throw it up on Heroku, and you have a working webpage that would have taken weeks to build and deploy a few years ago. Also, Heroku is a cool company because matz works there, the guy who invented Ruby.
If you spend a few weeks learning this stack, build a nice website, and deploy it on Heroku, you’ll be able to get a job in New York or anywhere else hiring Ruby devs. Although many ruby shops use rails, after learning padrino you’ll be able to pick up rails pretty fast.