Software is Magic



Software is magic until you learn how it works. One mistake we often make is we try to break that magic. Instead of using software tools as they come, we try to re-implement them on our own.

The problem with that is that we are not all magicians.

A common place this occurs is in security. Everyone learning web programming immediately starts implementing their own password hashing algorithm. They think because they are not sharing their code, an attacker cannot guess how they are hashing their passwords. The bad news is that, just like cryptography is akin to magic, password cracking is sorcery.

The more you learn about software, the more you understand the plethora of software and hardware needed to run the simplest of hello world.

Ben eater, an electronic instructor on YouTube, goes from using a breadboard, to printing Hello World on a screen. The complexity is enough to lead you into giving up your dreams of becoming a magician. Instead, you get to use the magical product at the end and don't think too much about it.