Aspiring software developers and coders in South Africa should aim to develop proficiency in multiple programming languages, rather than specialising in a particular discipline, according to local software development companies which spoke to MyBroadband.
MyBroadband contacted Synthesis, Codehesion, and Code College to find out about the latest development trends, and what the most in-demand languages in South Africa are.
According to these companies, the following programming languages are the most sought-after in South Africa:
Synthesis, which focuses on solutions for the banking and finance sectors, emphasised the need for developers and coders to diversify their programming skills.
Synthesis Talent Acquisition Specialist Deborah Schwartz and Chief Innovation Officer Tom Wells told MyBroadband the majority of developers within established companies are either Java developers or engineers skilled in the .NET stack.
Therefore Java, C#, and Python remain important.
“These languages provide the backbone and fundamentals for software development, and are therefore essential for FinTech development houses in particular,” the company said.
Schwartz and Wells said Synthesis encourages a multi-skilled approach to software development, however.
Languages such as Scala and F# are noticeably and increasingly being utilised, Synthesis added.
“The functional foundation is vital for distributed, hyperscale and realtime architectures – and we think this is the architecture of the future,” they explained.
“Languages like Go, Scala, F# and Terraform are very often the tool of choice for our teams, depending on the situation.”
Developing technologies drive language requirements
A transition towards a more AI-centric culture also means that Python, Scala, and R have become popular for data analytics and data science, Synthesis said.
“In dealing with blue chip customers and clients who possess a large amount of data, this is an area in which we have witnessed a greater demand.”
“Additionally, as the world of technology embraces DevOps and CI/CD principles, skills such as Kubernetes and similar containerization tools are becoming essential in the overall SDLC, and therefore languages more suited to the DevOps domain such as Go.”
Additionally, the growth of cloud technology means cybersecurity is another key area in which demand is high.
Cloud drives the requirement for developers with expertise in Amazon Web Services (AWS), Google Cloud Platform (GCP), and Microsoft Azure SDKs.
The company said object-oriented and procedural programmers will eventually be considered legacy, due to the increasing demand of software being required to run in a distributed way.
Mobile app development
With regards to the deployment of software solutions for mobile devices, MyBroadband spoke to Codehesion CEO Hector Beyers.
Codehesions specialises in Android and iOS app development, and Beyers said the company seeks skills in React Native.
“We are also happy to see international uptake in the technology increasing as big companies like Tesla, Facebook, Airbnb, Samsung, Wix, Bloomberg, and more use React Native,” he added.
Based on their experience, he recommended that software developers grow skills in both front and back-end technologies.
For example, a combination of a MVC (Model View Controller) framework such as Python’s Django for the back-end and React for the front-end.
He added that Codehesion had observed an increase in company’s looking at rolling out their own apps as a result of the COVID-19 crisis.
“For one example, a restaurant chain that used to be happy with the way they operated, might think of having their own Uber Eats-like app to enable end-users to order from them frequently.
For the beginners
Arnold Graaff, CEO of Code College, which offers training courses in coding, told MyBroadband Java is “always the best bet for a serious career in the IT industry”.
“Most of our students like Java because it is a good way to start their career in IT and it has the most recognised international exam.”
However, he noted it was important that prospective coders get a firm grip of coding basics before delving into Java.
“Java does not have the quickest learning curve, and it is often a help for juniors to first cut their teeth on something a bit easier,” Graaff stated.
This is why the company starts first-time coders with Python in its Java Bootcamp.
He explained Python was particularly popular in the field of data science, while Java is used in robust financial system and more “hardcore” software systems.