Like most things, once you understand something fully, you look down at a small step and remember the mountain you saw when you first looked up at it. I would say, yes Ruby is hard to understand for most developers, for these reasons:
- Ruby has some very powerful, but less common programming concepts. So there some conceptual learnings to be had.
- On top of this, most programmers I come across, with some experience under their belts, are already building foundations and concepts about what programming is, except those concepts are being built using constructs from the particular language or domain they are working within.
The best advice I can give is that each language/framework/dev environment only provides one way of manipulating the facets of the machine/network. The mistake is to think that this is the only way. If you approach Ruby thinking, how does this relate to PHP, then expect to struggle, because in many cases, just below the surface, it won't.
A concrete example is:
- Where's my 'for' loop? et struggle vous
however if you ask
- How do I run this piece of code for each element of this array? You'll find many wonderful answers and wonder why you ever had a for loop in the first place. But remember, there are even better ways than Ruby has today!
So with all that power in Ruby and also the rails framework, you owe yourself some time to learn the basics. Yes you can work wonders with things like rails, with very limited knowledge. Imagine what you can do with a couple of years of solid ruby learning under your belt.
Peter Norvig wrote a very good paper called Teach yourself programming in ten years. I'd recommend taking a look at that.