Being competent at coding is mere table stakes for being a software engineer. Success at being a software engineer is mostly about combining that coding skills with people skills: coordinating with people, negotiating with people, communicating effectively with people, working with people who are difficult, etc. I would have been far more successful if I'd improved my people skills early in my career alongside improving my coding skills.
"Pay yourself first"<p>Take 10% of any money that you receive and put it somewhere safe and where it takes real effort to get it back out. Then don't touch it unless your need is truly dire.<p>The idea is that regardless of your income level, you can almost certainly live on 10% less without a substantial hit to your standard of living, so pay it to Future You. The earlier in life you start, the better.
Don’t drop out of college to work, even if you have to go into debt. People value the social signal more than you think. If you’re ever up against someone with a degree, even if you’re amazing, they’ll choose the degree 9 times out of 10. It’s not meritocratic, it’s CYA.
Drip into an SP 500 index fund. I still did all right, but it took a lot more work and many mistakes to achieve the same results after 30+ years. To my credit, I still picked some amazing stocks, but I had weak hands and would have done much better if I had just forgotten about them.