Hacker is a term for both those who write code and those who exploit it. Even though these two groups of hackers have different end goals, both groups use sim ilar problem -solving techniques. Since an understanding of program m ing helps those who exploit, and an understanding of exploitation helps those who program , m any hackers do both. There are interesting hacks found in both the techniques used to write elegant code and the techniques used to exploit program s. Hacking is really just the act of finding a clever and counterintuitive solution to a problem .