4 ms·
The tragedy of learning a new programming language as an experienced software engineer is having to start from complete basics tutorials about counting apples i
by 1_player 5y ago
The tragedy of learning a new programming language as an experienced software engineer is having to start from complete basics tutorials about counting apples in a basket and metaphors to teach what a variable is.
One day I'll finally learn Ruby, once I manage to find a learning resource which isn't aimed at complete newbies and goes in depth into the metaprogramming and intricacies of the language.
- cultofmetatron 5y agoyou could probably pick it up pretty easily just through rubykoans. http://www.rubykoans.com/ http://www.rubykoans.com/
- hello_newman 5y agothis is a really great book on metaprogramming in Ruby https://github.com/dazhizhang/ruby-rails/blob/master/Metaprogramming%20Ruby%2C%202nd%20Edition.pdf https://github.com/dazhizhang/ruby-rails/blob/master/Metapro...
- brigandish 5y agoIs it free to be shared like that?
- weaksauce 5y agoOther than that metaprogramming ruby book liked in another comment... reading "eloquent ruby" was an absolute treat. it's teaching you all the idiomatic stuff from ruby and not a bunch of filler. easily one of the best ruby books ever written... hell maybe even one of the best programming books. It also dips into metaprogramming and all the other stuff ruby is known for.
- brigandish 5y ago> hell maybe even one of the best programming books My thoughts exactly. I loved it so much I emailed the author and - embarrassingly - told him he was the Mark Twain of programming books! He replied and was also very embarrassed by the comparison. Or maybe that was for his other book, Design Patterns in Ruby, I don't remember as I try hard to forget the details of embarrassing moments. I'm still waiting for a Lacuna-like company to arise and help me forget them all… Still, either book is well worth a read, both are top of my recommendations. If he (Russ Olsen) ever writes one about Haskell then perhaps it'll finally go mainstream :)
- weaksauce 5y agointerestingly enough it looks like he wrote a book on clojure so maybe that will get a lisp more traction.
- Bayart 5y agoI like to start with live coding exercises, think Exercism[0] or Codewars[1], to get a good sense of the syntax and utilities and then do an actual project with real documentation on the side. Tutorials just don't cut it for me, they never have. It's just a grueling format and it does nothing but put me off the tech I'm looking at. [0]: https://exercism.org https://exercism.org [1]: https://www.codewars.com https://www.codewars.com
- anon9001 5y agoI'm not sure if you're joking or just not familiar with _why, but his book on Ruby is probably his most famous writing: http://www.rubyinside.com/media/poignant-guide.pdf http://www.rubyinside.com/media/poignant-guide.pdf or http://poignant.guide/ http://poignant.guide/ It's an incredible work. Ruby is the spiritual successor to Perl, and the niche it filled was to be the "beautiful" programming language. If you don't appreciate _why's guide and the idea of code as magical incantations, you're not going to enjoy your Ruby experience. I don't think there's many rubyists that didn't appreciate _why. With something as weird as Ruby, where there's so many ways to do everything, you're going to want to start with beginner's mind anyway.
- mastazi 5y ago> I'm not sure if you're joking or just not familiar with _why I am familiar with _why and I agree with parent, I've read the Poignant Guide as a relatively experienced programmer (I had 2-3 years of experience back then), 90% of the guide was useless to me. Unless you are a complete beginner, you don't need bacon or water pipe analogies to understand basic concepts like variables or functions.
- afarrell 5y agoI think you’ve just explained to me why I am not a good fit for ruby. I should leave it to those who can do justice to the spirit of the language.
- steveklabnik 5y agoIt’s been a while, but imho “Metaprogramming Ruby” is what you want to read.
- brigandish 5y agoYou might try Metaprogramming Ruby 2 by Paolo Perrotta[1] (the link has bits you can read). I haven't read number 2, just number 1, but I'd expect it's pretty much the same. It's written with the conceit of an experienced programmer taking a new hire through the language, so it may be right for you. [1] https://www.oreilly.com/library/view/metaprogramming-ruby-2/9781941222751/ https://www.oreilly.com/library/view/metaprogramming-ruby-2/...
- copperx 5y agoA tragedy indeed. "A Tour of C++" by Stroustrup is an excellent counterexample. He explains the basics in Chapter 1, and then goes on to explain more advanced stuff all while avoiding the uncommon or ugly parts of the language. When learning a new language I often search for its "A Tour of C++" or "Effective Java" equivalent, but they're not common. The "In a Nutshell" series are a passable substitute.
- userbinator 5y agoI actually had to learn Ruby somewhat recently, although it was only for the purpose of fixing something and not an extensive development; and for that purpose I went directly to the official documentation: https://www.ruby-lang.org/en/documentation/ https://www.ruby-lang.org/en/documentation/ Personally, I think something similar to K&R style would be my preferred learning material; short and concise but clear and easy to understand.
- analog31 5y agoWhen I learned Python (coming from a succession of other languages), I didn't bother with such tutorials, but just started hacking away. Meanwhile, I read a bunch of articles, not on how to write in Python, but on techniques for writing good Python code. I already knew enough about programming that I wasn't baffled by those articles (could always look things up), and they made the transition pretty easy. Now, for a language that was profoundly different (like going from BASIC to Haskell), I'd probably look for something more basic. ;)
- TimTheTinker 5y agoMight I recommend reading through the part of the Ruby standard library that is written in Ruby? This is often the best way to become quickly acquainted with a new language, as the code you'll encounter will be sophisticated and idiomatic. It will also be implementing basics of the API, which are relatively consistent across languages.