I’m a hacker and proud of it. What I know about programming is mostly self-taught. Back in the 1980s, I cut my teeth on Basic before moving on to Pascal, machine language, C, and even such obscure languages as Forth. For me, the joy of programming was in exploration and experimentation. The computer was a world where I was free to tinker to my heart’s content, and the knowledge I gained was its own reward.
The article referenced above got me to thinking, and so you’d better go at least gloss it over before you read the rest of this rant.
Are we all on the same page now? Good.
Here’s the thing about that article. The question it poses “Does the ‘hacker ethic’ help or harm today’s developers?” is I believe an inherently silly one. The point it was trying to make is all these, what I will call, “wannabe rock-star coders” may be doing more harm than good and that they’re unable to function in a professional environment.
Now, maybe I’m too close to this situation. I would be amiss if I didn’t count myself among that “wannabe rock-star” bunch. I’m self educated, driven by an analytical mind needing expression and the wild success stories of others, and almost 100% of the time the way I write code is according to the maxim if “If it works, don’t question it.” I don’t concern myself with making my code neat, portable, or friendly to others. But the reason for that is because I don’t know any better. I’ve never had to work with others on my code, so I’ve never adopted that mentality. But that doesn’t mean as I move forward that I wouldn’t learn.
Early in Richard Buckland’s Higher Computing 1 class (viewable online through the link) he defines the difference between a “hacker” and a “master coder” with an illustration of looking at the solution to a programming assignment given to both parties. A hacker’s solution will have you scratching your head and thinking there must be something wrong with you for not understanding how it works, tho it seems to work. A master coder on the other hand will make you think the problem was too easy because of how well you can understand their solution. It’s a funny story when he tells it. And he points out that we are surrounded by the relics of hackers every day, especially if you are using Unix.
Forgive me for going tangental on a tangent, but it’s silly to complain about the cryptic nature of unix commands or DOS commands, or any other antiquated method of communicating with the computer. Computers are very basic, very limited in their scope and, as it were, mindset. At it most base level computer though is frustratingly simplistic. I use the adjective “frustratingly” because the most basic operation like “if X > Y do this” is so tedious that writing it out every time, never mind writing a whole program, requires the patience of Job. But someone used that method to write the next step, an improvement that made future interactions with the computer easier. And someone used that to write the next step, and the next, and the next. Each step a marginal improvement over the next until today when we have graphical interfaces with big pretty buttons making the computer intuitive. But each marginal improvement was based on the previous, so it’s no surprise that those older methods are inescapably still with us. And one day computers will hear our voice and respond to the things we don’t say and there will still be a need to develop a keyboard for the computer, if only for maintenance reasons.
Now, I’m going to go back to Professor Buckand so I can bring up education. The crux of the problem and the solution is in the last paragraph of the article that started this whole rant:
If you want to develop software, you’ll be directed toward a degree in computer science. But as anyone who as obtained an advanced degree in computer science can tell you, computer science could easily be described as [an advanced] branch of mathematics.
Maybe what’s needed is a new kind of computer engineering degree to complement the computer science track: one that’s targeted toward the student who is more interested in succeeding in industry than exploring computing theory.
100% True. But I’ll tell you what more, I think it’s an 18 month trade school course. Teach the basics of programing in the latest RAD environment utilizing small group projects with a teacher/coach that focuses on proper coding practices for professional environments, and in 18 months you could be on the way to a fabulous career as an software application developer. Yes, software development is ready to be classified a trade and taught to people who will probably never have to see lines like ” mov al, bx; cmp bx, 1; je One” means, which is pretty amazing if you think about where we’ve come from and it is something that we owe to the hackers. And just because a person starts out a hacker doesn’t mean they won’t or can’t learn to play well with others.
If you like your pretty graphical user interface, your easy to navigate drop down menus, mouse interface, or even touch interface, thank a hacker. There’s nothing wrong with being a hacker, they have their place same as everyone. Maybe the day of rock-star hackers are over where an ingenious garage project fills a global need, but then again, maybe not. Maybe the next innovation in the world is sitting in someone kids head just waiting for them to build the prototype in their basement and show it to the world and we’ll never see it if we don’t foster the hackers among us.
Hacking is not a crime.
I should make a T-Shirt out of that.

