The global tradition for new programmers writing their first program is “Hello, World!” and whether written in London, Lagos, or Los Angeles, it works the same. A line of code is the same no matter where it’s done.
While software development is similar globally, how a developer improves their technical and non-technical skills can vary based on their geographic location. A unique continent, when forming your roadmap as a software developer in Africa, there’s a cultural context that must be considered.
Approaching 100 interviews with software developers from each part of the African continent, east, west, north, south, and central, I’ve received various responses to the question, "what does it take to be a successful software developer in Africa?"
Here’s a “cheat sheet” of 21 tips.
The following list includes tips from 8 developers with varying levels of expertise. So whether you have three, five, or ten years of experience programming—or no experience at all—you’ll be sure to find some tangible ways to improve as a software developer.
Harun Wangereka, senior android developer at Apps:Lab
1) Be results-oriented:
What I’ve found to be effective is aiming for results. Over time, results are better than perfection because you’ll have more experience. You can work on one application for two years trying to make it perfect, but you’ll grow a lot more if you work on a couple of different applications in that same two year period.
I read a lot. I read people’s code, articles, and what other developers are saying online. Reading can broaden your horizons. Maybe you have one particular way of solving a problem, but if you see how Person X solves or approaches that same problem, you’ll become aware of other approaches.
3) Join a local community:
In Kenya, we call developers who don’t interact with other developers or join communities, bedroom devs. With time you find what you know is limited and biased. And it’s easy as a human being, I guess because of our psychology, to think you’re the best and that you know it all, and not receive feedback. But the more you interact with other developers, the more you gain knowledge to solve problems differently.
Grayson Julius, co-founder of iPF Softwares
4) Avoid shortcuts:
A client might come with a low budget, but that doesn’t mean you build a substandard product. To me, that is not ethical. This is a profession and although your client can’t read your code, be ethical. Build in a way that when you see it next year, you will be proud reading your code.
Adora Nwodo, software engineer at Microsoft Mixed Reality
5) Be consistent:
If you decide that this is a path that you want to take, you have to be consistent. A bunch of people run into tech because they “think” that software developers make a lot of money, and I don’t know about that. All I know is that your income as a software developer, like any other profession, is based on market demand.
If you’re somebody that adds a lot of value, a company will pay you a huge sum of money because they understand what value you bring to the team. However, if you are a mediocre developer that doesn’t add value and you come into tech expecting to make a lot of money and get the best jobs, no. The best developers will take those jobs.
Being consistent in your learning is very important. You can’t say that you want to be a good developer and not write code consistently. There’s no magic. I believe in the saying; practice makes perfect. So my first key is that if you write code over time, you’ll become a good developer.
6) Read Code:
Go to an open source project or one at your company and look at their pull request. Read code from developers that you think are good developers. It will help you write better code because you’ll learn new ways of doing things. You might read someone’s code and see something you’ve never encountered before.
That’s an opportunity to ask, “Hey, what were you trying to achieve here?” Then you can be educated on another way of doing something, so the next time when you’re writing your own code, you can apply what you learned. You shouldn’t just copy code and not try to understand what they’re doing. Instead, read, understand, and ask questions when necessary.
When you learn something new, try sharing it because you can’t teach what you don’t know. Attempting to share what you know will push you to get a deep understanding of the topic because you wouldn’t want to disgrace yourself by writing something inaccurate. The Internet will roast you. I’m not saying you have to be an expert because sometimes, even when you share, you’ll make mistakes. However, you’ll grow from the process of creating the content to share and from people giving you constructive feedback.
Terry Mafura co-organizer at forloop Zimbabwe
8) Share your work:
In Zimbabwe, we have this thing where people get good jobs and never tell anyone about their process or success. I guess it is common in a lot of places too. We don’t share our stories enough. This is another thing I learned from my East and West African friends. Those guys share their stories, inspire each other, and help each other grow.
So that’s one of the things that we’re trying to do with our communities. We want people to be proud of their work and inspire each other.
I’m a big fan of teamwork. You can’t solve most of these tech problems on your own, especially in Africa. You need people from different backgrounds to collaborate to make things happen.
Always be learning. When it comes to software development or tech in general, don’t stop learning. Also, always stick to whatever skill you are learning, master it, so you have a base, and then you’ll be good to learn anything else.
Kwabena Boadu, senior full-stack developer at The Weather Network
11) Technical skills:
You have to learn the skills of the trade. Practice solving problems and thinking on your feet. Also, try to understand the “why” behind decisions. This will allow you to build stable products with maintainable and scalable codebases. The technical side is easier because there are a thousand and one tutorials online you can learn from if you’re really interested.
When I was in Ghana, I worked remotely, which meant I woke up, sat at home, and worked with a team on the other side of the continent. The only time I saw my team was when we jumped on a video call, and that didn’t happen too often in a day. So how do you keep your team members informed on what is happening with you? You have to communicate! Communicate early and communicate frequently.
The little acts of professionalism, like showing up on time, being online, always responding when someone pings you with a message, goes a long way.
Regardless of how great of a developer you are, if your communication and professional skills are not good enough. You’ll always fall short because the technical skills are the easiest to learn.
Eugen Bleck founder of Njaka
14) Support of Peers:
My first real paying job was a client in the UK.
After months of being overworked, one day I was pushing my code, and the database server crashed. Panicking because the application was live, I contacted the other developer in India, “do you have an idea of what happened?” He said, no.
Feeling really stressed out and pissed, I called a friend of mine. He told me to take a breath and that these things happen. And that stress will only make me feel like there’s no solution when there is.
He was right; I brought back the platform in a few days.
Honestly, I think without my friend’s encouragement, I wouldn’t have pushed through and finished. Since he didn’t see it as the end of the world, I stopped thinking it was.
Delali Kanda, senior software engineer at Medable
Having a mentor had the most significant impact on my development. At the first company I worked at post-graduation, I always went to my mentor whenever I had a question or problem. He’d tell me about new technologies and the current trends in software development. My advice to younger developers is to find someone who has the experience that you can learn from. Learn how they got there and maybe follow in their footsteps.
I see a lot of developers are lost, wondering, “Should I do backend, front-end, or mobile?” Some even attempt to learn all three at the same time. But if you have a mentor, they’ll guide you in the process and help speed up your development.
16) Have humility:
Also, you can learn from anyone. Some people think, “I’m older than this person, I should know more than you.” So they’re too proud to ask. No, learn from each other. If you don’t know something, ask, and learn. When I got to Hubtel, my old job, I didn’t know React. There was a young guy who just finished his national service that did. I got assigned a React project, and he was there to help and answer my questions. It’s all about teamwork.
Diana Wilson, founder of Yaa W.
17) Be language agnostic:
18) Develop emotional intelligence:
Engineers are known for usually lacking E.Q. so it’s a way to make yourself stand out. You want to be phenomenal in your skillset and the work you produce, but you also need to be a rock star in building your brand and working with people. Those intangible skills are critical to your success in the workplace.
19) Have an entrepreneurial spirit:
People think you need to be an entrepreneur, and that’s not what I mean. I actually think too many people want to start their own business and sometimes they probably shouldn’t. What I mean is wherever you are, you should have ideas. Create projects and launch initiatives when you see gaps. If you do that, there’s no place you won’t be successful because you’ll be challenging the status quo. A lot of people only want to do what they’re given well, but the extraordinary people find ways to change or enhance what they were not even supposed to do in the first place.
Eric Muli, co-organizer of Flutter Developers Kenya
If you want to start writing code or get into the tech field, I'd advise you to take it slow. In tech, people try to be experienced or super devs in two weeks or a month. But being a good dev takes time; it could take you years. So you have to take it slow and try to understand the fundamentals of what you're trying to learn.
Also, be specific, don't try to learn about machine learning, networking, cybersecurity, mobile development, and web development all at once. Choose one path, master it, then move on. It's not bad having a lot of skills, but mastering a technology step by step is the best thing.
Developing your skills is a process; it's like swimming. If you read a book about swimming and then get into the swimming pool, you're not going to be the best swimmer in the world. You need consistent practice before you can perfect something.
21) Project-based learning:
For people that are starting up, there's this tendency to dive into tutorials. We call it tutorial purgatory. They'll watch tutorials on tutorials and never go and build. Project-based learning is the best way to sharpen your skills, not watching tutorials. Learn a topic then put it into practice. Building is where learning comes from.
Stay up to date with our newest posts and special happening here at Built In Africa. Your information is safe with us, we hate receiving pointless emails also. :)