Learning Ruby on Rails, CSS & jQuery - Building a webapp for designers (Part 2)
This is a series of posts, where I detail how I built CompVersions and what choices I made along the way.
In the first part of this series I spoke about the legal side. Now I get into learning the development-side.
This has been an interesting journey, I set out to build a webapp and took the plunge to learn everything myself (from a coding perspective). This is what my development environment is:
- 13" Macbook Pro
- Textmate
- Textmate theme used by Ryan Bates on Railscasts - http://railscasts.com/about
- Git
- Thin webserver
For learning Rails I tried MANY things:
- http://ruby.railstutorial.org/ (this was a nice first primer, but given that I was learning Rails from scratch the issue I had with this tutorial is that it forces you to learn Test Driven Development - which for me was too much to learn everything at once. So I skipped over all the Test related stuff, and picked up what I could from everything else).
- http://railsforzombies.org/ - this is pretty awesome, because it doesn't involve Tests and takes you into the core of Rails 3 from day 1. I highly recommend this for anyone just starting Rails development.
- I tried a few ebooks - and they are nice for rounding out your knowledge (once you have a solid understanding of the Rails way) and giving you an alternative perspective, but they never quite got me to fully understanding the way things worked.
- Asking Questions - mainly on Stack Overflow and #RubyOnRails on IRC.Freenode.net, port 6667. Every now and then, I will ask a question and get a WONDERFUL answer. Not only did his response clear up some stuff in my mind, but I have since used his advice about looking at other live examples.
- Bookmark and constantly refer to multiple git repositories. Specifically the Facebook competitor Diaspora, Sassy, and Shapado.
- Railscasts are awesome, once you have the basics under your belt. They really help you do specific stuff in Rails.
- Just diving in. CompVersions was my first Rails app, and it has been a steep learning curve. Very steep. But I feel MUCH more fulfilled having done everything the hard way. That approach might not work for everyone else, but that's what has worked for me.
- I must confess that I never focused on learning Ruby, but now that I have a certain foundation in Rails and a bit of Ruby under my belt, I do plan on learning more Ruby.
- Ironically, writing about my learnings also helps. There is something about explaining that forces you to understand what you are talking about.
I also had to learn (and am still learning) jQuery which I pretty much took the same approach.
- http://jqfundamentals.com/ is an awesome first place to start to get your feet wet
- As is jQuery Novice to Ninja from Sitepoint.
- Ask LOTS of questions on both #jQuery on irc.freenode.net & Stack Overflow.
- Use JSFiddle to demonstrate your proofs of concept for both CSS & jQuery.
- Six Revisions has LOTS of great articles about both jQuery & Javascript.
- Watch as many JS lectures as you can.
- Learning Advanced Javascript (By John Resig - creator of jQuery) is also something that I have bookmarked and never gotten around to doing, but looks awesome nonetheless and I should probably do so one day.
- Addy Osmani has a wonderful book on Javascript patterns, that is a must read.
- This blog post by Rey Bango, has a plethora of useful resources on JS.
Here are some additional CSS resources I used in my journey:
- HTML5 & CSS3 lecture by Paul Irish (member of the jQuery core team)
- A WONDERFUL CSS3 Practical Introduction. It really is difficult to speak too highly of this presentation, except to say that you have to see it for yourself.
- A very straight forward tutorial on CSS selectors and the way it works.
- It's also very important for you to understand the Document Object Model (DOM) tree
- Here is a nice collection of CSS3 buttons, made in the likeness of Github buttons.
- Net Tuts has a nice rundown of 30 CSS selectors that are useful.
I apologize if this is too much of a link dump, but people constantly ask me what resources I used to learn everything and I have not been able to point them to one comprehensive place for me. But now I do :)
The next parts will dive more into services used and such.
Look forward to hearing from you in the comments.
Marc Gayle
www.marcgayle.com
www.twitter.com/marcgayle

