Programmers agree that programming is the heart of the full-stack development ecosystem. In this article, we delve into the ‘punch’ that brings applications to life – the programming that makes the magic happen.
Hardware and Technical buffs will most likely disagree with the previous statement, but anyway. Welcome, once again, if you are here for the first time, you are locking in on our full stack series, and this is part 4. We kicked off this jamboree by Revealing the intricacies of full-stack development, in the blog post “What’s My Job? A Full-Stack Development Odyssey: Beyond Web Design Platforms” followed by two more articles one looking at the infrastructure required to complete the full-stack and most recently we worked our way through “The Full-Stack Symphony: Orchestrating a Powerful Application”.
In this article, we take this party further by getting into the “punch”, not the drinking type but the actual programming that happens so that your application can do the magick it is meant to deliver. Programming is a broad term that encompasses many different parts, there is no one drag-and-drop program that builds an application from start to end. So What are the different components that classify as programming?
Understanding the Divide: Frontend Programming vs. Backend Programming
If you’ve been following our series, you’ll know that a significant divide exists between the front end and the back end — the primary separation of tasks in full-stack development. In this series, we’re focusing on a specific stack—a popular combination of languages used to create applications. In the upcoming sections, we’ll explore the backend, which comprises:
- OS – Operating Systems
- Apache Server and Nginx
- Mysql and Maria Database
- PHP
- Some additionals: XML, xls, csv and datafeeds.
These components form the backbone of the stack, handling what I like to refer to as the heavy lifting, much to the chagrin of front-end developers. However, don’t underestimate the front end — it’s equally crucial and can become exceedingly complex. For the front end, we’ll be exploring a curated selection of software applications responsible for crafting the user interface, including:
- HTML
- Java Script
- GUI – Graphical User Interface
You can specialize in front-end development, back-end development, or even a specific aspect of each. All these parts of the stack can become very complex. However, to be a full-stack programmer, a general grasp of everything is still helpful. This depends a lot on your work environment. Ultimately, successful companies leverage teams of specialists, from network engineers to graphic artists creating captivating visuals.
We won’t cover everything in one fell swoop; instead, we’ll distribute our discussions across multiple dedicated blog posts, each contributing to our full-stack odyssey.
Ready to dive deeper into the programming realm?

The Foundation of Your Programming Development Environment
Operating Systems
When it comes to setting up your development environment, the operating system (OS) is your first major decision. It serves as the foundation upon which your entire development process rests. While there are numerous options available, the choice typically boils down to Linux or Windows. Each of these OSs offers a plethora of variations, including application-specific editions tailored to various needs.
In this series, we’ve opted for Ubuntu, a popular Linux-based OS known for its compatibility with websites and robust performance. One of the key distinctions of server-oriented operating systems is their minimal reliance on GUI (Graphical User Interface). Unlike your typical Mac setup with menus and wallpapers, server applications on Ubuntu are predominantly controlled via a terminal and command-line interface.
While this may seem daunting at first, operating primarily through commands offers significant advantages, especially for remote management of your environment. It provides a powerful and efficient means of controlling your server locally and from afar.
Open Source vs. Proprietary Software
When it comes to software, there are two primary camps: proprietary and open source. Proprietary software, such as Microsoft products, is developed and maintained by a single company, which tightly controls access to the underlying source code. On the other hand, open-source software, exemplified by Linux, is developed collaboratively by a diverse community, with the source code freely accessible for modification and redistribution.
In the early days, open-source software faced scepticism, but as the internet expanded, it surged in popularity. Linux, in particular, has emerged as a powerhouse, boasting widespread adoption and usage across various industries.
Open source dominance: Open source software dominates key sectors, with web server software like Apache and Nginx commanding a significant market share. Studies indicate that they power well over half of all websites, underscoring the prevalence of open-source technologies in the digital landscape.
Here’s a breakdown you can consider:
- Open Source (Likely High): 60-80% (based on web server software dominance)
- Proprietary (Likely Low): 20-40%
It’s important to note that these figures are estimates and may vary depending on the data source and methodology used for analysis.
Join the carnival parade?
Interested in exploring virtual machines? Check out our dedicated blog post here: https://corporate.quickfood.co.za/virtual-machines/
Ready to dive into the world of Ubuntu? You can download and install it for free here: https://ubuntu.com/download/server
For Windows users looking for a development stack, consider XAMPP—a Windows-friendly solution that mimics the functionality of its Linux counterpart, LAMP. While XAMPP is suitable for development purposes, it’s strongly discouraged for use in production environments.
Get XAMPP here: https://www.apachefriends.org/download.html

