Live data from Hacker News

Relating natural language aptitude to differences in learning programming

nature.com

21–30 of 50 posts

Re: Relating natural language aptitude to differences in learning programming

#22
post #2

I had always hypothesized that numeracy is, besides being generally useful of itself, mostly useful to programmers as application domain knowledge rather than as an indicator of learning programming concepts or programming languages. That said, an awful lot of certain problem domains are heavy in mathematics.

(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.

Honestly 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.

Re: Relating natural language aptitude to differences in learning programming

#23
post #13

Earlier quoted context omitted.

I think eyeballing a scatterplot is often more useful than just looking at the p-value.

One of the big takeaways from my stats class is that eyeballing a scatterplot is much less useful than you think it is.

Eyeballing something is useful to get theories that can actually explain the data. Numeric statistics are useful to disprove those.

If you are at an exploratory phase and your plots look a sky map, then you have a bad data representation. On that case you can't even extrapolate a positive correlation into a theory that one value will grow when the other grows on any specific case.

Re: Relating natural language aptitude to differences in learning programming

#24
post #22

Earlier quoted context omitted.

(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.

Honestly 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…

I 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.

Re: Relating natural language aptitude to differences in learning programming

#25
I don't have time to read this whole study, but am a little skeptical of the hypothesis.

Much of natural language aptitude is about fuzzy logic with lots of exceptions (in English at least) and contextual intuition (especially in Chinese). Whereas programming computers requires more mathematical oriented thinking and raw working memory for abstract symbolic logic.

I recall Joel Spolsky (I think) wrote in one of his essays a long time ago, that one of the obstacles to learning programming for some people is that they kept trying to find some kind of meaning in the symbols. Eg they remember things by associating meaning with them. Whereas people who pick up programming more easily have no need to find meaning, they just remember things directly without any kind of association aids.

Natural language is all about meaning on multiple levels - literal, contextual and implicit. Someone naturally good at that may not necessarily be naturally good at programming.

For anyone who read the study, was this addressed in any way?

Re: Relating natural language aptitude to differences in learning programming

#26

I wonder if this predicts any better than a generic IQ test? The idea behind IQ is that lots of different cognitive tasks are correlated.

From their supplementary table this looks like a general cognitive ability effect, although they don't seem to have included the range of measures that are typically included in general cognitive ability measures.

The short answer is that it's difficult to say from their results, and they don't explicitly test that, but it looks like it.

Re: Relating natural language aptitude to differences in learning programming

#27
post #4

The scatter plots seem quite spread out. If you removed one outlier person from the numeracy plot it would be much more correlated. Maybe that person is a special case somehow. I wonder if there is any formalized way in statistical hypothesis testing to quantify how much the conclusions could be changed by removing at most k (e.g. k=1) number of datapoints.

It is suspicious that they had so many with 0 correct answers out of 8. Here are the 4 easier ones of the questions: > If the chance of getting a disease is 10%, how many people would be expected to get the disease? Out of 1000? > If the chance of getting a disease is 20 out of 100, this would be the same as having a _____% chance of getting the disease. > Imagine that we roll a fair, six‐sided die 1000 times. Out of…

>> Imagine that we roll a fair, six‐sided die 1000 times. Out of 1000 rolls, how many times do you think the die would come up as an even number?

A classic example of a question you can only answer if you don't know what you're talking about. I bet they think the answer is 500.

500 is the most likely result, but the odds of actually getting 500 heads on 1000 flips of a fair coin are 2.5%, 1 in 40. A little ways out, at 505 (or 495) heads, the odds have fallen all the way to... 2.4%.

This is kind of like asking "Imagine that we roll a fair, six-sided die one time. Out of that one roll, which number do you think would come up?"

Except, assuming you make the best possible guess both times, you're more than six times as likely to be right for my revised question.

Re: Relating natural language aptitude to differences in learning programming

#28

I don't have time to read this whole study, but am a little skeptical of the hypothesis. Much of natural language aptitude is about fuzzy logic with lots of exceptions (in English at least) and contextual intuition (especially in Chinese). Whereas programming computers requires more mathematical oriented thinking and raw working memory for abstract symbolic logic. I recall Joel Spolsky (I think) wrote in one of his e…

"Across outcome variables, fluid reasoning and working-memory capacity explained 34% of the variance, followed by language aptitude (17%), resting-state EEG power in beta and low-gamma bands (10%), and numeracy (2%). "

Seems fluid intelligence is twice as important.

Re: Relating natural language aptitude to differences in learning programming

#29

I don't have time to read this whole study, but am a little skeptical of the hypothesis. Much of natural language aptitude is about fuzzy logic with lots of exceptions (in English at least) and contextual intuition (especially in Chinese). Whereas programming computers requires more mathematical oriented thinking and raw working memory for abstract symbolic logic. I recall Joel Spolsky (I think) wrote in one of his e…

> Much of natural language aptitude is about fuzzy logic with lots of exceptions (in English at least) and contextual intuition (especially in Chinese).

Not saying you're wrong, but do you have a source to back up this claim?

Re: Relating natural language aptitude to differences in learning programming

#30
I am missing something. This is a study with 36 triallists fitting responses to a relatively high-dimensional model with several input and explanatory variables.

I think one could reasonably expect to see a wide range of outcomes in this circumstance, but it does not seem newsworthy.

Post reply on HN