Misconceptions When Learning Multiple Programming Languages And How To Learn More Effectively
A more extensive post about this can be found here:
In this current post, I’ll just share my experience in learning multiple programming languages. I started with Logo and GW BASIC in my teens, but they were mostly forgotten and not transferred to my later studies. My first comprehensive study of a programming language is the C programming language when I was in my twenties. Then, due to a work attachment, I had to learn Visual Basic Applications for MS Excel. That was also a long time ago, and I remembered having to learn much about projects, components, objects, and properties, which were all different from the basics of the C language.
In my thirties, I started learning about the web development languages: HTML, CSS, JavaScript. My impression was that HTML and CSS have a simple syntax, so they were easy to learn. For JavaScript, I could learn more easily due to its similarity with the C programming language in terms of syntax. In my forties, I learned the functional programming language of Haskell, and realised that there were negative transfers, because something as basic as loops in the C language were non-existent in Haskell. In Haskell, it was about pattern matching for recursion, and besides using that for looping, only list comprehension could be used for mapping or applying functions to a set of predetermined values. This is the functional programming approach in Haskell as the alternative to the “for loops” in imperative programming languages like C.
After learning about functors and the map application in Haskell, I had the impression that map is a function. However, when I started learning PureScript, another functional programming language, I realised that Data.Map exist in both Haskell and PureScript, and it’s a data structure. This realisation came only after I’ve encountered difficulties in understanding the syntax of a codebase I was working on, which had been developed by others. Hence, it must be noted that misconceptions can occur even within the same programming language, if the programming language is very extensive and we have not learnt everything about it.
Note: Although I’ve learnt other programming languages, I’ve just focused on these few languages to keep this post short.