I learned to program through online documentation and projects. I also read books but I don’t consider them pivotal to my programming or software engineering career. Some of the books I read are:
Designing Data-Intensive Applications: really good book.
The Mythical Man-Month: felt outdated but useful to understand where the industry came from
Design Patterns, Elements of Reusable Object-Oriented Software: I don’t remember much. I think I read this too early to fully grasp all patterns but at least it gave me a general understanding of Design Patterns
Clean Code: this book felt like a bunch of advice from a senior engineer, but much of it not being verifiably good advice. As an outsider it at least made me aware that I had to be conscious that my code was going to be read.
One day an interviewer asked me about design patterns and SOLID principles. I started talking about the ones I learned from the Gang of Four book, but he stopped me and said that he meant SOLID principles, and that he was not sure what I was talking about. Now in retrospect I know he was just reading the rubric without knowing much about the topic but I left that interview confused.
So I googled SOLID principles and landed on a video where this “uncle bob” dude spent a good chunk of his introduction talking about the water molecule only to then take more than 10 minutes to explain that the rate of new programmers was constantly doubling and that as long as this rate of growth continued, half of all engineers would always be inexperienced. Then after a whole 20 minutes into the talk he starts a real introduction when he explains that bad code slows you down (no shit, Sherlock), that code rigidity, coupling is bad, only to really get into the topic 30 minutes in.
Nearly half of the talk could have been fully explained in 5 minutes.
Where I was coming from
Around that time I was in my 3rd year studying history. I had to read and write 1000s of pages a week. I learned that not everyone writes the same and that different disciplines have different writing styles. If you were writing history there’s a structure and vocabulary you were implicitly supposed to follow, same for other humanities and social sciences, and I assume it’s the same for the hard sciences as well.
... continue reading