4 ms·
The fundamentals don't change. Merge sort in Cobol is the same as in assembly. The rest is window dressing.
by dkarapetyan 9y ago
The fundamentals don't change. Merge sort in Cobol is the same as in assembly. The rest is window dressing.
- unoti 9y agoYou're right, but the window dressing is the platforms we use to build production software. Other people responding to this comment seem to think that the CS fundamentals aren't worth getting good at. I think both the CS fundamentals and modern frameworks are both worth knowing well.
- arvinsim 9y agoBut then again, it goes back to the question of time. It is already hard enough to keep up with modern frameworks on one's free time. Adding CS fundamentals to the mix makes it worse. All of our free time will be eaten up. Unless you like to be immersed in that world 24/7, something has got to give.
- krupan 9y agoThe fundamentals don't change every six years. Get them down, then do a quick refresher before a job interview.
- dkarapetyan 9y agoThis is the correct answer. Much of CS theory is timeless. Relational algebra has not changed since it was conceived and applied to create SQL.
- diminoten 9y agoTrue, but you don't write merge sorts anymore. A lot of the fundamentals are valuable to know but not actually used in most situations. It's good you know how TLS works, but you really ought not be writing a TLS library yourself.
- dkarapetyan 9y agoYou'd be surprised how often tricks used in implementing those fundamental algorithms can be useful in day to day work. Recent example I can think of was using GLPK to implement a dynamic allocation strategy for some spot instances for a pool of heterogeneous servers. I did not implement my own solver for the integer linear constraints but just knowing that allocation problems can be expressed as integer linear programs helped me tackle the problem in a way that others did not think of. So I don't really buy the argument that knowing merge sort is useless knowledge because you never get to implement it. The value goes beyond just knowing the implementation. Same goes for other kinds of fundamental and timeless concepts and results.
- diminoten 9y agoSure, but you're the guy who writes the library that I use because I have no clue what the hell you just said! It'd be downright dangerous if I hand-roll anything like it.
- dkarapetyan 9y agoI hope that's not the lesson here. I was trying to get at the fact that understanding the fundamentals means understanding and exploiting the connections between seemingly different concepts and that learning and understanding merge sort is not time wasted and will come in handy in all sorts of situations. When in doubt just remember this Feynman quote “Right. I don’t believe in the idea that there are a few peculiar people capable of understanding math, and the rest of the world is normal. Math is a human discovery, and it’s no more complicated than humans can understand. I had a calculus book once that said, ‘What one fool can do, another can.’ What we’ve been able to work out about nature may look abstract and threatening to someone who hasn’t studied it, but it was fools who did it, and in the next generation, all the fools will understand it. There’s a tendency to pomposity in all this, to make it deep and profound.” – Richard Feynman, Omni 1979
- diminoten 9y ago
- sidlls 9y agoActually the rest isn't window dressing, unless you're working on a very narrowly scoped glorified CS project. Actual engineering-scope projects may or may not require a deep understanding of "the fundamentals" but certainly not to the extent that the focus on them for interviews suggests.
- dkarapetyan 9y agoI don't understand what distinctions you are drawing. I don't know what engineering-scope vs CS means.
- deleted 9y ago[deleted]