Avoiding the pitfall of language fundamentalism. Why the obsessive pursuit of language mastery will not translate in results

“Learning the fundamentals and building a system, are actually distinct pursuits.”

Learning a language takes time and complex and rich languages take necessarily more time to learn than less complex ones. As professional software engineers, our job is to code in some language. Diligent software engineers will have the drive to invest extra time in learning the different aspects of the language. However, realise that learning the fundamentals of a language and using the language as a tool to do your job are actually two distinct pursuits. Over time you can specialise and be productive in the two, but you need to prioritise one over the other at a given time.

“… although it is certainly helpful for the author to be able to reason about linguistics at some level, knowing everything there is to know about it is not going to help him sell more books.”

A best selling author certainly has to have a high knowledge of the language he writes in, however he would get 10 nil from a linguist regarding its correct use. Although both of them work with language, it’s clear that the two of them are on a very different professional trajectory. And although it is certainly helpful for the author to be able to reason about linguistics at some level, knowing everything there is to know about it is not going to help him sell more books. By choosing to focus on the language fundamentals, the developer is making a decision to pursue one path rather than the other. And this has important implications. If knowing the language is not sufficient to get the job done right, what other factors are there?

“Knowing the language is not sufficient to produce a functional and efficient system.”

Do I mean with all this that you should disregard learning the tools and stack overflow your way through the requirements? No, it means that it’s necessary to factor in other things when deciding how to reason about your work. The conclusion is that what’s necessary is to switch the focus according to the problem at hand and your motivation. Is worrying about the structure and fundamentals of the language, related to the task at hand, or is the need to iterate and produce a functional, readable first pass of a system the current objective. Both are valid pursuits, but keep in mind that they do not intersect at all times.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Flavio Sousa

Flavio Sousa

I’m a Software Engineer based in London and I write about tech, open data, and the occasional numerical experiment