Human abstraction and its impact on coding

In his talk, Tom Stuart portrays an elegant argument around the use of abstraction in coding by showing how it has helped humankind solve basic problems.

https://www.youtube.com/watch?v=tJkoHFjoMuk

I would argue that the ability for humans to abstract ideas is one of the strongest sign of intelligence one can show. As Tom explains, abstraction is the ability to understand the essence of a problem, and represent it in it’s most basic general form. For those who like “pears and apples”-type of explanations, abstraction is about looking at a triangle on a piece of paper, and understanding that the sum of the squares of two sides is equal to the square of a third side.

Of course, high-level abstractions (such as the Pythagorean Theorem) take time and a ton of effort but there is a lesson to be learned, particularly for newly-made coders.

Investing time in abstracting problems during the beginning of a coding solution will pay off.

This is Tom’s argument, and I fully agree with it. Furthermore, I do not think this is a matter for software developers only — if you think about it, what this says is that one will benefit from deeply understanding a problem before solving it. Well, yes! Take a 180-degree turn and look into psychology: if you understand the deep reasons why someone is acting in a certain way, you will clearly understand how to approach that person. Take business, if you deeply understand the forces at play in an industry, you will be able to better participate in it…etc, etc, etc.

Although honest abstraction (or problem structuring, if we speak in management consulting terms) applies to all fields. It just so happens that the frequency it is needed in software development is above average — so go for it!

Happy coding.