

Forcing myself to learn RoR - daemonl
http://blog.daemonl.com/2013/02/forcing-myself-to-learn-ror.html

======
jiggy2011
He wants to learn RoR because he wants to learn "a new language" but by the
sounds of it he isn't too psyched about learning a whole new web framework. I
don't blame him, once you have seen one MVC framework..

So, why not just learn ruby but learn it in a context that has nothing to do
with web frameworks? For example a program that can play music, a terminal
script that automates something or a program to procedurally draw fractals.

You will learn ruby quicker because you won't have to get bogged down in
details about how rails decides to do things.

If you find that you like the language more than what you are used to and wish
you could write your webapps in this language you now have a solid reason to
learn rails.

~~~
eccp
> You will learn ruby quicker because you won't have to get bogged down in
> details about how rails decides to do things.

Exactly! ... one of the most confusing things about Rails is how much you're
told not to understand some of the heavy lifting done by the framework, the
monkey patching and all kinds of magic tricks all over the place.

I've done webapps programming for long now and I recently followed the Rails
tutorial from beginning to end just to make sure I could remember some now
obvious stuff about testing, etc. and I understand it can be completely
overwhelming if you try to learn all the Ruby + Rails + RSpec + SCSS + jQuery
combo at once.

Try something simpler, build something with Shoes (<http://shoesrb.com/>) or
if you're into web apps, something like Sinatra would be a better fit.

~~~
daemonl
Shoes looks fun! My to-learn list just grew heaps.

------
czbond
I've been using RoR exclusively for a few years building fairly complex
companies - and still not a big fan - I think the Rails way only works in
certain shops. Agreed that Rails is moving more to be the API provider only.

What Rails does for me is help with the mindset of a structured framework of
good practices that is otherwise easy to let slip. So you can transition those
to (say) Express.js , and then you value frameworks like Tower.js more (IMHO).

Start with Sinatra (it's more the Express of Node). Rails is great, but it's
very convoluted and heavy. Ruby is a great language, so make sure to bifurcate
the two.

~~~
jkmcf
I highly recommend skipping sinatra for padrino for anything beyond a simple
site/api. It's sort of the happy middle ground between rails and sinatra.

<http://www.padrinorb.com/>

------
shadowmint
Here's a hint: If you want to learn a language or framework, pick a problem
(not a stupid trivial problem like 'hello world', a real problem, like, a
kandan clone, or todo list you can append to via email or something) and solve
it using that language and framework.

That process will give you an understanding not only of the sort of ways the
framework is useful, but the sorts of people who answer questions about it on
stackoverflow, the community, tutorials, existing basic MVP bases, etc.

Code jams are great for this sort of thing.

...but, what? You want to learn it because you don't want to, and want to add
the 'rails' checkex to your CV? O_o

Do yourself a favour and don't bother.

~~~
daemonl
That's good advice.

Not the CV, couldn't give a rats, I build every project in the language I
think it should be built in, but basically because some people I respect say
it's cool, and I'll never know if I don't learn it.

I'm not so keen on the meetup scene in Melbourne, but I suppose that's another
thing to try.

------
Turing_Machine
My advice would be to learn Sinatra first. The time investment will be much
lower than with Rails, IMO, and will let you know if Ruby is a good fit for
you.

You might even find that Sinatra does everything you need. :-)

------
daGrevis
Seems to me that you think that all server-side stuff is all the same.

Learn Haskell.

~~~
daemonl
Hm. Ok. I will. I don't even know what 'purely functional' looks like. That
sounds like a much bigger and less boring stretch. Thanks!

