Topics to learn to become a good programmer

summary: I know that haskell is widely used in programming language research and I have found that there are many very useful topics for better programming. Which ones do you think should be studied to become a good programmer?


Learning haskell allows you to learn new concepts that enable you to program better in other languages as well.
I know that haskell is widely used in programming language research and I have found that there are many very useful topics for better programming, some examples are: category theory, dependent types, lambda calculus, etc.
What do you think are the topics that need to be explored in order to be a good programmer?
What topics do you think are indispensable?
Which ones helped you to program better and better understand what you were doing?
What are the important topics in research in that area?
I am excluding the basic topics that everyone should know, such as algorithms, data structures, OS, hardware, etc.

This post is different from the previous one because I am only asking you about theoretical topics and not specifically related to haskell.

Hi, I’m not quite sure why these topics are the first on the list to be a good programmer. I wouldn’t put them in the first place for being a good Haskell developer, even.

If that matters, I have “Haskeller competency matrix” that reflects what I consider a good (Haskell) developer.

There are such things for various other languages, and I have never seen any of these topics (Category Theory, Dep Types and Lambda Calculus) as a requirement. Especially considering that these are not known to the 99% of the industry.

Not that they don’t contribute to a good skillset. They do this because they can broaden the horizons and somewhat affect the coding practice. But these topics don’t constitute the skeleton of the notion of a good programmer.

P.S. Programming is mostly a practice, not a theory. Having a lot of knowledge from various theoretical disciplines doesn’t make a person a good programmer. Theorizing can’t help if there is no real practice behind. A lot of practice. In fact, knowing the theory today is not even the main requirement in the industy.

3 Likes