Future proofing CS knowledge

4 points by dwong ↗ HN
I'm a computer science student. Programming and IT change very fast, and constant learning is required to keep up.

However, I'm wondering about how a programmer would try to "future-proof" his CS knowledge. Is it more important to learn the math, algorithms, and logic instead of focusing primarily on languages?

What are the trends you guys see in computer science right now? What knowledge will still be valuable in the future, 30-50 years from now?

6 comments

[ 3.1 ms ] story [ 28.0 ms ] thread
Well, considering LISP is still as valuable as it was 50 years ago (and lisp-variants aren't going away, because people will move to higher levels of abstraction), learning to program in some lisp-variant (i.e. Racket), would seem like a good bet.
I don't think logic (including syntax and grammar) will get outdated, I'm not trying hard but the maths and logic from the Greeks has lasted longer than their theories on matter, gods and treatment. The trends will be slow enough for even those rarely active to keep up (triply so in enterprise).
Actually learn computer science.

I wish someone would have told me this before I started school but Computer Science and programming/ Software Engineering...

are not the same thing

Pay attention in your data structures and algorithms classes, ask questions of your professors and TAs, and most importantly work on as many of the problems as you can.

Those things are important because they help you understand and decipher about why programs and languages work the way they do. And the trade offs you make in designing them.

If you do you'll be able to pick up any language that is thrown at you because you'll understand the underlying concepts.

Thanks for the responses. Yeah, I was thinking that it was very important to actually learn the "computer science" part and not just the programming part.
In addition to what's been said, design patterns will serve you well for a long time.
Learn C, Unix and SQL. They will not go away in the foreseeable future.