1. Studying the Patterns
Linguistics is not about learning new languages, but more about studying their structure and rules that define them, finding abstractions and comparing the different ways they use to convey the same messages. Different languages - whether they are natural or programming languages - might function in some ways. Therefore, understanding the principles of a number of natural languages gives me the ability to quickly spot patterns in the next language I learn.
On top of that, in many cases some elements of the structure are similar in two separate languages, so once I picked those up, I could easily leverage this when learning the two programming languages that don’t seem to share an immediate ancestor. Therefore, switching from object-oriented Ruby to functional Scala will potentially be much easier for me in the future, should I decide to learn it. And let’s be honest - web development requires you to juggle a few different languages at all times and always be on the lookout for the “next big thing” that may or may not become the new standard.
2. Taking Advanced Courses
Standard programming courses online are usually delivered in a clear and easily understandable way. They provide basic information about coding, but they are not sufficient for professional development. Advanced or more academic online courses (provided as MOOCs by universities), provide you with a more in-depth knowledge but are usually conveyed through a more sophisticated language and most of them are currently available for English-speakers only.
Having completed dozens of academic courses on different difficulty levels - and all delivered in English - I learned how to absorb knowledge from more sources than it would have been possible without the academic experience with English.
What’s more, academic language is more advanced and harder to comprehend. But once I got my head around it, it became much easier to learn new skills from courses organised by Harvard or Stanford Universities that are provided in English.
3. Learning Unusual Languages
I majored in English and Arabic translation. And Arabic is nothing like what I was used to when dealing with European languages. It has totally different structure, rules, patterns, let alone the alphabet. Learning it required shifting my way of thinking to totally different tracks. Discrepancies are enormous, especially if one decides to learn Arabic without looking at it through the lens of European language norms and principles. To make it even more interesting, we even touched the basic grammar rules of Klingon.
Experience with Arabic came really useful when I started coding, as I also had to switch off my standard line of thought. Programming languages belong to a totally different group. They allow communication with computers, and therefore, require distinct mindset as well.
4. Juggling Between Languages
5. Having an Eye for Details and Punctuation
Each and every language has different rules of punctuation. This also applies to coding. However, in the case of the latter, punctuation principles have even more important than in natural languages, since your reader may infer your intended meaning despite punctuation errors, but the compiler or browser will not be so forgiving. Punctuation errors will result in either errors or different behaviour than you intended.
Having gone through multiple languages and their complex systems of where and why to put a comma in a sentence taught me precision in punctuation. The Ruby programming language that we embrace at Netguru might be less strict in that area compared to more strict languages, but our code review is quite demanding, so I believe that my linguistic experience helped me master my code review.
Being a linguist helped me in becoming a better developer. Learning new programming languages came quite easily and now I am more accurate and systematic in my everyday job. However, it doesn’t mean I didn’t have to study coding at all. It still required a lot of effort on my side. But once I picked it up, it’s mostly satisfaction and fun.