A paradigm shift is required to teach software development
Technology is evolving rapidly. It seems only fair to expect that the skills being taught to those entering the workplace also need to change and adapt. However, this is not the case with tertiary institutions like universities and technical colleges, which are still stuck in the traditional mindset of only focusing on transferring knowledge. What is needed is an environment in which aspirant software developers can get trained and move into a good career as quickly as possible.
If anything, being able to train somebody with the end goal of getting a job and building a career has become the key differentiator. Just consider how the world’s software requirements have grown exponentially over the past 20 years. Every organisation needs software to be successful. Whether it is a retailer looking to open more stores or a brand wanting to expand on its product range, software is the golden thread tying everything together.
Invariably, this has created a massive need for software developers. But in South Africa, the number of software developers entering the market is low, mainly because of the reliance on the ‘old way’ of doing things.
Slow change
For example, a Grade 9 pupil who wants to become a developer still has three years of school left. Going the degree route adds another three or four years to the process. Then to become an intern and become job-ready is at least another year. Conservatively, that means we are looking at a turnaround time of seven to eight years to build South Africa’s software developer pool.
A paradigm shift is therefore needed in the training environment. This requires the ability to train a lot of people quickly and practically - with the right experience - in a short amount of time. It is about helping the youth of the country get into a career with a good salary early on, as opposed to the lengthy process they must go through now.
Specialist skills
As the world moves towards specialisation, the way training is done has become too generic, especially at universities and technical colleges. There, the focus is on teaching software development along with aspects like marketing, human resources, finances, and so on. In reality, these are irrelevant and add no value to the career of a software developer.
If anything, the need today is around creating specialists and not generalists. To get value from software development, we need to move beyond teaching old programming languages because the curriculum has not changed in years, to something more relevant to the demands of the digital world. A fraction of people in university attain their degrees and even fewer end up getting jobs.
They simply do not have the practical skills and experience that many organisations are looking for. Often, you end up with a bunch of twentysomethings walking around with degrees trying to fit into an organisation.
At a typical tertiary institute, a learner will do the user interface, logic and coding, reporting, and database connections themselves. But this is not how life as a developer works. You must work in a team with each member focused on various aspects. This is why graduates need at least a year as an intern to be taught how to actually code as part of a team.
Investing in your own career
This requires aspirant software developers to figure out what they want once they leave school. We must get away from education for its own sake to thinking about what education can do for the individual. People must chart their own careers and understand the skills they need to get a job.
It boils down to what is going to get them there the fastest in the most efficient and most valuable ways possible. Is this going to happen when they complete their degree at university? In all likelihood, it is not. Instead, a combination of class-based lectures and online skills development has become crucial. Completing projects that are designed for a real-world context becomes invaluable.
A software development academy in which a student learns practical, valuable skills with coding in an environment to best replicate a job while getting experience in working with a team then becomes the foundation of life, post-Matric.
The way software development is taught must be reinvented for today’s digital world.
Of course, having students finish school and get a job requires more than developer skills. It is a combination of soft and technical skills. For example, students need to learn how to work and collaborate within a team, know how to handle themselves in a meeting, and even understand how to dress for work. These are all things that fall by the wayside going the traditional route.
The way software development is taught must be reinvented for today’s digital world.