T was an exciting field to get into. It was young, and even for the layman, fairly easy to get into. You could easily build up skills, and make a name for your self. Even without a degree, there are many courses, and guys (mostly) got jobs. Our generation replaced the 'main-frame' guys - we used our Java to mock their COBOL, as we showed them Linux running on our laptops that blew their mind.
But after 10 years now, I can see the 'gotchas'. There is no "science" to IT. It changes far too fast to mature. And thats the double-edged sword of IT - low barrier to entry as supposed to medicine or engineering, but because it changes so fast, we are becoming quickly out-dated. Not because we don't have the desire and capability to learn and up-skill, but because we will miss the next big mind-shift, and we won't be fast enough to catch up. The next generation will take our combined learnings as innate and obvious and basic, and will define new architectures that we just won't 'GET'.
They say that Computer Science is about learning fundamentals, that can be applied in other areas. Degrees (Engineering, Computer Science, etc) is more about learning how to learn, then learning any language or system in particular. Its about the basic building blocks of Operating Systems, and databases, and other stuff. They should be able to re-learn and re-invent themselves as systems and tools change. But I argue that in 20 years or less, most of those building blocks (data structures, CPUs, networks) will be so vastly changed, that they wont apply any more. They will be so far abstracted away by new languages and frameworks, that you wont even have to think about DNS and IP any more, it will just be assumed. So all those things that we are so particular about when designing systems, like High Availability, Modularity and so forth, will be 'built-in' to the new building blocks of the future, rendering our past experiences and knowledge as null and void.
The people of a few hundred years ago had to primarily worry about food and heat. Those were their basic building blocks of their life. Nowadays, food and heat are just assumed to be there. We can get it with no effort - its included in everything we know and see. So if a person of the past appeared in this day, his complete life of experiences built around learning how to hunt, and how to generate fire, is completely useless. In the same way, as the building blocks of IT change, at some point, it will render past generations (us) irrelevant.
I think thats the key thought: relevance! Will the skills that we have built now, still be relevant in 20 years time. For a doctor and engineer, as he ages, he just gets better at what he does. For guys in IT, change and time is the killer.
It would be interesting to track how a doctor who qualified ten years, would continue to earn over the next fifty years, compared to an IT-skilled person.
Some interesting posts I came across: