2 ms·
I disagree with this, please let me share my opinion, but I do not have a strong opinion regarding this. I think fundamentals of CS are crystal clear and are n
by gnulinux 7y ago
I disagree with this, please let me share my opinion, but I do not have a strong opinion regarding this.
I think fundamentals of CS are crystal clear and are not changing constantly at all. There are ideas, techniques and principles that were set decades ago and are still fundamental. Things like "program is data", certain set of abstract data structures (array, list, map etc), certain algorithms (BFS, DFS, topsort, sort, tree-search etc), certain mathematical methods (proof by induction, least squares, SVD etc), basic software engineering principles (abstraction barrier, abstracting something out, data types, parallelization, runtime polymorphism etc), and system concepts (OS, syscalls, cache, filesystem, database, branch prediction etc) are always there and are very much sufficient for most people to read new ideas on CS. If you have an undergrad degree in CS and studied most of these things and did well, you can pull up any blog post/paper and with sufficient amount of effort, you'll be able to learn new things.
CS suffers from a lot of hype. We have a lot novel ideas and they are actually very useful to solve larger problems. This gives the illusion that CS is constantly moving and changing. Whereas, the battle-tested ideas are there and the newer ones are extension of these ideas. My opinion is once these new ideas can be simply explained using CS-primitives I listed above so that someone with BS in CS can understand, they'll be actually widely useful topics. Until then, they're concepts experts playing around with and seeing if they're effective at solving some problems.