(Part 2) Best products from r/ruby
We found 20 comments on r/ruby discussing the most recommended products. We ran sentiment analysis on each of these comments to determine how redditors feel about different products. We found 70 products and ranked them based on the amount of positive reactions they received. Here are the products ranked 21-40. You can also go back to the previous section.
21. Beginning Ruby: From Novice to Professional (Beginning From Novice to Professional)
Used Book in Good Condition
23. Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement
Pragmatic Bookshelf
24. Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)
Pragmatic Bookshelf
25. Practical Reporting with Ruby and Rails (Expert's Voice in Open Source)
Used Book in Good Condition
26. RailsSpace: Building a Social Networking Website with Ruby on Rails (Addison-Wesley Professional Ruby Series)
29. DATA STRUCTURES - AN ADVANCED APPROACH USING C (Prentice Hall Software Series)
- SIMPLE "CLICK IT AND GO” DESIGN: Cold rolled steel buckle attachment easy-to-use "Click it and Go" design makes travel safety for you and your dog a snap!
- 2400 LB. BREAKING STRENGTH ABRASION-RESISTANT NYLON SEAT BELT WEBBING: Fully adjustable from 17.5” to 26” Reinforced precision computer stitching for strength, performance, and unsurpassed durability.
- REDUCES DRIVER DISTRACTION FOR SAFER CAR TRIPS: Enhanced industry standard swivel-style snap hook is electroplated for durability and abrasion resistance. Simple design improves pet comfort and makes it easy to use it every time you travel.
- THE CLICK ADJUSTABLE CAR RESTRAINT SYSTEM IS COMPATIBLE WITH AWARD-WINNING EZYDOG HARNESSES: For award-winning comfort and control use your CLICK restraint with our EzyDog Quick Fit, Chest Plate, or Convert dog harnesses.
- CAUTION: TO AVOID CHOKING OR INJURY ALWAYS USE A CAR RESTRAINT WITH A HARNESS NEVER A COLLAR. *CLICK DOES NOT FIT AND IS NOT FOR USE IN VOLVO AUTOMOBILES.
Features:
30. Introduction to Algorithms, 3rd Edition (The MIT Press)
- Hard Cover
Features:
31. Cracking the Coding Interview: 189 Programming Questions and Solutions
- Careercup, Easy To Read
- Condition : Good
- Compact for travelling
Features:
32. Everyday Scripting with Ruby: For Teams, Testers, and You
- This digital device keeps your hands warm when you stitch sensa thread to the tips of gloves or mittens
- It will work with purchased gloves and mittens or handmade
- This package contains 10 yards of Sensa Thread Conductive Filament and one metal needle
- It is an imported product
Features:
33. Rapid GUI Programming with Python and Qt (Prentice Hall Open Source Software Development)
34. The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends (Facets of Ruby)
ISBN13: 9781934356371Condition: NewNotes: BRAND NEW FROM PUBLISHER! 100% Satisfaction Guarantee. Tracking provided on most orders. Buy with Confidence! Millions of books sold!
36. Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript (Effective Software Development Series)
- 168 pages
- Size: 12" x 9"
- Composer: Various
- ISBN: 793508304
Features:
40. Build Awesome Command-Line Applications in Ruby 2: Control Your Computer, Simplify Your Life
- 【Suspender Design】Suspenders has a high quality belt with great elasticity, the back is made of high- density elastic jacquard webbing and clips are made of high quality strong metal with teeth.It does not hurt the clothes and could prevent slipping, not easy to fade,clamp pants strongly, easy to operate, sturdy and durable.
- 【Suspender and Bowtie Set】Y Shape 6 Clips Suspenders + Self-tied Bow tie + Pocket Square. They are made of durable microfiber, and made of the same high-end fabric, and the patterns are sewn with advanced craftsmanship to give you a very refined and luxurious look.
- 【Size】The straps are 1.38 inch / 3.5cm wide, length can up to 50 inch / 127cm. The self-tied bow tie (you have to tie it yourself), fits neck sizes 11.8-21.7 inch / 30-55cm (Adjustable). Pocket square - 11.8x11.8 inch / 30x30 cm.
- 【Occasion】Add personality to your styling and a bit of retro twist by wearing this check design suspenders and bow tie set.Suitable for most occasions: prom, birthday, wedding, engagement, party, business, office, meeting or any other special events.
- 【After-sale Guarantee】 If for any reason you are unhappy with any product by us, please do not hesitate to contact us. We take full ownership and responsibility for the quality of our products and will do our very best to solve your problem quickly and efficiently.
Features:
I would recommend not starting with Rails, but instead with Sinatra.
Rails is great, and you can do some amazing things with it, but for learning I found that it was more a hinderance than a help. Better to learn the core language first, then move to a framework such as Rails.
Sinatra gets out of the way and lets you write Ruby, allowing you to have a site up and running with about 5 lines of code. It's a terrific introduction to developing sites, and I found it a great way to play around with Gems and their capabilities.
As for books, I have both the PickAxe book, as well as Beginning Ruby. Both are very helpful.
There are some SUPER valuable insights in the replies of this thread that took me YEARS of programming to fully understand. So you did yourself a great service asking this question here :)
 
