What Zimbabwean Developers Need

Guest Author Avatar

We have no shortage of talent in Zimbabwe, in fact we have some of the smartest people in Africa, but when it comes to proving it with results, we fall short. The solutions we are rolling out of our development houses are not of the standard one would aspire to. Why is that? I think that there are three main factors which are affecting our developers and hindering them from producing the quality of solutions we see on the internet.


Most artistic genres are characterized by some sort of tutelage or mentoring. The best way to learn is from someone who has done it right. As a development community, we could benefit by learning the ropes from more experienced people. This is why it’s important for organisations to send their developers to conferences and training sessions. There, they can form critical relationships and networks. Theoretical knowledge from Google and stackoverflow can only take you so far. It helps to have someone you can Skype with and have a 30 minute discussion about the best way to implement a multi-tenant database or something like that.


Our local developers lack just about all of the resources that they need. It is a well known business principle that you have to spend money to make money, but when it comes to developers our companies are reluctant to loosen the purse strings. It is shocking that in this day and age, you will find developers from some noteworthy companies working on a $300 desktop with 2GB of RAM and really bad internet. Companies have to appreciate that they need to invest in their developers in order to get results.

Supporting Roles

The organisational structures in most companies do not provide critical support roles for developers. Roles like architects, IT project managers and designers are often non-existent and you will find the developer wearing all three hats. Local businesses need to appreciate the importance of these roles and how their absence is contributing to the quality of the products they get. The problem with our software cannot be solved by addressing these three issues alone, and they are not small issues we can solve in a day, but addressing this or at least having a discussion around it would be a great start towards achieving that objective. We need to have a candid discussion about how we can advance our technology space to global standards and nurture developers who can produce world-class solutions.

These solutions will also help developers get used to international practice as they brace themselves for the job opportunities that will be coming their way going forward.

About Guest Author Munyaradzi Mafi

Munyaradzi Mafi is a moody millennial who is passionate about developing awesome software and teaching others how its done. He enjoys reading, writing, founding startups and sharing knowledge on everything and anything. When he isn’t wrecking havoc, he fools around with AI, Mobile Apps, Enterprise Apps and other buzzwords he finds on the Internet.


  1. Ndan

    Very good article.The country could actually use some people like you with talent.There is so much room in Zimbabwe to develop useful applications that can promote economic growth.What is the ideal entry level programming language that the young can start with?

    1. Munyaradzi Mafi

      I would recommend Ruby. Its easy to develop applications with (both front and backend), and there is a lot of content available online. I started with Java myself but its not the easiest of languages when you are a beginer. So i think Ruby and Javascript to start.

    2. Imi Vanhu Musadaro

      You can start with any language, it largely depends on whay type of applications one intends to develop. This idea that there are hard, or easy, languages is just a matter of the availability of learning resources and how much configuration you are willing to do. Some languages have tools what work out of the box, for example C# with Visual Studio. Other languages have tools that usually require some configuration like C and C++. They are not hard, you just take a little more time getting about.

      1. TheKing

        There are no hard or easy languages, but there is an issue of learning curves. I am a Java developer and I believe Java has a steeper learning curve than Python. I haven’t worked with Ruby, but I have heard the learning curve is not steep. Thanks for encouraging upcoming devs with your comment.

    3. Sagitarr

      In the old days (mid 80s) BASIC (Beginner’s All-purpose Symbolic Instruction Code) was the entry point at desktop level. This was because complex topics were broken down to make learning about programming less difficult. Writing from experience, this was true as BASIC has English-like statements as part of its syntax and a computer program was written from pseudo code until the refined run-time code was ready. These were procedure-oriented systems much different from the object-oriented systems of today.
      A computer programming language is selected (usually by the system architect) based on the specific application to be developed and the environment in which the end product will be used/applied.
      I will not hesitate to recommend BASIC because it usually ships with the Operating system (no setup or config required), and being an interpretive language, will run on-the-fly.

      1. JamesM

        Not sure I would recommend BASIC for learning programming. Pascal is what I would recommend as a spring board to a career in software development. Learning structured programming is the discipline that counts more than the semantics of the language.

        1. Sagitarr

          Programming is an art. GOTO statements, which are the bane of those agitating for “structured” programming, are efficiently used in some low level languages like assembler and TCL where resources are limited (memory, variables etc). Spaghetti code can still be produced by well meaning pundits of the “structured” programming school. Ultimately all this is subjective. Discipline is part of writing elegant code but does not guarantee it. For the young, I will recommend BASIC for the basics!!

  2. Art

    Great article, indeed there is talent in Zimbabwe. Most of international companies recruit from Zim. If company IT managers or CTOs could check this article. Companies need to invest in their development teams for quality products.

  3. star

    great stuff bro… talent with passion added with resources will tech our developers far

  4. TheKing

    To be a good developer, you must also work on quality projects. If you don’t have access to work on quality projects, try contributing to open source projects. Follow link below for a list of beginner friendly open source projects to contribute to:


  5. ThinkBig

    I don’t get how a thousand dollar computer will enable someone to become creative or a better developer. If you can’t do it with a $300 machine, you are not good at all.”The solutions we are rolling out of our development houses are not of the standard one would aspire to.” Are standards brought about by an expensive machine, i really don’t get it. The other two proposals are ok. I only had an issue with the resources one.

    1. TheKing

      I understand what he is saying. For big projects, you need a proper machine that is not going to give up under heavy load. I worked for a company where I got a mediocre machine and I was struggling until they bought me a good machine.

      1. Wraythe

        One thing comes to mind… Optimize!

        If you need big machines, your code isn’t optimized enough!

        1. TheKing

          You are right, but think of the following scenarios:

          1. A project that requires additional software to run e.g messaging brokers, matlab and a resource hungry container such as IBM WebSphere
          2. Working with additional software such as Photoshop, video editing software e.t.c as is ussually the case with frontend devs
          3. A large codebase that now takes time to build/run tests. An example would be this project that I contribute to: https://github.com/elastic/elasticsearch

  6. Sagitarr

    IMHO start small – learn the basics of programming with as much minimum specifications as affordable. Learn more about business and information systems to cover the operational environment. Learn more about technology (hardware) and latest trends in software engineering. Get at least a College Diploma in Systems Analysis & Design or MicroComputer Technology..or similar (NCC etc)….read and apply concepts. What you don;t know you can learn – if you don’t ask you won’t know. Computing is a practical subject.