I've been pondering these questions. With technologies of today and tomorrow being out there, having the skills to learn the information and also to continuously educate yourself is one of the best "skills" a person can have. In addition to be able to absorb information, I've seen it being extremely beneficial to be able to apply and present what you've learned. In the situation of presenting the topic, it assists in validating your knowledge and also easily identify holes.
Most college graduates in college are not focused on a single programming language. Colleges for the most part prefer to provide a variety to languages, which is good for a neophyte who doesn't have a preference; however, it also shows the difficulties of using college as a baseline for a developer. I switched colleges a lot when I was in school. Not all of my credits would transfer and in a few of those cases, I got to experience lvl 2 classes of many programming languages. After a couple 2nd level Java and VB classes as well as the interviews and research I've done, college really only teaches some basic File IO and possibly some DB connectivity. Some colleges DO take development courses further than this; however, many programs only get this far.
So you're a recently graduated college student with knowledge of the basics and a desire to learn more. What do you do? There's plenty of resources out there now for the Internet generation. Google, MSDN, forums, user groups, Safari, Books24x7, ElementK, and more are out there for easy learning. Their effectiveness really comes down to that of the individual. If the person learns best from reading and applying, that person won't have any troubles but what about the others who prefer examples or mentorships?
While everyone prefers a specific learning style, that doesn't mean the paths they choose doesn't have to different: same content but different means. So how does a person who knows the basics through College level 2 VB or Java get to being a skilled .Net 3.0, SOA, or basic OOP developer? How does one learn topics that are somewhat scarce due to "common knowledge"?
There are some steps that make a sense sequentially like the following:
- Basics > OOP > SOA
- .Net 2.0 > .Net 3.0
- OOP > Unit Testing
With this goal in my mind, I shall hopefully minimize my ramblings like these first couple posts have been and start putting more technical content in. If even one person find it useful then it'll be worth it in my opinion.