It has been concluded that a good software engineer should always be learning new skills and tools in order to keep up with the speed at which the industry moves. For me, choosing the new skills and tools to learn greatly impacts the enjoyment and satisfaction of being an developer.
Reading documentation for how to integrate a company’s paid service into my we applications sucks the life out of me, even if knowing how to do so has value. No offense to the people working at these places, but learning how to integrate Clerk or deploy to Vercel is uninspiring. At most, you learn how to solve your problem with a very specific solution that may or may not be relevant in 5 years and may not even be the correct solution for you right now. I rather learn how to implement authentication from scratch or deploy an application on a VM in AWS.
A list of things I like to learn:
- programming languages and how they work, especially if they introduce new programming paradigms
- foundational technologies and techniques, think TCP, HTTP, database indexing, system design
- how to build tools like CLI’s, web frameworks, and databases