in reply to Learning by Doing

Problems solved by "much more accomplished" programmers still need solving, to a degree. Sometimes the best way to discover exactly how a wheel works is to invent one yourself. Your own solution may be radically different from the one created by someone else. You'll build from what you know, make mistakes, and correct them. Your code will evolve from rough and clunky to smooth and sleek as you tweak performance issues.

Every bit of Perl code I've written for 'work' could have been found elsewhere, but it wasn't. Each element was built to the specifications of the project at hand. Learning was part of that process as well. And the same help is available to anyone who codes.

The doom that is Comp. Sci. 101 is only there until you choose to leave the classroom and explore the world on your own.