It is common knowledge that software is eating the world and doing so at an accelerating pace. A problem with that is the vast and ever growing glossary of terms used in the industry. This can make it difficult for new entrants and even current residents to wrap their head around what different terms mean or why development has a front-end and a back-end.
This isn't an exhaustive list and honestly, as time goes on terms might change or lose their meaning, to help with that I'll also host this list over on github so that anyone can help contribute to it.
This article will essentially be a little dictionnary of terms from the development (and adjacent) industries, a definition, and where possible a link to some articles that I feel give a more complete explanation.
See API first.
API development involves creating the interfaces that enable other developers and their software to be more extensible. Since each API is specifically built for its service, an API developer would need to become familiar with the service's capacities to expose them to other developers and programs. Being aimed at other developers, developer experience is a key consideration.
API development is often also a task for back-end developers.
More Info
Learn
Application development is the area people might initially think of when it comes to software development because the results are the kinds of software we interact with most often on our computers. Programs like Word, Chrome, Spotify, and similar are examples of the type of software made by application developers.
More Info
Learn
Also referred to as server side programming, this is the counterpart to and consists of the work done behind the scenes to ensure the front-end of an application continues working smoothly.
Back-end development consists of everything that the users do not direclty interact with like managing databases to store application information, business logic, calculations, and sometimes the whole architecture of the application.
More Info
Learn
Cloud computing is the constant availability of computer resources and services over the internet/cloud. A cloud developer works to move the software development cycle to cloud based development, testing, release, and deployment. It can also mean working on developing cloud based software such as PaaS, SaaS, and IaaS. Such development requires a developer to be comfortable with cloud service providers like AWS, Azure, GCP, and more.
More Info
Learn
In contrast to back-end development, Front-end development concerns the client/user facing portion of an application. Used in the context of web development, this would be the interface of the website or app as well as all the logic and data handling that is done within the browser instead of a server. The developer must also be comfortable using APIs in order to send and receive data to various servers and cloud services.
More Info
Learn
Accessibility sometimes written as a11y (eleven letters between the 'a' and 'y'), refers to how easy your software is to use if you suffer from things like color blindness, motor control, and more. It is often used to describe websites
More Info
Learn
API stands for application programming interface. What this means is that an API is essentially like a remote control for different software that you can control with your own code. For example let's look at YouTube, you can interact with it through the usual channels, with the mobile app, on the website or maybe through your smart TV. But what if you wanted more control, or had a use case that YouTube itself didn't cater to very well, that's where an API comes in.
If we continue with the remote control analogy, the YouTube API gives you a remote with buttons that let you search for content, upload videos, manage playlists and more. And just like with a remote, you don't need to actually understand how it's all working behind the scenes.
Now, thanks to the API, you could create your own application that curates the most popular cat videos of the month based on your own criteria of what makes a video popular.
More Info
Learn