This article aims to look at software as a whole and break it up into bite sized pieces and allow readers to better understand the software they use every day.
Aug 2020 by Holly Bullis
Think of software as a list of internal instructions for an electronic device to follow. Devices such as your phone, computer and TV all have these internal instructions. When you press a button on any of these devices the device reads through its internal instructions and preforms a task based on those instructions.
When you press the power button on your TV remote for example your TV turns to it's internal software. Your TV’s software tells the TV how to turn on, and what to show on the screen while turning on. Some TVs have a fun design that shows they are starting up. This same thing happens when you turn on your phone or computer. The device looks to it's instruction manual to know exaclty what to do.
These instructions that make up software are written in Code. Code is the way that humans communicate with computers. Code can be written in different computer languages, much the same way that hello can be written in many human languages. Examples of coding languages are: HTML, JavaScript, CSS, and Python.
The Venn Diagram below helps illustrate what software is by showing how software relates to hardware and technology overall.
Software, such as websites and computer applications, is made up of 3 general parts. The User Interface, Front End and Back End.
The User Interface is like the flower of a plant, it focuses on appealing to users (pollinators) by looking nice. This section of the code has instructions on how the code should look to the user. These instructions are most often written in html and css.
The User Interface is very intentional. Developers and designers choose fonts, picture placements, and button colors all to make their software easy to use and understand. The User Interface can be very simple using only a few basic colors and one font, or it can be complex with lots of colors and even some moving parts.
This is the part of the software that makes the software accessible to the public. Like any other piece of code the User Interface takes time to build.
Like the stem of a plant moves nutrients between the roots and flowers, the Front End coordinates between the User Interface and the Back End (more on the Back End later).
Front End code is focused on making sure the moving parts in the user interface work cohesively and making sure the Back End gets the information it needs. When you click a button on a website the Front End code helps direct your browser to the next page and can do some small calculations along the way.
The Front End code can also do logic equations. Coding logic is made up of “if then” statements, if the users clicks this button then do this.
The Back End is the place that stores user information, and preforms logic equations. Like the roots of a plant, users don’t actually see the back end but we do see the results of back end processes.
When you write a facebook post you are interacting with the User Interface, Front End and Back End. You write your post in a word box that is part of the User Interface. When you click the post button the Front End code proceses your post, sending the necessary information to the Back End to store and sending other information to the User Interface to publish your post.
Now that you know more about how software is structured you can adjust your expectations for how software should work and how things get fixed when they go wrong.
If you are on a site like Facebook and you are unable to click the Publish button for your post, this is most likely a User Interface problem. Code in the User Interface is the most easy to adjust. Developers should be able to fix an issue like this quickly.
If nothing happens once you sucessfully click the Publish button, this is a more complex issue. Developers will need to search throught the Front End and Back End code to see where the issue is occuring. You can expect an issue like this to take longer to fix.
I hope this article helped you learn and feel confident about your ability to understand the software you use. Please be on the lookout for more articles and information.