Assalam u Alaikum & Hello Everyeone! 👋
In this article, I will share five approaches to improve as a software engineer. I have applied these principles to myself and have made massive progress over time.
Before Moving Forward, Read This ✋
These five approaches are independent of each other. You don’t have to follow all of them at once and overwhelm yourself. You can pick any one or two and can start working on them. With time, you will start feeling the improvement. And you can always switch the approach as needed.
Let’s jump in! 🚀
Practice, Practice & Practice
One of the fastest ways to improve is to do Deliberate Practice. Practice is an essential component in the growth of any software engineer. Without practice, you can never master any tool or technology. It helps to overcome fear & build confidence to face technical problems.
Whenever I find any weak area, I dedicate 1 hour/day to practicing regularly and improve it over time. Sometimes, It takes one or two weeks, sometimes months. It’s different for everyone.
Always remember, “Becoming an expert is a marathon, not a race. Therefore, how you practice matters the most.“
List down all the weak areas you want to improve and sort them into the highest and the most critical areas first.
Dedicate a reasonable amount of time every day to your practice.
Practice Regularly, Challenge yourself, and make progress!
Remove all the distractions while you are practicing.
I want to make my database design skills better. Therefore I’ll dedicate 1 hour/day to practicing database design.
Learning Via Books / Tech Talks / Courses
Reading books is a healthy activity you can do during your rest time. Reading strengthens your mind, reduces stress, and, most of all, it increases your knowledge.
Reading technical books is a shortcut to learning from the brilliant minds in the industry. It gives you insights into how other software engineers solved their problems, how they scaled a system from 0 to 1 million users, how you can write clean and maintainable code, what best practices a software engineer should follow, and the list goes on.
For some people, reading doesn’t work. It’s okay; we all have preferences and should follow what best suits us.
If you are not into reading books, I highly recommend that you should watch any tech talk, conference, or any specific course if you like. The main goal is to learn from others’ experiences.
Search for the best software engineering books online, pick any of them you like & start reading regularly.
Dedicate a reasonable amount of time to reading or watching.
Feedback helps to improve the overall abilities of a person. It gives insights into what areas you have to improve, what your strengths are, and how you can make a better version of yourself.
Feedbacks are critical for software engineers. Code, project management, problem-solving, learning, and growth all of these stages require feedback. This is why we have code reviews, one-to-one meetings with team leads and peer engineers, project management huddles, etc.
Here are some of the ways to give & take feedback:
- Code Review Processes
- Assessments and Online Tests (Certifications)
- One to One Meeting with your Mentors / Senior Engineers / Team Mates.
The whole idea is to let you know your strengths and weaknesses so that you can work on them and improve yourself. Because Feedback is a critical element of best-practice performance management.
If you are a Junior Engineer, the best way to get feedback is from your senior engineers. If you don’t have senior engineers, get feedback from your peers.
Involve yourself in code review processes as much as you can.
Ask your mentor/manager to track your progress and provide small feedback over time.
Building Side Projects / Open Source
Building side projects is a fun and exciting way to improve coding & overall software engineering skills. You can work on your ideas and products.
When you build a side project, you involve yourself in all the development lifecycles, such as planning, designing, development, and testing. You also think of your customers and users. This helps you to solidify your expertise not only in engineering but in other areas of SDLC.
Another way to achieve this same goal is to make Open Source Contributions. Again, The best way to progress your skills? Practice, practice & practice! Open source contributions provide developers with a platform to practice their coding skills and gain valuable feedback from seasoned community members. This immersive learning approach offers aspiring programmers real-life, first-hand experience and dramatically accelerates the learning curve.
If you have meaningful ideas that you can work on, build them as a side project.
If you don’t have any idea but want to improve your skills, build any fun project.
If you don’t have any idea or fun project to work on, Try Open Source.
Read articles about how to contribute to Open Source & start making small PRs.
Dedicate a reasonable time to building side projects or open source.
One of the main benefits of sharing knowledge is that you will dive deep into the subjects you want to share with everyone. You will repeat your learning process to best write your technical content. Doing so strengthens your knowledge of the issue, and you may learn something new.
Sharing Knowledge improves soft skills, such as technical writing, communication, and confidence. Also, building an audience, or at least sharing content online, can bring you new opportunities. For example, it can help you find and apply for a new job, create a side project, and even more.
Another aspect of sharing knowledge is that you can also build your income stream. Writing content is a valuable source of earning a suitable amount of money. Many websites and platforms pay you for writing for them. You can also record tutorials and maybe start your youtube channel. Any particular way that you can share knowledge. Please do it.
Sharing Knowledge Approach
If you love writing, and want to improve your writing skills, start writing blogs, small posts, and articles.
Build your audience and help them to grow. You will feel growing along them.
You can also start recording small tutorials and upload them on any platform. It will significantly improve your communication skills.
Share knowledge to help others and yourself.
Self-improvement is important. And it would help if you always looked out for ways how you can improve yourself. I have listed down five ways I have improved, and I feel you can improve too.
- Practice, Practice & Practice.
- Learning via Books / Tech Talks / Courses
- Building side project / Open Source
- Sharing Knowledge
I hope this article was a good read for you. Do share it with your friends and other peers. If you know any resources that can help you with the above points, please share them in the comments with me and everyone. It will be helpful!
Thank you so much! ❤️