These insights are:
by u/cmd-t
> think in OOP in terms of passing messages from object to object. Every function call is actually sending a message to an object: a request for it to do something.
by u/saturnflyer
> Don't model the real world. Create the world you need.
by u/tom_dalling
> It's a common misconception that classes model real-world things. Classes model data, or behavior, or responsibilities.
 
To answer your question, yes, OOP is hard to master. As a result, there are many books written on the subject. And for a complicated system, even senior developers will have trouble getting the design right on a first try.
 
If you feel lost, it's not because you are not good at this. It's because the subject you are learning does require lots of time and practice.
IMHO, the best way to learn this is by actually working alongside with senior engineers in a real production project. So you can see some existing designs and also bounce ideas with other engineers.
While that might not be possible at the moment, you can
 
Happy coding and I hope to see you posting more questions here! :D
Some great suggestions here around complimentary languages. Let me chime in on the tools. Depending on where you want your career to go deploying Ruby without Heroku wouldn't hurt at all.
I've made no assumption on what you already know so please don't feel like you need to know all of this but as Rubyist these are things I look for in candidate's that I hire :).
PS: I've not included Databases in all of this which I think is obvious to say is important when fleshing out a CV.
PPS: Two books I would recommend highly (can easily be read on holiday in the sun)
Both of these books are fairly light hearted, give you a grounded understanding of the core differences in languages and databases, assume your a programmer already and IMO are very interesting reads for someone that is keen to look at languages from different angles. Prolog == mind blown
Good Luck
Ruby, and it's popular web-based framework rails, would actually be a fairly good fit for a simple reporting solution based on existing data/tables/database.
Some points:
I'd get started with Rails. You'd have everything taken care of (Webserver, Database connectivity, HTML Generation, Basic Security build in). It's definitely a good starting point. Over time you'll learn more and more of Rubys core. If you like to get a more "raw" approach you can try Sinatra (http://www.sinatrarb.com/).
Rails isn't a different language. It's merely a huge bunch of classes and methods that'll ease your way. But it forces you to do things the "Rails way" (isn't a bad one, but maybe not your way, or won't fit your needs). For supplying an API I prefer "Grape" (https://github.com/intridea/grape/). For my big projects I usually use Sinatra (well, an extended and modified Version). Rails was a great starting point for me ( http://amzn.com/0321480791 ).
Sure you can get started from the ground up with bare Ruby. But most devs won't re-invent the wheel and take solid libraries that are available. (e.g. Rack).
Rails will get you very fast to a complete project. But for sure, you'll be more satisfied and have more control over all the aspects if you'll build it from the ground up.
I will agree and disagree with both menge101work and jrochkind ... rake is awesome, just not sure it is a fit here.
 
As someone who has chased one too many rabbits down the MAKE hole, rake is awesome, if it were only for the Rake::Filelists... but when you add in the dependency tracking, it becomes a godsend.
 
It takes a while to get your head around it... especially if you have never used make / ant / etc... but completely worth it if you do a lot of automation... one of the best things rails promoted...
 
Rake Task Management Essentials was my preferred book
 
BUT
 
It sounds like you may be getting more into CI (continuous integration) territory ... in that case, Travis CI might be the direction you are looking for.
Some people prefer dynamic languages, some prefer static languages. A smart compiler can make a static language feel more dynamic, like F# for example, but it's just a different way of thinking.
Well designed OOP can take you far. I still feel like
nil
should be avoided in your code though, but types are not necessary for that.> My experience writing Elm/Haskell code for more complex features is a world apart from writing complex features in Ruby.
Looks like you are writing not confident Ruby code. That's actually a very common issue, especially for devs which come from static backgrounds. I recommend giving Avdi Grimm's Confident Ruby a shot.
> Also even if you can write good code, that doesn't mean you or others around you will. Sometimes having tools enforce rules for you can be a good thing.
That is true, but you can write bad code in any language. Every language has it's advantages and disadvantages. You might not make nil-related errors but you will have hard-to-change code. Code which needs a big chunk of context to be understood before you can change it, or add to it.
The single responsibility principle is easily broken in many languages.
I came here to put this same book. This book is crazy, crazy good. It would help to have some knowledge of algorithms and data structures before going in as the examples aren't vast and the information are fairly heavy, but it's a fantastic reference.
I would encourage you to change your thinking from "learning algorithms in Ruby" to "learning algorithms" and then just implementing examples in Ruby. There are a few classic Algorithms book that I'd highly recommend. In addition to The Algorithm Design Manual, Data Structures in C is written in C but fairly generic and gives you the right tools for thinking about performance and algorithms, and Introduction to Algorithms, 3ed is more academic but also stupid inexpensive right now. It's a great learning book as the examples are very detailed. It's aimed at interviewing but Cracking the Coding Interview has a nice short survey of algorithms and data structures too
I'd recommend Pragmatic studios. Its expensive, but wonderfully clear, step by step with syntax, theory and practical use. They dont code along, rather they develop an application to demonstrate and you build something similar with the exercises. Im going though it now, after both codeacedmy and code schools ruby courses, and its exactly what was missing in the "now you now what ? and ! do on a method. Now lets move on to something else" that both of those seemed to do.
http://pragmaticstudio.com/ruby
I'm also enjoying Everyday Scripting with Ruby: For Teams, Testers, and You.Its a more "on the ground" look at Ruby, making it go and do things right away. Lots of used copies for $4. Its worth that just to thumb though it alone. Im only past the first few exercises, but its already an excellent companion to the pragmatic course above.
Qt is used quite a bit; there should be numerous books/sites of use. I myself use PyQt, the Python API, of which there is an astoundingly good how-to book. I don't know if there is a Ruby-specific version, but the concepts are quite general and would still be useful.
There is also a Zetcode tutorial. These tend to be basic, but are solid.
Also, if you going full-hog with Qt, Qt basis its code on a slight variation of MVC, called Model-View-Delegate.
The RSpec Book is what I used when I first starting learning how to test. It's a great book that covers not just how to test plain ol' ruby, but also TDD/BDD methodology. The syntax is a little dated, but it's super easy to find and learn the new syntax. PDFs are also floating around online if you don't care to buy it (although it's definitely worth the money for a used copy IMO).
> Failing that, are there any good cheatsheets/references for JS "gotchas" and unusual features that devs from other languages might not be familiar with?
There are entire books dedicated to this! (Also some entertaining talks.)
Here are some good JS books not aimed at total beginners:
Bonus (to give you a sense of the kinds of "gotchas" you'll find in JS):
// Even though you pass in numbers, JS sorts them lexicographically
> [5, 1, 10].sort();
[ 1, 10, 5 ]
// You "fix" this by passing in a custom comparator
> [5, 1, 10].sort(function(a, b) { return a - b; });
[ 1, 5, 10 ]
// This probably makes sense to someone, somewhere
> Math.min();
Infinity
> Math.max();
-Infinity
// Some things are best left unknown
> {} + {};
NaN
> var wat = {} + {}; wat;
'[object Object][object Object]'
Here are a bunch more in quiz form.
I love Ruby Koans.
If we're going back to other references for
generalprogramming and algorithmic knowledge I would also recommend:Edit: "general" was the wrong word to use. Thanks worst!
I'm getting good mileage out of David Copeland's Build Awesome Command-Line Applications in Ruby 2 (2013). For Ruby-specific best practices (I'm coming from PHP), Sandi Metz' Practical Object-Oriented Design (2019) and Russ Olsen's Eloquent Ruby (2011) are opening my eyes to how it's done here. In particular, Metz' focus on the role of messages in OO design has changed my approach to planning and testing - just in time for a critical project.