Hacker News new | ask | show | jobs
by lxe 2067 days ago
> For example, take the idea of inheritance. Low level thinking might sound like, “All the other classes are adding < ApplicationController if they want to use this method, so I need to do that too. Otherwise it throws an error.’’

> But high level thinking might be more like, “I need to access the ApplicationController class’ methods. Ruby supports inheritance, so I’ll add < ApplicationController to the class definition to let the compiler know that I’m inheriting it.”

I don't think this is "high level" vs "low level" thinking. Both are just different approaches to discovering the same thing. It's akin to learning guitar through tabulature vs standard notation.

1 comments

The difference is in the “it throws an error” bit- if you’re including lines of code because it makes your program work but you don’t know why, you’re also potentially introducing side effects and other behaviours that you don’t understand, which will bite you later.