In this article, I want to share some advice from my experience on how you can grow into a successful software developer. These are some things that most people would not tell you; you mostly figure them out later in your journey. Before that, let me give you a headstart.
Disclaimer: The advice I share is not for everyone. It is for those who want to explore the world of technology beyond the paycheque.
#1. It’s All About Perspective
First, I wanted to point out that you will not get good in one day. There will be times when you would just like to give up. There will be times when you’ll get frustrated by things not working. We cannot deny the reality of life, but there is one thing we can do – we can change the way we see it.
“How you look at it is pretty much how you’ll see it” ― Rasheed Ogunlaru
Whenever you are faced with a complicated problem, instead of letting it be the reason you get frustrated, see it as an opportunity to grow and learn something new.
“Never say you CAN’T do something. Instead of I can’t – always ask, HOW CAN I?” - Clever Programmer (Qazi)
#2. Passion is Necessary
It is not uncommon to hear people talking about hard work and giving it so much credit. Hard work is fine and all, but if all you do is work hard, you’ll become a mechanical being, not a human being. In the same vein, if all you have is passion without work, that will not yield better results either. We need both sides of the yin and yang.
Steve Jobs talks about passion
The field of technology is challenging. Let no one deceive you – it involves a lot of consistent learning. You need to put in the hours, and if you have no passion for it, it makes sense to give up. It is the passion that has kept many successful engineers still relevant today. They do not focus on what people say; they explore, have fun, hack stuff and introduce brilliant innovations.
You do not have to be obsessed with technology, but to get yourself off your feet, you need to identify something you love and let that guide you on your journey. If you do not have an anchor, challenges can make you quit.
#3. Learn To Have Fun
As I mentioned earlier, technology involves a lot of consistent learning. It can be very tiresome. No matter how good or obsessed one may be about technology, you inevitably need to take breaks. Also, things could get very boring, trust me 😂. It’s about finding your stride and making things fun. Unfortunately, there is no formula for that 🫠. Nonetheless, here are some fun stuff developers like to do:
- Play video games (like Apex Legends 🙃).
- Try to build something outside their comfort zone.
- Listen to music (I love lofi, by the way 😉).
- Having coding competitions with friends.
- Watch movies about technology to get hyped up 🙂. E.g. Steve Jobs, The Social Network, Mr Robot and the like.
“Sometimes it’s better to leave something alone, to pause, and that’s very true of programming.” - Joyce Wheeler
#4. Syntax is Important, But It’s Not a Priority
It is easy to get carried away by the syntax of programming languages. But the truth is, the syntax is important, but that is not the focus of building software. In the past articles, we talked about how computers were designed to solve problems and how programming languages’ evolution has made that goal more painless.
Programming is all about solving problems, and coding is just a tool to achieve that goal.
When it comes to real-life work, what you need to know about syntax is to know enough to build programs. You will spend most of your development time reviewing the language documentation and googling things anyways. Anyone can learn syntax, but what sets great programmers apart from everyone else is their ability to solve problems with code.
Don’t just write code, solve problems.
#5. Be Patient, It’s a Process
Another piece of advice is to stop comparing yourself with others. Human beings are different, and how each person progresses in life will never be the same as yours. Do not seek to be “better” than others; seek to be a better version of yourself daily. Do not measure your success by how many people you’re “bettter” than. Rather, measure your success by how much progress you’re making.
Take small steps, leave no gaps, everything makes sense.
Just as it is said, “Rome was not built in a day”; you cannot be a good programmer in one day. Take one day at a time. Do not focus on perfection; focus on progression. Set a goal and make time for it. If you take a step every day, you’ll get to where you’re supposed to be.
#6. Be Accountable, Measure Your Progress
This advice might be difficult to implement as I have trouble with it. Find a method of accountability- something or someone to keep you in check- to ensure you’re working towards your goal. The best option is to have a person you are accountable to. Someone who will measure your progress and keep you in check as motivation to keep going. If you find it tough to get someone as your accountability partner, here are some other workarounds:
- Use your social media (e.g. Twitter, LinkedIn, etc.). Share your goals with your followers. It doesn’t have to be in great detail, just a high-level description. See your audience as a medium of accountability. It is also a great way to let people know what you are up to – you could get opportunities from that.
- Write articles about what you learn. Try to make a consistent schedule and stick to it. You can get started with hashnode .
- You can make videos of what you are learning or building and upload them on YouTube. You could also do twitch streaming to keep you in check.
Employing these alternatives does not guarantee you being consistent. However, it is meant to give you a sense that there are people out there looking forward to whatever you are trying to achieve. Hopefully, that sense of responsibility will be a drive to keep you consistent in your learning.
#7. Don’t Be Afraid To Fail
Fail, fail, and fail again. There is nothing wrong with failing, especially when learning something new.
“If you’ve never failed, you’ve never tried anything new.” – Albert Einstein.
Programming is about exploring, learning new things, and solving problems. Knowledge is a stepping stone to becoming a good software developer. However, those who fail and try again learn new ways of doing things. As Chris Pine said: “Programming isn’t about what you know; it’s about what you can figure out.” So the next time you see that error message, smile and say: “I’m going to learn something new today”.
“You Can’t Write Perfect Software. Did that hurt? It shouldn’t. Accept it as an axiom of life. Embrace it. Celebrate it. Because perfect software doesn’t exist. No one in the brief history of computing has ever written a piece of perfect software. It’s unlikely that you’ll be the first. And unless you accept this as a fact, you’ll end up wasting time and energy chasing an impossible dream.” ― Andrew Hunt
#8. Breadth vs Depth
Technology is like a black hole. It is easy to get swallowed up by the infinite options available. One such trap comes in how you choose to learn. The grey question is, should we learn in-depth or with breadth? Should we learn to understand everything or learn a little about some things? The question has no direct answers because there are some concepts that, if we understand them in depth, will be of excellent service to us. On the flip side, knowing how everything works in-depth is not always necessary. It is good to know, but the time spent could be used to make tangible progress in other aspects of your career.
What is the take now? You should find a field of technology that you are very interested in. Master that one field such that your value cannot be dismissed. After that is taken care of, feel free to explore other areas and learn how things work.
The wealth of knowledge in technology is endless – you cannot know everything. Accepting this fact early on will save you a lot of time trying to learn about different fields simultaneously.
#9. Solve Problems Consistenly
I cannot stress this enough. Practice! Practice!! Practice!!! That is the only way to become good at something. Keep doing it again and again and again till programming becomes intuitive. There is no way around it. Mark Zuckerberg said something interesting. He says, “Programming is like any other sport. You might know the rules, but you have to play to learn”.
“The only way to learn a new programming language is by writing programs in it.” – Dennis Ritchie
Reading is good; watching tutorials is good; getting someone to hold your hands while coding is good. However, it must not end there. Practice solving problems on your own. It doesn’t have to be something big. It could be a program to implement a concept you learnt in your linear algebra class. Start with the simple stuff, and get to know your way around a programming language. After that, then you can go tackle more complex problems.
If you are just starting out, a good place to practice is codewars .
#10. Build a Project
Finally, build a project. Take all the skills you have acquired, the concepts – put everything together and create something functional. Remember, in software development, done is better than perfect. What type of project to build lies entirely on you.
There are two ways to build a project:
- Take an existing one (most likely an open-source project) and customise the code to suit your preferences. This approach allows you to see how people approach problems and software design while learning to create something new out of it.
- The second method is to build everything from scratch. This method stretches you, and though it may take more time than the first, the lessons learned will not be any less valuable.
Conclusion
Strive to make problem-solving a habit. Some people may criticise you or try to talk you out of your goals and dreams. They may have had their experiences and even have good intentions. But if you know where you are going, do not allow people’s insecurities to become your limitations. Yes, learn from their experiences. But just because someone could not make it doesn’t mean you won’t.
“Don’t limit yourself. Many people limit themselves to what they think they can do. You can go as far as your mind lets you. What you believe, remember, you can achieve.” – Mary Kay Ash.
There is no specific roadmap to follow to get started in software development. Still, there are certainly guides you can follow. The video below is from Pirate King. He talks about how he would have learnt to code if he were to start again. He gives some good advice and will be a great guide on your software development journey.
Be brutally honest with yourself at each stage of your growth. Take full responsibility for your actions and their outcomes. Be the best at what you do, and let’s make a difference together.