Software Engineers Are Made Not Born – How to Become a Great Developer
By Pramono Winata
As technology increasingly permeates our everyday lives, jobs in the tech industry are growing ever more popular. Many companies and industries are searching for qualified developers to help them stay competitive.
Many people believe that to become a Software Engineer you have to be super smart or you just have to be born with certain talents.
But in my opinion, this is a very common misconception. Being a Software Engineer is not just a matter of talent – it's a matter of choice.
There are several qualities that will help you out immensely if you want to become a Software Engineer. You might not have these traits yet, but I believe they're skills that can be learned.
So let's see how you can develop these skills and carve out your path to becoming a Software Engineer.
You Have to Have Grit
_Photo by [Unsplash](https://unsplash.com/@margobr?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Margo Brodowicz / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)
Grit is a strong word, and it is also one of the most important points I'll discuss here.
If you have a goal in your mind, you've gotta commit to it and persevere until the end. The road to becoming a Software Engineer is often a thorny path, but whatever happens, try to see it through to the end.
Sure the journey is hard, but keep in mind that it's not just hard for you – it's also hard for pretty much everyone else.
Because of this, it's important that you have a goal. The goal doesn't have to be long term, like a 5 or 10 year goal. A simple goal that defines what you want to accomplish within one or two years is good enough to start.
When you have a goal, you need to put your mind to it and whatever happens, do your best.
Doing your best doesn't mean having a do or die attitude, though. Everyone has a different learning process and sometimes your progress might not match your goals. But just remember – do your best and keep pushing.
Failing doesn't mean it's the end of everything, it just means you need to try again.
This might sound scary, but in time you will appreciate the journey you've been on. And when you looked back you will say to yourself "That was quite an adventure".
Cultivate Your Curiosity
_Photo by [Unsplash](https://unsplash.com/@catherineheath?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Catherine Heath / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)
You might have heard that "Curiosity killed the cat". But as a Software Engineer, you need to train your curiosity. This world is full of unknown and peculiar things you'll want to explore.
There will be times when things doesn't come out as expected. But instead of getting frustrated, we can commit some of our time to finding out why things went wrong.
In the field of technology, there are a lot of things to learn and consider. Every day there are new libraries coming out, it's impossible to play around with all of them.
But you can always start with simple things that you use everyday. Maybe something like how print formatting works in your favorite language. It's a simple concept, and often used, but many of you might not even be aware of how it works.
Be curious like a child, and be in awe of the things you don't yet know. Then, one by one, take those things and explore them.
Understand that You Don't Know Everything – and That's Ok
_Photo by [Unsplash](https://unsplash.com/@earbiscuits?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Juan Rumimpunu / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)
There is so much technology around us. And not only are there many things to learn, but much of that tech is also very dynamic. Things keep changing everyday and old technology often becomes obsolete.
Even if you dedicate your whole lifetime to studying all of it, you probably won't even get through half.
The thing is, you need to accept that you don't know all of it. Not because you are not trying hard enough, but it's just that you can't learn it all. There is just too much out there.
But if you want to start, one thing you need to learn is how to ask good questions. There is a quote in my country that says "Embarrassed to ask, astray on the road". So don't let yourself stay lost – just ask whenever you need to ask.
After all, knowledge is there to be shared. So why should you be scared to ask?
Once you've done your due diligence and researched the problem yourself, you can turn to someone else to help you solve the problem.
Become a Life-Long Learner
_Photo by [Unsplash](https://unsplash.com/@aaronburden?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Aaron Burden / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)
For some people, learning might have finished when they completed high school or college. But this isn't the case for a Software Engineer. Your entire career is like one big school where you'll learn everything from hard-skills to soft skills.
If you're passionate about learning, you'll find that coding is not all that different. After all, what does a Software Engineer do all day anyway? They solve problems! And from that they learn new things.
Sure, finding the motivation to study isn't always easy. The first step might be to find out which study method suits you best. Some people might prefer reading books or articles (like you are currently doing), others might like watching tutorials or learning by doing.
There are tons of materials out there on the internet – tutorials, books, videos, everything. When you find out which way you learn best, work to develop a study habit and remember that grit will help you push through.
Engineers grow from solving new problems. So keep learning, because once you stop learning, you stop growing.
Final Thoughts
Some of these things might sounds scary or difficult to you – but in reality, most of it is just part of life, and part of growing.
Things might be hard especially at the starting point, but you will get used to it. Treat it as a long and exciting journey, but always try to appreciate the journey and stop worrying about the destination.
And every now and then, don't forget to give yourself a break, because you need to appreciate yourself too.
As always, thanks for reading my article. I hope that it has helped you out. I wish you good luck, whether you are on a route to becoming a Software Engineer or you are one already, trying to improve yourself to become a better Engineer.
The journey doesn't stop when you have became a Software Engineer. The journey is never ending.
Subscribe to my newsletter
Read articles from freeCodeCamp directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
freeCodeCamp
freeCodeCamp
Learn to code. Build projects. Earn certifications—All for free.