If you’re not a developer or engineer, concepts like front-end vs. back-end development can be challenging to wrap your head around. Pile on all of the frameworks, programming languages, APIs, and libraries that developers use to build apps, and things can get pretty confusing.
The good news? You don’t have to write code to understand the basics of back-end development and the various components of a typical “software stack.” In fact, knowing your way around it is helpful whether you’re a CEO, a hiring manager, a sales person for a tech-based startup, or a product manager.
To help you become a pro in all things back-end development, we’ve gathered up a series of articles that cover some key things to know—in a way non-developers can understand. You’ll not only know what server-side scripting is and what back-end engineers do, you’ll learn the pros of the different programming languages, how the cloud is changing things up, why APIs are so important, and how to make decisions about what frameworks are best for your app.
The Fundamentals: The Front End vs. The Back End
To understand the back end, or the “server side,” you also have to know the front end and how the two interact. The front end, also called “client-side” programming, is what happens in the browser—everything the end users see and interact with. The back end, on the other hand, happens on the server (on site, or in the cloud) and databases. It’s the machinery that works behind the scenes—everything the end user doesn’t see or directly interact with, but that powers what’s happening.
It’s important to note that this convenient way of divvying up development has changed significantly over the past 10 to 15 years with the explosive growth of JavaScript, which wasn’t as ubiquitous on the front end as it is now, or as common on the back end, thanks to Node.js. There’s more overlap between the two, especially when it comes to a JavaScript developer’s role on a fully JavaScript-powered stack.
Here’s a visual to give you an idea of how front-end and back-end development flow.
You can see how the server-side (in the green box) manages all those requests that come from users’ clicks. Front-end scripts volley those requests over to the server side to be processed, returning the appropriate data to the front end. This often happens in a constant loop of requests and responses to the server.
To learn more about the front-end process, start by reading The Role of a Front-End Web Developer: Creating User Experience and Interactivity, then see how all those client-side scripts work in our article “Front-End Web Development: Client-Side Scripting & User Experience.”
Now, let’s take a look at how back-end architecture works—the software and machinery that take over in step four in the above graphic.
The “traditional” back end is a mix of the server, databases, APIs, and operating systems that power an app’s front end. For an in-depth look at the software that ties it all together, read Server-Side Scripting: Back-End Web Development Technology, or get a basic view of back-end technology with our article The Role of the Back-End Developer.
The back end of applications can look very different from application to application, whether it’s the use of cloud-based servers and data warehouses, containerization with a service like Docker, Backend-as-a-Service (BaaS) providers, or APIs to replace more complex processing.
Let’s go a little further into these concepts by looking at some of the technologies that make it all run.
Breaking Down the Software Stack: The Basics of Back-End Tools & Technology
Back-end development can be much more varied than front-end development, which is largely driven by JavaScript, HTML, CSS, and various front-end frameworks using these languages.
To simplify things, we’ll break the server side down into four main components of a “software stack”: the server, the database, the operating system, and the software.
Here’s some more information about each of these components of the backend.
1. Servers: The Machinery
Of your back-end stack’s four components, whether it’s on-site or in the cloud, the server acts as the lifeblood of the network. These high-powered computers provide shared resources that networks need to run, including file storage, security and encryption, databases, email, and web services. Learn all about types of servers, what they do, and how they play into the back-end stack with our Guide to Server Technology.
Once you’ve gotten the basics down about on-site servers, expand your knowledge with a look at virtualization, how servers get provisioned to house multiple apps, and containerization, another way servers provision their operating systems out to house compartmentalized applications.
2. Databases: The Brains
Databases, in the context of a website, are the brains that make websites dynamic. Any time you request something from a website—whether you’re searching for a product in on online store or searching for hotel locations within a specific state—the database is responsible for accepting that query, fetching the data, and returning it to the website. Databases can also accept new and edited data when users of a website or application interact with them. The client can change information in a database from the browser, whether a user is posting articles to a CMS, uploading photos to a social media profile, or updating their customer information.
In this quick Guide to Modern Database Technology, you’ll get an understanding of how databases work, common terms to know, a look at SQL vs. NoSQL, and how to determine which database is best for your web application.
Upwork’s Hiring Headquarters also has a collection of articles relating to data science and big data that you can explore to learn more about data-related things like
- Big data. Big data has definitely changed backend development over the last decades. Because of its volume, many physical backend infrastructures have moved to the cloud, and utilize big data technologies like Hadoop and the Hadoop ecosystem. Learn more in our article, What is Big Data?
- Go a bit deeper into the various technologies of big data with The Tools of Big Data Science
- A look at the popular NoSQL database, MongoDB
- See how data drives dynamic content and data-driven marketing
- Get an in-depth look at the Python language and 15 popular Python libraries for data science
3. Middleware: The Plumbing
Middleware essentially describes any software on the server that connects an application’s front end to its back end. Think of middleware as plumbing for your site—it pipes any communication, like requests and responses, back and forth between your application and your server/database. Just like plumbing in a house, you don’t see middleware, but it’s there and it has to be reliable and always do what’s expected of it.
Middleware (server-side software) facilitates client-server connectivity, forming a middle layer between the app(s) and the network: the server, the database, the operating system, and more. Middleware can be multi-layered, organized into different layers of a site, whether it’s the presentation layer or the business layer. This is also where Web APIs can play into the stack, providing a bridge between the business layer and presentation layer.
Middleware also lets cloud applications and on-premise applications “talk,” and provides services like data integration and error handling. Good middleware can also maximize IT efficiency and power things like user engagement, business process management, content management, authentication, and more. Koa.js is an example of a server-side JavaScript framework—read this article to get a better understanding of what kinds of things middleware can do.
Next, we’ll talk about some of the programming languages and frameworks used to build different types of middleware, APIs, and server-side software.
4. Programming Languages & Frameworks: The Nuts & Bolts
Back-end developers can choose from a variety of languages and frameworks depending on the type of application they’re building, its specific processing requirements, and what other components already exist on the back end.
Languages will differ in file size, performance, compatibility, how many lines of code required, and the style of programming. Some back-end scripting languages are object-oriented programming languages, a style of programming that bundles attributes and functions within objects. Other languages may be compiled rather than interpreted, something that affects load time, readability, and processing power required to run the application.
A majority of sites are built on PHP, making it one of the most popular back-end scripting languages. But there are plenty of others to choose from. For instance, you may want to use the processing power of Python for a data-driven site, or leverage the speed of lightweight languages like Ruby for faster prototyping. It’s up to you and your developers, and every language has its pros and ideal applications.
Take a look at a few of the other big hitters in back-end programming, like:
Where these languages really take off is with the frameworks that developers use as scaffolding to build server-side applications. Learn what a framework is in this article, then check out a few popular ones:
- Django (for Python)
- Spring framework (for Java)
- 15 Node.js Frameworks to Know, including MeteorJS and ExpressJS (for JavaScript with Node.js)
- Ruby on Rails
- Symfony (for PHP)
- JSF (Java Server Faces)
That covers the most basic concepts and tools of back-end development, but there’s still more to learn.
APIs: A Crucial Tech in Back-End Programming
You can’t talk about the back-end portion of an application these days without touching on APIs (application programming interfaces) and how they connect software, applications, databases, and services together seamlessly. APIs play an integral role in how most server-side software architectures are built, oftentimes replacing more complicated programming to allow software to communicate and data to be transferred.
To help explain the power of APIs, Upwork wrote the free e-book “The API Economy” that covers all you need to know to get started with APIs. Download it for free and then check out this series of API articles to get a better sense of how they work within the back-end infrastructure, how to build a secure API, and more.
- What is an API?
- Public APIs vs. Private APIs: What’s the Difference?
- SOAP vs. REST: Comparing Two API Architectures
The Off-site Backend: All About the Cloud
Many server-side architectures use the cloud to deploy some or all of their databases or software components. We’ve put together a series of articles about the cloud to explain how the cloud works, and to help you determine when and why to use the cloud in your back-end development.
- Hybrid Cloud: A Brief Intro
- Moving to the Cloud
- Is Cloud Bursting Right for You?
- How Cloud Computing is Changing the Software Stack
- Cloud Security: Keeping Data Safe in the Cloud
- Launch, Run, and Scale Your Application in the Cloud with Heroku
You can also read about Upwork’s site modernization and migration to Amazon Web Services (AWS) on the Upwork blog.
Hiring a Back-End Developer
You may know you need some back-end development and engineering, but may not know what goes into your project or which experts you’ll need to get it done. When it comes time to find that top-notch back-end developer, we’ve put together a few more resources for you.
One very important thing to note about engaging a backend developer and choosing backend technology is that the two are not mutually exclusive. For instance, you may find that you’re willing to change your mind about the framework you’re using if you find a great team of developers skilled in a technology you weren’t initially considering using.
If you have settled on a stack or technology, Upwork’s Hiring Guides have articles to help you find, hire, budget for, and write project descriptions for a variety of developers like PHP developers, SQL developers, C# developers, and .NET developers. Check out the following resources to help you kick off a successful search for a front-end developer:
- How Do You Hire a Back-end Web Developer?
- How to Hire a Web Developer
- How Much Does it Cost to Hire a Back-end Web Developer?
A note about network security
These days, every IT and programming job is also a security job. Any developer working with servers and networks should have a basic understanding of security concepts. More and more, companies are prioritizing security and expanding security budgets, hiring developers who know how to put these concepts to work.
To explore a bit more about security, check out the following articles:
- Inside IT Security: Protecting Your Network from Every Angle
- Data Security: The Top 10 Skills You Need on Your Team
- Cloud Security: Keeping Data Safe No Matter Where It Is
- Trends in Cyber Security Threats
- Ethical Hacking: Why You Should Hack Your Own Network
Your developer will be able to recommend the tech that’s best for your needs, but having a broad view of what’s out there can help you make an informed decision.
Upwork. Get more work done faster with freelancers. Post a job today—it’s free!