
Rails 3 is a huge step forward. This pioneering book is the first resource that deep dives into the new Rails 3 APIs and shows you how use them to write better web applications and make your day-to-day work with Rails more productive.
In 2005, when nobody used Rails, as a complete beginner to Ruby, I was able to write a patch to improve the Oracle database adapter. Somehow, despite all the magic, it took me very little time to find what to change and submit a patch. As a complete newbie to the language and platform.
Rails 2 and below revolved around a lot of hacks. Rails 3 removed many of those. Rails 4 even more so. Check out the book "Crafting Rails 4 Applications" to see how easy it is to hook into places in the framework to get what you need. (Disclosure: I'm the editor of that book.)
The argument you make about "voiding the warranty" is an argument I hear from people who have touched Rails for a project and hated it for one reason or another. It's not a sensible argument.
Remember, for centuries, people used "magic" to explain away something they didn't understand. :)
One part of the system not being obfuscated doesn't mean that many other important parts aren't.
>Rails 2 and below revolved around a lot of hacks. Rails 3 removed many of those. Rails 4 even more so. Check out the book "Crafting Rails 4 Applications" to see how easy it is to hook into places in the framework to get what you need. (Disclosure: I'm the editor of that book.)
I currently maintain both Rail 2.3 and Rails 4 applications. I totally agree that Rails 4 is a much smoother experience. There are still hacks around the magic that I've had to implement. The one most immediately on the top of my head is one of the form generators ignoring the method argument in some circumstances because it knows better and forcing me to jury rig them into obeying the command anyway (with a bit of JavaScript that alters the method on-page IIRC).
>The argument you make about "voiding the warranty" is an argument I hear from people who have touched Rails for a project and hated it for one reason or another. It's not a sensible argument.
Of course it's a sensible argument. Frameworks shouldn't be causing those feelings in people -- the magic isn't magical if it's getting in the way. If people are coming away with the impression that the system will blow up or otherwise misbehave when they try to peel back the covers, it's ignorance to just blame them for feeling wrong. One should try to at least understand the problem; then, you can decide if it's a problem that needs correction or if you're just OK with people who want some flexibility and cooperation from the framework not using your stuff and be honest about that so that they don't have to waste their time.
>Remember, for centuries, people used "magic" to explain away something they didn't understand. :)
And, also for centuries, people used "magic" to hoodwink gullible people.
Jose Valim's Crafting Rails Applications[1] is a wonderful resource, since it deliberately sets out to peel back the layers of magic. A lot of the techniques are ones I probably would not use in practice (storing views in the database and rendering them!), but they serve to elucidate the operation of the entire view stack. Really good stuff.
Two other good books are Rails Antipatterns[2] and Objects on Rails[3]. Neither of them has been updated in a long time, but the general principles will still hold. The former is more practical, the latter more theoretical; precscriptive and fanciful food for thought, respectively. Both solid.
1. https://pragprog.com/book/jvrails2/crafting-rails-4-applicat...
Start with http://www.codecademy.com/ for learning basic HTML, CSS and Javascript.
Then I'd recommend learning Ruby as a programmer. It's easy and fun to learn, there's a lot of demand for jobs (good jobs from startups to big companies to consultancies) so you can find a job pretty easily and there's a great community of people willing to help you out with it. Here's some resources for learning Ruby and Ruby on Rails:
http://tryruby.org/ (15 minutes beginner tutorial)
http://tutorials.jumpstartlab.com/projects/ruby_in_100_minut... (basic intro to Ruby to read)
http://rubymonk.com/ (interactive learning ruby exercises)
http://tutorials.jumpstartlab.com/projects/eventmanager.html (Ruby project dealing with CSV files)
http://tutorials.jumpstartlab.com/projects/jstwitter.html (Ruby project integrating with twitter)
http://www.codeschool.com/courses/try-git (git tutorial, very important for web development with others)
http://railsforzombies.org/ (basic intro to rails)
http://ruby.railstutorial.org/ (Rails project to build a Twitter site- long and intense but VERY worth it)
http://tutorials.jumpstartlab.com/ (more tutorials and info on Rails along with Ruby)
http://railscasts.com/ (more advanced stuff on Rails, covers some basic stuff as well, video plus text)
http://www.rubyquiz.com/ (Ruby exercises to try with answers from others-these are more advanced)
More text based:
http://guides.rubyonrails.org/ (read these to really understand Rails)
Books to read: Agile Web Development with Rails (newest edition, considered THE book on Rails)
Programming Ruby (considered THE book on Ruby) The Rspec Book (about testing, super important to learn, AO3 gives free copies to coders there)
Metaprogramming Ruby (great for understanding the intricacies of Ruby and how to bend it to your will)
Crafting Rails Applications by Jose Valim (great for understanding how Rails really works, more advanced)
The MOST important part is after a week or so (or less) of reading and practicing tutorials in the like, find something you're passionate and try to build it. Ask for help from other programmers, Rubyists love to help and try to find RL meetups if you can.
Good luck!
If you're looking for books on the internals of Rails, this one could be right up your street: http://patshaughnessy.net/ruby-under-a-microscope
If you're looking for more general but advanced books there are loads of fantastic ones - some of my favourites are Eloquent Ruby, Design Patterns in Ruby, Metaprogramming Ruby and there's Crafting Rails Applications for Rails (though I haven't started this myself yet - but I hear it's very good).
I can tell you it isn't easy, but its worth it. I'm better at my job because I now can study the product line by line, and I am also able to script mundane tasks like lead gathering via web scraping.
But -- once again, it's not easy or quick to do it right -- get ready for a marathon and befriend as many people at local user groups as possible. Even people working in langages you don't plan on learning and in industries you'll never go in to (you never really know what languages or industries you'll be working in 10 years later anyway). I wouldn't be able to do it without the input of my local ruby group, my coworkers, and some friends I met at our office space at a mid-sized coworking facility.
To answer a potential next question: the resources I've been using/have in my queue are as follows (keep in mind I've been trying to learn full stack web dev rather than just one language):
For Ruby/Rails:
-Agile web dev with rails (practically required these days)
-Code School's Rails for Zombies (Amazing, free, and the right amount of tough for a newbie -- I plan on buying their Jquery lineup soon)
-Michael Hartl's Rails Tutorial Screencasts (I'm definitely a video guy, and you get a discount for completing R4Z)
-Crafting Rails Applications (Takes your perception of rails to another level)
-Programming Ruby 1.9 (You'll have to learn Ruby eventually, might as well learn from one of the best)
-Ruby Best Practices (Its free, darn good, and Greg Brown's a pretty cool dude from what I can gather)
-The Ruby5 podcast (It's 5 minutes, and gives you a great survey of all of the cool widget gems and the large development undertakings within the community)
-Ruby Rogues Podcast (I know one of the brains behind this podcast, so I listen. It's 75% over my head, but the 25% I do get is amazing.)
-Everyday scripting with Ruby (This book is for the audience that the author of this article describes. If you have an annoying, repeated task you're doing, make the computer do the heavy lifting.)
Non-Rails/Ruby:
-Carsonified's ThinkVitamin Membership (Absolutely the best tutorial vids I've ever seen. Short, clear, info heavy, and very quickly retained. I feel like I'm in The Matrix when I'm watching their stuff. There's actually some good stuff for Sinatra, Django, and WordPress here too)
-PG's On Lisp (I have no intention of building Lisp applications, but the book is amazingly written, and interlaced with PG's manifesto for quick, high quality development. Lisp is his weapon of choice but many of the principles here are rock solid regardless of the medium the artist chooses. Plus it's free.)
-5by5 Podcasts, particularly "Lets Make Mistakes" (They're design podcasts, and the professional design industry is particularly adept and finding client and consumer "pains" and fixing them. Plus, you will eventually have to make your products not look like crap)
I apologize for the long post, but if I were reading this thread 6-8 months ago, I would've killed for a list like this. To the "biz guys" looking to learn: you can't go wrong, in my opinion, with the above list at all. If you're low on cash, some of these resources are free, but every dollar I've paid has been money very well spent.