WILL Pakistan excel in the digital and AI revolution? The answer potentially lies in how our academic institutions shape our younger lot. Software programmers are at the centre of this revolution. Great programming skills are part of a package of excellent technical and communication skills.
There is an opinion that it is possible to excel as a programmer with just a perfunctory knowledge of the English language. We may believe that skilled computer programmers with a cursory knowledge of English are in abundant supply here, but then many of our programmers would have been behind major software projects. On Github, the popular website that hosts open-source software projects, you don’t find many top projects from Pakistan. It’s not that we don’t have great engineers, it’s just that communication is a big part of the job.
Yes, one doesn’t have to be a native English speaker. Some of the best programmers of this generation are not. Linus Torvalds, creator of Linux, is a Finn. The creator of the extensively used Ruby on Rails, a web programming framework, is Danish. The creator of Python, a programming language, is Dutch. Torvalds, particularly, has excellent command over English and has been able to lead an extensively used open-source software for a long time. They all possess excellent technical as well as communication skills. There are many reasons why English plays a pivotal role in a software industry like ours that depends mostly on outsourced work and less on a local support model and localised work.
English plays a pivotal role in the software industry.
As any meaningful writing has a structure comprising various units (eg paragraphs, sentences and words), a meaningful programme is composed of various structural units, such as variables (used to store information), methods and classes (both used to store computation), documentation, file names, comments (helpful text that explains the behaviour of code), and error and warning messages shown to end users. Variables, methods and classes are expected to be meaningful, whereas comments and documentation should be well written so that the programme is useful for others.
These units define how the programme works. They are used not only by the computer (executing them) and the programmer (writing them), but also by end consumers and future programmers who will maintain the software. None of these units can be defined properly with only a perfunctory knowledge of English. Programmers usually spend more time reading code than writing it, so it becomes even more important to write understandable code. There are significant cognitive and monetary costs attached to programmes that are harder to decipher and maintain. Inadequate English skills are one reason that many of our young engineers are allergic to writing effective names, comments and documentation.
The importance of the English language is also apparent in the software development process (particularly in an outsourced environment where customers are usually English speakers), before programmes are even written. Software is built based on a customer’s requirements. Useful programmes are written after programmers have actually understood these requirements. The process of understanding requirements entails writing and reading emails and technical documents, audio/video calls and even face-to-face meetings with English-speaking customers. You cannot fully understand the requirements if you are unable to comprehend and interpret what those customers are saying.
Moreover, you have to continuously learn if you want to survive in the software world. New programming languages and frameworks come up faster than seasons change. Most courses, books, documentation and videos are in English. Sometimes demanding material needs to be learned quickly, which requires more than merely decent skills in the language.
People who move up the ladder in this world are not only technically competent but also possess effective English skills. Sometimes senior roles require preparing convincing and well-written reports and presentations, communicating with engineers and people in other departments, and meetings customers.
Inadequate English-language skills are also a barrier to entrepreneurship for many of our otherwise brilliant engineers. Most things that you do as an entrepreneur in a software company require more than decent English skills. You cannot convince people to get work done on time, and build your company’s brand with ordinary English skills.
With ordinary English skills you can still earn a decent pay cheque here, but it’s hard to grow beyond a certain point. Programmers with only basic knowledge of English don’t reach their full potential. Additionally, they prevent people in senior roles from performing at optimum levels, as sometimes senior people spend much of their time proofreading the emails, reports and documents of these programmers.
We might miss out on the digital revolution unless we fix our curriculum to address both technical and communication skills.
The writer works in the technology sector.
Twitter: @wyounas
Published in Dawn, February 21st, 2018