3 ms·
(This is armchair psychologist speculation...) I wonder if numeracy is actually a correlated factor to the propensity for modeling systems, which is very much
by munchbunny 7y ago
(This is armchair psychologist speculation...)
I wonder if numeracy is actually a correlated factor to the propensity for modeling systems, which is very much relevant to learning to program in any programming language. In my anecdotal experience, being fluid with numbers often comes from having a bias towards thinking about the world in terms of numerical relationships.
- cestith 7y agoHonestly the biggest benefit I can see with knowing some math beyond basic arithmetic for some types of programming is understanding code complexity and big-O notation. If you're doing 3D graphics projections you're going to want linear algebra. If you're doing financial forecasts you'll probably want to know calculus. If you're modeling throughput of large menssage-passing systems with multiple cooperating processes you need to know ratios and proportions. If you're the one maintaining the query planner for a database or maintaining a large, high-performance data store you're going to want to understand relational algebra. For a CRUD application or some light server automation understanding data flows, boolean logic, and some really light set theory helps but is not necessary to get started. There's an awful lot of code out there that is not actuarial, simulation, or engineering code. People understand things numerically, sure, but also spatially, linguistically, mechanically, or logically. Mathematicians and physicists can give you more precise descriptions of many things that people don't do much math about in their daily lives. Just like people don't need to be linguists to communicate, people don't need to do a lot of heavy math just because the underlying tools are based in math and mathematical logic. Math can definitely help one understand the system better and excel at optimizing code and solving certain programming issues. And as I said, a lot of the problem domains people write code for are themselves very heavy with math. There's a reason CS grew largely out of mathematics and physics departments at universities, but this study was about understanding the concepts of programming in a high-level language.
- munchbunny 7y agoI don't disagree with you, but as far as I'm aware the study was talking about "numeracy", not math. From the Wikipedia article on "numeracy": Fundamental (or rudimentary) numeracy skills include understanding of the real number line, time, measurement, and estimation.[3] Fundamental skills include basic skills (the ability to identify and understand numbers) and computational skills (the ability to perform simple arithmetical operations and compare numerical magnitudes). More sophisticated numeracy skills include understanding of ratio concepts (notably fractions, proportions, percentages, and probabilities), and knowing when and how to perform multistep operations.[3] Two categories of skills are included at the higher levels: the analytical skills (the ability to understand numerical information, such as required to interpret graphs and charts) and the statistical skills (the ability to apply higher probabilistic and statistical computation, such as conditional probabilities). A variety of tests have been developed for assessing numeracy and health numeracy. That's just basic arithmetic, not any of the heavy math that you described. I'd argue that for a lot of CRUD apps, numeracy as a skill is quite important - though that's not relevant to the topic of picking up programming languages/concepts.
- cestith 7y agoWell, numeracy and "fundamental numeracy" / "rudimentary numeracy" leaves a bit of wiggle room. Conditional probabilities and the ability to interpret charts already are quite a bit more advanced than percentages. None of this is really as helpful as Boolean logic for basic programming skills in a high-level language.