I'd recommend spending some time with other peoples code. Open Source provides mountains of great (and bad) examples. The only way you'll really learn to grok the difference is to spend time enhancing other peoples code. You get exposure to a lot more code that way, since you can't possibly write hundreds of thousands of lines of code by yourself in a short period of time...but you can learn to navigate projects of that magnitude in a few weeks, and learn a lot of what those kinds of projects have to teach you.
Pick a project that interests you and has a large/friendly community, and make a plugin or a patch for it. You'll learn a lot about working with other developers, and a lot about the ancillary tools that are needed to build big and useful software but are rarely taught in school.
Comments
I'd recommend spending some time with other peoples code. Open Source provides mountains of great (and bad) examples. The only way you'll really learn to grok the difference is to spend time enhancing other peoples code. You get exposure to a lot more code that way, since you can't possibly write hundreds of thousands of lines of code by yourself in a short period of time...but you can learn to navigate projects of that magnitude in a few weeks, and learn a lot of what those kinds of projects have to teach you.
Pick a project that interests you and has a large/friendly community, and make a plugin or a patch for it. You'll learn a lot about working with other developers, and a lot about the ancillary tools that are needed to build big and useful software but are rarely taught in school.