You’ve got your startup idea. You know the digital product you want to build; it’s a mobile or web app, or some other type of software. You’re great on the business side; you know there’s a market for your offering and you know that with the help of software developers, you can bring it to life.
But there’s a problem.
You don’t know what kind of developer you need. Do you need someone skilled in CSS or React? What about Python? What even are these technologies, and how do they differ? What are the advantages and disadvantages of different programming languages?
If you’re a founder asking yourself these kinds of questions, we prepared this guide for you. Here, you’ll find everything you need to understand the uses of the different programming languages on the market.
With this knowledge in hand, you’ll be able to start hunting for developers with the skills best suited to get your app, website, or program built.
A tech stack is the complete list of all the digital technologies used to build, run, and manage a particular piece of software, which could be a mobile or web app. Some developers, development agencies, or tech departments also use this term to describe the full range of technologies in which they specialize.
An example of a tech stack might be:
Each of these technologies has a different purpose, which makes sense. You wouldn’t use multiple technologies if just one would do. You can find more detail on this in the next section.
Some people use other terms that mean the same thing as tech stack. Synonyms you encounter may include ‘technology stack’, ‘solutions stack’, technology infrastructure, or ‘data ecosystem’ - the latter of which has become increasingly popular.
This being the tech sector, not everyone uses the same terminology. That would be too easy.
Web technology stacks include client-side and server-side components.
Client-side technology facilitates the presentation of information so that the user can a) see it and b) interact with it. It’s what you see on your screen when you visit a site.
Server-side tech lies beneath the surface, invisible to users. It’s responsible for the actual functioning of the web application.
Client-side and server-side generally correspond to the division between frontend and backend.
To easily understand this distinction in a non-technical way, think of a TV news studio. The client-side is the news anchor, speaking to the camera and explaining the news to the viewer.
By contrast, the server-side is the journalism that led to the creation of all the information that the anchor is delivering to the viewers at home. Digging through archives and dredging up dirt on corrupt politicians? Server-side. Interviewing informers and following up on tips? Server-side. The viewers may not see these things happening, but they’re still vital activities for the newsroom to serve their needs.
Both client-side and server-side can be further subdivided according to the function of each specific technology that they include.
For example, in client-side programming there are technologies that are used to specify how information will be displayed (HTML) and how it will be styled (CSS). There are also frameworks and libraries like Bootstrap (BS) to help manage both of these languages and make the generic code work in new ways.
If you’re building an application, you’ll face this question. In order to answer it, you’ll need to know the different types of web developer.
Who do you need behind the glasses?
Although there are many kinds of developers, setting aside some unusual/advanced specialisms, most can be divided into one of three main groups:
A front-end developer handles the transformation of data into a form that the end user can interact with. The product of their work will be a graphical user interface of some kind - the images, words, and other items users see when they look at their screens.
Is it on the screen? You're looking at the frontend.
This differs from the work of a back-end developer because the latter handle processes that the user never sees but are crucial to the functioning of a website or web app.
As you’d expect, front-end developers and backend developers use different programming languages to perform each of their distinct roles. For those new to the world of development, we’ve prepared a helpful table with some examples of the types of programming languages you might expect to see on the resumes of both front-end and back-end developers:
A back-end developer handles the core functionalities of any web application. Back-end developers are responsible for three key areas:
To make sure all of these areas can communicate with each other, back-end developers use ‘server-side’ languages to build applications. Examples of such server-side languages include:
Back-end developers also need a way to manipulate data. This might mean finding, saving, editing it, or supplying it to the front end. For this reason, back-end developers also work with tools that include:
Additionally, there are occasions when back-end developers may need to be familiar with:
Both front-end and back-end developers may both be expected to work with:
A full stack developer combines the expertise of a front-end and back-end developer. The responsibilities of a full stack developer are therefore likely to include both client and server-side activities.
Full stack developers bring a breadth of skills to the table. But depth of knowledge is just as important.
Owing to the breadth of skills required of full stack developers, they usually have a considerable amount of experience and likely began their careers as either front or back-end developers.
Because of the amount of detailed knowledge required to succeed as a full stack developer and high-demand for developers that can ‘do it all’, they are relatively rare. They are mostly to be found in small startups and may represent the only web development talent in the company.
In short, a software framework - often abbreviated to simply ‘framework’ - is a platform used to create applications.
But what does that mean?
From left to right: the framework contains different elements that developers may want to make use of. The developers select those they want to integrate into their digital product. This code, after being subject to additions and edits, ultimately finds its way into the final offering.
A framework gives developers a head start. You can think of a framework as the basic ‘skeleton’ of an application; a template that includes many of the generic features that most applications will require.
Developers will begin with the framework, making changes and additions to the code as necessary. As they work, developers will pay attention to the framework guidelines to ensure the eventual product functions properly and can be maintained easily.
The advantage of a framework is that developers don’t have to build everything from scratch.
In general, frameworks often feature:
An API Code libraries A compiler
This is far from a comprehensive list, and what features a framework must necessarily include are hotly debated within developer communities, online and offline.
Among the most popular front-end frameworks (and libraries) are:
Within the development community, what constitutes a framework versus a library is a contentious issue. Many examples of each can be seen to sit somewhere on a spectrum between the two.
Examples include:
We’ve seen how the frontend and backend perform different roles, often based on different technologies. However, for a digital product to properly function, they need to communicate.
There’s not much use being able to control data in exciting new ways if it has no bearing on the end user, after all.
So how do the frontend and backend communicate? And how can they both connect with external data providers?
The answer is through integrations.
Integration, which you might also see referred to as IT integration or systems integration, is the connection of different types of data, applications, devices, and APIs to enable them to interact. As such, it’s an umbrella term for a kind of process that allows things that are unlike in some crucial respect to communicate - not unlike a travel plug adaptor or a translator.
For example, a company might have separate project management and calendar software - perhaps Asana and Google Calendar, respectively.
As a result of the API - which allows integration between different apps - deadlines for tasks created in Asana can be synced to the calendar. In an era where companies or even individuals often rely on several fast-changing applications simply to function, ease of integration is a key concern for developers.
API stands for application programming interface. It is the part of a server responsible for receiving requests and sending responses. To simplify, APIs are one form of integration that allow different pieces of software to interact (rather than just different parts of the same software).
APIs can be used remotely, such as between a client (like a web browser) and a server - which might host the site the browser is attempting to visit, or even locally. Developers often use APIs within their local environment to test applications before release.
APIs are particularly useful to developers as they save time. Instead of having to write everything from scratch, an API provides them with existing commands, objects, functions, and protocols the developers of an application might need for their new app to connect with existing software or remote servers.
With an API, the server is asked for new information at specific intervals (e.g. every few seconds).
Webhooks are very similar to APIs. However, rather than requesting information from the server, a webhook ‘subscribes’ to the server and awaits information to be supplied without having to request it each time.
For example, a webhook might be used to notify you that someone has mentioned you in a comment - resulting in a notification.