The dark side of abstractions

After a long time, I finally decided to write something here. If you found this blog probably you are a developer or you are someone who loves programming. Most of the content will be about software, so if you don't like it, feel free to find something else interesting on the internet. :^)

If you are still here let's go to the point of this post.

I've been working as a developer for awhile and I've noticed a common pattern that started to annoy me. Software is getting unreliable and developers know less about computers.

I think due to the lack of professionals in software industry and the high amount of job offers, companies started to invest in tools that abstract the machines in an attempt to "protect" the programmers of making mistakes, so that the developers become more "productive".

Don't get me wrong, I'm not against abstractions, they are really good, but maybe we went too far, and the cost now is very high. Fragile software and developers that don't know what they are doing are consequences.

So, if you are someone who suffers of imposter syndrome and feel like you know nothing about software, my advice is LEARN YOUR TOOL. Be pragmatic about it.

If you want to understand better what I am trying to say here, I recommend you to watch a Johathan Blow's talk1 that explains better my point.


  1. Jonathan Blow - Preventing the Collapse of Civilization: https://www.youtube.com/watch?v=pW-SOdj4Kkk