DEV Community

Mik Seljamaa 🇪🇪
Mik Seljamaa 🇪🇪

Posted on

What is Programming?

To understand software engineering we must understand a programmer. Let us allow a programmer to specify the requirement (to be identical with the user), and examine a scenario which ends in the construction of the simplest possible program: a single bit program.

Ada is sitting in a room.
In the evening the room becomes dark.
Ada turns on the light. 
Enter fullscreen mode Exit fullscreen mode

That is the fundamental act of programming. There is a problem domain (the room), which is dynamic (gets dark). There is an order to the dynamic problem domain (it will be dark until morning), permitting analysis. There is a system that can operate within the problem domain (the light), and it has semantics (the switch state).

There is a desire (that the room shall remain bright), and there is an insight (that the operation of the switch will fulfil the desire).

Dynamic problem domains, systems, and semantics are covered in detail elsewhere. On this course, we are concentrating on understanding more about the desire and the insight.

It is worth pointing out here what we mean by a `programmer'. A drone typing in the same RPG 3 invoicing system yet again might not be doing any real programming at all, but a project manager using Excel to gain an intuitive understanding of when the budget will get squeezed and what the key drivers are, most certainly is.

Copyright (c) Alan G Carter and Colston Sanger 1997

Top comments (1)

lytecyde profile image
Mik Seljamaa 🇪🇪

Happy Coding on International Women::s Day!