First, let’s get one thing straight: being a hacker or a computer programmer does not entail playing video games all day. I get that a lot for some reason, so let’s get that out of the way.
Secondly, I will clarify that when I say “hacker”, I mean a real hacker. Not a script kiddie or a black hat—someone who attacks other peoples’ machines using other peoples’ exploits or their own persistence. These are ‘
Here’s the key. If you are considering learning to program just so you can break into other peoples’ systems, you are missing the point. Computer Science is about creating anything you can imagine, building higher and higher! If you think pressing a button in a program someone else wrote, to clobber a whole bunch of peoples’ file systems is somehow more enjoyable than constructing your own dreams and creations from pure will and passion, then may Eris help you.
I started programming because there was a video game I admired, and I thought I could do better. Being a young thing, I promptly dove into it all, and soon there were functions and loops and pointers dancing around my little eight-year-old brain. That was when I learned my first lesson:
Anyone can program.
Anyone with the right mindset, that is. You don’t have to be skinny or fat to program. Your height, your gender, your religion, your affluence, don’t matter. You don’t even have to think you’re particularly smart to program. Anyone can do it. But the key thing you need to have is rather subtle.
See, it’s not about being right or wrong, or doing dull math, or playing favorites with companies or getting and holding down a job. It’s not about a 9 to 5 working day or the bottom line. Corners cut are personal embarrassments, and the hack value of five lines of clever C can make a good day into a great one. It’s almost never the end product that’s important.
Hackers don’t know all the answers. No one does. We gain wisdom because we care about learning knowledge. This caring is the key to being a good hacker. You’re interested in everything interesting, and you try because you can. Being a hacker is about running into problems. Tough ones. But the nourishment you get by solving them makes you a better person. I often say that Mathematics teaches one knowledge, but that Computer Science helps one understand knowledge.
Real hackers—the really good ones—will constantly be working on something. Hacking is a process that never stops. It’s the attitude that matters. If you take nothing else away from this, remember the following. Hacking is both a science and an art. It is difficult to create something beautiful, and that is why hackers love doing so.
To write code like a hacker is to write code like an artist paints a painting. There is delicate, precise, complex beauty. A hacker’s code tells you something fundamental about the hacker. Not just stupid things like a predisposition towards recursion—subtle, deep things, like the author’s philosophy and attitude. A hacker’s codebase is their life story, and an exploration into the way their mind works.
We’re actually mostly done. Once you truly understand that being a hacker is about creating beautiful things because you can, and that that’s awesome, you are a hacker. As above, there are no hard requirements. Anyone can program—and in fact a real hacker will let nothing stand in the way of whatever it is they want to create. However, the following skills are common to almost all good hackers. You should have these tools: