2 ms·
That's not just a view or opinion, it's how learning works. Thanks for the link! When starting to learn a domain, you lack deep understanding of it, so you can
by Mawr 3y ago
That's not just a view or opinion, it's how learning works. Thanks for the link!
When starting to learn a domain, you lack deep understanding of it, so you cannot make sound decisions without rules.
But rules are always generalizations, they never fully encompass the complexity they hide.
Through experience, you should become able to see the underlying reason behind the rules you've been given. Once full understanding behind a rule is ingrained, the rule can be discarded and you can make your own decisions based on its underlying principles.
Then you become an expert through deep understanding of several aspects of a domain. You are able to craft solutions based off intricate relationships between said aspects.
Let's take `goto` as an example. The rule you will commonly see is "don't use it". But if you're experienced enough you know that's unnecessarily constraining, e.g. there's nothing wrong with a `goto` in C for the purpose of simplifying error handling within a function. It only becomes an issue when used liberally to jump across large swathes of code. But your advice to juniors should still just be "don't use it", otherwise your advice will have to be "use `goto` only when appropriate", which is meaningless.