The Ultimate Teaching Language
Jason Lee Hodges is a Software Engineering Lead and the author of “Software Engineering from Scratch: A Comprehensive Introduction Using Scala.” You can learn more about the book or order it online here.
Matt Cohler is a venture capitalist and one of the first founding members of both LinkedIn and Facebook. I remember hearing him speak at a conference once surrounding his decision to move to Silicon Valley looking for a job in tech right after the dot com bubble burst in the early 2000s. He recounted the fact that it was not a very popular decision at the time but ultimately it’s what he wanted to do. It was that contrarianism that led him to his eventual successes.
- The pool of programmers that you will compete with for jobs will be learning these same languages and you’ll fail to set yourself apart if you are not aware of their limitations.
- Their dynamic typing can lead to extremely hard refactoring when working on large scale projects.
- The fact that these languages are interpreted leads to performance costs.
- Learning how to overcome these limitations and knowing when and where to choose a language or paradigm requires you to learn multiple languages upfront.
These limitation might be fine if you just want to dabble in programming or if you want to learn a bit of coding without actually hoping to get a job as a Software Engineer. However, as a Software Engineer, there are many topics that are crucial to understand that you just can’t learn from these two languages. These include, compilation, static typing, data structures, algorithms, and design patterns. So what’s the alternative?
So, if you are ready to buck the trend, be a contrarian, and profit from that decision, I recommend learning Scala as your first language. In fact, my book “Software Engineering from Scratch: A Comprehensive Introduction Using Scala” provides a guided path through the language that will get you up and running quickly. Go check it out today!