I don't get this narrative (and memes) that University code is clear and perfect and real life code is ugly dirty and hacky.
My experience shows the opposite. Academics write code that only they need to understand. And the type of deep thinking required for academia lends itself nicely to fewer context switching, ie massively long classes and functions and procedural execution of steps.
On the other hand, in real life you have to worry about others modifying your code, sometimes at the same time as you, meaning abstractions, decomposition, decoupling, etc.
Comments
Completely clueless? I think you mean: clueless about working as a practitioner on a large, messy code base. No?
I don't get this narrative (and memes) that University code is clear and perfect and real life code is ugly dirty and hacky.
My experience shows the opposite. Academics write code that only they need to understand. And the type of deep thinking required for academia lends itself nicely to fewer context switching, ie massively long classes and functions and procedural execution of steps.
On the other hand, in real life you have to worry about others modifying your code, sometimes at the same time as you, meaning abstractions, decomposition, decoupling, etc.
You misunderstood me. I wasn’t implying academics write clean code, just exactly what you’re saying usually it’s small & dirty code.
However Dijkstra, of course, always wrote impeccable code.