How to jump into "real world" programming?
tomlogic: Pick an open source project that you like and use.  Look for open bug reports (easy to do on SourceForge projects) and then dive into the code to fix the underlying problem.Or, take an existing project and read through the code looking for bugs.  In C code, using sprintf() instead of snprintf() is generally a bad idea (due to potential buffer overflows).  You could go through an entire code base and replace sprintf calls with snprintf with the appropriate buffer size parameter.If there's a project that provides a library of routines, you can write unit tests to verify that they work as documented.Find a project that's poorly documented, and write up documentation for it.  If you document an undocumented API, you'll have to read through code to figure out what it will do.  You may find that certain conditions are undefined (e.g., what happens if I pass NULL or a negative value here?).  You'll be reading other people's code, learning how it works, and contributing to the overall project.