7 Tips to Become a Good Software Engineer
- Posted by Adham Jan
- On November 15, 2022
My journey from “Hello World” to “How to be a Good Software Engineer?”.
I think many of you have thought of this question multiple times especially if you just started your career. And let me tell you that you’re likely wrong about what makes great software engineers.
Some would think that you need to make one big move (create a programming language, create great software, or even know specific tools, etc.) to become a great software engineer and that’s incorrect. You have to know that there is no single path.
Others would think that you need to become an expert in algorithms, data structures, and math or have a great command of specific programming languages. But those things make you a great computer scientist.
“Software Engineer” is a job title. So, you will need to help your company to grow, earn money and deliver value to customers.
Let’s get to it.
1. Add Value
It doesn’t matter how pretty your code is or how much you love it if it doesn’t add value. Of course, write clean, readable code, but don’t get too caught up in enhancing the appearance of your code.
Also, you always need to think about the usefulness of your code and how it will help people and add value to their lives. If software isn’t useful to the people using it, then it’s not really working. You don’t want to make software that isn’t useful or buggy that could end up eventually in the recycle bin.
So, to wrap up. Your code should follow this pattern:
-
- Make it work (Make it work also means make it secure):
Concentrate on the basic behavior of the feature and write all tests for it.
-
- Make it fast.
Try to optimize the performance of your code and don’t afraid of changes as the tests will ensure that functionality is not broken.
-
- Make it beautiful.
Rename variables, remove duplication, etc.
2. Build Relationships
“The world is run by people, not by algorithms or computers.” — Louie Bacaj
- Find and work with great people
Try to recognize the “golden stars” in your team or organization and ask them about their opinions on your ideas or implementations for specific problems or features, even if they don’t work with you on the same project.
Keep yourself updated with what your teammates are working on and what are the current projects and solutions in your organization.
- Build relationships with engineers in other teams and other companies.
This is extremely beneficial and a great way to take initiatives that may have an impact on your team or organization.
As you learn about new solutions or technologies that other teams in other organizations are using, you and your team can learn about new things and possibly implement this new technology in your current project.
- Follow industry leaders and try reading up on what they are writing about.
Most of the time, industry leaders write about new and efficient tools and solutions, so knowing this stuff will be very useful so that when a technical problem arises, you will know that there is a very efficient solution for the current problem you or your team is facing.
3. Impact
- Take initiatives.
Anytime you see something that you can fix or improve it just talk to your leader and tell him what you see and how the team will benefit from it. He will be happy for that and will give you the green light to do it if it will really help.
This could also be a non-technical initiative, just try to recognize opportunities for overall improvements and impacts on your organization. (Always see the big picture.)
Another thing that will encourage you to take initiatives is thinking about the users of the software and thinking about the impact your decisions have on your team, your company, and the world. (Think beyond the code.)
4. Communications
- Learn how to communicate your ideas.
As cliché as it sounds, but you really need to learn how to communicate and share your thoughts and ideas with technical and non-technical people.
You can strengthen your communications skills by creating presentations and writing blogs, documenting what you are working on and mentoring other juniors.
- Learn how to be a good listener
Practice “active listening” and explore “body language”.
5. Pair Programming and Mastering your Tools
Pair programming is in my opinion, one of the best ways to master your tools.
When you pair with experienced developers you can learn from their coding skills, you will know many shortcuts and useful features of the tools they are using, and you can also learn about a new tool that will save you so much time.
Also try to observe how they approach a problem, debug it and search for stuff.
6. Attitude, Empathy
“A 10X engineer is not someone who just working 10X better than everyone else. A 10X engineer is the type of person helps make 10 other people better than they were before”
—Kelsey Hightower
- Be open-minded
Most of us don’t like to be wrong or have our code called wrong or bad (I usually think of my code as my son.) (like, how dare you say that.) Just take your time, try to accept criticism and practice being wrong.
- Do not “act as a prima donna”
Don’t act like you are the star of the show even if you are talented, you will infect your entire team/organization, making people miserable, and tanking the team productivity.
Have a good attitude and help your teammates, appreciate their work, give them feedback and respond faster (if you are going to be late just say it and apologize to them).
If you are a leader or team manager, try to always be close to your team (tell jokes for example 🙂 talk with them as you are one of them, not a manager).
7.Growth Mindset
- Consistent learning.
Remember that you were not born with your skills and your skills are not fixed. Always have a learning track for yourself (for example take a course each month). You can ask for help and resources from seniors or your team leader.
- Ask for feedback.
Always ask for feedback even if you already taking feedback from your manager. Ask your teammates and others you have been working with and recognize your mistakes or weak points and work on them.
You may wonder why there are only seven tips rather than eight or nine. Like I said before there is no predefined road or 7 tips plan to be a good software engineer there are many and many of tips I could have added to this blog (Time management, reading, teamwork, etc.)
So, I think you can try these tips and see how well they work for you, and I encourage you to google about this topic and learn about more tips that might be more suitable for you.