Software development is one of the most in-demand skills in today’s world. The demand is so great that developers of all backgrounds—from the self-taught to the university grads—have been able to find worthwhile and often profitable uses of their skills. It is because of this (and in some cases the myths of overnight riches) that more people are becoming interested in the idea of software development as a career, business or just a particularly rewarding hobby. This article is meant to serve as the first stepping stone for those who want to become software developers.

Consider formal schooling

For you to (honestly) call yourself a software developer and sell yourself as such, you first need to at least acquire some of the relevant skills and knowledge. One of the best ways of doing this is enrolling into a Computer Science (or another related programme) with one of the local universities or other institutions of higher learning offering these. If this is too much of a commitment for you, you can sign up for the online versions of these programmes instead. If you consider such full-length degree programmes (whether online or otherwise) to demand too much of your financial or time resources, then the rest of this piece is written with you in mind.

The low hanging fruits

Nowadays the areas in most demands for the skills of software developers—or low hanging fruits so to speak—in Zimbabwe are web and mobile app development. Web development consists of both basic website development (which strictly speaking nowadays usually requires a talented designer rather than a software developer) and web application development. The latter is specifically the reason why I wouldn’t encourage a novice developer to pursue desktop application development; nowadays traditional PC applications like word processors and POS software are rapidly getting replaced by their online counterparts. Mobile application development also holds a lot of promise because of the increasing ubiquity of smartphones in the country.

Making money

As a developer, if you feel like you are creative enough, you can produce your software to sell or to monetise using any of several business models. It is, however, more common for (self-employed) developers to offer for a fee their services for creating these websites, web apps or mobile applications.

The skills to acquire

Now that we know what the low hanging fruits of software development are, we can then get around to listing the skills one needs to acquire before they can be able to develop and make money. First and foremost if you intend to be self-employed (which is usually the only option for self-taught people without any formal qualifications) you need to have a great head for business. Clients will not suddenly start scrambling to get through your door once you start operating. You need to become a great salesman and marketer of your skills and services.

Web development

If you are interested in website development, you are in luck as nowadays there are two routes for getting there and one of them doesn’t require that you know any coding. High quality, professional-looking websites can be completely constructed using a Content Management System like WordPress without any prior coding knowledge. As long as you know your way around a computer and have a great eye for design and detail, the learning curve for developing using WordPress is not that steep. Just go online, follow the instructional articles or videos and with enough practice and experience, you will be creating great looking websites.

If you prefer to code your websites from scratch, you need to learn at least two languages, namely HTML and CSS. These are not programming languages but are rather languages used to describe the look and contents of a page on a website. Once you are comfortable with both HTML and CSS, you can add more life to your websites by learning the programming language JavaScript. If you want to increase the functionality of your websites further and be that one step closer to developing web applications, you will need to learn a server-side programming language. I strongly recommend PHP because it is the most used and supported (by web hosting companies).

Now unlike HTML and CSS, both PHP and JavaScript are programming languages. To use them you must understand and know how to program. You can start learning to program with these languages but in my experience, I have discovered that one of the best introductory programming languages is Python. Once you have mastered the basic concepts of programming through Python, getting a grasp on either PHP or JavaScript should be much easier.

Mobile Application Development

I know that there are a lot of Apple fans out there but the fact of the matter is that Android is not only the dominant mobile operating system in Zimbabwe but also the world over. This means that prioritizing learning to develop for Android is just common sense. To develop Android mobile applications, you first need to learn either the Java (not to be confused with JavaScript) or Kotlin programming languages.

Where to learn

Teaching oneself only a limited set of the aspects of software development is one of the fastest ways of acquiring the skills but it still requires dedication. You can teach yourself each of the programming and other languages mentioned here through online courses or books such as Wiley Publishing’s For Dummies series of books which I highly recommend.