- Read Tutorial
- Watch Guide Video
Now, I don't want you to feel intimidated whatsoever, if you've never even heard of any of these terms before. The goal of this guide is that I want to start painting a picture for you for how development works and give you an idea of how you can build your own mental framework for digital literacy.
The four key terms that we're going to talk about in this guide are going to be stacks
, servers
, clients
, and APIs
. We're going to walk through each one of these terms because, believe it or not, almost every one of the things that you see, whether it's an application or some type of software system you're working with, comes down from one of these terms or has to use it in some form or another.
Starting at the top what a full-stack developer
is. If you ever hear someone called a full-stack developer, that means that they work at every stage of an applications development. They will usually build the front-end, that is what you see, it's the look and feel of an application. Then they'll also build the back-end, and then they will connect the two. They'll build databases, and every part of the application that needs to be implemented, they will do.
Now, full-stack developers usually work at smaller organizations where they're needed to build out an entire system, and the resources are limited. Usually when you're working in a larger organization, you have a much more specific set of tasks.
Moving on to the next one, such as a front-end developer
. A front-end developer specifically focus is, as you may have guessed, on building out the front-end. So that is all they are doing. They are not working very much with servers, instead they are working to implement designs and everything that a user sees when they interact with an application.
Next is a back-end developer
. A back-end developer is one that doesn't build anything that a user is actually going to see. Instead, they're specifically focusing on building out the code on the server. So they're building out all of the conditional logic, the rules, authorization, all of the kinds of things that the front-end developer is going to need to interact with but that a user won't actually see.
Lastly is a mobile developer
, so the mobile stack. If you're working on mobile, you're building different smartphone applications. Typically, that's going to be something that is on android or on an iOS device. There are a number of different ways that you can build mobile applications.
Technically, mobile is usually seen as a different form of front-end development
, and the reason for that is because whenever you're interacting with some application on your phone, it doesn't typically reside purely on the phone. It usually has to go and communicate with a back-end server
so that it can have access to databases
, it can perform various queries
, and it can access data that may not reside on the phone. So those are the development stacks
.
Now, let's talk about servers
, we've already kind of been introduced to them when I mentioned back-end developers
, but technically every one of the applications that you're going to interact with, whether it's mobile, whether it's on your desktop, or a web application, has to communicate with a server
in some form or another. Now there are all kinds of servers. There are servers that run Windows, there are servers that run Linux, and at the end of the day, every kind of application is going to have to use it in some form or another.
If you have a database and you want that database to be accessed by anybody else, whether it's someone else in the organization or someone else on the other side of the world, that's going to have to reside on a server and then someone's going to have to build a way of interacting with that.
That's a perfect lead-in to the next key term. If a server is where all of the code and databases and all the data resides, then what a client
is, is anything that interacts with the server. Popular clients are web browsers, mobile phones, or even other applications.
Lastly, the last key term I want to talk about is an API
. Now, an API is a little bit of a scary term if you've never heard it, but really it is not as complex as a lot of people try to make it seem. It stands for application programming interface
, and all that is, is a fancy term for saying that there is a way of communicating or interacting with the program.
Now, if you've never heard any of those terms before, then that could still be a little bit confusing. Let's walk through a real world example that shows how each one of those can be utilized.
Let's say that you want to post a picture on Instagram. You pull out your phone and you load up the Instagram, iPhone, or android application. You take a picture, and you are using a client, that application on your phone is considered a client
.
Now, when you take the picture and you press send, that you want to post that to your Instagram account, what happens is that it goes and communicates with an API
. So, Instagram on their servers has an API, and it allows for accepting pictures, taking in things like the title, description, knowing which user sent it. The API wraps up all of that data and then it stores it on the server
.
The server then goes, it stores it in the database
. It performs all of its calculations, and any kind of work that it needs to do. It then goes and it sends all that data back to the client
, and you can see that your image was posted and now all your friends can see it.