Bassam Helal's Blog

The Hacker's Mindset

2024-01-19

Perhaps the most valuable thing I have gained through experience is a mindset that I like to call "The Hacker's Mindset".

I use this term with the more classical definition of the term hacker, (which has been unfortunately hijacked to mean something almost entirely different) meaning someone who experiments with software. This usage of the term "hacker" comes directly from Hacker Culture, what people refer to today as "hackers" I call "computer security experts" or something to that effect (that is much more precise and descriptive).

Essentially what the hacker's mindset to me is this:

Learn, try and experiment with new things that interest you without overthinking

This mindset isn't limited to only software (the hacker's usual profession and interest), and indeed can be used anywhere in your life, but it lends itself very nicely to software as I have experiences in the last few years.

Background

I recently watched a video on YouTube titled: "My Best Decision Professionally" where ThePrimeagen talks about his best professional/career decision in response to a tweet asking the same question.

His answer felt more like a philosophy or manner of thought or even approach to problems, rather than a true decision meaning something he made an intentional choice about. His video and response are excellent and I highly recommend watching it before continuing to read this article. In fact, I think he is an excellent role model for any young programmers (or software professionals in general) and has been a huge inspiration to me, especially in his general mindset.

His response was essentially something to the effect of:

Never shy away from a problem no matter how daunting, there is always some reward at the end. You have solved difficult problems before, and you will continue to solve difficult problems, so don't underestimate your abilities.

I really like this video and the message that it sends, and it made me realize something very similar that I have started to notice in my subconscious mind in the last few years after I graduated from university. So many of the decisions I hold with great pride that have affected my life very positively have all come from moments where I should have not made the decision had I been thinking more logically and rationally. Instead, I said:

"Fuck it, what's the worst that could happen?"

This single statement has made me leave my comfort zone countless times before, and almost always come out with a decision that I later hold with great pride.

During my master's degree I started to notice the appalling state of the garbage software that is Microsoft Windows 10. Windows 10 (and in fact most products developed and owned by Microsoft) is utter garbage and most people know this, but most people do not want to leave their familiar computing environment, and I was one of them. But after I submitted my final dissertation on September 30th 2020, I said "Fuck it, let's install GNU/Linux and see how it goes, what's the worst that could happen?".

I have been a GNU/Linux user since then and using GNU/Linux daily has truly changed my life, especially in my career. It is the one single decision I am most proud of in my (still short) professional life. I would have never made that decision had I been more risk-averse and afraid to leave my comfort zone. Instead, I recognized that the only negative that could come out of this decision is some discomfort and some time lost, time that I had plenty of (and you probably do too).

That is my point, my greatest actual decision in my professional life is using GNU/Linux as my daily operating system, but that would have never happened had I been too afraid to leap into discomfort and challenge.

I have made many more decisions like the above since I graduated from university in 2020. I learned C by playing around with libsoundio's source code. I learned about Java native interoperability by playing around with JNA and JNR-FFI. I learned Embedded Systems by playing around with the Raspberry Pi Pico. All of these decisions I am incredibly proud of and all of them make no sense to me today. I should have never made them when I did, but I did, and every time I made such a decision I always remember thinking the same thing.

"Fuck it, what's the worst that could happen?"

Hacking

So what do hackers have to do with this? In my view, hackers follow a similar mindset deep down, the mindset of trying new things and experimenting even in the face of extreme discomfort. The truth is, being humbled by lack of knowledge or skill, or frustrated by lack of results, can be severely discomforting. It is the actualization of being told you are not capable enough, to most, they would rather not try than face the realization they are not good enough.

And you probably actually are not good enough. I bragged about my successful decisions, but I have some less successful ones too and even when I was successful, it was rarely easy. GNU/Linux is different from Windows and macOS, you are expected to get comfortable with the command line, something that took me longer than I am comfortable to admit. C is a simple language but very dangerous and understanding pointers took me quite some time, even though they seem extremely simple. I recently played with Rust for a few weeks and ended up leaving it out of sheer frustration with the compiler and borrow checker, it is not easy and has a steep learning curve.

But that's ok because the real value of the experience is the experience itself and the knowledge and fun gained along the way, even when failing or being humbled. Learning C makes you understand computers at a much deeper level, I recommend all developers learn and play with C for a few weeks, because even if you never use it, the knowledge gained is worth the experience. My Rust experience can be classified as a failure, but I gained a tremendous amount of knowledge on how references are passed around in any programming language. Even if the experience is a "failure", the knowledge gained was worth it.

That's the value the hacker mindset really provides, knowledge through experimentation, especially in unfamiliar territory. Because if there was no discomfort, then was the decision even worth thinking about taking, and will the reward be as high? No, because the greatest rewards come from heavy cost, but paradoxically, the cost isn't actually high because you only pay that feeling of discomfort.

Conclusion

So what am I trying to say? I am trying to urge you to be more like a hacker, experiment and try new things that interest you, make decisions that will make you feel uncomfortable but will inevitably reward you if even a little bit at the end. It is very likely such a decision can change your life tremendously in a positive way, and possibly lead to more decisions that can do the same and so on and so on. A feeling of discomfort, laziness, or "I'm not good enough" are the only things holding you back from a potential life-altering decision.

I direct this article to myself just as much as I do to you (the reader). I had this same feeling of discomfort when I thought of learning programming in x86 assembly a few days ago. It is notoriously difficult to do things in assembly, but after playing around with it for 30 minutes I can already feel the immense knowledge and opportunities this could provide, and what did I say before I took this decision?

"Fuck it, what's the worst that could happen?"