SoftICE was the tool that really got me into programming. Before that I was coding in Visual Basic, and tried and failed several times to teach myself C++. The books that I got where all talking about things like inheritance, polymorphism and Microsoft's MFC and none of that made sense to me. Then I found SoftICE and learned how to crack sharewares and eventually found an amazing tutorial on how to write Windows apps in assembly using MASM and calling the Win32 API directly. I used SoftICE as a debugger and it was amazing to see my code being run by the processor, instruction by instruction. I had a feeling of having a complete understanding of the computer. From there, I was able to work my way up the abstraction chain.