This isn't open ended. It's not going to be stuff like, "stay away from tequila, invest in Google and buy a lottery ticket". This is just specific to software engineering, both professionally and technically. This is what I'd send myself 10 years in the past. These are things I learned along the way such that once I realized them I wondered why it took me so long to figure it out.
When you see architecture that seems too contrived and difficult, say something because you're probably right. Everyone else is afraid to say something because they don't want to look stupid; don't be like everyone else. Simple solutions might not get you praise or result in heroics but they usually get the job done.
When you see a doomed revolution happening in your company, say your piece. If it has momentum and leadership buy-in, don't be too much of an opposition such that you don't leave on your own terms. Eventually doomed revolutions fail and there is an accounting. It's not bad to be standing after the house cleaning.
Software isn't about getting cute and impressing your peers. It's about providing business functionality. Any sentence that talks about technology and starts with, "It'd be cool if..." should be dismissed out of hand.
Make sure you have good unit tests and that they all run before attempting to re-factor code.
Don't be dogmatic about anything. Including open source, technology, patterns or process.
Keep contacts alive (instant messenger is great). Have lunch with a diverse (in skill, geography, company) set of people at least three times a week.
We live in an amazing time. Information and software are freely available. Learn how to learn.
Read like a maniac, start with The Pragmatic Programmer, Effective Java and Agile Estimating and Planning.
Test Driven Development will save your bacon. It'll change how you write code, your confidence in your code and your entire attitude towards software engineering.
Have fun, you do your best work when you're kicking ass and having fun.