I should start by saying I was a middle manager in a large corporation. This may be a different experience in smaller settings.
I think the transition to manager didn’t live up to expectations for me. I knew I would be committing less code and helping clear roadblocks. What I didn’t expect was the bureaucratic catastrophe that is HR and upper management. Often I wasn’t clearing roadblocks as much as insulating my team from terrible knee jerk reactions from above. In example productivity is down let’s bring everyone into the office post Covid. Productivity was not down for my team but going back was the start of it. My top level performers I struggled to hang on to due to HR in acting strict requirements for promotions. Senior needed 7 years and other random rules. That coupled with some not wanting to come in. I remember the most impactful being losing a 4 yr experience programmer who outperformed every senior I had due to those rules.
There were parts I enjoyed. Helping the juniors grow and the surprises I’d get from that. I learned very quickly that a devs initial skill coming in from college or life transitions was not a good way of judging their maximal. I’d have devs come in that I thought no way they’d be a top performer to a few years later being shocked at how good they were and how they flew past their peers. It made the inevitable loss of them more painful. I knew my shooting stars would see better pay and advancement elsewhere.
I really had no problem with the transition from contributing to relying on others. I missed contributing and was good at it but I knew it wasn’t my role. I knew from past experience a manager didn’t know enough about the day to day code to give fine grained suggestions on how to write code.
Once I felt like I had mastered a language I’d start learning another. The techniques in a new language would teach me things to take back to my primary language. Functional Programming for instance was great at teaching the value of simple functions. Prior to that I’d put everything in Objects which had implicit state leading to sometimes hard to reason about code. Also Objects still have a place for making easy to reason about code.
If I saw a new technology I thought would be useful I’d try it on my own before trying to incorporate at work.
Downtime at work was used to learn more programming by working on projects that would help make my life easier at work. Bash scripts, improved builds, improved developer tooling
In the corporate world. Learn the soft skills, when to talk when to be quiet. How to brag about your work appropriatly to get those raises.
Constant learning. Programming changes fast. If I stuck to what I started with my skills would be far out of date and my job selections would be slim.