Hacking versus Coding

For reasons well beyond my imagination, there are people that assume that if you have a skillset that includes coding, you are automatically qualified to be a hacker. On the less common side of that coin, people assume that if you are a hacker, then you would only need a few minutes to turn out a new Android app for them. Granted there can be some overlap between these skill sets, but these are actually different areas of study that generally lead to very different careers. The misconception makes both occupations more difficult.
From my perspective, all hackers really should have a solid foundation in coding. In this current era, if you aspire to be a cybercriminal then you should at least have a foundation in C, and you should be highly functional in Python. And really, how can you get anything done without a web presence these days? So HTML5 is a must, as is PHP. And then you have to put your data somewhere, so SQL is pretty much essential to any hacking endeavor. I don’t see how you could get anything done without a thorough understanding of TCP/IP and general networking either. I mean you can still be a hacker and just not be a very good one, but these are the skillsets that I believe are essential to doing well at the job. Personally I’d add graphic design and electronics in there as well, the more skills the better.
What makes a successful hacker is multiple disciplines in many technologies. These are the resources that allow you to see exploits that others do not. That is the difference between a coder and a hacker. You can be a really good coder, and only really excel in ASP.Net, but you aren’t getting through any corporate firewalls with that resume.
Beyond the obvious skills above, there are guys that specialize in cracking software titles, and those are hackers in my book too. And then there are the pure telecom guys, and the WiFi/RF guys that are deep into the electronic side of the equation. Those skillsets count too. But that doesn’t mean any of them can, or would be interested in, writing you an app for your phone. Nor does it mean that they can or would want to make a website for you.
The problem is that to the non-technical, all the technical stuff is basically the same. They just don’t understand how vast the world of technology is and the fact that there are hundreds of programming languages, and thousands of tools used in the industry. You lose n00bs fast when you start talking about diverse Computer Science subjects, but there isn’t a good minimum point of entry for someone with a litany of advanced skillsets to introduce whole subjects of science to a neophyte. I mean, what’s a polite way for me to tell someone “…read this stack of books here…and then I can answer your question in a way that you will understand it…”
Yesterday someone asked me what BitCoin was. I didn’t know if they meant in reference to other crypto-currencies, its value today, or BitCoin as compared to fiat currency, and they weren’t going to understand any of those explanations anyway. I mean it’s just a shared hash based ledger systems really, but that doesn’t convey any useful information if you have no idea what a hash is. In fact, without some understanding of general accounting, the ledger piece might not be easy to grasp either. We need a common dialog.
There are all kinds of boot camps for coders, mountains of textbooks, and no shortage of college classes on technical subjects, but there just isn’t a requirement for Joe Citizen to know anything technical in the course of their job. I hope for a future where every single human being has a fundamental understanding of electronics, networking, and object oriented coding. Sadly none of those subjects are taught in American public schools even though the only other jobs people might be able to get without those skills won’t be around in the decades to come. I am aware of the fact that some schools offer some classes in those subjects, and more so in charter schools, but these aren’t required-to-graduate classes, in spite of the fact that they will certainly be required to get anywhere in the future. So there is no easy fix for the problem in the US. There is a chasm between the technical and the average citizen, and it’s is widening. It’s an act of desperate optimism to tell oneself that you will never need to know any technology, I mean unless you are 80+ and/or on your deathbed. Even then, why rob yourself of the quality of life possible through advanced technology?
You don’t have to be a coder or a hacker to make a website. You don’t need to dedicate yourself to a career change to learn to code, or just to know basic networking. I don’t know how everyone gets through their day just not knowing how the world works. For me, I just have to know. I’m not an aerospace engineer, but I know how aircraft fly via a basic understanding of fluid-dynamics and the concept of lift. And if I need or want to know more, I know how and where to acquire that knowledge. That’s just how I’m wired. I can’t understand how people can use computers every day (including their phones) and just accept the fact that it’s all “magic” beyond their comprehension. I won’t say “it’s really not that complicated” because it certainly can be, but why not just learn the basics?
Meanwhile, for those of you that don’t understand anything more technical than the GUI on your phone, hackers are not coders, and coders are not hackers. Plenty of coders have not, and nor will they ever, engage in cybercrime of any kind, and all the hackers I know are way too busy to teach you to code or build you a website. Now in the more likely scenario that you, my dear reader, are one or the other already, please find some way to pass these skills on. I really fear that the next generation is going to be entirely end-users that are fully dependent on big corporations and governments to manage all their technical needs, and we all know how that will work out.

Leave a Reply

Your email address will not be published. Required fields are marked *