Who Programs/Codes?

Who Programs/Codes?

IT Industry

In the Information Technology (IT) industry, persons whose job responsibilities are primarily progamming or coding may have any number of different job titles depending on their specific responsibilities or the company's choice of titles. Common job titles include:

  • Programmer
  • Programmer/Analyst
  • Software Developer
  • Software Engineering
  • Web Developer
  • Web Programmer
  • Mobile App Developer
  • Application Developer
  • etc.

Relevance Outside IT Industry

Is programming and programming logic relevant if one does not plan on being a programmer? Most definitely. Many other job titles program and write computer code. Below are few examples.

  • Network Adminstrators write backup scripts, software inventory scripts, software update scripts, password synchronization scripts, weekly network/server performance report scripts, to name a few. Commom languages used for this include Bash, PowerShell, VBScript, or TCL.

  • Scientists and Engineers program extensively. Scientists and engineers refers to dozens of different jobs: oceanographers, physicists, statisticians, astronomers, mechanical engineers, civil engineers, aerospace engineers, etc.

    An article in the "Communication of the ACM” (Guo, 2013) by Philip Guo profiles oceanographer and mechanical engineer Kevin who spends less than 5% of his time out on the ocean; the other 95% of the time sitting in front of the computer writing programs to clean up, transform, process, and extract information from data collected in the field. The article goes on to summarize: “If you're a scientist or engineer, programming can enable you to work 10 to 100 times faster and to come up with more creative solutions than your colleagues who don't know how to program."

    A reddit discussion mentioned the following computer programming languages and software popular among engineers: Python, C, C++, MatLab, LabView, MathCad, Mathematica, Fortrain, Java, Excel/VBA, and C#.

  • Geographical Information Systems (GIS). GIS is a job and field that involves capturing, storing, editing, analyzing, and displaying of spatial or geographical data. The data is used to plan and make decisions in science, government, business, and industry, including real estate, public health, crime mapping, national defense, sustainable development, natural resources, climatology, insurance, landscape architecture, archaeology, regional and community planning, transportation and logistics. Python, Jython, Bash, R, Java, C#/.NET, C++, SQL, MathLab re all languages used by GIS professionals.

  • Computer Numerical Control (CNC) operators. G-Code and various proprietary languages are used to program and control CNC machines and their tools (e.g. mill, lathe, routers grinders, etc.) to automate the prevision creation of parts. G-code essentially controls features such as coordinates, location, feed rate, and speed.

    CNC programming uses CAM software and editors in the same way IT programmers use development IDEs. While CAM software now produces a lot of the G-Code, knowing the G-Code allows the CNC operator to fine tune, and customize the code. CAM software shares many of the same features as IT development IDE, such as an editor, wizards, error-checking and debugging tools, and sub-programs/modules. The newest versions of G-Code also share many core constructs with high-level language IT languages. These constructs include the use of variables, decision statements (if), loops (while), goto statements, conditional operators (equal to, greater than, etc.), and expressions and formulas.

    photo of haas CNC machine

    A HAAS CNC Machine (https://commons.wikimedia.org/wiki/File:Small_CNC_Turning_Center.jpg)

  • Programmable Logic Controller (PLC) programmers. PLCs are digital computers programmed for automation of typically industrial electromechanical processes, such as control of machinery on factory assembly lines, escalator operation, amusement rides, water management/reservoir water level control, newspaper/paper/money printing, and light fixtures, to name a few.

    IEC 61131-3 currently defines five programming environments/languages for programmable control systems: function block diagram (FBD), ladder logic/ladder diagram (LD), structured text (ST; similar to the Pascal programming language), instruction list (IL; similar to assembly language), and sequential function chart (SFC).

    Some of these environments/languages are very visual, such as ladder logic/ladder diagrams, others, such as structured text, more closely resemble high-level IT languages. Structured text supports variables, data types (integer, float, time, string, bit strings, boolean), iteration loops (REPEAT-UNTIL; WHILE-DO), decision/conditional execution (IF-THEN-ELSE; CASE), expressions, arithmetic operates, relational operators, logical operators, bitwise operators, function/module calls, and built-in functions (SQRT(), SIN()). PLC also has a heavy emphasis on the Input, Process, Output model that is a cornerstone to IT programming.