Software developers (also known as computer programmers) design, build, install, test and maintain software systems that help businesses and equipment work effectively and efficiently. The work could involve designing computer controls for industrial and manufacturing machinery, building administrative and financial databases, or developing software for home entertainment equipment.
Software developers work closely with analysts, designers and staff to create technical plans to meet the needs of the client. They work with a range of web-based technologies and have to understand how databases integrate with these systems. Software developers are responsible for:
Although most software developers either have a computer science or engineering qualification, it is not necessary to complete a degree or diploma; in some cases, doing a relevant course is all that is required. That said, certifications and experience in various programming languages and operating systems can give the necessary edge towards effective programming. A National Senior Certificate that meets the requirements for a diploma or degree course is a pre-requisite. Experience can be gained in company trainee programmes, work placements, internships or a year in the industry. Also, all software vendors, including Microsoft and Sun, run accredited training. Keeping up with the rapid pace of change is vital in this profession and, therefore, learning from more senior programmers and going on external courses to keep your professional skills up to date is highly necessary. Training should focus on programming, systems analysis and software from recognised providers. It would be beneficial to register with the Computer Society of South Africa once qualified.
Contact each institution for their specific requirements, but these subjects are recommended:
• Mathematics
• Computer Science
• Information Technology
• Computer Applications
University of the Witwatersrand
Various Programmes
University of Cape Town
Various Programmes
North-West University
Various Programmes
University of Johannesburg
Various Programmes
University of Pretoria
Various Programmes
University of Stellenbosch
Various Programmes
UNISA
Various Programmes
Cape Peninsula University of Technology
Various Programmes
Tshwane University of Technology
Various Programmes
College of Cape Town (Private FET)
Various Programmes
Varsity College
Diploma: Information Technology (Software Development)
CTI Education Group (Private College)
Certificate: Information Systems (Software Development)
Institute of Information Technology Professionals South Africa – www.iitpsa.org.za
Information Systems Electronics and Telecommunication Technologies – www.isett.org.za
Joburg Centre for Software Engineering – www.jcse.org.za
Why did you choose this profession?
I always had a passion for technology and the working thereof, thus I got into development of software at an early age and decided that I would make this my career of choice. I get a lot of job satisfaction from solving business-related problems, as well as enhancing business processes by designing software solutions.
What training did you undergo?
I was always a go-getter and wanted to benefit from the most value in the least amount of time regarding my training. I studied my Microsoft Solutions Development certification alongside my Database Administration certification. After I started in the industry, I could then pinpoint exactly what my specialised direction would be. I’m now busy with my BSc in Information Technology.
What type of personality is best suited to this work?
A person who doesn’t always like to deal with clients directly and who has a literal, as well as a creative, mind will be perfectly suited to this career. If you get excited about new technologies and how they work, you’ll be perfect for this type of work.
Experience versus formal training?
In this industry the training information is purely temporary, as we all know that technology changes at a rapid rate; thus actual experience will be more important than actual training. The more years of experience you build, the more valuable you become.
Describe a typical day on the job
My day runs an 8am to 5pm shift and most of that happens in front of my PC. I have a short meeting, discussing progress on current projects or possible new ones. Then I continue on the current development and/or start a new development based on a business requirement or technical specification.
Which aspects do you enjoy the most?
The continuous learning of new development methods and techniques in an enterprise environment, and also the completing of important revenue-generating solutions – then watching them perform.
Has there been a career highlight?
Yes, managing and building a multibillion-rand revenue-generating solution and seeing it grow in our environment.
Future goals you’d like to share?
In this industry, the sky isn’t even the limit as to what a single person can achieve. Therefore, I want to learn as much as I can and become the CEO of my own software development company, specialising in front-end as well as enterprise solutions.
What advice would you give to someone starting out?
Be energetic and enthusiastic about your new career; don’t wait around for anybody. Be a go-getter and accept any project that comes your way (even the not-so-nice ones). This approach will provide you with the valuable first-hand experience that’s necessary in order to thrive in this industry.
Why this profession?
Because of the prospect of making something out of nothing and solving a real-world problem using my creativity and technical knowledge. Also, the application of my field is extremely wide, which provides constant challenges. I am never bored.
What training did you undergo?
I studied BSc Software Engineering at UNISA.
Is there a personality best suited to this work?
Yes, I believe an analytical and creative personality would be very strong in this field, enabling logical out-of-the-box thinking.
Describe a typical day on the job
I begin my day with validating the operational status of my systems, then I focus on the projects that require new development, developing and testing component by component.
What do you like the most about your job?
I love the fact that each day brings a new challenge and a new problem to solve.
Which aspects are you least enthusiastic about?
Documenting what you do is always the most mundane part of the job, however, documentation is imperative as this will aid future software engineers to resolve issues, and make improvements.
What are your goals for the future?
I intend to further my studies in the field of artificial intelligence and robotics.
Advice for someone starting out in your career?
Play, and don’t be afraid to break something. In the world of software engineering, the best way to learn is to play with something until it breaks!
Describe your job in three words
Challenging • Rewarding • Interesting