
Taking the interested novice to proficient practitioner, this beautifully written tutorial begins with the basic steps to get readers' first Ruby program up and running and goes on to explore sophisticated topics like callable objects, reflection, and threading.
After that, I bought Bob Race‘s tutorial Build a Saas App with Rails which covers more practical aspects of building a multi-user SaaS app using well-known gems (instead of building everything by myself as in the Rails tutorial): https://leanpub.com/basair6
Because we are all different in some sense, and yet similar in the main sense, certain strategies work for all of us, while some for only those who are similar in that narrow sense.
I need not mention the general sense, since I suspect there maybe many comments with a high probability of mentioning the general case.
In the narrow case of what works only for me, I cannot learn when I don't have a big picture context for my learning. A Book like Lubanovic's Python cookbook is certainly not my style. I need an overall context, so that each small bit makes sense within that context.
For instance, if I want to learn a foreign language word, seeing it deciphered in a textbook, alongside a text does not guarantee my learning it or remembering. Even less so, if it is a word in a "word list dictionary". I need a text which excites my interest enough to want to know the unknown words in it. A Reader's-Digest-like shallow text is not exciting or stimulating enough.
Ditto to programming and CS. I need to know where each learning bit fits in the overall scheme and the scheme should be exciting. I don't want to learn (cannot) simply because something is popular due to network effects (C++) when I know there are better solutions like a combination of Rust, Racket, and Ruby.
I also need to know whether it is worth my input. Like in the C+ case, is my effort paid in triplicate? If not, not interested. Intrinsic motivation in learning something can translate to a pay off, but it better be as good as (similar input output ratio) Scheme/Lisp/Racket to justify learning it.
Recently I have been looking at Java, in the popular book by Eckel. I am having doubts as to whether I should go deeper in Ruby or also see what Java offers. My motivation is damped by the way Scala is written since it seems to be what Java aimed to be but couldn't. I am stuck now. On one hand, I want to know If I am missing something if I dont learn Java. On the other, I dont want to learn sth arcane and programmer-unfriendly when and since I have alternatives like Scala and Ruby and Kotlin.
Hence, for me to want to learn creates the necessary mental readiness to actually learn it. I picked up Ruby fairly quickly because the explanations by David Black, in his Well Grounded Rubyist were excellent enough to allow me to learn it all in one place, with zero frustrations.
In summary, for me to learn sth, it has to be useful, interesting, stimulating, and practice-friendly. After this is satisfied, I need clear explanations and logical progression with hands-on real-world applications. With all this, I dont need any tricks or strategies. It will all fall into place.
Best,
James
However, I got more comfortable with it and soon, for the most part, I LOVED the way everything was structured. Other frameworks just felt off.
I credit a lot of this to just understanding the internals of how Ruby works. I highly recommend the Well Grounded Rubyist. If you go through it, you'll be comfortable digging through your code, gems, etc. Things won't feel like magic and you'll be able to pinpoint how and why things are happening in your application.
Rails is one of the most productive web frameworks out there and once you know how things work, you're off to the races.
That Elixir/Phoenix combo though...