I've been coding professional for five years. Here is a list of items I wish I knew from the onset that would of helped me out when I was just getting started professionally:
When I started coding, I figured it was best to learn multiple languages and spent a considerable of my free time that first year dipping my toe into many languages, like Rust and Haskell. While this was fun and I'm thankful for that time, looking back I didn't retain much of my learnings. I think it is best to become a master of a single language rather than being a novice of many languages. Not only does this make you much more employable, but I think it makes you a better coder as you'll be able to solve complex problems instead of commodity like problems.
The best programmers are amazing team players and great communicators. During your career you'll work with many people, some of whom you'll like and others you will not, and your ability to work alongside them is critical to your teams success and your success. It is important you learn how to communicate effectively. In the beginning of my career I was afraid of being judged for failing and I wouldn't speak up when I needed help. I'm glad I learned that lesson very early and had managers who helped me along that journey.
I find doing online tutorials a drag. I think it is best to come up with a project that you you're passionate about and learning new skills through building that project.
I think in the beginning of my career I was much more bias against working with legacy systems. I've since learned that legacy systems contain legacy knowledge from years of use and feedback. It is important to appreciate the nuances legacy systems contain and learn why they were built the way they were. This will teach you information about the organization that can be carried forward.
Software is continuously changing. If you're not continuously learning, you're falling behind. Being an engineer requires you're always learning and being challenged. If you're not being challenged professionally, you need to work even harder in your personal time to keep your skills from atrophying.
As my skills have improved over the years, I've noticed that my progress feels more like a step ladder rather than a continuous line. It feels like my skills have plateaus and then all at once I feel like I can solve problems that were previously above my skill level. I've learned I need to trust the process during those plateau months and trust my good of habits and eventually I will have a breakthrough and will come out a better engineer.
I'm looking forward to writing a post in another five years of things I wish I knew today!