I've heard this statement thrown around a few time by technology/science pundits on the web. Does it have any merit? What exactly do they mean?
|
|
Knowledge of specific platforms does get out of date pretty quickly. However, if that is all you are getting out of your education you are doing something wrong. The theoretical stuff that makes up most of a good CS course is not tied to a specific technology - a lot of the basics have remained much the same for decades already. |
|||||||||||||||||||
|
|
No it isn't true, provided your undergrad education has focused on fundamental skills and principles and not just learning the latest flavor of the month programming language. What they are implying though, is that certainly technologies can become hot relatively quickly and then equally as quickly fade into obscurity. |
|||
|
|
|
It depends on the college (university, whatever) you go to. If they're teaching you the details of a Java 1.7 or .NET 4.5, then yes, it's going to be out of date before you graduate. If they're teaching you big-O notation, and basic algorithms like QuickSort, binary search, B-trees, and so on, then no it's probably not going to be obsolete before you graduate -- or, probably before you die. Quite a few of these have been proven to be within at most a constant factor of optimal. Many of the basic algorithms have been known for decades. While there have been improvements in the way they're implemented since, changes at this level happen relatively slowly and when they do they're generally fairly minor. If you are in the one of the former programs, my advice would be to simply find a better school. If you care, you can find one that's worthwhile. |
|||
|
|
|
The specific version of Visual Studio or whatever will be out of date, and your sense of the industry will probably be a little behind whatever is the cutting edge, but most of what you learn will last. Things like algorithms, OOP concepts, etc. don't go out of date. Just to pick one of the many many examples, notice how many current languages owe much of their design to Smalltalk? Well Smalltalk was developed in the 70s. Now, my point about your sense of the industry is important, but then that's why most employers don't expect new graduates to know a whole lot about the industry at first. They expect to have to train new recruits in development practices and current trends in development frameworks and what have you. |
|||
|
|
|
Becoming a programmer is a huge commitment. You will have to earn a great deal in addition to what they teach at school. Believe it or not, once you really understand some languages and concepts similar tool are easy to pick up. Take c#, if you really know Java you are halfway there before you even tough your first c# book. Colleges vary greatly in the quality of their CS programs. When researching schools don't research the school as a whole research the CS department. Here's a trick: Think of some question to ask the professors. I really doesn't matter what. Ask them about the syllabus or something. Email a bunch of them. If you get no answers, defensive answers, or even snotty insulting answers... I got news for you that department sucks. Don't be afraid to play around with stuff and ask question on sites like this. Also it's not 1999 anymore. Finding a good job can be tough even with a degree. Wages are pretty low. Where is live in New York State a high school teacher can easily make as much as a mid-level programmer. Be careful about debt. |
|||||
|
|
Computer science has some targets:
While these targets can sometimes conflict, most of the stuff they teach are only coming to be useful. Companies are working in half year cycle, so what you learned in CS is not immediately useful, since it's supposed to last 30 years, not half year. |
|||
|
|
|
As some answers already suggested some will and some won't. Also it depends greatly on where you study. The following should be static to an extent: OS stuff, algorithms, COBOL, SQL, basics of Java and .NET, concepts of database design, HTML and CSS (basics). New versions are coming every few months, but each of these subject is large and in no way you can be taught all this stuff in a school. So, yes things will change but it does not mean that it is useless. In other words, don't worry, no hiring manager would expect you to know the latest advances in SQL Server 2008 R2 or Silverlight SDK 5.0. |
|||
|
|
|
What you are learning now is not that important in computing. A developer learns each day of his working life and loves this unending knowledge acquisition. A degree in computing does not provide knowledge that you will use in your job: they don't teach version control, they don't teach testing. A degree in computing aims at selecting people that are already dedicated to software engineering. The best programmers in the world are not from famous universities, they are self taught. |
|||
|
|
A degree in CS should provide you the basics you need to become a rockstar developer - assuming you are interested anyway. Most of the fundamentals of CS are language-agnostic and algorithms can be implemented in virtually any language. With a CS degree; you should have a deep theoretical understanding of how computers work and this should give you an edge over others who don't have such knowledge. All these assumptions only hold if you are interested in pursuing a career in software development and really love to learn new solutions... |
|||
|
|
|
No. The 10 best algorithms you learnt do not get outdated. In fact many algorithms are proven to be as effective as the can be. For instance learn radix sort and when you need it and that won't change between implementation versions and UML and SQL are already very old and still much in demand. And if you know C and if you can solve all of your problems in C then your knowledge probably will be regarded as updated while C is an old language and Java is not very now either. I learnt python and YAML for new stuff. If those get outdated I'd be happy to switch to something better, as long as the change is for the good. |
|||
|
|
