The Study Programming Languages
There are many reasons why a good programmer would be interested in the systematic study of programming languages:
- Understand obscure features. Languages often have core features that are used often (for, while loops, etc.) Then they have less common features. For example, in C++, union types, multiple inheritance, variable number of arguments functions are less often used features. Understanding the common basic concepts in all programming languages, means you can guess that a language has an obscure feature, even if you don't know its syntax and then look it up.
- Choose among alternative ways to express things. Often a language has multiple ways to express/implement the same thing. In order to choose amongst alternatives, it is important to know their costs in terms of their underlying implementations. For example, in certain poor compilers, x*x might be faster than x**2.
- Make good use of debuggers, assemblers, linkers, and related tools. Although one advantage of high level programming language is that you don't have to sweat the low level details, some times, for tenacious bugs, you might need to understand how things work at a lower level.
- Simulate useful features in languages that lack them. For example, C is not usually considered object oriented, but if you want to program in an object oriented way in C, it is possible by using struct's, together with function pointers.
- Make better use of language technology whenever it appears. People are constantly creating new file formats for documents, spreadsheets, wiki's, markdown languages, drawing graphics scene in games, etc. Knowing how to write one's own parser and analyzer for new formats can be extremely useful.