> What Trick of the Trade took you too long to learn?
"Everything worth doing is worth doing badly"
And as a corollary, every complex system that works came from a simple system that works.
I learned this in programming, but now I apply it on everything from motorcycle maintenance, home appliance repair to parenting.
--
Often the easier way to fix a complex system is to pretend that it could be simpler and then reintroduce the complexity-inducing requirements.
I had a professor who taught debugging as a whole another skill from programming and used to say "Most of programming is starting from an empty editor and debugging until your code works".
The debugging "lab" in Java course (in the year 2000) was one of my transformational after-school classes - where I got a java program which fits within 2-3 pages of print code with a bug and was told to go find it in print for ~20 minutes, then given 40 minutes with a debugger instead.
> And as a corollary, every complex system that works came from a simple system that works.
"Do the simplest thing that works" is one of the few core architecture principles I stick my neck out for time and time again. Why write a simple function when you can spend a week accounting for every imagined corner case and implement modular expansion capabilities! Please... stop...
I empathize with the debugger story. If you're super deep in a language it makes sense to know the debugger inside and out. But stdout is universal and I've never been a specific language developer rather than being able to jump into whatever is needed.
Not always true. For example, if you work on your bike's brake, you should make sure the work is correct and well done. You dont want it stops working when cruising at 60mph.
"Everything worth doing is worth doing badly"
And as a corollary, every complex system that works came from a simple system that works.
I learned this in programming, but now I apply it on everything from motorcycle maintenance, home appliance repair to parenting.
--
Often the easier way to fix a complex system is to pretend that it could be simpler and then reintroduce the complexity-inducing requirements.
I had a professor who taught debugging as a whole another skill from programming and used to say "Most of programming is starting from an empty editor and debugging until your code works".
The debugging "lab" in Java course (in the year 2000) was one of my transformational after-school classes - where I got a java program which fits within 2-3 pages of print code with a bug and was told to go find it in print for ~20 minutes, then given 40 minutes with a debugger instead.