Or just use an open source library and, when you find a bug, report it and (try to) fix it. Pay attention to the coding style, write a test case that reproduces the bug, and send/submit the patches to the author.<p>As a library user, you'll have the incentive to have the bug fixed. You'll also know exactly how to reproduce it, which will help you to locate and fix it and write a test case.<p>Even if you never touch that project again, you will have (a) helped yourself, (b) helped the project and (c) learned something.<p>See also: Write and Submit your first Linux kernel Patch (FOSDEM 2010 talk): <a href="http://archive.fosdem.org/2010/schedule/events/linuxkernelpatch" rel="nofollow">http://archive.fosdem.org/2010/schedule/events/linuxkernelpa...</a>