I have a good foundation in programming and am currently working on a large win32 program complete with user interface, etc. That said, my code is very unorganized and (my guess would be) inefficient as I am a self taught programmer. I can always get things to work, but usually it usually involves creating large numbers of global variables. Where can I learn to be more efficient with memory use and how to use object oriented programing more effectively? I would prefer a free source such as an interent tutorial, but book titles would also be appreciated.