In the fifth module of this course, we’ll learn about computer software. We’ll learn about what software actually is and the different types of software you may encounter as an IT Support Specialist. We’ll also explore how to manage software and revisit the concept of “abstraction.” By the end of this module, you’ll use the Qwiklabs environment to install, update and remove software on both Windows and Linux operating systems.
Learning Objectives
- Be able to install software on Windows and Linux.
- Understand the main components of software and how they work.
- Describe how computers use instructions to process input and produce output.
- Describe how a program breaks down into instructions for the CPU.
Introduction to Software
Video: Module Introduction
Phelan Vendeville, a Systems Engineer in the Site Reliability Organization at Google, is your instructor for the next few lessons. He will be teaching you about the third layer of computer architecture, known as software.
Software is how we, as users directly interact with our computer. It is the intangible instructions that tell the hardware what to do. In the next lesson, you will learn more about what software is, how we install it, and how it works.
Hi. My name is
Phelan Vendeville, and I’m a Systems Engineer in the Site Reliability
Organization at Google. I’m really excited to be your instructor for
the next few lessons. Before we jump in, I’ll kick things off by telling you a little bit about myself. My passion for technology
began in high school which was located in a geographically
isolated part of California. This isolation meant
that technology and the Internet played an
important role in bringing the outside world to students and connecting them
with ideas and opportunities by things like virtual field trips
and remote learning. For example, I
remember preparing for the SATs through digital
classroom sessions, which would have been
impossible to attend in person. After high school, I
enlisted in the US Navy as an Information Systems
Technician responsible for maintaining computer
and network systems. I continued to witness the ways technology
brings people together, whether that meant coordinating
ship movements during training exercises or connecting loved ones on long
deployments via video chat. Lots of people use technologies in various ways every day, but relatively few
understand how it works. A career in IT can
be challenging, as I can attest to personally. I can still remember the
horror I felt after blowing up the power supply of a
master chief’s computer by using the wrong
voltage switch. But a career in IT can be incredibly rewarding
when you can do things like recover
irreplaceable family photos from a failing hard-drive. As an IT support specialist, you’ll be in a position
to not only know how a given piece of
technology functions, but also how to help
fix it when it breaks. This means you’ll have a
direct impact on the flow of information going between
people. Which is pretty cool. I’m excited to teach you
about the third layer of computer architecture,
known as software. Software is how we, as users directly interact
with our computer. The operating system that we interact with is just software. The music programs,
word processors, and more that we use every
day are also software. But what exactly is it? If the hardware is the physical stuff that
you can pick up and hold, software is the
intangible instructions that tell the
hardware what to do. In the next lesson, we’re going to deep dive
more into what software is, how we install it,
and how it works.
Video: How software is built: Coding, scripting, and programming
Software is made of code, which is written by people who know programming or scripting languages. There is a huge demand for this skill set, and it is becoming easier for people to learn to code.
Software is installed on systems by downloading it from the internet or by installing it from a physical media, such as a CD or DVD. Once software is installed, it can be used to perform a variety of tasks, such as browsing the internet, playing video games, and editing documents.
Software errors can occur for a variety of reasons, such as coding mistakes or hardware failures. When a software error occurs, it can cause the software to malfunction or crash. There are a number of ways to deal with software errors, such as restarting the software, updating the software, or uninstalling and reinstalling the software.
If you are going to be working in IT, it is important to understand how software works and how it gets installed on systems. This will help you to troubleshoot software errors and keep your systems running smoothly.
Video games, music players, and Internet browsers are all different types of software that have completely
different functions. Think of the apps on your
phone and your laptop. We spent a lot of time interacting with this
type of software, but we may not know
how it actually works or gets added
to our systems. In the last few videos, we learned about networking
in the internet. There are tons of
applications out there that require the Internet to
work. Think about it. Your social media apps, messaging apps, and others
run off the Internet. This Internet integration isn’t just magically added
to your application, it’s built-in to
require it to function. Before we go too far into
the world of software, I want to call out
some common terms related to software
that you might hear. Coding, scripting, and programming are all terms that might seem
a little blurry. They generally refer
to the same thing, but they each have
small distinctions. Coding is basically translating
one language to another. This can be coding from
English to Spanish, English to Morse code, or even English to a
computer language. When someone builds
an application, we refer to it as
coding in application. Scripting is coding in
a scripting language. We’ll talk about scripting
languages in a later lesson, but scripts are mainly
used to perform a single or limited-range task. There are languages we
can use to build these. Programming is coding in
a programming language. Programming languages are
special languages that software developers use to write instructions for
computers to execute. Larger applications like your
web browser, text editors, and music players, are all usually written in
programming languages. When we use the term software, it generally refers to
something that was programmed. We use these terms
interchangeably, so don’t sweat the details. Now, onwards and upwards. What is software made of and who builds it? It’s
a great question. Anyone who knows
a programming or scripting language can
use it to write code. There’s a huge demand
for this skill set and it’s becoming easier for
someone to learn to code. If you’re going to
be working in IT, it’s important that you
understand how software works and how it gets
installed on your systems. You might encounter
software errors or just good
old-fashioned failures, and you need to understand
how to deal with them.
How software is built: Coding, scripting, and programming
Software is the intangible instructions that tell a computer what to do. It is the programs that we use to perform tasks such as browsing the internet, writing documents, and playing video games. Software is built by people who know coding, scripting, and programming languages.
Coding is the process of writing instructions for a computer to follow. Coding languages are used to create software programs, websites, and other applications. Some popular coding languages include Python, Java, and C++.
Scripting is a type of coding that is used to perform specific tasks. Scripting languages are often used to automate tasks or to create simple programs. Some popular scripting languages include JavaScript, PHP, and Bash.
Programming is the process of designing and creating software programs. Programming languages are used to create complex software applications, such as operating systems, web browsers, and video games. Some popular programming languages include Java, C++, and Python.
How software is built
Software is built by following a series of steps:
- Requirements gathering: The first step is to gather requirements from the users of the software. This includes understanding what the software needs to do and how it will be used.
- Design: Once the requirements are gathered, the software developer will design the software. This includes creating a blueprint for the software and determining how it will be structured.
- Coding: Once the design is complete, the software developer will start coding the software. This involves writing instructions in a programming language for the computer to follow.
- Testing: Once the software is coded, it needs to be tested to make sure that it works as expected. This involves testing the software with different inputs and outputs to identify any errors.
- Deployment: Once the software is tested and debugged, it can be deployed to users. This involves making the software available to users so that they can start using it.
Coding, scripting, and programming in IT
Coding, scripting, and programming are essential skills for anyone working in IT. Software developers use these skills to build and maintain the software that we rely on every day.
If you are interested in a career in IT, it is important to learn at least one coding language. There are many different coding languages available, so you can choose one that is a good fit for your interests and career goals.
There are many resources available to help you learn to code. You can find online courses, tutorials, and books. You can also find coding bootcamps and other programs that can teach you to code in a short period of time.
Once you have learned a coding language, you can start building your own software applications or contributing to open source projects. You can also apply for jobs as a software developer or web developer.
Conclusion
Coding, scripting, and programming are essential skills for anyone working in IT. By learning a coding language, you can open up many new career opportunities and build your own software applications.
____ is translating one language to another.
Coding
Great job! Coding is translating one language to another.
When writing code, a(n) ____ is usually used to perform a single- or limited-range task.
script
Nice work! Scripts are used as a way to perform a single or limited task.
Reading: Common Scripting Solutions
Reading
In this reading, you will learn about a variety of scripting languages, their uses, and their risks. As an IT Support professional, you may need to automate routine tasks. For example, you might want to automate a backup of company data that runs every night. You might also need to automate high volume tasks, like changing security access settings on thousands of files. Scripting is a common tool used for automation. This tool can help IT Support staff save time and resources in a busy enterprise work environment.
Scripting languages
There are many scripting languages available to use for a variety of tasks in different operating system environments. Most scripts are written in command line environments.
Scripting languages for Windows environments:
- PowerShell (.ps1) – Windows PowerShell is among the most common command line scripting tools used in Windows environments. PowerShell is built on the .NET platform and employs many of the same elements that programming languages do. PowerShell scripts are used for building, testing, and deploying solutions, in addition to automating system management.
- Batch scripts (.bat) – Batch scripts, also called batch files, have been around since the early days of MS DOS and OS/2. Batch files can execute simple tasks, like calling a set of programs to run when a computer boots up. This type of script could be useful in setting up employees’ workspaces when they power on their computers.
- Visual Basic Script (.vbs) – Visual Basic Script is an older scripting language. It has reached its end of life for Microsoft support and has been replaced by PowerShell scripts. However, as an IT professional, you may encounter .vbs scripts on some legacy systems.
Scripting languages for Linux and Unix environments:
- Shell script (.sh) – Shell scripting languages, like Bash, are used in Unix or Linux environments. The scripts are often used to manipulate files, including changing file security settings, creating, copying, editing, renaming and deleting files. They can also be used to execute programs, print, navigate the operating system, and much more. The scripts run in command-line interpreter (CLI) shells, such as the Bourne shell, Bourne Again SHell (Bash), C shell, and Korn (KSH) shell.
Programming languages that can be used for scripting:
- JavaScript (.js) – JavaScript the most used programming language in the world. It is a lightweight language that is used for scripting in web development, mobile and web apps, games, and more. It can also be used to develop software and automate web server functions.
- Python (.py) – Python is a user-friendly programming language that can perform advanced tasks and import modules from libraries specially designed for automation scripts.
Scripting uses – finding the right tool for the job
- Basic automation: Python is an excellent script for automation. It’s one of the most commonly used, with many available automation libraries.
- Restarting machines: Many power users use PowerShell (.ps1) scripts to restart machines (Windows). For Linux machines, they can use .sh (shell) scripts.
- Mapping network drives: In the past, mapping network drives was accomplished with .bat or .vbs scripts. However, PowerShell scripts are most commonly used to map drives in Windows environments today. For Linux users, shell scripts can be used for this purpose.
- Installing applications: Batch files and shell scripts are often used for automated software installation.
- Automated Backups: Windows PowerShell and Linux/Unix shell scripts can automate backups.
- Gathering of information and data: Python is a popular choice for gathering data. Python has many available libraries to help with this task.
- Initiating Updates: Powershell and shell scripts can be used for initiating updates in Windows and Linux, respectively.
Security risks of using scripts
IT Support professionals need to be very careful when using scripts, especially with prewritten scripts copied or downloaded from the internet. Some of the security risks of using scripts could include:
- Unintentionally introducing malware: As an IT Support professional that is new to scripting, you may try to search the internet for assistance in writing scripts. In your search, you might find a script online for a task that you want to automate. It’s tempting to save time and effort by downloading the script and deploying it in your network environment. However, this is dangerous because scripts authored by an unverified source could potentially contain malware. Malicious scripts could have the power to delete files, corrupt data and software, steal confidential information, disable systems, and even bring down an entire network. Malicious scripts can create security weaknesses for the purpose of creating entry points for cybercriminals to penetrate networks. Scripts could also introduce ransomware attacks, which often works by encrypting file systems and then selling the decryption keys for ransom.
- Inadvertently changing system settings: Scripts are powerful tools for changing system settings. Using the wrong script can cause the user to inadvertently configure harmful settings. For example, one minor typo in a shell script that sets file permission security in Linux could make confidential files accessible to the world.
- Browser or system crashes due to mishandling of resources: Mishandling resources can lead to program crashes in the browser or cause the entire computer to crash. For example, directing too much memory to the browser can overload the computer system.
Key takeaways
A basic knowledge of scripting is an important tool for IT professionals. You may need to improve workflow efficiency by automating basic functions with a scripting language. Some common scripting languages include:
- Windows environments: batch scripts (.bat), Powershell (.ps1), Visual Basic Script (.vbs)
- Linux/Unix environments: shell scripts (.sh)
- Most OS environments: javascript (.js), Python (.py)
Scripts have multiple helpful uses, such as:
- Basic Automation
- Restarting Machines
- Remapping Network Drives
- Installing Applications
- Automating Backups
- Gathering of information/ data
- Initiating Updates
There are risks in using scripts, including:
- Unintentionally introducing malware
- Inadvertently changing system settings
- Browser or system crashes due to mishandling of resources
Resources for more information
For more information about scripting languages, please visit:
Video: Types of Software
- Software is protected by copyright, and developers can choose what they do with their software.
- Commercial software is typically licensed, while non-commercial software can be open source, which means it is free to use, share, modify, and distribute.
- Open-source software projects are usually contributed to by developers who work on the project for free in their free time.
- There are two main types of software by function: application software and system software.
- Application software is designed to fulfill a specific need, such as a text editor, web browser, or graphic editor.
- System software is used to keep a computer system running, such as operating system tools and utilities.
- Firmware is a type of system software that is permanently stored on a computer component, such as the BIOS.
- Software versions are important because they tell us what features were added to a specific software iteration.
- Generally speaking, the higher the software version number, the newer the software.
Conclusion:
Once you learn how one piece of software works, you will have a good understanding of how other software works as well.
Tutorial on Types of Software in IT
Software is a collection of instructions that tells a computer what to do. It is essential for the operation of any computer system. There are two main types of software: application software and system software.
Application software is designed to perform specific tasks, such as word processing, web browsing, or playing games. Some examples of application software include:
- Microsoft Word
- Google Chrome
- Minecraft
- Adobe Photoshop
- Spotify
System software is responsible for managing and controlling the computer system itself. It includes the operating system, device drivers, and utilities.
- The operating system is the core software that manages the computer’s hardware and resources. It provides a platform for application software to run on. Some examples of operating systems include Windows, macOS, and Linux.
- Device drivers are software programs that allow the operating system to communicate with hardware devices. For example, a device driver for a printer would allow the operating system to send print jobs to the printer.
- Utilities are software programs that perform specific tasks, such as managing files, diagnosing problems, or optimizing performance. Some examples of utilities include antivirus software, disk defragmenters, and backup software.
Another type of software that is important to mention is middleware. Middleware sits between application software and system software and provides services to both. For example, a web server is a type of middleware that allows web applications to communicate with the internet.
How to choose the right software
When choosing software, it is important to consider the following factors:
- Compatibility: Make sure that the software is compatible with your computer system.
- Features: Make sure that the software has the features that you need.
- Price: Software can range in price from free to thousands of dollars. Choose software that fits your budget.
- Ease of use: Choose software that is easy to use and understand.
- Support: Choose software that comes with good support, in case you have problems using it.
Conclusion
Software is an essential part of any computer system. There are many different types of software available, so it is important to choose the right software for your needs.
When you write content, create a piece of art, or engineer something, your work is protected for
your use and distribution. There’s usually
some other caveats depending on the laws
in your country. But in general, copyright is used when creating
original work. Software that’s written is
also protected by copyright. Software developers can choose what they do with
their software. For commercial software,
it’s common to let someone else use their software if
they pay for a license. For non-commercial software, a popular option is
making it open source. This means that developers will let other developers share, modify, and distribute
their software for free. Score, some amazing
software efforts have been developed and advanced
because of open source. One major example is
the Linux kernel, which is used in the Android OS, and in enterprise and
personal computers. Hundreds of millions of devices are running Linux at
this very second. LibreOffice, GIMP, and Firefox are other examples
of open-source software. Open-source projects are
usually contributed by developers who work
on the project for free in their free time. These massive software
development efforts were essentially built by a
community of volunteers. How great is that? In an IT environment, you’ll have to pay
special attention to the types of software you use. Some may require you to pay
multiple licenses to use it, others might be free
and open source. It’s important to check
the license agreement of any software before
you install it. We’ve talked about some of
the basics of software, but now let’s shift to
the two types of software you’ll encounter
categorized by function. Application software
is any software created to fulfill
a specific need, like a text editor, web browser, or graphic editor. System software is software used to keep our
core system running, like operating system
tools and utilities. There’s also a type of
system software that we haven’t defined
yet called firmware. Firmware is software that’s permanently stored on
a computer component. Can you think of a firmware that we’ve talked about already? If you thought of the
BIOS, you’re right. The BIOS helps start up the
hardware on your computer, and also helps load up
your operating system, so it’s important that it’s
in a permanent location. I should also call out
software versions. These are important
because they tell us what features were added to a specific software iteration. You’ll encounter lots
of software versions while you work with software. Developers might sometimes use a different standard when
distinguishing a version, but in general, the majority of versions follow a
sequential numbering trend. You might see something
like this, 1.2.5 or 1.3.4. Which of these do you think
is the newer version? It’s 1.3.4 because it’s a
larger number than 1.2.5. You can read more about software versioning in the
supplemental reading. You’ll have to work with
all kinds of software. Fortunately, it basically
all works the same way. Once you learn how one
piece of software works, you’ll understand how
others might function.
Video: Revisiting Abstraction
Programs are instructions that are given to a CPU. CPUS from different manufacturers may have different instruction sets, and different hardware components may have different interfaces.
One way to write a program that the hardware can understand would be to write a program for each possible combination of CPU and hardware using the native languages and interfaces of these components. However, there are potentially millions of possible configurations of hardware, so this is not feasible.
Instead, thanks to the efforts of computer scientists and the principle of abstraction, we can now use programming languages to write instructions that can be run on any hardware.
This is because programming languages abstract away the details of the underlying hardware. When we write a program in a programming language, the compiler or interpreter translates it into machine code that is specific to the CPU and hardware that the program will be run on.
This allows us to write programs that can be run on any hardware, without having to worry about the specific details of the hardware.
Conclusion:
Abstraction is a powerful principle that allows us to write programs that are portable and efficient.
Tutorial on Revisiting Abstraction in IT
Abstraction is a fundamental concept in computer science. It is the process of hiding unnecessary details and focusing on the essential aspects of a problem or system. Abstraction allows us to simplify complex problems and make them more manageable.
There are many different ways to apply abstraction in IT. For example, we can use abstraction to:
- Hide the implementation details of a system. This allows us to use the system without having to understand how it works internally. For example, when we use a web browser to access a website, we don’t need to understand how the browser works or how the web server works. We just need to know how to enter a URL and click “Go.”
- Create reusable components. Abstraction allows us to break down complex systems into smaller, more manageable components. These components can then be reused in different systems. For example, a software library is a collection of reusable components.
- Create higher-level interfaces. Abstraction allows us to create higher-level interfaces that are easier to use than lower-level interfaces. For example, a graphical user interface (GUI) is a higher-level interface that is easier to use than the command line interface (CLI).
Benefits of abstraction
Abstraction has many benefits, including:
- Simplicity: Abstraction makes complex systems simpler to understand and use.
- Reusability: Abstraction allows us to reuse components in different systems, which saves time and effort.
- Maintainability: Abstraction makes systems easier to maintain and update.
- Portability: Abstraction makes systems more portable, meaning that they can be run on different hardware and software platforms.
Examples of abstraction in IT
Here are some examples of abstraction in IT:
- Operating systems: Operating systems abstract away the details of the underlying hardware, such as the CPU, memory, and storage. This allows us to use the operating system without having to understand how the hardware works.
- Programming languages: Programming languages abstract away the details of the underlying machine code. This allows us to write programs in a high-level language that is easier to read and write than machine code.
- Databases: Databases abstract away the details of how data is stored on disk. This allows us to access and manage data without having to understand how it is stored physically.
- APIs: APIs (application programming interfaces) abstract away the details of how a system works. This allows us to use the system without having to understand how it works internally.
Conclusion
Abstraction is a powerful concept that allows us to simplify complex problems and make them more manageable. It is used in many different areas of IT, including operating systems, programming languages, databases, and APIs.
Additional thoughts
Abstraction is not only useful for simplifying complex problems, but it is also essential for creating reusable and maintainable code. When we write code that is abstract, we are making it easier to reuse that code in different contexts and to maintain and update it over time.
Abstraction is also important for creating portable code. Portable code is code that can be run on different hardware and software platforms. By abstracting away the details of the underlying hardware and software, we can write code that is more likely to be portable.
Overall, abstraction is a powerful and essential concept in IT. It allows us to simplify complex problems, create reusable and maintainable code, and write portable code.
Earlier in this course, we talked about how programs
are instructions that are given to a CPU. We can send binary code or
bits to our CPU, then they’ll use an instruction
set to run those commands. But these CPUS might be from
different manufacturers and may have different instructions. There might even be all kinds of different
hardware components like video cards and hard drives that also have
their own special interfaces. So how do we write a program that
the hardware can understand? Well, one way would be to write a program
for each possible combination of CPU and hardware using the native languages and
interfaces of these components, but there are potentially millions of
possible configurations of hardware. So how do we get anything to work with
all this complex and diverse hardware? Well, thanks to the efforts
of computer scientists and the principle of abstraction,
we can now use programming languages to write instructions that can
be run on any hardware.
Video: Recipe for Computing
In the early days of computing, programmers used punch cards to store programs. This was a tedious and time-consuming process. Assembly language was invented to make programming easier by allowing programmers to use human-readable instructions. However, assembly language was still a thin veil from machine code and was not portable to different hardware platforms.
Compiled programming languages were invented to address the limitations of assembly language. Compiled languages translate human-readable instructions into machine code that is specific to the CPU and hardware that the program will be run on. This makes programs portable and more efficient.
Interpreted programming languages are another type of programming language that is not compiled ahead-of-time. Instead, an interpreter interprets the code into CPU instructions just in time to run them. This makes interpreted languages less efficient than compiled languages, but they are more flexible and easier to debug.
Scripting languages are a type of interpreted language that is used to automate tasks. Scripting languages are often used in IT support to automate system administration tasks.
Programming languages are used to create programs that can be run to perform a task or many tasks.
Conclusion:
Programming languages are a powerful tool that can be used to create programs that solve a wide range of problems. By learning to use programming languages, you can automate tasks, create new applications, and even build entire operating systems.
Recipe for Computing in IT
Ingredients:
- A computer
- A programming language
- A compiler or interpreter
- A problem to solve
Instructions:
- Choose a programming language. There are many different programming languages available, each with its own strengths and weaknesses. Some popular programming languages for IT include Python, Java, C++, and C#.
- Install a compiler or interpreter. A compiler or interpreter is a program that translates your code into machine code that can be executed by the computer.
- Write your code. Once you have chosen a programming language and installed a compiler or interpreter, you can start writing your code. Be sure to follow the syntax of the programming language you are using.
- Compile or interpret your code. Once you have written your code, you need to compile or interpret it. This will translate your code into machine code that can be executed by the computer.
- Run your program. Once your code has been compiled or interpreted, you can run it to solve your problem.
Example:
Here is a simple example of a Python program to print “Hello, world!” to the console:
print("Hello, world!")
To run this program, you would first need to install the Python interpreter. Once you have installed the Python interpreter, you can save the above code as a file with the .py
extension (e.g. hello_world.py
). Then, you can run the program by typing the following command in a terminal:
python hello_world.py
This will print “Hello, world!” to the console.
Recipes for IT professionals
Here are some examples of how programming can be used to solve common IT problems:
- Automate system administration tasks. Scripting languages such as Python and Bash can be used to automate tasks such as backing up data, deploying software updates, and provisioning new servers.
- Develop web applications. Web applications are programs that run on a web server and can be accessed by users through a web browser. Programming languages such as Python, Java, and Ruby can be used to develop web applications.
- Create mobile applications. Mobile applications are programs that run on mobile devices such as smartphones and tablets. Programming languages such as Java, Kotlin, and Swift can be used to develop mobile applications.
- Develop desktop applications. Desktop applications are programs that run on personal computers. Programming languages such as C++, C#, and Java can be used to develop desktop applications.
- Develop data science applications. Data science applications are used to analyze data and extract insights from it. Programming languages such as Python and R are popular for data science applications.
Conclusion
Programming is a powerful tool that can be used to solve a wide range of problems in IT. By learning to use programming languages, you can automate tasks, create new applications, and even build entire operating systems.
If you are interested in learning to program, there are many resources available online and in libraries. You can also find many online courses and tutorials that can teach you the basics of programming.
Remember that in the 1950s, computer scientists used punch
cards to store programs. These punch cards represented bits that the CPU would read and then perform a series of instructions based on
what the program was. The binary code could
have looked like this, and the instructions will
be translated to this, grab some input data from
this location in memory. Using the input
data, do some math, then put some output data
into this location in memory. But storing programs
on punch cards was a long and tedious task. The programs had to be kept on stacks and stacks
of punch cards. Computer scientists needed
a better way to send instructions to a
machine, but how? Eventually a language was invented called
assembly language, that allowed computer
scientists to use human readable
instructions assembled into code that the
machines could understand. Instead of generating
binary code, computer scientists
could program using machine instructions like this. Take integer from register 1, take integer from register 2, add integer from
register 1 and register 2 and output to register 4. This example makes it look
like a human could read it, but don’t be fooled. Let’s take an example of
saying something simple like, hello world in
assembly language. It looks pretty robotic, don’t get me wrong that’s still an improvement over its
binary code cousin. But assembly language was still a thin veil
from machine code. It’s still didn’t let
computer programmers use real human words to
build a program, and a program that was written
for a specific CPU could only be run on that
CPU or family of CPUs. A program was needed that could run on many types of CPUs, enter compiled
programming languages. A compiled programming
language uses human readable instructions and sends them through a compiler. The compiler takes the
human instructions and compiles them into
machine instructions. Admiral Grace Hopper invented this to help make
programming easier. Compilers are a key
component to programming and helped pave the road that led us to today’s modern computing. Thanks to compilers, we can
now use something like this, and it would be the
same thing as this. Computer scientists
have developed hundreds of programming
languages in the past couple of decades
to try and abstract the different CPU instructions
into simpler commands. Along the way, another
type of language emerged that was interpreted
rather than compiled, interpreted languages aren’t
compiled ahead-of-time. A file that has code
written in one of these languages is
usually called a script. The script is run by an interpreter which
interprets the code into CPU instructions
just in time to run them. You’ll learn how to write code using a scripting
language later in this program as an IT
support specialist, scripting can help you by
harnessing the power of a computer to perform
tasks on your behalf, allowing you to solve a problem once and then move on
to the next thing. Programming languages are
used to create programs that can be run to perform
a task or many tasks.
Video: Phelan: Learning IT in the Navy
The speaker joined the US Navy as an information systems technician. He enjoyed the challenge of being resourceful and using the tools at hand to get the job done. He remembers being in a server room in a tent in the desert and having to take out the servers and blow the dust and sand out of them to make sure they kept working.
One of his favorite technology moments in the Navy was when he was tasked with writing a program to do something he had never done before. He did the research, learned what he needed to know, and wrote the program. When he ran the program, it worked perfectly. He was amazed that he had created something from nothing that actually performed the action he wanted it to.
[MUSIC] In high school, I wasn’t really sure what
I wanted to do yet, but when I joined the US Navy, one of the options for
job was an information systems technician. Information technology and
the Navy can be pretty exciting. You get to be very resourceful if you’re
out on a deployment in the desert. Perhaps, you have to use the tools that
you have at hand to get the job done. So I remember being in a server room
in a tent with the sand blowing in and we’d occasionally have to take out the
servers and then reverse the vacuum and blow the dust and sand out of the server
to make sure that they kept working. So obviously I can’t go into too much
specifics and details but in the Navy, one of my favorite technology moments was
when the command came down that we needed to do this thing and I had to
write a program to actually do it. And I’ve never written a program before. And I was like, okay, I mean, I’ll try. And so I did the research,
I did the learning, I figured it out, I wrote the program it ran, and
it did the thing that I wanted it to do. And I was so satisfied. That was an amazing experience. I made this thing from nothing and it actually performed the action that
I wanted it to, which was pretty cool. [SOUND]
Practice Quiz: Introduction to Software
Which of these is application software? Check all that apply.
Email client, Web browser
Correct! Your web browser and email clients are considered application software.
Which of these is system software? Check all that apply.
Windows OS, Text editor
What is the difference between an interpreted and a compiled language? Check all that apply
- Compiled languages are translated into machine instructions beforehand.
- Interpreted languages are not broken into machine instructions beforehand.
Interacting with Software
Video: Managing Software
Software is a broad term that encompasses programs, applications, and utilities. Software is constantly changing, and it can be difficult to keep up with all the latest updates. It is important to test new software before using it in a workplace setting, and to keep your software up to date to protect yourself from security vulnerabilities.
Software management is the process of installing, updating, and removing software. It is important to manage software effectively to ensure that users have the necessary tools to do their jobs and to protect the computer from malicious software.
Here are some tips for software management:
- Test new software before using it in a workplace setting.
- Keep your software up to date to protect yourself from security vulnerabilities.
- Use a software management tool to help you install, update, and remove software.
- Be careful about what software you install, and only install software from reputable sources.
- Do not allow users to install software without administrator approval.
Managing Software in IT
Software management is the process of installing, updating, and removing software on IT systems. It is an important task because software is constantly changing, and it is important to keep software up to date to protect systems from security vulnerabilities and ensure that users have the necessary tools to do their jobs.
Here is a tutorial on how to manage software in IT:
- Create a software inventory. This will help you to track all of the software that is installed on your IT systems. You can use a software management tool to create a software inventory, or you can manually create a spreadsheet.
- Develop a software deployment plan. This plan should outline how you will install, update, and remove software on your IT systems. You should also identify the people who are responsible for each task.
- Use a software management tool. A software management tool can help you to automate the process of installing, updating, and removing software. This can save you time and effort, and it can help to ensure that software is installed and updated correctly.
- Test new software before deploying it to production systems. This will help to identify any potential problems with the software before it is used by users.
- Keep software up to date. Software updates often contain security patches that can help to protect your systems from attack. You should also keep software up to date to ensure that you are getting the latest features and bug fixes.
- Remove unused software. Unused software can pose a security risk, as it can be exploited by attackers. You should regularly review your software inventory and remove any software that is not being used.
Here are some additional tips for managing software in IT:
- Use a software repository to store and manage software. This will help to ensure that software is installed from a trusted source and that it is properly configured.
- Use a software distribution tool to deploy software to your IT systems. This will help to ensure that software is installed correctly and that users have the necessary permissions to use it.
- Use a software patch management tool to keep software up to date. This will help to ensure that your systems are protected from the latest security vulnerabilities.
- Use a software inventory management tool to track all of the software that is installed on your IT systems. This will help you to identify any unused software or software that is out of date.
By following these tips, you can effectively manage software in your IT environment and protect your systems from security vulnerabilities.
True or false: When managing software, you should only be worried about how to install software.
False
Right on! Managing software includes many tasks such as installing, updating, and removing software.
Program, software, and applications are
terms that are synonymous with each other. For now, we’ll go ahead and use the term
software to refer to any of these. There are certain types of software that
perform specific functions like drivers, which allow us to interact
with our hardware. There are applications that we use for
our day-to-day job functions. And there are utilities that we use like
a calculator, settings, and other tools. With the seemingly endless options for
software, how do we know which ones to use? How do we deal with them in a workplace
setting and in our personal lives? Software is always changing. Developers are releasing updates. Software companies change,
features are added, and so on. This constant change is
completely out of our control and it can cause a lot of
headaches in the IT world. Let’s say the company that builds your
payroll system pushes out a software update that causes settings to change,
or even worse, completely breaks the compatibility
with your own company. It can happen. You should always test new software
before letting your company use it. Another thing to worry
about is old software. When you run old software on your machine,
you risk being exposed to cyber security attacks that take
advantage of software bugs. A software bug is an error in software
that causes unexpected results. For now, know that software updates
usually contain critical security updates and new features and have better
compatibility with your system. A good guideline is to update
your software constantly. Another problem that plagues the IT world
when it comes to software is software management. If you’re setting up a computer for
someone, you want to make sure that they’ll have all the necessary tools
they need to hit the ground running. That means you’ll need to install all
the software required for their job. That may also mean that sometimes you want
to remove software that isn’t required for the job. We may not realize if a piece of software
we installed is malicious software, which causes harm to your computer. It’s always a good idea to check if
software comes from a reputable source before you install it. A common industry practice is to not
allow users to install software without administrator approval. This prevents users from installing
unwanted software because they’re actually blocked with an error message that says
they need an administrator to enter their login credentials. Before we get too far ahead of ourselves,
let’s cover the basics of software management, which include installing,
updating, and removing software.
Video: Installing, Updating, and Removing Software on Windows
This video teaches how to install, update, and remove the Git version control system on Windows.
To install Git, download the 64-bit executable file from the Git website and double-click on it. Windows will guide you through the installation process.
To update Git, download the new version of the executable file and install it just like you did the first time.
To remove Git, search for the Add or Remove Programs setting in Windows, select Git, and click Uninstall. You will be prompted to enter an administrator password.
Once Git is uninstalled, restart your computer to complete the cleanup process.
Installing, Updating, and Removing Software on Windows in IT
Installing, updating, and removing software on Windows is a common task for IT professionals. It is important to be able to do these tasks effectively and safely to ensure that systems are properly configured and secure.
Installing software
To install software on Windows, you can use the following steps:
- Download the software installation file from the software vendor’s website.
- Double-click on the installation file to start the installation process.
- Follow the on-screen instructions to install the software.
- Restart your computer if necessary.
Updating software
To update software on Windows, you can use the following steps:
- Open the Windows Update settings.
- Click on the “Check for updates” button.
- Windows will download and install any available updates.
Removing software
To remove software on Windows, you can use the following steps:
- Open the Control Panel.
- Click on the “Programs and Features” option.
- Select the software that you want to remove and click on the “Uninstall” button.
- Follow the on-screen instructions to remove the software.
Tips for installing, updating, and removing software on Windows
- Always download software from trusted sources.
- Be careful about what software you install, and only install software that you need.
- Keep your software up to date to protect your systems from security vulnerabilities.
- Remove unused software to free up disk space and improve system performance.
Additional tips for IT professionals
- Use a software management tool to automate the process of installing, updating, and removing software on multiple systems.
- Use a software repository to store and manage software. This will help to ensure that software is installed from a trusted source and that it is properly configured.
- Create a software inventory to track all of the software that is installed on your systems. This will help you to identify any unused software or software that is out of date.
By following these tips, you can effectively install, update, and remove software on Windows in IT.
True or false: When using a 64-bit OS, you should install 64-bit applications.
True
You got it! Remember with CPU architecture, you want to use the same application and OS architecture for better compatibility.
Get ready because in this video we’re going to
install a program called Git. Git is a version
control system that helps keep track of
changes made to files and directories like how some word processors today have a revision history feature. If you didn’t like
something you wrote you can just go back to a
previous version. We’re going to be using Git in later courses but for now we’re just going to
go ahead and install it. First, we’re going to grab the install program
from Git’s website. We’re going to download
the 64-bit executable. Remember from an earlier
lesson that we’re using a 64-bit CPU architecture
so we should install 64-bit applications
for better compatibility. Next up you’ll see the
fileextension.exe. This is a little different than the texture image
file extensions we’ve seen up until now. Exe is a file extension found in Windows for an executable file. We’ll learn more about
this in a later Lesson 2. For now, just
double-click on this and it’ll ask us if we want
to install the file. That’s it. Now you
can start using it. Some program installations
might ask you to reboot. Make sure to do that since there might be some
system files or processes that also need to restart for your new
software to work correctly. To verify that you now
have Git installed you can navigate to add
or remove programs. From here you can see what applications are
installed on the machine and there it is,
Git Version 2.14.1. Let’s say you had an
older version of Git installed and you wanted to
update it to the new version. Luckily, Windows makes it
easy for us to do just that. We can install it just
like we did and it’ll ask if you want to upgrade
to the newest version. To remove software from
Windows you can just search for the Add or
Remove Programs setting. From there select the
application you want to remove and you’ll see
a button to uninstall. Let’s go ahead and click this, and run through an
uninstall of the software. It asks us for an
administrator password. We have safety guards
in place to prevent unauthorized users from installing or
uninstalling software. We’ll learn more about
this later but for now, since I’m an administrator, I’m just going to
enter my password and uninstall the software. Once you uninstall the software, restart your computer
so we can do the necessary cleanup to
completely get rid of it.
Video: Installing, Updating, and Removing Software on Linux
This video teaches how to install, update, and remove the Git version control system on Linux.
To install Git on Ubuntu, use the following command:
sudo apt install Git
To update Git, use the following command:
sudo apt update && sudo apt upgrade Git
To remove Git, use the following command:
sudo apt remove Git
To install Git on other Linux distributions, use the package manager that is specific to your distribution. For example, to install Git on Fedora, you would use the following command:
sudo dnf install Git
The general process for installing, updating, and removing software on Linux is similar to Windows. However, the specific commands may vary depending on the Linux distribution that you are using.
Installing, Updating, and Removing Software on Linux in IT
Installing, updating, and removing software on Linux is a common task for IT professionals. It is important to be able to do these tasks effectively and safely to ensure that systems are properly configured and secure.
Installing software
To install software on Linux, you can use the package manager that is specific to your distribution. For example, to install Git on Ubuntu, you would use the following command:
sudo apt install Git
To install software from a third-party repository, you can use the following command:
sudo apt install <package_name> <repository_url>
For example, to install the latest version of Firefox from the Mozilla repository, you would use the following command:
sudo apt install firefox-latest https://deb.mozilla.org/debian/ buster main
Updating software
To update software on Linux, you can use the following command:
sudo apt update && sudo apt upgrade
This will update all of the software packages on your system to the latest version.
Removing software
To remove software on Linux, you can use the following command:
sudo apt remove <package_name>
For example, to remove Git from your system, you would use the following command:
sudo apt remove Git
Tips for installing, updating, and removing software on Linux
- Always use the package manager to install, update, and remove software. This will help to ensure that the software is installed correctly and that you are getting the latest version.
- Be careful about what software you install, and only install software from trusted sources.
- Keep your software up to date to protect your systems from security vulnerabilities.
- Remove unused software to free up disk space and improve system performance.
Additional tips for IT professionals
- Use a software management tool to automate the process of installing, updating, and removing software on multiple systems.
- Use a software repository to store and manage software. This will help to ensure that software is installed from a trusted source and that it is properly configured.
- Create a software inventory to track all of the software that is installed on your systems. This will help you to identify any unused software or software that is out of date.
By following these tips, you can effectively install, update, and remove software on Linux in IT.
Now that you know how to install,
update and remove software on Windows, let’s do the same for Linux. Let’s navigate back to
the Git download page. Under the Linux page, you’ll actually
see many different ways to install Git, this is because the different Linux
distributions use different package installers. Since we’re using Ubuntu, we’re just
going to use this command apt install Git, apt is the command we use in
Ubuntu’s package manager, and the install option will
let us install something. Let’s go ahead and
run this in our terminal. We’re getting an error that
says permission denied. Like Windows,
when we install something on a machine, we need to tell the computer that
were authorized to install software. Right now, we can preface this command
with another Linux command sudo, which stands for super user do. It asks us for a password. So let’s add that in. We’re getting a lot of output. It’s just asking if we want to continue
installing this application, and since we do, I’m going to say,
y and Enter. To update a package, you do the exact
same thing as we just did and install a newer software version. To remove a package,
we could also use a command pretty similar to the install command except this
time we want to remove a package. This asks us if we want to
continue with these changes. Let’s go ahead and
type y and Enter, that’s it. Now you know how to install, Update and
remove software on Linux and Windows. Nice work
Video: Software Automation
This video summarizes the key points about software, including what it is, how it integrates with computers, how to manage it, and how to use it to automate tasks.
Software can be used to make processes more efficient and easier. For example, you can use automation to install, update, and remove software on multiple machines automatically. You can also use automation to help with troubleshooting by writing scripts to read log files and print out only the relevant lines.
Software is an important tool for IT professionals, and it can be used to improve the efficiency and effectiveness of IT support.
The next instructor, Marty Clarke, will talk about how good customer service is critical to IT support.
Software Automation in IT
Software automation is the use of software to automate tasks that would otherwise be performed manually. This can save IT professionals a significant amount of time and effort, and it can also help to improve the accuracy and consistency of tasks.
There are many different ways to automate software tasks. One common approach is to use scripts. Scripts are small programs that can be used to automate repetitive tasks. For example, you could write a script to automate the process of installing and configuring a new piece of software on multiple machines.
Another approach to software automation is to use a software development kit (SDK). SDKs provide developers with the tools they need to create custom automation solutions. For example, you could use an SDK to create a custom automation solution for managing your company’s IT infrastructure.
Software automation can be used to automate a wide variety of tasks in IT. Some common examples include:
- Installing and configuring software
- Patching and updating software
- Backing up and restoring data
- Monitoring systems and networks
- Troubleshooting problems
Software automation can be a powerful tool for IT professionals. By automating tasks, IT professionals can free up their time to focus on more strategic and value-added work.
Here are some of the benefits of software automation in IT:
- Increased efficiency: Software automation can help IT professionals to be more efficient by automating repetitive tasks. This can free up their time to focus on more strategic and value-added work.
- Improved accuracy: Software automation can help to improve the accuracy of tasks by eliminating human error. This is especially important for tasks that are complex or time-consuming.
- Consistency: Software automation can help to improve the consistency of tasks by ensuring that they are performed in the same way each time. This can help to reduce errors and improve the quality of work.
- Reduced costs: Software automation can help to reduce costs by eliminating the need for manual labor. This can be a significant savings for large organizations with complex IT infrastructures.
If you are an IT professional, you should consider using software automation to improve your efficiency, accuracy, consistency, and reduce costs. There are many different tools and resources available to help you get started.
____ makes processes work automatically.
Automation
That’s right! With the help of automation, we can make processes work automatically.
You’re doing awesome. By now you’ve learned
what software is, how it integrates
with our computer, and how we manage it. It was easy to install, update, and remove
software on one machine. But what if you had to do
that for multiple machines? It would take up a lot of time. If only there was a
way we could have it done automatically for us. Spoiler alert, there is. We use software to
help us with this. There are lots of
tools out there that help make managing
computers easier. We use automation for this. Automation makes processes
work automatically. You can even use the tools
of automation like programs and scripts to help you with
troubleshooting issues. Instead of reading hundreds
of lines of log files manually to discover when a particular error
occurred on a computer, you could write a script
to read the log for you and print out only
the relevant line. Software has many uses, including making processes
more efficient and easier. You made it all the way
through software, nice work. Next, you’ll meet Marty Clarke. She’s your instructor for troubleshooting and
will talk to you about how good customer service
is critical to IT support. In the meantime, work hard, soak up a ton of knowledge, and have some fun along the way.
Reading: Module 5 Glossary
Reading
New terms and their definitions: Course 1 Module 5
Application software: Any software created to fulfill a specific need, like a text editor, web browser, or graphics editor
Assembly language: A language that allowed computer scientists to use human readable instructions, assembled into code that the machines could understand
Automation: It makes processes work automatically
Coding: Translating one language to another
Compiled programming language: A language that uses human readable instructions, then sends them through a compiler
Copyright: Used when creating original work
.exe: A file extension found in Windows for an executable file
Firmware: Software that’s permanently stored on a computer component
GIT: A version control system that helps keep track of changes made to files and directories
Interpreted programming language: A language that isn’t compiled ahead of time
Programming: Coding in a programming language
Programming language: Special languages that software developers use to write instructions for computers to execute
Script: It is run by an interpreter, which interprets the code into CPU instructions just in time to run them
Scripting: Coding in a scripting language
Software: The intangible instructions that tell the hardware what to do
Software bug: An error in software that causes unexpected results
Software management: A broad term used to refer to any and all kinds of software that are designed to manage or help manage some sort of project or task
System software: Software used to keep our core system running, like operating system tools and utilities
Practice Quiz: Interacting with Software
In the Linux distribution Ubuntu, what command would you use to install an application?
apt
Great job! apt is a command we use in Ubuntu for package installs.