Philosophies of computer programming are closer than they appear

What we are inside —not our organs of course but deepest inside— is given by our personal philosophy of life in general.

What our computer programs are —not the material aspects of them but the immaterial— is given by the particular philosophy of program design we have –implicit or explicitly- chosen to design them.

Since computer programs are a singular artifact of human cognition, it follows that theory of knowledge, philosophy of science and the pillars of philosophy (epistemology, ontology and, ethics) are much more related to our trade than to other more secular professions (included those artificial professions shaped by recurrent attempts for software industrialization based on economies of scale).

Professional programmers, that is to say professionals that make a living out of designing computer programs that work, tend to develop sound philosophies over many years of theory, practice and reflection. Be aware and listen because the outcomes of such a coherent and articulated philosophy of program design worth a social shift, a shift in the right direction towards a public accountable profession.

If you are serious about your software development profession then you want the very best education you can get; you know, not what your boss —or any other authority for that matter— thinks is best for you but what really set you up for now and the future, hence better you get acquaintance and then masters the raw materials of the source: your mind.

Software is knowledge; specifically, it is a medium, a storage medium for knowledge; not information, but knowledge –namely understanding. Nature in this planet has been storing the knowledge about biological life in the form of DNA. Human race have been storing knowledge in our brains, tools, books and recently in the form of running software.

In actuality, not in the future, not in the horizon, the need for professional software practitioners –that truly know what software really is– has been around for a while. Just as philosophical disciplines have been mayor players in the way we are today, the main philosophical disciplines and schools of thought in program design are defining what computer programs are going to be like.

Reflections while reading these excellent pieces of work:

The Laws of Software Process: A New Model for the Production and Management of Software
by Phillip G. Armour

Generative Programming: Methods, Tools, and Applications
by Krzysztof Czarnecki, Ulrich Eisenecker

Erkenntnistheorie
by Johannes Hessen

The Will and the Word: A Philosophy of Programming