You make a great software engineer by practicing solving hard problems. There isn't any secret formula or mystique. It is thousands of hours spent solving problems of ever greater difficulty.
If you confine your practice to the 9 to 5 job then you are investing fewer hours than somebody who writes open source at night, and will likely be a weaker programmer. If you aren't independently finding new problems to solve then you will be a weaker programmer than somebody who is constantly stepping up their game. If you lack confidence and need frameworks, abstractions, and other bullshit to write a couple lines of code you will be a weaker programmer.
> If you lack confidence and need frameworks, abstractions, and other bullshit to write a couple lines of code you will be a weaker programmer
So you like to reinvent everything? Do you reinvent HTML & CSS because they are FRAMEWORKS, one of the foundational frameworks of today's web.
If your job only ask you to fix a bug, there here is how to make yourself valuable AND technically challenging:
* go through the bugs and analyze if you can extract any correlations
* propose better process with other fellow engineers and product owners
* implement changes
For example, someone might be duplicating some code to write tests, how about you write a test harness or adopt some open-source harness? How about work with your fellow engineers to begin start collecting some metrics.
Otherwise, time to look for a new opportunity. The absolute worst kind of programmers are the ones who don't don't take care of their health.
Perhaps if you wrote software in addition to doing that which is strictly assigned to you your question would answer itself. This isn't rocket science.
But there is creativity. You don't have to go an extra mile though, but you can. My response is to this:
> If you aren't independently finding new problems to solve then you will be a weaker programmer than somebody who is constantly stepping up their game.
I think it might true that the guy "who writes open source at night" will generally be the better programmer, although it is not a necessary condition for being a good SE
If you confine your practice to the 9 to 5 job then you are investing fewer hours than somebody who writes open source at night, and will likely be a weaker programmer. If you aren't independently finding new problems to solve then you will be a weaker programmer than somebody who is constantly stepping up their game. If you lack confidence and need frameworks, abstractions, and other bullshit to write a couple lines of code you will be a weaker programmer.
Simple. No magic.