Depending on what you try to achieve in life, you might want to advance in your career or simply in the profession of a software developer. Perhaps you want to become really good before you start your own business or you want to climb a corporate ladder.
No matter what your motivation is, growing as a developer does not only have a lot to do with your hard skills, it's also about soft skills and your own mental model. There are five tips, as far as I can recall, that helped me immensely to grow as a software developer. Let me share them with you in the hope of them helping you as much as they helped me.
Learn To Listen
Listening is more important than talking. If someone has something to say, listen to them. Don't interrupt them. If you have questions about certain aspects of what they say, write them down. Then ask those questions later and talk about it together.
Accept You Don't Know Everything
Software engineering is too broad and too deep as if anyone could really know everything. You need to accept that and understand that your peers all have their own experiences. Use this to your advantage. If you're stuck, ask for help.
You'll Never Catch All Corner Cases
You will never catch all possible corner cases. At some point, it's not worth it to put more thoughts into them. That's the time when you should ship your code. Sometimes, your peers find issues in reviews. Use this to your advantage.
Otherwise, make sure you are always prepared to handle errors occurring even in production. Sometimes it's easier to let it crash, analyze the issue, fix it, and then continue with your usual business.
Software Engineering Is A Team Game
You usually work in a team. There is no place for lone-wolves in this game. It doesn't help to blame teammates for their mistakes, and neither does it to try to hold them responsible for bad choices. You win or fail together, as a team. It's up to you to make the best out of it, learn what happened, and ensure that it won't happen again. If you separate yourself, you hurt your company or client more than you hurt your teammates. This will all reflect back on you.
Automated Testing Is Not Optional
Many beginners seem to struggle with automated testing but this is largely due to so many resources focussing on results and not on the way to achieve them. Not knowing how to test doesn't justify leaving it out completely. Automated tests are an important safety net. If one ever fails, you know that something is wrong. Without tests, you never know if your software is really running as it should. And clicking through a frontend, manually, is not a great alternative either. Human work is always prone to error. Automation does always reliably and reproducibly do what you instructed it to do.
Before we end this article, let's do a quick recap of the five tips previously presented:
- Learn To Listen
- Accept You Don't Know Everything
- You'll Never Catch All Corner Cases
- Software Engineering Is A Team Game
- Automated Testing Is Not Optional
Those are the most important tips that helped me grow. They are really easy-to-implement and won't cost you a lot. So, what are you waiting for? Go and try them out, they might help you to grow, too!
Before You Leave
If you liked this article, feel free to visit me on Twitter. I regularly post content there in many forms like threads or simple tip tweets.