Understanding The Hardware and Software Jungle for Non-Coders

In our last post, Coding and Creating Software for Non-Coders, we pointed out that:

“Code is a set of instructions that directs a computer (desktop, smartphone, tablet, etc.) to perform specific operations. The complete set of code instructions is called software. Examples of software include Word on your desktop, Angry Birds on your phone, and Gmail in your browser.”
Before we get down and dirty with some code, let’s take a look at the Hardware and Software Jungle. Hardware can be categorized by power, interfaces and portability.

Servers – high power, computer to computer, not portable, centrally accessible for sharing data and software
Desktops – high power, hi-res screens, big keyboards, mice, not portable
Laptops – medium power, mid-res screens, keyboards, touchpads, portable
Tablets – low power, mid-res touch screens, portable
Smartphones – low power, low-res touch screens, highly portable
Wearables – low power, sensor based, wearable
Devices – low power, sensor based, computer to computer (e.g. internet connected thermostats)

Software can be categorized by what type of hardware it runs on and the type of task it performs.

Operating Systems like Windows, Linux, iOS and Android for powering the hardware on which they run
Server Software like MySQL, Apache and PHP for sharing applications and data
Desktop/Laptop Programs like Firefox, Word and Photoshop for browsing, productivity and creative applications
Web Apps like Online Banking, Gmail and Google run in a Browser like Firefox for business and personal productivity
Tablet and Smartphone Apps like Safari, Angry Birds and Kindle for browsing, gaming, reading and viewing
Device Drivers that power hardware devices such as mice, keyboards and scanners

Now that we’ve toured the hardware and software jungle, our next installment will focus on the languages used to code the various categories of software described above.