| Another old geezer here (43!); had a good run in my twenties and wound up in technical management a few years ago. A couple of tips: - The "hands on" technical skills that launched your career have capped (top salary) and declining value - If you take time to learn / think about how the underlying technology works (vs. just cut / paste / edit code), you can master related new technologies faster than the average bear. - It is also worth noting that technical challenges tend to repeat every couple of generations; the software developer community is operating within the same set of fundamental constraints (coder time, CPU speed, network, data, etc.), the main thing that changes is which constraint matters. And they repeat: at some point, CPU will be the constraint again and all ninja coder tricks of my twenties will matter again. - Architecture, process design, and people herding skills only grow with time; 80% of my value as a manager consists of making unnecessary work go away (without drama). I am much better at using these skills at 42 than I was at 24. - If you ever see an opportunity to build a side project that could turn into a business, take it. Even if you don't replace your income, this gives you additional control over the direction of your late career and skills you acquire. Note that I said side project and not startup; the intent to get more control over your direction without walking away from your day job and associated income / benefits. |
I've worked with many junior devs over the years and I can see two axes along which engineers develop: those who know/learn actual computer science and software design (the math, software patterns, etc.) and those who don't; those who learn new technologies, and those who don't. If you're in both of the "don't" categories, your career stalls after about 4-5 years.
Learning processes rather than technologies is very valuable, because processes produce things. Technologies are just the building blocks. I've seen too many developers who are one-trick ponies. They build the same systems over and over, only changing what technologies they use. "Sure, I can build you an MVC content management system in PHP!" -> "Sure, I can build you an MVC CMS in Rails!" -> "Sure, I can build you an MVC CMS in Node.js!" Those developers don't age well.
Also, like you mentioned, I highly recommend trying your hand at entrepreneurship. If you have enough process skills, you can eventually handle designing and pushing a product. You might feel uncomfortable moving away from your vim window into the meeting room, but that's where the greater rewards are. And those 20-somethings are going to help you do that.