So, you wanna be a hacker? First, buy lots of black t-shirts and start listening to Dub Step, as one of our SOFREP readers brought up. Once you have an entire closet full of black t-shirts and you are listening to mind-numbing electronica, the real work can begin.
Obviously, there is no single path to becoming a hacker. Some of the comments readers left from Part One were absolutely correct in that you must be curious about everything, you must want to know why things work the way they do, and you must not be scared to break out of the mold and try to break things in order to figure out how they work. These are core skills or attributes of any successful hacker. An unparalleled drive to succeed and continue in the face of hours and hours of work that may eventually lead nowhere is also key.
As clarification to my first article on how to be a hacker: when I say hacker, I don’t mean a malware analyst, a software programmer, a malware author, or anything else. These are all corollary fields of interest one might say. The skills required to be proficient in these fields are indeed useful when working as a hacker, but absolutely not necessary.
Think of your career in terms of a pie chart with hundreds of slices of pie. Each of these slices represents a finite skill that may or may not be useful in the grand scheme of your career but, may play a pivotal role in honing your problem solving skills or helping you think in new and creative ways.
For simplicity’s sake, when I say hacker, I mean a network, database, web app sort of hacker, not one of the more complex and esoteric fields in the hacking world into which one may descend. A basic hacker is a person who understands how networks work at the switched and routed layers, who understands how databases are created and how database queries are structured, and a person who understands how web apps work on the front end and the back end and knows how to abuse the foregoing services.
Probably the easiest (not necessarily the best) place to start is to begin studying one of the following: fundamentals of networking, Windows Operating Systems, or Linux Operating Systems. I say the easiest because as I mentioned in Part One, and as Josh Kaufman described in his book The First Twenty Hours: How to Learn Anything, skill acquisition falls into three stages:
1. Cognitive – just trying to figure out what it is you’re trying to do, basic research, thinking about the topics and trying to deconstruct the material into byte-sized chunks. (Yes, I meant to spell it like that.)
2. Associative – continued practice of the core skills you gained in stage 1, beginning to see feedback based on small changes you make as you begin to experiment and ask why
3. Autonomous – this is what we call muscle memory; you don’t know why you know the answer but, you can oftentimes just look at something and know how to break or fix it
If you’re a novice, every topic you encounter may be at the Cognitive Stage. Everything may seem strange and you’ll need to spend enough time on each of these skills in order to move from Stage 1 to Stage 2. During his research, Kaufman discovered that rapid skill acquisition can be facilitated by loosely following a ten-step list which includes three things I’d like to mention here. The first is the need to focus your energy on one skill at a time and move from Stage 1 to Stage 2 before dividing your attention onto another subject. Second, “deconstruct the skill into subskills.” Finally, “make dedicated time for practice.”
Let’s take the fundamentals of networking as an example. I’ll create a sample plan based on Kaufman’s process for you to review:
1. Spend about an hour on Google researching computer networks, how they’re designed, built, maintained, and how they carry network traffic.
2. Read things you do not understand and begin to form the underpinnings of future mental scaffolds. You should be confused by at least 50% of what you read.
3. Begin to make note of patterns, concepts, and ideas that continue to pop up in your reading. These notes will stimulate mental models in your brain and will allow you to add more in-depth information as you vacillate between the known and the unknown.
4. Employ the counterintuitive problem-solving skill called inversion. This is where you ask yourself, “What if I did everything wrong? What would I do to make this not work?” This process allows you to quickly identify important elements of almost any topic.
5. Talk to other people in the networking field and ask them what a reasonable expectation of understanding after two weeks of study could look like. Join some discussion boards and ask questions.
6. Eliminate distractions and eliminate excuses. Make a study plan with specific tangible goals and stick to it.
7. Memory works on something called the decay curve, which means new things we learn must be reinforced more regularly in the beginning and less regularly as time progresses. So, use spaced repetition and revisit old material as you progress.
8. Create “scaffolds and checklists” for your learning in order to maximize your time on target. What I mean is, create a study checklist and every time you sit down to study, silence your cell phone, get a drink or a snack, close the door to the room, put on music in the background, etc. A scaffold is similar to a checklist in that it’s your pre-study routine that may involve some or all of the aforementioned items in the checklist.
9. You must get into the habit of guessing and making predictions about systems. By this I mean, if you’re learning about a new type of routing protocol, you might make guesses as to how one router might speak to another based on other information you know. The whole point is to be forward-leaning in the learning process.
10. As Kaufman puts it, “Honor your biology.” Get enough rest, food, drink and exercise to facilitate your learning.
This article was meant to provide a plan for you to use to begin your studies. I’ve provided some links on the fundamentals of networking for you to begin step 1:
(Featured Image Courtesy: Hacker Reactor, Squarespace)