Programmers, known within the industry as developers, are the builders, inventors and problem-solvers of the digital age. Our lives are all but dependent on computers, and developers are the brains behind the workings of every type of computer imaginable - from your desktop PC and smartphone to the systems sending spacecraft into orbit or the programme that tells your washing machine to rinse and spin. And yet, despite being one of the few lucrative careers that require little to no formal tertiary training, development careers have been reserved mainly for the upper-middle classes who grew up tinkering with computers at home.
Education authorities, scholars and prospective developers should gain an understanding what it means to be a developer in 2015 and what candidates need to qualify for their first development job. As with most vocations, development includes several overlapping scopes of expertise within a large and multi-faceted industry, and a basic outline of what each scope entails is necessary to choose the career best suited to an individual’s needs.
Web development
At the simplest level, there’s web development which relies on the internet as its chief medium. Web developers use a variety of programming “languages” (mainly HTML, Javascript and CSS) to communicate with existing software to create websites. They take a design (a static illustration created by a web designer) of what the website is intended to look like and turn it into a pixel-perfect, multi-functional domain with buttons, links, forms, animations, and so on.
Web development often overlaps with application development to create web applications such as Gmail and Instagram or web services such as Twitter and PayPal. Generally, software developers are responsible for creating web applications and web services, but web developers often include these skills in their repertoire.
Ideal candidate
Individuals who enjoy making things work well and look good while maintaining a higher level of creative freedom should consider a career in web development. This type of development is the easiest to learn, and is often used by aspiring software developers to get a foot in the door of the programming industry.
Formal web development courses are available, but experience trumps a qualification in this case, so it’s best for the individual to just familiarise themselves with HTML, CSS and Javascript and get as much practical experience as possible before applying for a job. A portfolio of work would help illustrate a candidate’s level of expertise to potential employers.
Software development
Software is made up of various utility classes, but invariably refers to the instructions given to a computer to execute desired tasks. At the most visible level, software developers use languages such as .Net, Java, Php, Python, Node.js, C++ and Lua to create programmes such as systems and applications that run on operating systems and communicate with other programmes.
Software applications refer to software that requires user interaction to achieve specific goals, and unlike websites and web applications, must be physically installed on a computer before they can be used. Anti-virus programmes, word processors, media players, games and photo editors are typical examples.
Ideal candidate
Students who want to build systems and solve problems should opt for software development (application or other). Software developers typically require some sort of formal training, usually in the form of a diploma, but most established software developers consider a degree or extended diploma to be a waste of time and resources that could be used to gain valuable experience. Looking up local job listings is a good way to anticipate the qualifications or experience required for an entry-level software developer.
Apart from technical skill, it is important that software developers have a good understanding of the end-user’s needs and intentions as well as the software’s requirements (including user input, computation, and output specifications), but this can easily be learned on the job.
Software engineering
At the lowest level of software functionality, there is the operating system which acts as an intermediary between all the computer’s hardware and software. Operating systems are mainly built by software engineers using languages such as C and C++. While software engineering tends to focus on operating systems, it is not limited to this purpose and is also used in the programming of machinery such as washing machines, smart fridges, robots and so on. Languages such as Java, Python and Assembly are often used to this effect.
Ideal candidate
Those who enjoy pushing boundaries and refining solutions may find software engineering to be their ideal challenge. This is the most difficult level of development and consequently requires a great deal of expertise. Therefore, unless a developer has had an inordinate amount of experience, an engineering degree will typically be required. Software engineering is generally the highest paying level of development, which justifies the amount of time and effort required to qualify.
Closing comments
Whereas a lack of resources may be a valid reason for schools failing to include development in the core curriculum, it is important that institutions with adequate resources (such as libraries and computer centres) employ qualified developers to teach basic development practices and equip students with one of the best professional tools in the world. If every scholar in Africa learned basic development, unemployment figures would drop significantly resulting in a healthier and more stable economy.