What is popular in the tech world changes constantly, but these are some fundamental masteries that I think will always make a software engineer valuable. Here's why:
- 📖 Base computer science knowledge: You learn new technologies, and adapt more efficiently with a solid base of core knowledge to build upon (algorithms, data structures, network protocols, the operating system, low level mechanisms, binary operations, etc). Formal education in Computer Science is the best way to build this base, in my opinion.
- 🎯 Common sense and reasoning: It's important to know patterns, clean code, optimizations, and abstractions. But it's more important to know when to apply them. Applying them wrong, or at the wrong time, is often worse than not applying them a