So, Where Is It Going?
So software isn't going in one direction; it is busy splitting into some specialized jobs of component development and more widespread jobs of integration. This split will deepen quickly, and will soon reach the point where the divide cannot easily be crossed. So now is the time to decide where you want to be. Do you value a wide job market, or do you enjoy detailed design and coding?
Component development will have a more limited job market and will use lower-level design, but if you enjoy an intellectual challenge, then that's where the interesting jobs will be. Integration will offer the widest job market and will take you closer to end users.
If you want to be in component development, then you will need strong design skills such as a totally firm understanding of OO and design patterns; familiarity with design, test, and other CASE tools; and mastery of a powerful low-level language such as C++. An understanding of COM will be useful, although .NET may reduce the need to understand all the nitty-gritty. Basic knowledge of a higher-level language such as VB, for use when appropriate, will also make sense.
If you want to be an integrator, then you will need to know one or more of the latest languages such as Java, VB.NET, and C#. Familiarity with OO will be highly desirable, and knowledge of design tools will also be increasingly useful, but the emphasis will definitely remain on coding.
Everyone will need to understand the technologies that glue these levels together, such as XML and Web technologies such as ASP and .NET.