In a vague sense, construction taught me to think about efficiency. When you are in the workplace, packing your work bags around, transporting lumber, dragging power cords through cluttered, unfinished rooms and corridors and, as a rule, breaking your back, turning a huge pile of lumber and plywood into a house, you will quickly find out that every movement make should do something useful. This is especially true when you have a small business boss behind you, shouting about how he loses money every time you go from point a to point b without taking anything with you.
In programming, it is often the same thing. Instead of keeping your back, you are trying to save time. This takes the form of easily repairable and reusable code. Every time you create a new function to make something hurt like another function, or you create a new class that can easily be inherited from something more general, but almost the same thing, you rob yourself of time and money , as much as if the fracker takes 6 round trips to do something that he, or (rarely) she could do in one trip. In both cases, winning less time to work on a big stupid job and a happier rich boss.
source share