I didn't want to add the link because I was conscious of being too spammy. https://www.amazon.com/Rust-Action-Tim-McNamara/dp/1617294551/
If you want to read it straight away, I recommend buying direct from the publisher though (https://www.manning.com/books/rust-in-action?a_aid=rust&a_bid=0367c58f&chan=twitter). That way you can read the ebook before it's officially released to retailers.
I own both of those books as bound bushes. I get the impression that you can only buy used copies on Amazon, so sometimes the prices are... off. It looks like currently Build Awesome Command Line Apps in Ruby 2 is ~$22. However the Text Processing in Ruby is a bit more expensive, around ~$80.
Make sure you get version 2
of the command line apps book.
Amazon says August 10 but it may be sooner - there's probably a pipeline that's getting kicked into action right now to do that.
Try amazon smile to donate to charity automatically at no cost to you!
https://smile.amazon.com/Build-Awesome-Command-Line-Applications-Ruby/dp/1937785750
^^^I'm ^^^a ^^^bot ^^^and ^^^this ^^^action ^^^was ^^^preformed ^^^automatically.
It's sad to see that Amazon offers it at a cheaper price.
24.95
http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330
and
But, if you truly are an advanced/seasoned dev, you will have no problem picking up the basics of Ruby in 3 weeks. The fine-grained details and subtle nuances, probably not, but that's not a big deal. Really, learning what self
is and how it gets set in any given context is all you need to learn, as well as message passing
Ruby Koans + The Well Grounded Rubyist + Exercism.io are all great resources for learning core Ruby. Really dig into Ruby's Enumerable; it's absolutely fantastic.
OP, I started groking composition and inheritance when reading Russ Olsen's Design Patterns in Ruby. It's in the first chapter which is free to preview on Amazon.
este libro esta muy bueno Practical Object-Oriented Design: An Agile Primer Using Ruby
Honestly for stuff like that you'd be better off playing around in something like Racket where you can design and implement a language on the fly.
As a language example C++ has mostly been influential as an example of what not to do.
I think this book is a very nice example of how systems programming can be taught using Rust:
https://www.amazon.com/Rust-Action-TS-McNamara/dp/1617294551
It depends on your programming experience. If you already know a language, I would start by looking at Eloquent Ruby by Russ Olsen (https://www.amazon.co.uk/Eloquent-Ruby-Addison-Wesley-Professional/dp/0321584104/ref=mp_s_a_1_1).
If you're new to programming, I would start by doing a ruby course on Code Academy.
There are some books listed in the subreddit sidebar, worth looking at that list.
> the fundamentals of the ruby language
Eloquent Ruby: https://www.amazon.com/gp/product/0321584104/
> the lower level characteristics of ruby (ie, how ruby code is executed)
If you really mean what I think you mean there, Ruby Under a Microscope: http://patshaughnessy.net/ruby-under-a-microscope
I would also keep a copy of Matz's book handy. It's not a beginner's book, but it's not really obscure either, and he explains things very clearly — not the same thing as saying everything is easy to understand! It's what I used most often to make sure I understood a topic.
> I took a look at the Amazon.com page and it’s showing that it was published on August 10th.
For me, both amazon.com (https://www.amazon.com/dp/1617294551) and the local Amazon show the paperback as only available through third parties despite a publication date of June 29. That probably explains why the preorder hasn’t shipped yet.
That new book that just came out is about rust and system programming. I have no critique of it for you, I just thought it unusual that a beginner book on rust is also about system programming.
https://www.amazon.com/Ruby-Programming-Language-Everything-Need/dp/0596516177/ref=nodl_
https://www.amazon.com/Eloquent-Ruby-Addison-Wesley-Professional/dp/0321584104/ref=nodl_
These are two that I was looking at. Suggestions for books would be great as well. Thanks.
The reason rubocop is complaining is that ruby class variables (@@class_variables) are particularly surprising in their semantics.
There are alternative formulations if you really need to store data at the class level rather than the instance level, and have it inheritable-but-overrideable.
However, the first step is understanding the difference between class-level state and instance-level state, to be sure that storing state at the class-level is really what you need. In general, avoiding it is preferable, and I'm not sure it's really what you want to do, I think it's possible you just haven't fully wrapped your head around how object-oriented programming works.
I'm not sure the best resources to develop that understanding. Stuff by Sandi Metz is always good maybe https://www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330/ ?
> If you're curious about how Ruby works under the hood, this book is exceptional: https://www.amazon.com/Ruby-Under-Microscope-Illustrated-Internals/dp/1593275277. It's a few years old so it might be a bit out of date with the garbage collection in particular, but it's hugely helpful!
Thanks for the recommendation! Not sure if I will get around to read it (reading POODR by Sandi Metz right now) but I put it on my Amazon list.
Try amazon smile to donate to a charity of your choice automatically at no cost to you!
https://smile.amazon.com/Practical-Object-Oriented-Design-Agile-Primer/dp/0134456475
^^^I'm ^^^a ^^^bot ^^^and ^^^this ^^^action ^^^was ^^^performed ^^^automatically.
> PHP is particular bad for object-oriented programming
Yeah, I think that's kind of what my manager is thinking as well - he recommended a Ruby book for explaining OOP principles (Practical Object-Oriented Design in Ruby: An Agile Primer). I didn't really want to hop into another language at this point since I'm already waist deep into a few PHP based projects but I'll bump that book up to the top of my to-read bookmarks, I really want to be able to better comprehend OOP.
If you don't mind - Were I to ask my question again, except not specify a language, what'd your opinion be? Would it be better to continue writing and learning a language's fundamentals in a functional programming manner or get your hands dirty with OOP?
Consider 'finding' a copy of this book: https://www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330/ref=sr_1_8?ie=UTF8&qid=1528505902&sr=8-8&keywords=ruby+programming It's what really gave me that AHA moment about OOP design. It's short, and don't be turned off that it's Ruby. They don't use any in depth Ruby stuff, it's all pretty simple and Ruby is easily readable. It goes from the first naive implementation, and walks you through improvements and better ways to do things.
I highly recommend Practical Object Oriented Design (POODR) by Sandi Metz. You don't need to worry too much about knowing or investing in Ruby, the principles apply to any Object Oriented language, and Ruby's syntax is really easy to understand.
Sandi Metz's "Practical Object Oriented Development in Ruby" (POODR) was the same way for me.
I started out doing TOP, i also read The well grounded rubyist on the side, i got to the ruby on rails part before i decided that i wanted to do FCC/fullstack javascript instead. I got to the intermediate frontend challanges before i quit in favor of personal projects and meteor.js, while also reading Eloquent Javascript.
I made www.vinmonopolet2.meteor.com (ranks alchoholic beverages according to % per liter per money, for the national winemonopoly), also made www.kortmotmenneskehten.meteor.com (online multiplayer for cards against humanity). I am also working on(Finished, just testing left) an ecommerce store.
Freecodecamp has changed a lot since I stopped doing it, so it might have gotten a lot better since i tried it out(6 months). When i started, the javascript tutorials were just links to codecademy.com, which i found lacking, mostly syntax, not really great for learning concepts.
>Why would that be better?
Because right now your bullet is tightly coupled to other objects that it shouldn't know about. You should, in theory, be able to pass this object around and use it in different contexts without worrying about anything else.
In general, tight coupling is a bad thing that leads to systems that are less flexible and harder to work with over time.
The idea scenario would be that you could create a bullet object without telling it anything about it's wider context, and the bullet would perhaps know about its own properties - perhaps it's a certain type of bullet with a certain type of damage for example. That would be about all it would know.
Then perhaps you have some kind of weapon or gun object that would be able to fire the bullet at a certain velocity, something like that...
The fewer dependencies you have between objects, the easier it is to change your system later.
There's an excellent book on good ideas in object oriented design here: http://www.amazon.co.uk/Practical-Object-Oriented-Design-Ruby/dp/0321721330
It's a Ruby book. I'm not a Ruby developer, but the lessons it teaches are fantastic. I highly recommend reading that book - you will end up with cleaner systems that are easier to work with over time.
The key to good design is a system that delivers all the requirements now while making it as easy as possible to make the next design decision, without necessarily knowing what problems you will need to solve in the future.
Sandy Metz's book Practical Object Oriented Design in Ruby is worth reading on the topic. A big part of what classes are about is encapsulating information, and the methods associated with each class are how you send and receive information about a given object.
I think you will enjoy Eloquent Ruby.
Also check out The Well-Grounded Rubyist which has very good reviews.
+1 to Eloquent Ruby. Very concise and fun read, but I'm not sure it's a great way to learn from scratch. Practical Object-Oriented Design in Ruby is also very good
This is just about the best resource on OO design I've ever read. The reviews tend to back this view up!
http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330
Don't worry about it being in Ruby specifically, it absolutely applies to any OO language. There is nothing in the book specifically Ruby centric.
I read that after CodeCademy. It's dry, but it's amazing.
I just purchased Eloquent and am yet to go through it.