A common cliche says: you’re a “humanities person”, so math (programming, physics, etc) isn’t for you. In reality, it’s more complicated. I had felt this for a long time (even in school), but only recently arrived at a clear formulation of the problem.
My story
I’ve always struggled with math. My way of thinking requires understanding the logic behind every single step. When someone tried to explain math to me, they were often confused — because our thinking styles were different.
I feel extremely uncomfortable when:
-
- a rule is given without derivation
- steps are skipped
- I’m told to “just accept it”
- the process is replaced by the result
This feels like a loss of cause-and-effect relationships. In fact, this is exactly how math is typically taught in school and university.
I always need to understand: WHY is it like this? Where does it come from?
For me, answers must be expressed verbally, in terms of logic — not just abstract numbers or formulas (this is probably where the “humanities” aspect comes in).
Given that no one is obligated to explain things individually, you quickly fall behind and lose interest in “exact” sciences. To truly understand and hold everything in your head, you either need to work on it very intensively (which is unrealistic with multiple subjects at once), or have a strong memory (which I don’t).
A good example is my note on the simplest operation – division – on my other website: https://easylearn.ru/en/mathematics-division/
So… Why does this happen?
Contents:
Types of thinking: conceptual vs procedural
There are two types of thinking:
PROCEDURAL
memorize a rule and apply it
CONCEPTUAL
understand where things come from
In my case, the second approach clearly dominates. This is also called need for cognition — a tendency to analyze deeply rather than accept ready-made solutions.
An approach that works for me looks like this:
- first definitions
- then derivation
- only then the rule (ideally without rules at all)
For people with this mindset, the worst thing is “black boxes” and postulates—which, in fact, form the foundation of the school curriculum.
How common is this
- about 2/3 of people work fine with ready-made rules
- around 1/3 prefer understanding but tolerate simplifications
- the remaining minority require strict derivation and feel frustration without it
I belong to the last group.
How this affects programmers
How does this manifest in programmers? A rule without derivation feels like a library without source code.
This is especially noticeable in people who:
- build systems from scratch
- control every level of the system
For example, my case:
- I’m writing a game from scratch without libraries
- I don’t use ready-made abstractions
- I try to control all system behavior
This significantly slows things down and makes the system more complex, but provides full understanding and greater flexibility for modification (no artificial constraints).
Advantages of this approach
- deeper understanding
- less dependence on memorization
- ability to reconstruct knowledge from scratch
- fewer errors in complex tasks
Disadvantages
- slower learning at the start
- frustration with standard teaching methods
- frequent conflict with “school-style” learning
- overload even on simple tasks
This understanding helps you work more effectively. Use your strengths.