Photo by Markus Spiske on Unsplash
How I've grown as a software developer🚀👨🏾‍💻
My attitude towards continuous learning and improvement.
It's been a little over a year since my last post, one might ask "why the gap ? ". Sincerely, I can't say. But what I can tell you right now is that I've had a lot of time to improve, put in an incredible amount of work, and sit back to reflect on how far I've come and how far I'm willing to go.
In this post, I'll share some of the things I've done to ensure I'm constantly improving and growing every day. All I will share might resonate more with beginner developers who need advice on how to grow their skills and career. Still, they will also be useful for someone with experience who is looking for ways to improve themselves all around or try a different direction (like hobby projects, open source, or learning a new language). I plan to use this as a reference to keep myself challenged and inspired whenever I feel stuck.
For background, I am a Software Engineer and I have been coding using JavaScript since 2020.
Alrightttt, let's go...
Maintain Curiosity
As a developer, you're definitely going to have to keep learning in your career. There are plenty of free online courses and websites with materials and resources for you to consume.
Pick a resource and learn by doing, try not to get stuck in tutorials, instead take the concepts and syntax you’ve learned and put them into practice, build something, experiment, and keep your code as a reminder of what you made.
Don’t feel like you have to know a lot about a topic or tool to use it, you just have to know enough to get started and you’ll figure things out as you go.
Always try to think through your application on paper before coding. What are the pieces or components needed and how do they relate?, What are the different trade-offs between certain decisions?, How will another developer or an end-user use your application?
These are questions I tried to ask myself very early on and they surely impacted my decisions and the way I executed tasks.
Set Goals
Setting goals for yourself is really important. Keep your goals small and achievable in the beginning to build confidence and belief, focus on small well-defined problems, and avoid getting discouraged when you feel overwhelmed.
Don’t stress over perfection or try to understand everything immediately. Patience is key, be patient with yourself. Being a developer sometimes means accepting uncertainty or being extremely calm as you work through problems.
Don’t get caught up with procrastination and irrelevant comparisons. As hard as this might be, please try to run away from this. Comparisons like "tabs vs spaces" and which language or tool is “best” takes you away from writing great apps.
Your development style will definitely change over time as you write more and more code and learn from other codebases and senior engineers. Always seek to improve, but don’t expect perfection as technology changes fast and you have to adapt parts of your code and even rewrite or get rid of applications that no longer fit your needs on a personal project or the needs of end-users.
Sharpen your communication skills
At certain points you’re going to find yourself in meetings, you’ll need to be fluent in communicating your thoughts and opinions when you talk with stakeholders, managers, and VPs and then translate everything into requirements for your development team to understand.
Get sharp at visualizing your ideas, either in high-level diagrams or hand sketches, and explaining components of your system so a 10-year-old could understand.
If you’re not a natural great speaker, being an effective communicator is something you'll need to invest some time researching, watching great speakers, and adopting styles that’ll make your voice the one people listen to.
Connect with people
Go to coding meet-up events in your areas. A lot of organizations also hold a few online sessions a month that you can join, covering both presentations and the chance to chat with others over a chat medium or video call.
Share your learnings and what you’ve made with your friends and colleagues in some public space (like GitHub, Twitter, Linkedin, or a blog). You’ll be encouraged by positive reactions. You’ll get feedback on how to add to your code or application in ways that you hadn’t thought of. And you’ll find out about bugs or friction that people experience using your application.
Contribute to the open source community
Find ways to contribute to Open Source projects such as repos that you like or packages that you use. You might not focus on contributing to Open Source too early on as a beginner. Start with your projects where you have a lot of freedom to play around.
Over time, you’ll find public projects that resonate with you and you’ll be able to match your skills against the problems.
I'm sure when you get to the point of having your Pull Requests on Repos merged, it would be very satisfying.
You’ll also learn a lot about CI/CD (automated tests and deploys), review code, and get familiar with another codebase. These skills are invaluable for working as a developer and getting practice on open source repos is a great way to hone these skills. Plus you’re making the tech world a better place.
Get a mentor... then be a mentor
Don't look at anybody as competition, everyone is running their own race. Look into your network for mentors. Mentors take many shapes. Senior engineers are the go-to choice here.
Find a senior software engineer who’ll let you look at their code and look through yours, question their decisions, and talk in-depth about how they got where they are today.
Don’t be afraid to think outside the box or beyond tech to find your mentor. Connect with people whose career trajectories you can learn from or whose roles (think product manager or project lead) it’ll pay to understand.
You can also flip the relationship. Very often, teaching others what you do is the best way to slow down and see your work in a new way. Consider volunteering to teach at a coding boot camp or kids tech program to gain a new perspective and even find someone who you can mentor into a strong career of their own.
Foot Notes
We've come to the end of this post, I've penned some of the steps I'm taking to grow as a developer.
I hope a lot of you reading find value in this post, let me know your thoughts in the comments. Engage, like, and share among your communities and network. You can also subscribe if you want to get alerts in your mail anytime I release a post.
I'm going to be posting weekly by the grace of God, so definitely indulge me. Let's all learn and grow together !!
Thanks to Micheal Currin and hanzala for inspiring this post
see you in the next post :)
Your friend in progress,
CodeProphet.