You've read about the exploits of groups such as LulzSec, Anonymous and AntiSec. You've read my Kevin Mitnick interview with great interest. You've followed such famous programmers as Richard Stallman, Linus Torvalds, Marc Andreesen and Dennis Ritchie. And, now you want to become a hacker. But, how does one become a hacker? Is there some secret society with blood rites that tests your willingness to exploit and deliver malicious payloads to unsuspecting computer users? Or, do you have to sell your soul and pledge allegiance to an organized crime boss to break into this mysterious field?
It's much easier than that, but it isn't an overnight process.
It takes dedication, intelligence and an analytic mind. You must have a desire to solve problems, a knack for verbal and written communication and a persistence to try new approaches when solutions don't come easily.
To become a hacker, you first must have a keen interest in computers, how they work, their components and how computers communicate at the lowest level. If you aren't a programmer, you need programming skills.
Eric Raymond suggests that you learn Python first. After becoming comfortable with Python, you should learn C/C++, Java, Perl and LISP. Python, Java and Perl are all C-based languages but Python is an easier first language to grasp. LISP is an ancient language (in computer terms) but its approach will give you a different perspective on programming and will make you a better programmer and hacker.
You also need to obtain an open source operating system such as Linux, FreeBSD or OpenSolaris to use to hone your skills. Using existing code as a guide helps you learn to program.
Other than programming, what other skills do you need as a hacker?
Look back at the list of attributes given earlier: dedication, intelligence, analytic, problem-solving, communications and persistence.
These are less tangible points but no less important.
You'll need dedication because becoming a competent hacker doesn't happen quickly. Like any job, you need to start small, grow and set personal goals. You need to have at least average intelligence.
You do not have to have a genius-level IQ or be a MENSA member. You should possess a natural curiosity for solving problems and have an analytic or logical mind. You'll look at taking programs apart as often as you will look at how to build them so the ability to analyze a situation or a program is a very valuable skill.
Believe it or not, the ability to communicate verbally and in writing is extremely valuable and is an essential tool in your skillset. And, Eric Raymond further suggests that you need at least a functional grasp of English, the language of hacking.
Have you ever heard that "Persistence pays off"? It does. Especially in dealing with computers and programming. You'll learn more if you can be persistent with your work. A bit of an obsessive personality is actually a positive trait for hackers.
To become known in the field, you need to get involved.
Get involved in an open source project. Help with debugging code, assist with documentation and contribute to the project in positive ways. Project managers actively solicit assistance, so you won't have any trouble finding a project that needs your help. Start with SourceForge and search for projects for which you have an interest. You'll find developer contact information on the Summary page.
Having your name associated with a project gives you the street cred that you'll need going forward in your career.
You also should get some formal training. Yes, training is available. You can often find courses at community colleges, universities or online for ethical hacking or security.
Get involved with a local 2600 chapter or other hacking enthusiast group. Check online in your area or ask around at other user groups. It took me about ten minutes to find all the meetings and groups in my city and state. Remember to be respectful, humble and silent at the meetings. If you come on too strong or self-aggrandize, you'll not make any friends or allies and you could alienate yourself for a long time. You're a newbie. Listen and learn.
Now, for the difficult issues associated with becoming a hacker.
Don't enter into this field if your purpose or desire is to illegally hack or compromise computer systems. You'll get caught and possibly serve prison time for it or have to pay damages to your target. Can you really afford either one? Make positive choices for yourself. Becoming a hacker or security expert can bring financial rewards instead of negativity and problems. Use your powers for good.
And, don't be discouraged if your results aren't immediate. Learning any skill takes a long time--years perhaps. Don't try to rush things. Remember the fate of Anakin Skywalker who wanted to gain power and prominence too quickly.
It doesn't matter how old you are when you decide to discover hacking and programming. There's no minimum or maximum age for entering the field. Many hackers start out at a very young age (teen or even preteen) and progress through their lifetimes. Gray hair isn't shunned, it's revered as experience. So, don't worry about appearances.
Finally, read all that you can about computer security, hacking and programming.
And, as Richard Stallman would say, "Happy Hacking!"
If you have any resources that you'd like to share for newbies trying to learn the art, please post them in the Comments.