Knowing about things is cheaper than knowing things
Short one this week because I'm way behind on book and conference prep.
Last week a LinkedIn Influencer wrote about how math has nothing to do with programming, so I spite-wrote a rejoinder about how math is necessary to program (just try to write software without knowing arithmetic!) and man I forgot how much spite can fuel writing. Maybe I should go back to Twitter (absolutely not).
But it got me thinking about the difference between "all programmers can benefit from learning math" and "all programmers need to learn math". I simultaneously believe three things:
- There is some math, like arithmetic (incl. arithmetic of booleans, sets, functions, etc), that is useful to all programmers.
- The remaining fields aren't useful to most programmers.
- Every programmer works in a domain where there is at least one branch of math that would benefit them to learn.
(2) means that if get a group of 100 software engineers and teach them something like algebra or calculus, you can't expect it to be applicable for more than 3 or 5. Whereas if you teach something like shell scripting or regular expressions it'd be useful to at least, like, 50. So no field of math has a good RoI for the average programmer.
(3) means that each of those 100 developers could, on their own, find a field of math that is useful to them. In order to do that, though, they need to roughly know what the fields are, what the big ideas are, and where they might be useful. It is more useful to teach them about many fields than to teach them any one specific field in-depth.
I think that's generally true with most areas of knowledge! Getting basic exposure to something takes a lot less time and effort than learning it in-depth. If you're specifically trying to learn things that will be useful to your work1, you only want to go in-depth on topics you know will be helpful. But you won't know the topic is helpful (or even that it exists) unless you know the very basics already. So it makes sense to get broad exposure to lots of topics and only later choose what to go deep on.
How to do this
Uhhhhhhhhhh
Honestly the thing that's worked best for me personally is to read stuff meant to give a broad exposure without lots of details. Non-honors undergraduate textbooks are really good for that. It helps to approach it like "learning for the fun of learning" and not "learning to accumulate potentially useful stuff for later".
Conference videos can be good, too, though I'm not a video person. I imagine popular-science stuff could be useful but 1) I grew up at a time when "popsci" meant "lying about science to make it sound more impressive" (though I know Quanta's really good now) and 2) I tend not to mesh with the popsci writing style.
No Proper Newsletter Next Week
I'll be at Craft Conference Budapest. That said, there I'll be uploading some Logic for Programmers-related material that's about the length of a newsletter, so keep your eyes peeled!
-
Which to be clear is not the only reason to learn something! ↩
Add a comment: