Mark As Completed Discussion

Applications of Computer Programming

Computer programs are everywhere.

The obvious examples are programs run on general-purpose computers, which are what you probably recognize as a computer. That would be your PCs (laptop or desktop), smartphones, modern consoles, server machines, and even supercomputers. They're called general purpose because, well, they can be used for any purpose. You can run a video game, open your browser to read this article, run any application you've installed or otherwise obtained an executable version of, or you can write your own applications for them.

There are also special-purpose computers. They sacrifice some of the general applicability of general-purpose computers in favor of speed and efficiency. They often implement the kinds of logic their particular application needs most often at the hardware level - making those types of operations insanely fast compared to running the same operation on a general-purpose computer. These types of computers may be applied in the automotive industry, robotics, satellites, routers, navigational systems, digital watches, etc.

Programming for these devices happens on many levels:

  • Frontend - the interactive part of the program that the end-user sees;
  • Backend - the logic executing behind the scenes, sometimes on a remote server;
  • Networking - connecting multiple computers so that they could synchronize tasks or data;
  • Databases - finding efficient ways to reliably store and easily recover data;
  • Data Science - studying patterns that can be found within data and then perhaps applied to real-world problems;
  • Artificial Intelligence - creating algorithms that explore a search space efficiently through using heuristics or imitating human thinking;
  • Security - working to prevent hackers from exploiting flaws in the design of a program;
  • Dev Ops - making everyone's work efficient by automating important processes, providing useful tools, scripts, etc.
  • Quality Assurance - a robust process of software testing and verification, through manual testing, automated testing, and sometimes formal proof of function;
  • etc.

This is by no means an exhaustive list. There are many more fields and types of specializations programmers can have. The point is that it is a vast industry and a lot of people do highly specialized jobs within it. As said, everything around us needs programming nowadays, and no one person could do it all well.