I have been a software engineer for over 20 years now. I have worked on desktop applications, web development, and I am very passionate about SQL Server. Looking back at my journey, I realize that I spent a lot of time "jumping around" between different technologies.
If I could go back in time, there are a few things I would do differently. Here are the most important lessons I have learned.
1. Go Deep, Not Wide
When I started, I wanted to learn every new language and tool. I thought that knowing more languages made me a better programmer. I was wrong. My knowledge was wide, but it was shallow. I could write basic code, but I didn't truly understand how things worked under the hood. My advice? Pick one main language or technology—for me, it was SQL Server—and master it. Once you have a strong foundation, learning other things becomes much easier.
2. Stop Comparing Yourself to Others
It is easy to look at other developers and feel like you are falling behind. But everyone has a different path. You don’t know their story, and they don’t know yours. The only person you should compete with is the developer you were yesterday. Focus on your own growth and enjoy the journey.
3. You Don't Need to Remember Everything
I used to be obsessed with memorizing every detail of a programming language. That is impossible! Our brains are not encyclopedias. You don’t need to remember everything; you just need to know how to find the answer. Use Google, documentation, or AI tools when you get stuck. Focus on understanding the concepts, not memorizing the syntax.
4. Think Like a Problem Solver, Not Just a Coder
In my first few years, I thought my job was just to write code. Later, I realized that my job is to solve problems. Code is just a tool. When you start focusing on the problem, you make better architectural decisions and write cleaner solutions. Don't write code for the sake of writing code—write code that makes a difference.
5. Communication is a Superpower
Technical skills are important, but communication is what makes a successful engineer. Can you explain your solution to a non-technical manager? Can you work well with your team? Improving my ability to speak, write, and present my ideas was a game-changer in my career.
6. Don't Be Afraid to Ask for Help
For a long time, I thought asking for help was a sign of weakness. I would struggle alone for hours. Now, I know better. Asking for help is how we learn, grow, and save time. Most people are happy to help you if you ask in the right way. Remember: the only "silly" question is the one you never ask.
7. Keep Leveling Up
Learning to code is like building muscles in the gym. If you only lift light weights, you won’t get stronger. You need to challenge yourself with harder tasks. Don't try to take on the hardest project in the world immediately, but always look for tasks that are just a little bit outside of your comfort zone.
Final Thoughts:
Programming is a long and exciting journey. If you feel like you have been "jumping from branch to branch," don't worry—it happens to the best of us. The most important thing is to keep learning, stay curious, and keep building things.
20 Years of Coding: Lessons I Wish I Knew Sooner
Seyed Hamed Vahedi
Sun, 27 September, 2026