The true nature of programming skills

A “pure” programming language

In a “pure” programming language, a program would just consist of three types of expressions:

The literal expression; For example:

  • 5
  • 7.25
  • “hello world”

The function application expression; For example:

  • a=f(x,y)
  • x=a+3 [*]

The function definition expression; For example:

  • a=function(x,y) { return x+y; }

[*] note that x=a+3 converted to Euler notation looks like =(“x”,+(a,3)) or like assign(“x”,sum(a,3)) if you prefer. By eliminating the infix notation, it becomes much clearer that we are sitting on two function applications, that is, of the functions “=” and “+”.

Other types of expressions are just ideosyncracies in the language’s grammar. For example:

while(x<y) { x++, y–};

is in fact pretty much a set of botched function application -and definition expressions. It could perfectly be written like this:

while(x<y, function(){ x++, y– });

There is no good reason whatsoever why the while() construct is not just a function.

Skills in a “pure” programming language

According to the definition of a “pure” programming language, in order to be a programmer, you need three skills:

  • You must know what functions to apply. Therefore, you need to be able to Google for that. This is the lookup skill.
  • You must be able to define functions in terms of a list of function applications. That is the composition skill.
  • You must be able to find the bugs in something you or someone else wrote (by disambiguiting and enforcing consistency), that is, the debugging skill.

Therefore, we end up with the following skills tuple: look up, compose, and debug.

Concerning the quagmire of corporate recruiting

It is trivial to demonstrate in terms of category theory, and using the fact that all Turing-complete languages must necessarily be homeomorphic with each other [**], which is one of the many surprising results of Voevodsky‘s Univalent Foundations of Mathematics, that these skills must exactly be the same across all possible programming languages.

(Note: Yes, thanks, I know that it is only the orthogonal semantics that are.)

Therefore, there are no “javascript programmers”, “python programmers” or “php programmers”. There are no “front-end”, “back-end” or “full-stack” programmers. That terminology is invalid. In reality, that kind of things simply does not exist. These things only exist in the heads of corporate recruiters who do not understand what they are recruiting for.

Seriously, there is only one place where they invent that kind of nonsense, the corporate imbecilatron:

 

imbecilatron

 

As usual, their way of thinking, in the context of anything that is non-trivial, is worthless. From where their predilection for Soviet pseudoscience?

Since I am only ever available for main founder -or co-founder rôles, similar to my current rôles, I am not much speaking from practical experience, but only from theoretical observations made from a distance about a particular type of indigenous fauna.

Seriously, I sometimes run into imbecilatii who reason in terms of that kind of irrelevant logic. My answer is always the same: Imbecilatius imbecilaturus est, meaning: With time, the idiot will only become more stupid.

 

Advertisements

Published by

eriksank

I mostly work on an alternative bitcoin marketplace -and exchange applications. I am sometimes available for new commercial projects but rather unlikely right now.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s