Hacker News new | ask | show | jobs
by subject117 2359 days ago
Could someone elaborate on what they think a good developer should "learn cold"
1 comments

Linear algebra, discrete math, calculus. The mathematical underpinnings of algorithms and data structures. Turing machines will be a lot more useful once you actually know how to use properties to prove more things. A kindergartner can recite the layman description of an infinitely long tape with ones and zeroes but such simplistic understanding has very little practical use if you don't understand how it fits into the context of CS in general. Machines improve, architectures evolve, frameworks change. But math doesn't. Every few days there is a new "linear algebra for machine learning" guide that pops up on HN and every now and then there will be a "how to learn math" question on HN. The lack of mathematical maturity among software devs and engineers is not a good thing and reflects poorly upon the industry. Too many universities these days focus mostly on practical leet coding rather than the theoretical underpinnings of CS. An in-depth study of the finer aspects of a networking protocol would become outdated the moment the next iteration comes out, but a close examination of Shannon and information theory will serve you well for life. There seems to be a continuous myth that undergraduates cannot code a FizzBuzz to save their lives and thus all focus should be placed on testing that specific skill. This mentality of being dismissive towards math is pernicious to computing as a science and relegating theory as "stuff I never ever needed in my n years in industry" creates a harmful echo chamber for software engineering.
I'm not saying these aren't important but for most developers this stuff is rarely going to be used. Most "developer" jobs are not math heavy. I'd rather push someone to learn how to write clean code and focus more on the engineering aspect.
Yes, this is what I'm referring to. Math and algorithms rarely, if every, show up in my work beyond basics that don't require more than a week or two of information.
Can you recommend resources that teach what you think the fundamentals should be?
Not OP, and not necessarily endorsing these specific topics as most fundamental to a CS education (I've more often drawn on discrete math/symbolic logic) but 3Blue1Brown has great series on introductory linear algebra and calculus. And Symbols, Signals, and Noise: An Introduction to Information Theory by John Pierce is also good.

My own view echoes this (https://meaningness.com/metablog/how-to-think), which is that it's often useful to know a little about a lot of different kinds of math. That way you'll set yourself up to notice when and where some specific discipline might apply, then you can go back and learn the details if you need to.