Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I recently got into web development through the PHP framework, CodeIgniter. I knew some PHP before I started learning that framework and overall I found it very easy to learn. The CodeIgniter documentation made it really easy to get started and figure out what each specific helper/library/function accomplished and how it was used.

After making a somewhat basic CMS/Forum in the framework, I decided to start learning Rails and see which one I liked more. Needless to say, I've had a somewhat difficult time understanding Rails. I'm not sure if Rails just takes more time to learn, doesn't fit my way of thinking, or if I'm using the wrong book to learn.

I've been working through http://ruby.railstutorial.org/ with little success. I understand many of the main points, but I feel as though I lack any real understanding. There seems to be a lot going on 'under the hood' with Rails compared to CodeIgniter. I tried looking at the Rails API for help, but didn't find much help there.

I'm more or less looking for a book or reference sheet that clearly outlines what each specific line of code is doing or what's going on behind the scenes. Something similar to the CodeIgniter documentation or a book that has less words and more basic examples for each aspect of the framework.

I've also tried reading through Why's poignant guide to Ruby, but that had far too much talking and not enough examples or clear documentation. I feel like it's the easiest for me to learn something when it's heavily tied to basic logic/math.

In the end I believe that it will just end up being a combination of the Rails API and spending more time working with the framework; however, I'm hoping that someone learns the same way that I do and has a suggestion. Again, I'm very new to programming and haven't spent more than 40 or so hours working with PHP/Ruby combined, so I apologize if my question doesn't make sense or if it's just a matter of putting a lot more time into it.

If Ruby doesn't seem like the right language for me, would Python be a better option? My plan was to build something basic with PHP/Python/Ruby and decide which I liked the best.

TLDR: Trying to learn Rails in limited free time. Finding that it's taking a lot longer to learn than CodeIgniter. Not sure if I just haven't been able to find a book/reference sheet similar to the CI documentation. Looking for suggestions or advice.

Thanks in advance for any advice or suggestions.

share|improve this question
    
I don't have much of a suggestion, but wanted to say that I'm in a similar boat. I'm coming from a C#/Java background, and having a somewhat difficult time understanding how RoR (and Django (equivalent framework for Python)) works under the hood. –  jnevelson Mar 25 '11 at 19:55
    
Yeah, there just seems to be a lot of 'magic' compared to what I used in PHP. I just haven't been able to find any clear examples or outlines to what exactly is going on. Glad to know I'm not alone :D –  Augury Mar 25 '11 at 20:01
    
When I first came to Rails from PHP (Cake and CI), I had the same problem. I dismissed Rails and went back to PHP; after a couple years, I decided to give Rails another go. In that time, something clicked and now I'm loving Rails (and Ruby!) Also, check out this (excellent) talk at RailsConf 2010 by Derek Sivers who was at one point in a similar boat--that very talk did me a world of good in helping me to decide to learn Rails. –  Brandon Tilley Mar 26 '11 at 2:05
add comment

closed as off-topic by gnat, GlenH7, MichaelT, Dan Pichelman, Bart van Ingen Schenau Sep 1 '13 at 9:20

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – GlenH7, MichaelT, Dan Pichelman, Bart van Ingen Schenau
If this question can be reworded to fit the rules in the help center, please edit the question.

5 Answers

up vote 4 down vote accepted

Rails is a bit of a learning curve, there's no denying it. I would strongly recommend learning Ruby properly before you start, otherwise the syntax (which looks very simple when you're just reading code) becomes a bit hit-and-miss when writing.

Also try Rails for Zombies and see how you get on there.

share|improve this answer
    
This sounds like it might be the best way to learn Rails. I was planning on doing Why's guide, then Rails for Zombies, but PickAxe seems like it fits my learning style. –  Augury Mar 26 '11 at 18:24
    
This ended up being exactly the solution I needed. I was able to recreate the simple CMS/Forum I built in PHP in Rails. I'll be looking into building a more complex website this week. PickAxe helped me figure out a few of the Ruby concepts I was missing, and the simpler approach in Rails for Zombies glued together everything I picked up in the Rails Tutorial. Thanks a ton. –  Augury Mar 28 '11 at 7:51
    
@Augury - Glad to help. Good luck –  pdr Mar 28 '11 at 9:06
add comment

Been there, done that;

I always felt like I was cargo-cult-programming with rails, whereas codeigniter is pretty lightweight just offering the basics, so it's hard not to see under the hood.

Web.py and Werkzeug are python frameworks that are pretty lightweight and don't hide all the details from you.

share|improve this answer
add comment

I also have struggled with learning Rails and even bought a book to help learn it. The book didn't help at all (the book was Learning Rails Live Edition) and in fact turned me off to Rails even more (a lot of the code from the book didn't work and installing things such as Restful Authentication turned out to be a hassle and a half and eventually made me decide to forget learning Rails). Eventually I started to learn Ruby (still learning it off and on) and really like the language. I had seen posts on here and other Sinatra as a web framework to use with Ruby and so far I really, really like it. Bottom line is, Rails isn't the only web framework when using Ruby.

As for Python frameworks, I truly haven't found one that suits my style. I'm not a fan of Django and have started to try Web2py but haven't done enough with it to actually comment on it.

share|improve this answer
1  
That's one of the hardest parts about learning Rails, it's really hard to find current blogs and books on the subject. Not to mention that everyone has different gem preferences. –  Augury Mar 26 '11 at 18:25
add comment

Try Sinatra first, it's lightweight, simple and will allow to you get used to Ruby and web development before you jump to RoR.

share|improve this answer
    
would you mind explaining more on what it does and what it's good for? "Link-only answers" are not quite welcome at Stack Exchange –  gnat Aug 31 '13 at 16:06
add comment

You just need no know Ruby well and be familiar with MVC architecture before starting with Rails. Solid knowledge of ruby object system subtleties and metaprogramming techniques will help to learn Rails in no time.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.