• Babesa, Thimphu, Bhutan


What is coding and why are good coders highly sought after?

What is coding and why are good coders highly sought after?

By Dr Tshering Cigay

Published in Kuensel on 21 July 2021

What exactly is coding?

If you want to teach your friend from another country how to cook ema datshi for the first time, you will write down step-by-step instructions about how to do it. Your friend could then read this set of instructions from top to bottom, carry them out step by step and come up with ‘ema datshi’ as the result.

Computer works in a similar manner like your friend in this example. It needs a set of instructions to execute. ‘Coding’ is the act of writing this set of instructions for the computer using a programming language. All computer applications such as Microsoft Word, WeChat or Druktrace work based on a set of codes which get executed in the background.

In the analogy of making the ema datshi, the recipe is the equivalent of the ‘code’, the writer of the recipe is the ‘coder’, and the cook is the ‘computer’ which executes the instructions step by step and gives the final output. Just like we have many human languages such as English, Dzongkha, Japanese etc., we have many computer languages such as C, Java, Python, etc.

Why are good coders highly sought after?

We are living in the age of computers and the Internet. Everything we see online, from a simple website to a complex mobile app for banking like MBOB, is made by coders and software engineers. If you have a great idea for a mobile app or a website, you will have to look for a software developer who can develop the app or the website. 

Recently, our Government has rolled out many systems such as the Checkpost Management System (CPMS), system for COVID vaccine rollout, contact tracing app etc. as part of our response to the COVID situation. All these initiatives require people with coding and software development skills.

Good software developers are in high demand everywhere in the world. I can dare say that there are no good coders who is unemployed today in Bhutan. If you want to choose a profession that can guarantee gainful employment, I think you should consider learning software development unless you, by nature, have no interest in it.

Some years ago, many Bhutanese rushed to send their children to law schools when a shortage of lawyers was felt in the country. Next came the rush for civil engineering. Today, some of these law and civil engineering graduates are not able to find gainful employment that their parents expected. Such things would not happen for skilled software engineers or developers because the demand for them is global, not just in Bhutan.  

Coder vs Programmer vs Developer vs Software Engineer

Software engineers not only build the tools and frameworks that software developers use, but also build computer programs that interact directly with components of the hardware system. Software developers develop software applications starting from planning, designing and coding to deployment using available software tools and frameworks. A programmer or coder is someone who do programming or coding. However, the terms coder, programmer and developer are often used interchangeably.

Software development frameworks/platforms

As soon as I graduated with an electrical engineering degree from Australia at the end of 1999, I joined Bhutan Telecom as an engineer. BT’s billing system administrator had just resigned and so the management tasked me right away to take over his job of maintaining the billing system, fixing software issues and upgrading the software because I was one of the few Bhutanese graduates who was good at programming then. Students of all engineering disciplines in Australia used to learn programming even in those days, while here in Bhutan, I am not sure if it is the case even today.

In those days, most software development tasks had to be done from scratch. It used to take a lot of time and effort. But nowadays, there is no need to do everything from ground zero. Almost all software development projects use frameworks such as React Native, Laravel, Ruby on Rails, Angular JS, Springboot, .NET etc.

A framework is a system which include code libraries, scripting language and other software that facilitates the development and integration of various components of a large project. It provides developers access to standard features and helps them avoid needless coding and thus save time and money. Today, a software developer should be adroit in at least one of the popular frameworks.

High-level vs low-level programming languages

Different programming languages vary in complexity and they fall between human spoken language and machine language. Machine language is the language that directly interacts with the computer at the hardware level and they just consist of the bits 1s and 0s. The programming languages that are closer to human spoken language are called high level languages, and the programming languages closer to the machine language, like the Assembly Language is called a low-level language. Low level languages are harder to master and code in.     

Python is an example of high level programming language. It is easier to understand and learn. C is a lower level language compared to Python and you need deeper understanding to program in C. But even C is considered a high level language compared to Assembly Language, the language that is closest to machine language. Higher level languages have access to many inbuilt library of functions so that you do not have to code that yourself from scratch. But that makes the high level languages less efficient in terms of fastness and memory usage. So, C is used for hardware-related application development such as operating systems and network drivers, while Python is used for natural language processing, web development etc.