Hi, I just learned programming for about a year. I am familiar with a few programming languages such as python, scheme and java. My experiences with them include 1 OO programming course using Java and 2 courses using scheme and python. I feel I want to advance working on some simple projects but not sure where to start. Ideally the problem is not too simple or too complex. I have been reading source codes on sourceforge but not many really suit me. (either uninteresting or complex) So no idea what I should work on. Could you please share your experience with me about your first major/minor programming project that made your friends say, "wow"?
PS, I prefer writing in python or scheme.
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 friends, 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 :-)
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 :-)
Finding your own problems, to keep you busy, is also something you will eventually develop as you continue hacking.
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? :-)