I started properly teaching myself to code in the winter of 2019 - I was living the #VanLife, hating my job and desperately needing a drastic change in my life. Recently I was thinking back on that time, and wanted to reminisce on something I see many new tech workers do early in their career.
If you spend too much time on Twitter (like I do), it’s very easy to feel as though having strong opinions are the sign of a “good” or “real” software engineer. I fell prey to this in my first couple of years in the industry, regularly yelling about how Svelte is better than React, or Tailwind is trash, simply because I felt it gave me some kind of credibility in the absence of actual professional experience. As I’ve been exposed to more complex engineering problems, and have been mentored by engineers with vastly more experience than myself, it has become painfully obvious how short sighted this mentality is.
The role of any engineer is to solve a problem by weighing the trade-offs of different solutions to that problem. Imagine if a structural engineer believed the “right” style of bridge was a truss bridge - that makes no sense. The specifics of the problem (needing to create a safe route over a gap in land) will always influence the solution (style of bridge). I often see new devs believe that any of the technologies I mentioned above are the perfect solution for any problem they need to solve, which is typically rooted in an opinion they hold about said technology. As I’ve gained more experience I’ve come to learn that the best engineers aim to find the best solution to the problem, rather than believing their favorite tool is a swiss army knife.