Inquiring Minds = Hacker = Design Engineer ------------------------------------------ by sarlacii I favor hardware over software when it comes to hacking. In the commercial work of design engineering, this is often while trying to lind a solution to a problem. For PJs (private jobs - anything not work-related, really) it may be hacking in a more 2600 sense. Of course, nowadays it is vital that any engineer understand how to work with software too... from high-level, OS-specilic stuff, down to low-level firmware. But you can still favor one over the other! Software hacking appeals straight-up though, as the development interface is so familiar to all of us (PC users) - another window on the desktop. The tools are also readily at hand - available for download, with examples and tutorials that you can use immediately. You install your stuff, and away you go. It's also easy to experiment, as failure is just a compilation error. Hardware is that incremental step removed. You need physical components, small hand tools, a soldering iron, and multimeter perhaps. Printed Circuit Boards (PCBs) make entry even more difficult, unless you restrict yourself to generic project boards from EIE, Farnell, RS, or your local electronics store. You will also need to learn some theory of electricity... and how the resistors, capacitors, inductors, and transistors etc. all interact. It may seem that software hacking is easier. Initially. And only if you remain a script-kiddie. Let's compare the two disciplines. Both fields are based on theoretical knowledge. How deep you choose to go is up to you however, as you can interact with either with only the barest knowledge - like pushing a button to make a call. Both fields make use of "blocks" to simplify the program or circuit. They can be "black boxes" too - where you have no knowledge of the inner workings, only the boundary conditions and input/output functions. Both can use PC software to aid the design process - e.g., software IDEs (Integrated Development Environment) versus electronics CAD (Computer Aided Design) packages. There are emulators and debuggers for one, SPICE simulations and hardware debugging ('scopes and instrumentation) for the other. The parallels are obviously manifest. So, yes, there is an explosion of software driven technological change in the world today, and rooting your cell phone is made "easy" (not forgetting the skills that created the howto)... but it can be just as rewarding to hack the hardware, too. So before opting for the alluring software route, consider the shortage of hardware hackers - it can be a sweet payoff! However, the growing prevalence of projects like Beagle Board, Arduino, and the numerous development ("dev") boards of the various IC manufacturers is, I believe, rekindling an interest in hardware. Such projects effectively provide the user with generic hardware and a simplified, "high-level" programming interface... yay for the black box approach! Invariably, however, and before you know it, you're extending the original capabilities, and you have to hack the hardware. So, hardware is not necessarily "difficult," and neither is the learning of it more demanding than becoming a decent programmer. Besides, don't forget that the software cannot run without the hardware! Try hacking your hardware.