2 Software
Learning Objectives
- To be familiar with different kinds of software and the purposes behind them
- To understand how OSS has affected these kinds of software
- To have a basis for building a functional OSS toolbox to use
Introduction
In software development, there is a job level called “full stack developer”. In theory, this is someone who understands and can work in the various levels of technology that build up our current software environment. There is some argument that the “full stack developer” is a myth because the software environment has gotten too complex to understand fully. There are so many different software languages to learn, and various software to link together.
The goal of this chapter is to help students understand the levels of technology and why they exist. Readers will develop a conversational understanding of the “stack” of software. If you’re talking to a patron and they have a problem with the website, you may pick up on the fact that the problem is their browser. When someone is talking about a new technology and they start going into details you’ll get at least an idea of what they’re talking about or what level of the stack of software they are discussing. Even if you are never a part of a software development project, you may find yourself troubleshooting a piece of software. The knowledge of how different levels of technology may help you in at least identifying the problem to tell IT support. Or, you are accidentally the IT support for the day and you must fix the problem yourself. If you get into a job and see a technology opportunity, such as a makerspace or a position of an integrated systems librarian, you’ll be better prepared to take advantage.
The content of this chapter will help you develop a top-level understanding of the technologies. The learning activities at the end will guide you toward getting the first taste of hands-on experience with the different levels.
Figure 1 shows the levels of technologies discussed in this chapter as a pyramid because they build on each other. The first section will talk about the foundation of the pyramid, and the last section will talk about the top.
Figure 1 Levels of Technology
Focus Questions
- How familiar are you with the software you interact with on a day to day basis? As you read through the chapter, think about the levels of software that build up to make even a simple application run.
- What kind of software do you feel most comfortable with? Which kind feels the most confusing to you?
- What comfortable steps could you take to make the software you are least comfortable with more familiar to you?
Section 1: Bottom of the Stack
Section Summary
This section reviews hardware, operating systems and programming languages–the bottom of the stack–which must be in place for any technology system to work.
Hardware
All software is run on some form of hardware. The hardware is the individual components of a computer. Hardware is called that to distinguish i