Shared publicly  - 
 
xah's thoughts extempore, episode 201311171455, on technical writing.

the most idiotic tutorial idiom in OOP is using fruits, banana, apple, analogy, or using Shapes, circle, square.

Why? because, when you read those english words, your head started to nod, but you actually understood nothing. You think you understand, but when pressed in details, you wouldn't be able to answer.

So, instead of using fruits, apple, thingy, use abstract symbols, x, y, z, math, that is.

That is the beauty of math, and that's also why math is like that.

because, in order to truly understand, you want to get rid of irrelevancies. Fruits, Apple, some semantic connotation is irrelevant. (analogy sometimes helps, but often just confound.)

---------------------------------
try this. pick a tutorial of oop lang you don't know a thing.
find the chapter on class/object.
find/replace in code examples of words like fruit/shapes to x, y, z.

try to read the code.

here's my claim.

Of those who read fruit/shapes, they will understand less about the lang than those who tried to read the xyz version. And this can be verified by a test. e.g. ask them to create a new class or object, decide what's the inheritance, etc
#java   #javascript   #writing  
3
Nick Alcock's profile photoIvan Pierre's profile photoFabrice Popineau's profile photoXah Lee's profile photo
8 comments
 
+Xah Lee , please remember: we're the exception, not the rule. Not everybody in IT knows that much math as you (I'm way past my apogee). While I do agree with you that algebra is a must, not everybody gets it. Fruits and shapes also have the benefits of exposing the OOP limitations.
 
I have this example about defining a (type) bagof<fruit> where <orange> IS_A <fruit> and <banana> IS_A <fruit>.
Then you can insert either a b (of type banana) or a o (of type orange) in a bf (bagof<fruit>)
But then later on, and depending on how you do it in C++, you may want to define a bb (bagof<banana>) and yet be able to insert an o (of type orange) into it because o IS_A fruit.
You grab the idea? Students grab it better with oranges and bananas. They laugh.
 
Quite. If you use abstract symbols, the result will be a lot less useful to most people, because less easily analogized to something they already know -- and analogy is the engine of thought.

I know that whenever I encounter anything which has 'helpfully' done as you suggest I've had to immediately rewrite it into a form using something non-abstract before I have a chance of getting an intuitive feel of it.
 
Remembering my school time. Easiest with a, b, c, than with 45, 63, 7 given as an example. I hate calculations, with abstract lettres it's obviously more simple... :D
 
And a, b, c, is abstraction of whatever, just make some Bayesian assumptions, our brain is good at that...
 
And BTW, since I'm currently attending http://cs.gsu.edu/wic2013/ I'm more and more baffled by the fact that the human mind has been able to develop mathematics.
Mathematics seems even to exist by itself.
But the human mind works in such a different way. 
Think about the limitations of classical logic when it comes to human knwoledge and reaoning.
Xah Lee
+
1
2
1
 
+Ivan Pierre +Daniel Monteiro +Nick Alcock +Fabrice Popineau 
try this. pick a tutorial of oop lang you don't know a thing.
find the chapter on class/object.
find/replace in code examples of words like fruit/shapes to x, y, z.

try to read the code.

here's my claim.

Of those who read fruit/shapes, they will understand less about the lang than those who tried to read the xyz version. And this can be verified by a test. e.g. ask them to create a new class or object, decide what's the inheritance, etc.
Add a comment...