Skills Needed For a Future In IT
Lucas123 writes "An increase in the pace of change in IT has created new dynamics for jobs involving the Web, mobile computing and virtualization. For those looking to enter the marketplace in years to come, 30-somethings hoping to upgrade their skills, or those who'll be winding their careers down by 2020, skill sets are drastically changing. For example, graphics chips are doubling in capacity every six months. That translates into a thousandfold increase in capacity over a five-year period — the average shelf life of most game platforms. 'We've never seen anything like it in any industry.' Colleges are in continual catch-up mode and have only recently added project management and soft skills training to computer science programs. According to one expert, 'They're about five years behind where they need to be.'"
These days, anyone that industry likes is an "expert."
College works best when it functions as (a) a qualification program and (b) a general, background, theoretical and broad study of the subject matter.
Qualification in this case means that you go to college to endure an extended test that ultimately shows how dedicated and intelligent you were. Made it through four years of Harvard? You're pretty good, usually.
A general background means that you study the theory and a broad survey of the topic, so that you understand the underlying issues and the basic methods of addressing them.
I don't think it makes sense to teach specifics in college, except vocational colleges like community colleges. That's the kind of stuff you learn on your first few jobs anyway, and it's so rapidly changing that trying to get college to teach it is a moving target no one will hit.
Futurist Traditionalism
They've been calling colleges out for being "five years behind" since the first Computer Science programs started. But truthfully they are always at least five years behind, but while true the skills most teach are already "soft" enough to transfer into the latest and greatest toys. Java? Now you can write PHP, or C#. C? Now you can write Object C, D, and C++.
There is always this interesting push between what I like to term the Computer Science Vs. Software Engineering people, in which the former always wants to play with new interesting toys, write code, and generally act like an impulsive teenager, while the latter wants to be an old man, being safe, writing plans, timetables, and those middle management bits that drive CS people up the wall.
I think when we're young (mentally) we're CS, and as we age we gradually turn into Software Engineers.
I've been working in IT for some time now, and I think that that any specialized hard-skils are pointless. Most of my success has been able to adapt to new technologies, languages, ideas, etc. IT is constantly changing (which is what attracted me to it). What you need is a solid background in IT concepts (how to program in A language, how to understand the TCP/IP stack, what a protocol is, etc), a solid understanding of interpersonal communication, and a willingness to change and adapt.
The ability to bullshit people into thinking that you know what you are doing despite the fact that half your job consists of trial-and-error attempts to work around the constraints imposed by other people that managed to bullshit people into thinking they knew what they were doing.
I've abandoned my search for truth; now I'm just looking for some useful delusions.
10 years ago when I was in college, I asked what the future of computing was going to be like. I was told that linear algebra would probably become much more important because quantum computing was on the horizon. Quantum computing still hasn't materialized, but linear algebra is looking to be more important anyway. The cool bit about linear algebra: it's always been useful. 10 years ago, we were talking about resource problems. Today those problems still exist. A good algorithm is just as important, and understanding the computability of a problem. 10 years ago, we were talking about the importance of having a deep understanding of the languages, not just knowing "C, C++, or Java". Today, a deep understanding will still help, and knowing only the fad-language-of-the-day will still get you in trouble. 10 years ago we talked about multi-processor programming. Today we talk about mutli-core programming. Multi-threaded applications have been around for a long time. Other issues: security, project management, and software lifecycle. I've yet to see a new issue, just an old one in a different way.
6 years ago, I wrote a software requirement spec, and software design spec. In it I said the web application had to be able to run efficiently on a 300MHz processor over a 56K modem. I didn't realize that in 6 years, smart phones were going to be so predominant that people would still be using 300MHz processors over 56K connections.
Today, tomorrow, yesterday; it's all about understanding the fundamentals. The details may change, but the foundation is the same.
Until then, it's the hard skills that most companies use as the prime determinate for whether or not a given application gets a first-level interview.
IT is one of the absolutely worst industries for pigeonholing, and your last job is the one that gets tattooed on your forehead, not the stuff you know (or think you know) the best.
Welcome to reality ... for the past 20+ years, sadly. I don't see it changing soon, as that requires an actual level of understanding on the part of those that be hiring.
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.