My first real programming project was a DOS TSR keylogger. When you start your programming journey in the computer underground: 1) you have no idea the magnitude of the problems being thrown around by your peers, everything is trivialized and you're expected to know a great deal of info about the inner workings of your programming languages and their execution model, application software, OS/kernel internals, compilers, network, hardware, file formats and .. <i>bugs</i> and 2) there is an absolute joy to everything you do; never underestimate the power of mischief as a great motivator.<p>I don't expect you to dawn a blackhat at this stage, you're probably too mature, and the scene is pretty much lame nowadays anyway. What you can do however is join a community that enjoys and fosters a healthy hacking attitude. Something very geeky and very focused, like the demo scene (if they're still as innovative as they used to be.) You need a group of <i>friends</i>, all of whom are hacking for fun and giving each other feedback. IRC is an excellent place to find such people. Something focused on a given subject and a given technology. Start with your favorite libraries and join their IRC channels. The Allegro game library scene was cool, write 2D games for fun. Once you master the basic usage of the library, you will see what more experienced people have done with it. There is a different, unique taste to seeing a master craftsman make something great out of the ordinary ("wow, he did that in 4k" or "wow, fake 3D".) This will motivate you to no end :-)<p>Take out the manual of your "battery included" language of choice (Python, PLT or Chicken Scheme) and step through the module list. Write small programs that use each module/library and pretty soon you will have tons of ideas. Just take a GUI library, a network library, a regex parser, a mime/XML/html parser, and an audio library; taken into any combination, you will have something that solves an interesting problem. Something as "big" as a web server can be written with just the system calls built into every unix :-)<p>Finding your own problems, to keep you busy, is also something you will eventually develop as you continue hacking.<p>P.S. DON'T start with a janitorial position cleaning up other people's code or doing manuals, as the "Hacker HOWTO" advocates. Fuck that, NIH and all, go out there and create your own bugs to fix. Have fun, eh? :-)