Day 4
September 6, 2018
Day 4
Choosing a language
How do you know what you don’t know you don’t know?
It’s like asking someone from the 16th century if they know about electricity? Before that question was asked, the person didn’t know he didn’t know about electricity, but only knew he did not know when the question was asked.
Essentially, how do I know the gaps in my knowledge when I don’t know what and where the gaps are, or even what a gap is.
In my case, how do I know which language will be most beneficial to my overall learning as a Software Engineer (still not sure on which term to use, reading ‘The Software Craftsman’ - Robert C. Martin has made me hesitant on which term to use, suppose for the purpose of this post it does not matter).
Sooo… My ramblings above allowed me to take a step back and look into the different styles of programming. What type have I tended use in the past and what do all these terms mean?
- Strong and weak typing: (comfortable with Python and MatLab (don’t hate); both are strong typed
- Imperative and Declarative: (I’ve tended to use more imperative; structural/procedural programing)
Through using the above 2 points as metrics along with language usefullness, I decided to look into the 3 languages below:
- JavaScript - high usefullness as it’s a front and back end language and weak typed; which I have not used before.
- Haskell – Purely functional programming and will allow me to explore this paradigm without the crutch of procedural, although not used too much at HolidayCheck.
- SCALA – Functional programming capability, used within the company for data architecture.
This afternoon and tomorrow I shall further delve into these languages and practice them by doing some Koans.