To start off this article I want to write about my motivation to write this article. For a good while now, a matter of years, I’ve seen people asking ‘how to be a hacker’. I’ve also seen other people trying to teach those asking ‘how to hack’ with just tools and techniques to break into other systems. I’ve seen people use the term the wrong way and even the media is guilty of this, in fact it’s the power of the media that ensures the wrong use of the term continuously. I’m sure there are many true hackers out there that are greatly annoyed by this and I’m also sure there are a lot of true hackers out there that simply do not care at all and ignore it.
Personally i think it’s important that every once in a while someone has to do the boring thing and write up a document explaining what a true hackers is and how to become one. I grew sick of the term hacker being used to describe crackers, those who break into computers and crack passwords or other security measures so instead of wining about it I took it upon myself to write up such a document myself as a contribution to the true hacker community. Mind you that I’m not at all an authority on defining what makes someone a true hacker. To my understanding, as far that may go, this what I’ve written by heart and partially by doing some research is what most hackers consider to be the truth when it comes to defining what makes a person a hacker.
I’ve spent the better part of a day writing this, and this is somewhat of a long read. If you don’t like reading then you should leave this article, if you don’t like long reads then maybe being a hacker all together isn’t your thing to begin with. If you do choose to read this article then I hope you enjoy reading this and learning from it as I have when I first read Eric Raymond’s howtos.
So you want to be a hacker
Before you start to seek answers on how to be a hacker you have to ask yourself the question “what is a hacker”. There are a couple of answers to that question which I won’t highlight all and maybe only one of the answers stay true to the original definition of what makes a person a hacker.
The term “hacker” today is used everywhere, especially by big media corporations and almost all the alternative media. I wish to share a brief light on that. Media corporations use the term “hacker” to describe a person responsible for breaking into computers and stealing data or damaging systems. This not only pisses me and a lot of other hackers still true to the original definition of being a hacker off, they also use the term wrong. The big media corporations maybe do this on purpose, or they simply don’t know how the term came to life and how the term is supposed to be used. This is beyond the scope of this article, it’s important to understand that the media uses the term in a very wrong way.
So if you believe big media corporations and think someone is a hacker because that someone breaks into computer systems. You’re wrong, but I personally won’t be mad at you for thinking that way because you have been partially brainwashed to believe so and that’s partially not your fault. Turn off the idiot-box (yes, your TV) more and start to think for yourself!
Another thing you should realize is that you will not simply become a computer or software hacker in a few days or weeks or for most people even several years. It takes a long time to learn and understand the mindset a hacker and it takes even much more time, it’s a matter of years, to sufficiently learn a programming language to actually solve a real-life problem. It may take five to ten years to be an experienced programmer and even then you will still be learning. It takes dedication and hard work to become a hacker and if you’re not willing to put in the effort that’s required you will not ever be a hacker.
You have to be willing to learn things from others and you have to be capable to learn by yourself. There are libraries to find books, there are wiki’s on the Internet and Google knows a lot. Learning takes time and effort and if you’re not willing to put up with that then maybe being a hackers isn’t for you.
What is a hacker
Generally speaking a hacker is a person who enjoys tinkering with software and electronics, but also with mechanics, music and even cooking. Hacking is more of a mindset and a way of living rather than just a set of skills to do something amazing on the computer. Hackers love creating things and figuring things out. Hackers love finding ways to use a piece of software or hardware differently than the way originally indented by the programmer or manufacturer. A typical example of this is could be rigging up a vacuum cleaner with duct-tape and tubing in such a way that it becomes a leaf-blower. But lets stick to computers and software throughout this article.
Hackers love to solve problems, the world is full of them. They do because it’s an opportunity to develop programming and other related skills. Hackers like to automate certain repetitive tasks, creating their own tools to achieve a greater goal, because repetitive work is boring and doesn’t really help in keeping up the motivation to do the work necessary to achieve said greater goal. Hackers also share their knowledge and tools with other hackers as a courtesy towards other hackers, hackers help each other without the need for anything in return, except maybe a thank you.
You may not immediately believe this but hackers are actually very social people. They go to hacker conferences and other geeky conferences to discuss similar interests and share knowledge. Hackers are able to write their native language very well and also feel the need to learn at least a good amount of English to effectively communicate internationally. Hackers believe writing English using correct spelling and clear grammar contributes to both the hacker mindset and the hacker community. You don’t have to be a nerd to become a hacker but it may help as many hackers share the same nerdy interests.
Really good hackers even play a musical instrument and practice a form of martial arts and meditation because it requires a certain dedication and discipline that proves very useful when hacking on certain projects. Hackers also have a good memory and as you’ve probably guessed already are very intelligent people. Hackers may seem rude at times or may even seem hostile in some limited cases but don’t take this the wrong way. Hackers are people who communicate directly and tell things as they are. Most of the time hackers don’t feel the need to make you all warm and fuzzy when it comes to telling people they are wrong, that their argument is invalid or that people are wasting their time. Hackers are busy people, always working and therefore their time is precious.
Hackers will do good with their skills, you will not ever find a real hacker trying to break into some else’s computer system or breaking some else’s codes. Hackers won’t do things with their skills to only benefit themselves. Being a hacker means being there for the hacker community or at least serving the hacker culture in whatever way possible.
How to become a hacker
As you should have read in the description above of what makes a person a hacker you should know by now that it takes a lot of time and effort to gain the attitude that really helps in developing the skills needed to become a hacker. There are some vital skills you should at the very least be developing the right way before you’re being called a hacker.
Learn how to program. I choose my words carefully because I’m not just saying ‘learn a programming language’. Learning how to program involves knowing multiple programming languages and how to use them to solve specific problems. Programming requires a mindset of it’s own. You’re dealing with design patterns, code structures and data patterns which apply to many programming languages. You’ll learn this if you’ve been programming in a or a couple of programming languages and usually takes a couple of years.
You could start to learn Python, it’s very well documented, easy on the beginner and not useless at all for it’s a powerful language to write small and even big programs on Unix flavored operating systems. Another language I could personally recommend is PHP together with MySQL, over the years PHP has grown to be a formidable server sided web application programming language that supports both procedural style programming and object oriented style programming which can lead to interesting pieces of code.
Whichever programming language you choose, start with small fun projects that do not necessarily solve some important problem. These small projects will teach you the basic syntax and code structure you’ll encounter in other languages as well. Start with projects with lines ranging from 100 to 500 lines. When you master this you’ll reach a point where you start to feel the need to rearrange your code, tidy it up, or completely rewrite everything from scratch in some cases. This is you inner pattern design ability speaking up and don’t be put off by this, it means your skills are developing to a point where you can handle larger projects with a lager size and complexity. When you’re at this level you may be confident you’ll grow even more as a programmer.
Another important skill is the ability to setup and maintain an open-source Unix flavored operating system. A Gnu/Linux system will be a very good choice for a long time. Personally I’d recommend starting with Ubuntu as it’s a Gnu/Linux distribution that can be booted right from a removable media without the need to ever touch your computers internal storage facility. Later you’ll find that other Gnu/Linux distributions (like Debian for example) are much more customizable and flexible to fit a certain purpose. An example of this is that you can use Ubuntu to setup a Linux Apache MySQL PHP web-server, but you’ll be using up valuable resources on a desktop environment you essentially don’t need anyway. You can set up Debian in such a way that you’ll only be installing the software packages you need, in this case Apache, MySQL, PHP and their dependencies to better use the systems resources.
Another important reason why you should use a Unix flavored Operating system is that, although you can choose to write programs on Windows, you’ll be stuck with proprietary API’s and frameworks, and that basically locks your development and programs to that particular proprietary operating system. Your code will not be portable to be compiled on other open-source or proprietary operating systems. If you were to write a program on a Unix flavored open-source operating system using C++, it takes only a couple of changes for a simple program to compile and run on other systems.
Last thing I want to mention is if you’re native language isn’t English learn it sufficiently to a degree that you at least use good spelling and grammar. Being able to properly spell words and apply grammar sensibly you’re more likely to be heard by the hacker community. Also using abbreviated versions of words like you do in text messages will not get you anywhere, you will come across as unintelligent and annoying.
If you have fully read this article and still want to know more then kudos, and click the following link for more detailed information on how to learn hacking.
Probably the most detailed, accurate and frequently updated source on the web. The guide wirtten by Eric Raymond. This guide is full of links that should aid you in your quest as well.
Learn Python using code academy and write some programs in it to develop your skills.
I’ve also opened this article up for discussion on my forum right here. Don’t comment directly on this article, discussions tend to become an unsorted and unmoderated hell of a mess.