I don't code anymore (I'm more of a pointy-haired lower boss)...but what i wish i could go back in time and change around this is to have focused - I mean really, really focused - on 2 or 3 different programming languages only. Instead, what I've done over the years - again, when I coded as a dayjob - was to go shallow on far too many different languages (and ecosystems). I don't think it was me just chasing the "new thing" for the popularity of it. I genuinely was curious about, and wanted to learn "the new thing". The problem - as is often the case with tech - is that there's just too many "new things" coming out all the time...and one just can't keep up. So, sure, i feel like somewhat a jack-of-all-trades (and all my employers have benefited from it), but in more ways than i would like, i lack the depth - and possibly enjoyment/fulfillment - of being really awesome at one or very few things. That old adage about picking one (or a very, very few) thing(s) is no joke; and i see its wisdom only now (after working for 22 years professionally). If i could travel back in time (relative to programming), I'd tell my younger self 3 things:
1) Focus on depth of a couple of things, and never mind breadth.
2) As soon as possible - either before graduating college, or right after, etc. - work for yourself and not The Man. whether going into business as a solopreneur, or partnering with a few people - doesn't matter. Mistakes will be made, but you will feel more in control of any/all outcomes - good or bad.
3) Be generous for experiences, but be a cheap bastard when buying actual/material "things". Save shit tons of money.