Piyush Mishra, 30, started programming when he was 16. An IIT graduate who had moved back to his hometown in Balasore, Odisha, taught young Mishra the basics of coding. Gradually, Mishra, who studied in a government school in Balasore, mastered PHP, Flash and HTML, and started coding for local entities — a cricket scoreboard for a local news channel’s website, sites for local businesses and so on.
The big break came when Mishra got into the Google Summer of Code programme, which paid $5,000 for three months in 2011. Freelancing followed, mainly for Europe and US-based companies at $20-25 per hour. “99% of them were startups. All the things you discover in a company I discovered on my own,” recalls Mishra, now proficient in Ruby on Rails, JavaScript, Go and Python.
In 2015, he cofounded Verloop, a conversational marketing and sales platform.
Mishra is among those who exemplify the evolution of computer programming as a career — from a field that used to be open exclusively to engineers with four-year degrees to one that a motivated high schooler with access to the right tools online can become competent in. But while the democratisation of coding and assistance from vast code libraries has made it easier to become a coder, other developments have made life more challenging for professional coders.
A frenetic technology environment means skills need to be updated frequently, and client needs favour coders with mastery of multiple languages, also called full-stack developers.
And so the era of the most powerful programming languages known to man is also the era that paradoxically is turning out to be a very challenging one for developers, who must hold their own against a relentless stream of new languages, versions and tools.
The ubiquity and dominance of code means many corporate leaders are deciding to be conversant in coding themselves.
Pradeep Shilige, global head of delivery at Cognizant, did an advanced Python certificate course from Coursera and is now mentoring his team. Cognizant CEO Brian Humphries said in a note to employees: “He exemplifies what it means to continually learn new skills and then apply them to benefit our clients.”
Prabhat Kiran, lead developer for process automation at Infosys, knows R, Nia, Java and.Net to write code for Artificial Intelligence (AI), Machine Learning (ML), chatbots, automation systems and so on.
Shilige, a technology veteran with nearly three decades of experience, opted for Python, “because of its popularity and power. In the new API world, knowing how technology works helps me in my focus on reviewing and delivering solutions that bring our digital capabilities to life for clients.”
Swiss-knife style coders
Coders today need to learn a range of languages. The current generation of programmers love Python — an old language that has emerged as a favourite for programming for artificial intelligence, machine learning and data analytics. Javascript is swiftly catching up to challenge Python’s supremacy, with its ability to support full stack web and mobile app development.
Go is good for high-performance networking and multi-tasking. Facebook and Instagram are powered by React.js. Swift is for iOS and Kotlin is preferred for Android. Julia scores in technical applications (like data science, aerospace, engineering), Go & Rust are popular for system programming; Typescript for web programming, and so on.
Programmers try to master multiple languages as they no longer work in silos but in an interdisciplinary environment. This is a marked difference from an earlier era where coding companies worked in an assembly-line environment, where most coders did one thing repeatedly.
“In the good old days, it was a waterfall model of working. You did one thing at a time and things were largely stable. Now you might have four versions of an app in one year. Automation is making life complicated,” says Anurag Seth, VP & head of talent transformation at Wipro. For instance, coders who work on Angular, a language used to make apps, had to master nine versions it released in the last three years.
“Most solutions today adapt horses for courses approach,” says Ramanujam Thirumalai, senior VP, StackRoute (an NIIT initiative). “Earlier, language was decided on the basis of the skill sets available. Now applications require teams to choose the most apt language for a given problem.”
A developer working on the frontend today must know modern JavaScript and for machine learning applications, Python or R tend to be used more.
Kiran of Infosys uses R language for AI/ML, Nia for chatbots, and Java &.Net for robotic process automation. Pooja Bulla, user interface (UI) developer with Cognizant, trained in HTML, CSS, JavaScript and Angular 2 on her own after college to upgrade skills for next-gen opportunities. Currently, she is developing some components of an e-commerce mobile app and also learning React JS (a Javascript library for user interfaces) on the side. Next on her learning calendar is Vue.JS, which combines the syntaxes of both Angular 2 and React.
In this super specialised digital world, technology is no longer in the backend but in the frontend — the bank is an app, bills get delivered and paid digitally, voice-enabled systems can help you shop at e-commerce sites, besides networking with anyone anywhere. Large amounts of data are being collected due to smartphones, sensors, cameras, microphones becoming all pervasive in business and personal environments. Machines need that capability to process all this data to help you make decisions.
Naturally, all this, says Viral Shah, co-creator, Julia (a programming language), “creates huge burden on programmers who have to be multidisciplinary. They have to be not only good programmers, but also learn to work with large amounts of data and learn the necessary maths to understand the algorithm’s capabilities and limitations.”
For programmers, the more they know, the better they get. If in an earlier era it would suffice to go deep into one language, now they need to go wide as well — know more than one. A coder developing a car pooling app works on log-in, frontend (UI/UX), screen design, functioning of the engine (backend code), data storage in cloud, payment gateway, location-related functionalities, and so on.
“Five years back, different professionals would do these steps. Today lines and getting blurred and the same programmer has to code and ensure business outcomes. It’s a new way of working,” says Seth of Wipro.
Age of Python
Python ranks among the most popular languages because of its ease of use. It’s a hot favourite for AI, ML and data analytics. It scores in simplicity, ease of learning and offers a high degree of extensibility. A vast collection of libraries for activities such as scientific calculations, algorithms and machine learning add to its appeal.
Nitesh Nandy, CTO & co-founder, Hiver (an email collaboration platform), says, “Python has a simple and intuitive syntax. This results in better developer productivity.” Python is a preferred choice as a first programming language because of low barrier to entry and ease of use.
Vaishali Phatak, group function head-technical learning at Tech Mahindra, says: “A coder has to code less because the library is rich. That is why it finds support across a range of applications such as gaming, image processing, infrastructure management services, data science, AI and analytics.”
Python has been the fastest growing language in the last five years, mainly due to its machine learning capabilities. However, large enterprise systems continue to be written in Java. “Modern languages are lot more powerful and allow programmers to write sophisticated applications with much less effort,” adds Shah, the Julia co-creator. The large installed applications written in existing languages need to be supported for decades to come and for coders it triggers continuous learning — keep abreast with both old and new.
This environment poses a challenge for software companies with large workforces that must be kept relevant. At Wipro, it is a three level process — awareness, knowledge and expert level. All employees need to be aware of what is new. At the next level, Knowledge, they pick up three new skills and the next level prepares them to be like a Swiss Knife — certified in full-stack software testing, programming, quality and engineering. At Infosys, employees are encouraged to acquire skills out of a portfolio of 36. These range from cloud architects, IoT, analytics, data science and so on.
While there are libraries to make things easier, languages can fall off the popularity charts, keeping coders on the edge.
Hot today, gone tomorrow
Popularity of languages, points out Prashanth Chandrasekar, CEO, Stack Overflow, depends on a number of factors. “How loved it is (like Rust), how easy to use (Python) and how prominent it has been for many years ( JavaScript).”
Popularity of programming languages also depend on applications and use cases. It should be easy to comprehend and must be suitable to meet industry demands. “A language lasts long only if its design is sturdy, it is predictable (simple syntax/semantics) and has a rich library,” says Phatak. For instance, PHP (used in web servers) has gone down in popularity as other languages have risen. Most recently, Go has taken hold on web servers. Though Go is great for system level stuff too.
Python is the top programming language and was used by 41.7% of respondents at Stack Overflow (a site for programmers) survey, followed by Java, used by 41.1%. While Kotlin and Swift are languages used to build applications for both Android and iOS operating systems. “Both are reliable, fast and safe. Kotlin, being billed as the future of Android app development, improves the performance of applications, comes with a range of functionality and allows addition of extra features,” says Stefaan Van Hooydonk, chief learning officer, Cognizant. Its other features include interoperability ( Java codes can run on Kotlin and vice-versa), reduction in runtime crashes and low cost of adoption.
An engineer’s domain
With the widespread availability of code libraries, programming is getting simpler and there is a bigger focus on getting creative people (with liberal arts background) for coding as the focus is on designing simple and easy to use systems. However, that is more in theory (at least in India), than in practice. For example, 95% of Infosys employees are engineers and non-engineers are engaged in maintenance type jobs. “In the US, liberal arts graduates are quick to learn coding. In India, we expect them to clear tests to be considered on par with engineers. A small number of graduates do pass the test,” says Krishnamurthy Shankar, EVP and group head, HRD, at Infosys.
Globally, the thinking that programming as a skill should be acquired by even school children has been gaining ground, as at its core it combines skills of design, language and problem-solving.
“These are powerful skills to acquire and programming can be a tremendously satisfying creative process. It’s unfortunate that creative aspect of programming was put on the back burner in the last couple of decades with the software factory model that our industry adopted,” says Udai Singh, chief strategy officer, NIIT. “Fortunately, we are seeing a revival of the creative problem solving & product mindset aspects of programming now,” he adds.
Leave a Reply