This. I think the most of the tech industry would benefit from this lesson. If it's beneficial in your situation, use it, otherwise don't.
90% of programming is linear instructions, one after the other. It's not that complicated.
LMAO, I always failed. Good times.
I'd make the `Tire` class derive the `SteeringWheel` class, and `Tire::turn()` moves the car while `SteeringWheel::turn()` steers the car.
Who in their right mind would sincerely reach for a recursion to solve factorials or Fibonacci first?
Even the maths-minded people would write the sequence bottom-up, and stop when it reached their desired T(n); when programming it, they'd ask for a loop-esque construct that they could stop when a condition was reached.
I remember my professor using them to try and teach pre-standard C++ and when I pressed him to explain actual use cases I figured out he didn't understand himself.
I have the feeling it was meant as a bridge for lisp programmers moving to class based languages but that may be because we learned lisp first.
Anyways that context is the only place I found value in it.