Coding is a basic Human Skill

Human Intelligence

Coding is a basic Human Skill

A number of developers face many cross roads as they grow their career but two seem to be common to all. One rather early in their lives is to move from Novice to Junior and later on from Mid to Senior.   

There is much technical debate on what constitutes this change but I will aim to write in a more humane and less technical way.

Coding is like learning a new language and for the many of us, the so called developers, the first thing that we learn is the structural blocks of a programming language. This is to a lesser or greater extend the equivalent of letters to words to sentences and it comes as we grow and learn further. Some of us may have become really proficient users by our early teenage years or even earlier, but further advancement takes years of much personal lonely studying time, countless hours of trial and error, lots of joy and distress in solving problems but all of it in a frame of daily job or a work related project. Namely, to learn and code for a purpose.

Coding is communicating with the machine in order to make it serve a purpose. Whether one works for an open source code project or a commercial product, it is the purpose that will lead the person to work out of his/her comfort zone, become better and acquire the next level. This stage is much more than understanding and implementing the language rules as it moves the person from the how it works to why it works this way. Acquiring both the ‘Why’ and ‘How’ is an issue commonly faced by coding specialists when looking at the code of another person. Though they do understand what the other person did and how (namely the code) they nevertheless, fail to understand why they did it.

Why matters sometimes more than the how as it is the difference between understanding the design and architectures further to the coding itself. It is the frame and foundation of the building blocks. When one understands the ‘Why’ s/he moves from the implementer stage where they use ready made coding strings or trial and error coding to basic structures, architecture and design thinking. This is what many of us are missing in our early years. Namely, we lack the coaching of architectural thinking as well as the basic architectures to use to cover their purpose of that specific thinking.

It is the ‘Why’ leading the ‘How’ and not vice versa. Early coding development looks like the speech of a child in the initial years. Though the speech does make sense, at the early stages it lacks the proper verbs or the endings of the words are a little twisted or the syntax is really strange.  Our adult brain when speaking to a child is performing an an immediate subconscious coaching of the novice brain,guiding the efforts to build up of the proper architecture. We ask the child to put the words at the correct order and fill any missing verbs. Gradually the child learns through trial and error, mimicking and coaching. It reaches to a point of automatic architecture where the child is capable to speaking fluently. At a later stage we may have some logical errors as Chomsky has very well observed. This is indeed where architecture is further tested where exception confirms the rule and then the child enters into the mode of writing and reading. The architecture is built upon each foundation. One above the other but also operating on a parallel level as we have also seen that writing may also need figural dexterity, whereas reading may need also a vision. All of them need the basics of syntax as their building blocks though.

At a large extend this is what is also happening with coding. One building block leads to the other.First you learn the commands, loops, snippets (small program chunks) and so on and so forth.  However, what we commonly do see in companies is that people are learning by doing, learning through practice and mimicking shortcuts of other people. They start as novices or juniors, read endless coding streams of others without necessarily understanding why they have built it this way, and in most cases without either the person being present to explain the why or having not the time or knowledge of the senior. Then you hear the famous wording “If it works do not touch, copy and paste the string”. This is exactly where the issue starts. Though you may end up working intensively in ready made coding, and at a second stage try to build your first string, mimicking the old ones or even to debug and start understand a little bit more than the basics you do not really move to the next stage.

You learn by doing something but sometimes the wrong way as the person who initially did it had the wrong way in its coding. In other cases you have a person who may be a little more senior than you but probably has learn also the wrong way. Reached the how without learning the why before. It is rarely the case where you have detailed documentation or a person to show architectures. In large companies we witness a phenomenon with many developers at one place and none of which having a complete idea of the relevant architecture end to end or of the whole coding necessary to respond to the issues. Or people who have spent their years in one set of coding responding to a specific need and have not enlarged further.

For this reason, in HumanI we do believe that the only training one should aim to get is on the building blocks of architectures that will support the process of the developers to move from A to B to C with the build up of the Why and How. To do so you will need not only the relevant technical breath but also the soft skills necessary to communicate with the more experienced players to convince them to support you all the way. Personally, I believe that above coding is people skills, and I have become greater coder and architect when I entered into parenthood. Though a different subject altogether, we need to pinpoint that soft skills are not things that are developed with the way the coding is learned through the Universities and the companies. Coding, though it looks as a lonely role it should be vise versa. Coding is a really team role and needs a collective unconscious to work. Having the proper soft skills is sometimes more important than the hard ones.

In Human Intelligence (HumanI) we take an holistic approach and see each person as a unique contributor and one that should be given an equal chance to develop his soft and hard skills. That is why our clients are the candidates who do receive superior services on soft and hard skills assessment and guidance in the road to their best matching opportunities.

After all we are Humani, Differentiators by Definition, believing in team but also valuing individuality, deviation and disruption. 

 

Contact Us