Often people will say, “I want to learn how to code”. But what type of coding do they want to do and what options are available to them? Working with computers covers such a wide range of activities, from tracking Google Analytics for marketing decisions to building mobile applications, that it makes sense to try and define how and in what context you want to “work with computers”. Here we distinguish between two popular careers choices: web development and software development. What do these jobs entail, and which one is best suited to you?
It seems almost too obvious to say, but here it is anyway: web developers mostly work with websites and web applications, but not with more general applications that might run on your computer. There are various ways of working with websites and perhaps you’ve come across the terms ‘front-end’ and ‘back-end’ web development. But what do these terms mean?
Check out this Quora question if you want to get a good sense of a day in the life of a full stack web developer. Activities that might take place on a typical day could include:
- Meetings with relevant people including the engineering team, devops about load testing, various clients, etc. This will probably include a daily 10-15 minute meeting about what will be achieved each day, and the impediments to achieving it.
- Various discussions, so communication skills are vital, about every point of the web experience, from user action all the way to the databases at the back-end. Your discussions could be with management, clients, users, technical or non-technical people.
These days, web development is exploding thanks to the emergence of new web technologies and Application Programming Interfaces (APIs) which let websites “plug in” to other useful features. The Web today can deliver ‘apps’ that feel native, because browsers now are so much more than a URL bar.
And because all businesses now requires a web presence, web developer demand is booming. Based on a 2017 survey by Stack Overflow, which interviewed 64 000 developers, a whopping 72,6% are in web development.
However, the employment of web developers “is projected to grow 13 percent from 2016 to 2026, faster than the average for all occupations,” states the Bureau of Labor Statistics. The average for other occupations is 7% – see the graph below. One of the reasons for this is that e-commerce – i.e. online purchasing – is expanding faster than the overall retail industry. In fact, the National Retail Federation claims that online sale will grow three times faster than retail sales. As online offerings increase, the demand for web developers continues to grow.
Software Developers / Engineers
This job description covers a wider range of skills and possible roles. At its simplest, it refers to designing, building and maintaining software and applications – e.g. Photoshop. The work requires a lot of testing to ensure that the software runs well and is free from errors.
Although people use the terms ‘software developer’ and ‘software engineer’ interchangeably, there is also a subtle, and frequently debated, distinction between developers and engineers.
Dr. Melanie Willett, content writer at HyperionDev and former ICT lecturer at Nelson Mandela University and CTI Education Group, explains this difference. “Put simply,” she says, “the difference is that a developer is usually thought of as someone who mainly writes code to solve a problem, whereas an engineer, engineers the solution to the problem. They design the solution, see which components are needed for the solution, how they interact with other systems and users etc.”
But don’t get too hung up on titles. A good programmer is a good programmer and interestingly, many people land themselves a programming job while still being pretty new to the field. The 2017 Stack Overflow survey reports that 11.3% of coders landed their first job within a year of learning how to program – i.e. they only learnt how to program within the previous year! A further 36.9% had learnt to program within the past four years and had now become developers.
Some activities that software developers would do on a daily basis include:
- Using a SCRUM methodology and work in sprints of a couple of weeks – this means you break down jobs into their smaller components, and spend some time writing code to implement features before testing and debugging.
- Deploying new code that has been created, tested and signed off by the client to live servers.
- Meetings with relevant people, including other programmers, management and clients.
- Staying up to date via RSS feeds or online community sites. A software developer needs to be on top of technical happenings and new research.
- You might use some of the following technologies: Java (a core foundation for many Android apps), Python (a one-stop shop and one of the most commonly taught programming languages in US schools), C# (for Microsoft apps), etc.
(If you want to hear more about the day-to-day activities of software developers, check out this article, or look at this video.)
And where do software developers land up? The Bureau of Labor Statistics reports many end up working for firms that deal with computer systems design and related services, manufacturing or for software publishers. Job outlook for software developers is very promising, as it is projected to grow 24 percent from 2016 to 2026.
A Quora post documents some of the pleasures of being a software engineer. Perhaps chief among these is the ability to ‘create’ in order to solve real-life world problems. Of course the wide range of job opportunities and good pay also contribute to job satisfaction.
Ultimately, if you’re thinking about web or software development, decide where you would like to end up. Are you drawn to developing websites and applications? In that case, web development might be the ideal career for you. Or maybe you’re keen to design and implement software and its various applications for businesses. Either way, both careers are very creative and in demand.