Day 5: Software Crafter and Haskell Programming
Today I started reading The Software [Crafter] by Sandro Mancuso.
Something that I find really interesting is the fact that "seniority" was measured by how incomprehensible one could make their code. If people did not understand some code, they immediately attributed it to the author's skill or wit. Equipped with this mindset, Sandro was very eager to please and impress his manager Namur when he started at a new company on a new team. He was given a task to complete in one week, created a working solution in two days, and proudly approached Namur for feedback. Sandro received a lot of feedback, but none of it was what he was anticipating. He was especially taken aback when Namur called the clever segment of code (created to try to impress Namur by being complicated and difficult to understand) "disrespectful."
It is interesting to see how the norms and mentalities have changed. In contrast to the former egocentric and uninclusive mindset, the modern developer has to collaborate and communicate and hold the mentality that they are working towards the same goal as their teammates. This is something that I fully understand and agree with, but I have little experience with it. The solutions to my university projects never had to be explained. Even when I worked on a team, the responsibilities were split and each person only cared for their own tasks. There was never the need or desire to refactor code, as nobody cared to make their solution better or more readable if they already recieved a grade and had moved on to a new project. We worked with the mentality that no one would ever really look at our code (apart from the graders who were usually also students and, quite frankly, trying get their work done as quickly as possible).
This is something that should be emphasized in a computer science degree because working on a team is very often a requirement in this (and any other) industry. But, as of now, this is something that I know I will have to work on when I start working on a team. I'm fully prepared for other eyes reviewing my code and giving feedback on how to make it better.
The rest of my time was spent with the Haskell Programming book.
The first chapter of the Haskell Programming book goes over lambda calculus. I have completed a unit on functional programming, and therefore lambda calculus, while at University, so this was not too foreign to me. Reading the chapter refreshed my memory, and I was able to work through the practice problems with no (or maybe a little) struggle. I just have to remember to evaluate the leftmost and outermost lambdas first (normal order).
Tomorrow is more of the same. I will continue reading the Software Crafter book and the Haskell Programming book. I setup my computer for the practice problems in the following chapter. Hopefully with these problems I will be able to integrate some vim and bash learning.
Isn't it crazy that every weekday is so perfect and sunny, but every weekend is cloudy and/or rainy? When will this madness stop???? For some totally shocking information, please take a look at your Munich weather forecast for this weekend :)