What programming language should Omani youth learn?

By Stefano Virgilli 

Back in December 2012 in Singapore, I have a vivid memory of my brother asking me the following question: “If your son was supposed to go to college next month, what would you advise him to study?”

I pondered on the question for quite a bit, given that my elder son was just one and a half years old at that time, and such thought certainly did not cross my mind yet. But I clearly recall a sense of “being lost” as the answer was far from being on the tip of my tongue.

My brother and I then started a conversation on the topic that culminated in us agreeing on the fact that agricultural studies combined with technology could have stood the test of time. Eight years later I still think the same way, moreover after last month, when I interviewed the brilliant founder of Insecti Pro, the young and talented entrepreneur Talash Huijbers. In the interview she shared how she went to gather knowledge in the Netherlands before incorporating her agritech startup in Kenya. She has studied proteins and insects deeply and her business is now in high demand on the market.

I understand that the youth nowadays might be more attracted by studies in the realm of marketing and technology per se, than insects and fertilizers. But I am also sure that those who are willing to look at the peripheral industries where technology can be applied, would find agri-tech as one with the highest likelihood to find a great job or launching a successful business, pretty much anytime in the future.

However, there is no need for a Master’s Degree in Biochemistry to get started with some tech exploration. It is sufficient to get familiar with some of the programming languages available out there. As a matter of fact, studying Computer Science is definitely going to help the candidates in the process, but if a young Omani student is wondering how to start scratching the surface of programming at the time of COVID-19 crisis, I would encourage him or her to read this column.

First of all it is important to understand that studying a programming language is no different than studying another language. There are rules of syntax that could resemble grammar. There are statements that make sense only when written in a very specific order. There are new words to learn and an underpinning structure to memorize. This cannot be done in three months. Proper programming skills take between 1 to 3 years to develop when practiced regularly.

Secondly, fortunately, most programming languages have similar rules and structures, so for someone learning multiple programming languages, there are more similarities than differences. However there might be emphasis on different aspects of programming, or simply the specific output target (i.e. web, mobile or others).

Recently there has been a sharp growth in popularity for Python, an object-oriented, imperative, functional, procedural and reflective language that has been designed by Guido van Rossum for the Python Software Foundation in 1991. It is extremely flexible for multiple platforms, but probably not the first choice for mobile applications. It is an optimal choice for machine learning.

The imperative (procedural) and structured language “C” is probably the grandfather of all programming languages, having been designed by Dennis Ritchie in 1972. It is also an excellent choice for multi platforms development and probably an ideal first language to learn for those who are planning to extend their programming with other languages subsequently.

C was also extended and modified over the years with its object-oriented variations and generic C++, targeting Linux, MacOS and Solaris and C# (pronounced C-Sharp) for Microsoft.

Java is one of the most popular programming languages. It was designed by James Gosling in 1995 for Sun Microsystems, which is now owned by Oracle Corporation). Java is an object-oriented (class-based), structured, imperative, generic, reflective and concurrent language that can be used for development on Linux, MacOS and Microsoft.

Those interested in specifically targeting iPhone and iPad devices when developing new applications, have in Swift the best option. Swift is the protocol-oriented and object-oriented native programming language for the Apple ecosystem. It surfaced in 2014 thanks to the efforts of Chris Lattner and for Apple Inc.

Students who are more keen to learn some form of frontend development or, let us say web development, can start from PHP and Javascript, which make a great pair for new developers. However this would leave mobile apps out of their skills portfolio. Both PHP and Javascript were invented in 1995 and they are still extremely popular. Many of the content management systems such as Joomla and WordPress are based on PHP and often integrate Javascript for advanced features that are aimed to animate or enhance the user experience.

It is never too early to learn how to program, but also, it is never too late. So for the readers that have been going through this column, but are not “youth” from an age perspective, they can still reinvent themselves as programmers and find new job opportunities after COVID-19.