3 ms·
Usually when I’m learning a new thing I work backwards: what do I want to do, and what do I need to understand to accomplish it? The reason is very simple. If y
by janalsncm 2y ago
Usually when I’m learning a new thing I work backwards: what do I want to do, and what do I need to understand to accomplish it? The reason is very simple. If you learn a huge list of “skills” or “tools” you’ll be a mile wide and an inch deep, which isn’t really good enough to get anything done. You have to get your hands dirty.
This is also why (controversial take incoming) I don’t think calculus should be a prerequisite for computer science or even machine learning. Yes, it is possible you will need to know it. But most likely you won’t. Most people aren’t writing their own loss functions or backprop libraries. And if you are, great! You can learn it later. Way too many people stop before they ever get started because of unnecessary gatekeeps.
- duped 2y agoOne reason calculus is a good prerequisite for CS is that it's typically where you introduced to the concepts of limits and are taught how to look at a formula and see how it behaves at extrema and critical points, if you're good it can be done by eye or with some basic white boarding. And that's (in the broadest strokes) the key skill set for complexity analysis and software architecture. One of the worst trends I've seen in recent years is the dogma of benchmarking and profiling as the gods of performance analysis. Any decent software engineer should be able to reason about how a program behaves by reading it before reaching for automated tooling - which by the way, won't tell you why a benchmark is bad or why some section of the program is a bottleneck.