Stacking up the Servers
Now that we’ve covered operating systems and explored some pre-built server stacks, let’s delve into how it all comes together in a production environment. What’s often referred to as “The Web Server”—singular—is actually a combination of multiple servers. And here’s the kicker—they don’t necessarily have to reside on a single piece of hardware, in the same room, city, or even country. Your web server can span multiple networks, dispersed across the internet.
Let’s get back to the stack. As mentioned earlier, your web server comprises multiple servers, each playing a crucial role. The primary servers we’ll discuss include Nginx or Apache (which are quite similar) for handling web services, such as traffic and access to your server. Then, there are MySQL or Maria Database Servers, serving as your storage engine, housing all the data used by your application. Lastly, there’s the PHP Server, dedicated to processing user/frontend inputs and generating and returning the processed pages.
In addition to these essential servers, other servers are often added for specific purposes. For instance, there are servers for managing email, as well as FTP servers for remote file management. Alternatively, you can use SSH to connect directly to your server from a remote location.
Understanding how these servers interact and collaborate is essential for maintaining a robust and efficient production environment.
Tying it all Together
With all your servers in place—whether on your home PC for testing or deployed somewhere in the cloud—you’re now set up and ready to start building your application. But what type of application will you develop? There are numerous possibilities, and while websites aren’t technically applications by definition, they serve as an excellent starting point and are essential for virtually every business today. In fact, it’s increasingly challenging to operate a business without an online presence.
Let’s say you’re keen on mastering the basics. In that case, using a Content Management System (CMS) like WordPress is a fantastic starting point. You can fully customise it with plugins and APIs to transform it into a fully-fledged application. CMSs come in various types, and WordPress is just one example of many popular platforms that you can install and utilise on your web server.
CMSs are designed to cater to a wide range of users—from novices navigating the online world for the first time to seasoned programmers seeking advanced functionality. They offer flexibility and ease of use for beginners while providing intricate programming capabilities for experienced developers to craft complex online solutions.
And that wraps up today’s blog post. We’ll leave it here for now, but stay tuned for the next instalment of The Full Stack Odyssey Series. In the upcoming post, we’ll dive into the code and take an in-depth look at some of the languages used to create applications.
Thank you for sticking around until the end, and I look forward to having you join me for the next chapter of our journey.
Don't miss out on the opportunity to connect with a community of like-minded individuals who are passionate about shopping, tech, lifestyle, hardware, and stationary products. Follow us on Facebook, Twitter, and LinkedIn to stay updated on our latest product releases, tech trends, lifestyle tips, hardware reviews, and stationary must-haves. By connecting with us, you'll have access to exclusive deals, updates, and the chance to engage in meaningful conversations with others who share your interests. We believe that these interactions will be a source of excitement and inspiration for your shopping and tech endeavors. So, take the next step and hit the follow button today!
The code samples and coding explanations provided on this website are for educational purposes only. By using this code, you agree that you are solely responsible for your use of it. You should exercise discretion and carefully test and review all code for errors, bugs, and vulnerabilities before relying on it. Additionally, some code snippets may be subject to an open-source license. Qwixby is not responsible for any issues or damages caused by the use of the provided code samples.
Code created by Qwixby is free to use. While it is not compulsory, we would appreciate it if you could provide a link to our tutorials at https://corporate.quickfood.co.za/blog-index/
Please note: Rarely we use AI that generates code samples. For information on how and when the AI cites sources in its responses, please refer to the FAQ.