This is week 5 of the Google Professional IT Certification course on coursera.org.
. . .
I’m not sure how they are going to present Week 5’s intro to software, but I was kind of apprehensive. I mean, it doesn’t take too much imagination to convince yourself that this could be cosmically boring stuff. Not that software is inherently boring—quite the contrary—just that a high-level explanation could be both needlessly particular and hopelessly vague. “This is the ‘File’ menu… go ahead and click on it and see if anything drops down.” I am apprehensive about watching videos about talking about software in the context of this course, but let’s click on it and see if anything drops down. Sorry.
The first video introduces us to another new instructor, who appears to be the output of an algorithm designed to create a perfect pale white guy who wants to talk about software in an online video course. He was in the Navy. I’m sure he’s a nice guy.
He walks us through his childhood and how he likes technology, then he explains that software is what allows us to interact with hardware.
“What is Software?”
There are come common terms we should get used to:
Coding: “Translating one language to another.” This includes translation from, say, English to Computer Language.
Scripting: Scripting is coding in a scripting language. Scripts are used to perform a single or “limited range” task.
Programming: “Coding in a programming language.” That is a special language that is used to write instructions for computers to execute. “Software” generally refers to something written in a programming language.
Types of Software
Copyright protections apply to software just as they do to other creations, such as regular old “art.” Software developers can choose to license their software for a fee, allowing others to use it. There is also the option of “open source,” which means other developers can use, study, and modify the software for free. The Linux kernel is a great example of popular open source software, as is the Firefox browser. License agreements are very important to understand in an IT role. Don’t want to be the guy getting the company sued because you “accidentally” installed that version of Photoshop from BitTorrent you “accidentally” downloaded.
There are two types of software, as determined by their function: application software and system software. Application software is used to fulfill a specific needs, such as a text editor or web browser. System software is used to keep the core system running, such as the operating system’s tools and utilities. There is also Firmware, a third kind of software, that is permanently stored on a piece of hardware, such as the BIOS built into the motherboard.
It is also important to be aware of software versions, as this will determine what features are available in a certain iteration of a program. Versions usually follow a sequential numerical sequence, such as 4.1.3m following 4.0.2, for example. Then we are directed to an enormous reading on software versioning from wikipedia. Oh, sure, yeah, I’m definitely reading the whole thing.
Earlier on we learned that programs are instructions that are sent to the CPU to be calculated (or whatever). That means that a system with a graphics processor, or other hardware would need to have separate instructions for each hardware component if the CPU were to employ them in the operation of the program. Luckily, the principle of abstraction allows single programming languages to be used to instruct multiple pieces of hardware, eliminating this enormous problem.
Recipe for Computing
Programs used to be stored on punch-cards. They would instruct the computer to perform some computational task. But you needed tons of punch-cards and it was a slow, cumbersome process. Eventually computer scientists developed assembly language which translated human-readable instructions to code that a machine could understand. At this point in the lesson there is a pop-up question that asks a “Before we had compilers…” question, and it is asked before the part of the video that explains about compilers. This seems weird to me so I flagged it.
Compiled Programming Languages use human-readable instructions, then sends them through a “compiler” that turns them into machine instructions. This was invented in 1959 by Adm. Grace Hopper.
Interpreted languages are not compiled before execution. They are usually called a “script” which is run by an interpreter, which translates the code for the CPU “just in time” to run them.
Then there’s a three question quiz. Tough stuff.
How do we know what software to use? How do we deal with them in a workplace or in our daily lives? These seem like almost comically simplistic questions. Software is constantly changing–new features, updates–and these changes cause constant problems in the IT world.
Always test new software before deploying it, and be sure to verify the security of old software. Keep it updated! Malicious software is a huge problem for any computer, whether it is a business machine or in use at home. Always be sure software comes from a reputable source, and it is a best practice to not allow users to install software without admin credentials.
Installing, Updating, and Removing Software on Windows
This video demonstrates software install, update and removal on a Windows computer with Git, a version control software used in programming.
First, download the installation package from the website. Open the folder and notice the “.exe” file. Double click that to run the installation program. I have done this before… You can see if your program is installed by going to Settings>Apps>Apps & Features. This is how you can see what version of a program you have installed. You can also uninstall a program from this window. You may be prompted for an administrator password.
Installing, Updating, and Removing Software on Linux
To begin, you need to select the Linux option from the Git installation page. There are many different builds of Linux, which all have different installation packages. The presenter is using Ubuntu, so he is going to run the command:
user@my-computer:~$ sudo apt install git
which translates to “superuser says use the package manager to install git.” You will be prompted to enter your password, then there will be a lot of y/n questions.
To update software, you can simply install the new version on top of the old.
user@my-computer:~$ sudo apt remove git
This will also ask you a couple of y/n questions. Can’t wait to learn more Linux commands.
What if you want to install or manage software on multiple computers? If only there was a way to “automate” this. Well, we’re in luck, apparently, because that is what “automation” is. Woohoo. “Automation makes processes work automatically.”
Okay, then, that brings us to the end of the videos. Now we move on to the discussion portion. We are asked to think about how we think about software now that we know how it works. I am immediately rejecting this premise, but, fine, I’ll write something… even though participation is optional.
I am not quite sure I agree that I know how software works at this early stage in the course. I already knew how to install and update software on Windows and have also done so on a Linux machine. I realize I am coming perilously close to sounding like some typically cantankerous computer nerd as I explain that I already know things and reject the premise of the discussion. But I stand by it. Some of my favorite softwares include web browsers because they make all of this possible. It would be a very different world if the only online courses were through email. Whoooo boy. I really like the latest Firefox, as it is fast and open-source. Thanks.
Then there is a ONE QUESTION QUIZ. Oh man, all or nothing!
And finally another lab where we have to install and update some software on a Windows VM. First of all, it is kind of clunky getting into the VM, as you have to set your password again once you are in the Google cloud portal. But it was easy.
Next is the same exercise in a Linux VM. Glad I aced the 1 question quiz.
First, verify that Firefox is not installed. “dpkg” checks installation packages, and “-s” means “search”:
user@my-computer:~$ dpkg -s firefox
Then update the repository where common Linux installation packages are maintained:
user@my-computer:~$ sudo apt-get update && sudo apt-get install -f
Then install firefox:
user@my-computer:~$ sudo apt-get install firefox
VLC media player is already installed, so all we need to do is give the command to update that package:
user@my-computer:~$ sudo apt-get install -f
To remove a program, such as GIMP:
user@my-computer:~$ sudo apt-get remove gimp
To check that it is removed, use the same command as we did before:
user@my-computer:~$ dpkg -s gimp
This will show you some lines of output that include lines like:
Package: gimp Status: deinstall ok config-files
And that’s how you install, update, and remove programs from a Linux terminal.
Well, that’s the end of this week. It is good to be slowly learning Linux commands. I should probably take a course in that next, as there will always be jobs for people who know that stuff. May go ahead and do another week’s videos today, depending on the weather.
Onward to Week 6 – Troubleshooting.