This might be a fun challenge for experienced rubyists, but I do not think this is a good way to learn Ruby.

I only looked at Ruby Basics, but here's my feedback:

The challenge is to solve: 'true and 0 && !nil and 3 > 2', but this is not a real-life application.

The words 'and' and 'or' should not be used for boolean comparisons, they are intended to be used to join two separate clauses such as "render 'template' and return" in rails.

Comparing a number and bang-nil is not good code. This could actually come to be if you were doing something like: "object.value && !object.value". However, you wouldn't ever want to hardcode "0 && !nil". If you were really checking for nil, you should use "!object.nil?"

I'm afraid that these challenges will teach bad code techniques to newbies who don't know the difference. But again, as someone with more familiarity with Ruby, I think these types of challenges are fun, but if that is the goal there is no need for the tutorial beforehand.

Under the hood, true and false are singletons - `(1 == 1).object_id` will always be 20. At least in MRI / YARV, that makes booleans much cheaper in terms of memory (a single pointer vs. a pointer + an RObject struct) but means that they don't have their own instance methods.