3 ms·
I 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 betwee
by dkarapetyan 9y ago
I 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 agoThe point I'm trying to make is that what you're describing as "fundamentals" aren't actually fundamentals; that it's a spectrum, and the "things that need to be known to excel" are not what they used to be. Maybe they never were those things. There's a heavy bias towards the belief that CS, as it is currently taught, provides the "fundamentals" of software development and design. It does not, at least not as completely as the common belief seems to be. This can be reinforced by the current state of our interview processes. One has to re-prove one's understanding of such fundamental concepts, when the degree should, in theory, be enough, as it is in many other professions. Conversely, a failure to understand fundamental CS concepts (invert a binary tree) doesn't preclude someone from being a successful software engineer (create homebrew).