Good mathematics = easy to become a programmer? / Habr

According to the study, there is an impact, but insignificant. Learnability is more about learning new languages ​​(not programming).

What is the first thing you associate with programming? Maybe math? Most of the programmers I know do not associate what they do, primarily with mathematics. Rather, they talk about logic. However, the idea that programming skills are related to math ability remains alive even among programmers.

Most recently it was published study University of Washington. In it, the researchers concluded that advanced math skills are not a reliable indicator that a person will quickly and easily learn to program.

In addition, scientists have identified something else: a predisposition to learn foreign languages ​​strongly affects the ability to learn programming. And it’s about linguistic languages, not about programming languages. The similarities between English, German or French and programming languages ​​may explain the results obtained.

We can say that, just like in “real” languages, there is a grammar in programming languages. They are also made up of real words and require you to formulate ideas – often verbally.

But how was this research conducted?

Python was chosen as the programming language for learning – a good choice for beginners. Therefore, it is well suited for study participants who have never written code before.

Before examining the participants’ ability to learn Python, several tests were conducted: numeracy, language ability, and general cognitive ability (ability to find solutions, ability to update working memory, working memory size).

We will accept language ability (language aptitude) as a kind of human factor that summarizes skills, love and disposition to learn new languages.

To learn Python, participants took an online course at a well-known resource. In each session, they discovered Python concepts – functions, conditions, lists, and so on. During these sessions, participants could ask for a hint or a complete solution.

At the end of each session, they were asked to complete a test of what they had just learned. In addition, by observing each participant, the researchers could calculate the learning rate. Next, we studied the correctness of filling out the test and how often the participants asked for help.

After all the Python lessons, the participants took a vocabulary test – assigning specific functions in a language. They were also tested within the framework of the code structure and asked to write the final project: “Rock, scissors, paper.”

All of these factors have been boiled down to one thing: a general ability to learn to program. Here are the proven predictor types obtained and the results in general:

  • Language ability is the best predictor of learning productivity.

  • Success in programming was largely determined by general cognitive abilities; In second place – language ability

Language difference?

The research was done in Python, and the author asks at the end: what would be the results if a more complex language were chosen instead of Python? While Python has a low threshold of entry, other languages ​​do not.

I think that using a different language might well have yielded different results. However, it seems that all programming languages ​​are, after all, just languages ​​to be learned initially. When the vocabulary is known, there shouldn’t be much difference when implementing the same small programs. At least not in the most popular languages.

On the other hand, the difference does exist when comparing the different capabilities of programming languages. Writing a Python program in a Python style is undoubtedly easier than writing a C program in a C style (subjectively). Different languages ​​offer different features. And these functions require different amounts of cognitive effort.

What do you think about this?

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *