Programmer’s glasses show code lines
As the year draws to a close, it is a good time to consider where different technologies are going and what we can expect not just next year but in the years that follow. As part of my recent adventures in EdTech, I have had a chance to consider where the world of coding is going, how the industry sees coding, how it compares to how the education world sees coding, and how both are likely to change in the coming years. With that in mind, here are 7 trends I see in the world of coding, that much of the industry and the educational world will likely want to consider and adapt to.
What is Coding anyway?
Most of us know generally what coding means. However, since the nature of coding itself is changing, it may be good to revisit this briefly. Coding has classically been defined as the process of creating computer programs (or programming). It is also the process of specifying a solution to a problem in a language that computers can understand (which by definition needs to be precise).
Trend 1: Coding for everyone
Coding is no longer just for computer scientists or those looking for jobs in the IT industry. In 2020, India made coding mandatory for all students of 6th grade and above. In the US, discussions have been ongoing for several years about whether coding should be considered equivalent to a foreign language requirement (with strong support and opposition). Such legislation made it to a state government proposal earlier in 2021, indicating that the idea is not going away and may even be gaining some momentum.
Trend 2: NoCode, LowCode and CodeGen
Oddly enough, while the world is setting up for everyone to learn coding, the industry is seeing growth in NoCode, Low-Code and CodeGen. What are these things? They are a recognition that not all coding tasks are equally important uses of an individual’s time. These tools enable automation of the low level tasks of coding, freeing up the user to focus on higher level tasks such as code design, user experience and algorithm choices. Some of these solve problems (like analyze data), some generate apps, and others generate code that the user can run themselves – such as auto-generated AI code in a Google colaboratory notebook.
Is this in conflict with Trend 1? I don’t think so. If you see coding as mastery of a computer language – yes this can be conflicting. However, coding, in my opinion, should not be seen that way. Coding is about specifying a solution to a problem and describing that solution and its constraints and outcomes in a logical and specific way. Put this way – automating the lower levels of coding is a natural part of making coding accessible to all.
Trend 3: AI that Codes
While Trend2 is more about straightforward automation in a constrained environment, the natural extension of this is AI that can take even higher level instructions and generate code, drawing from many sources. We are seeing this already in OpenAI’s Codex. Over time, the distinction may become less relevant. As the algorithms inside LowCode/NoCode/CodeGen tools become more sophisticated, the distinctions between these two trends will disappear.
Trend 4: Open Source
This is not a new trend by any means, but I decided to include it here since its impact on the world of coding cannot be overstated. The last few years have seen the growth of not just open source but the growth of open source monetization models. However, what does any of this have to do with coding? While in the early days we would think of open source examples that are large powerful software bases like Linux, or MySQL, these days – open code is everywhere and in every possible size. Say that I wanted to learn sorting algorithms? A quick Google search will turn up countless examples, each with their own pros and cons (and bugs!). Open source has gone beyond individual apps to a sea of code with growth that shows no signs of stopping – it is in itself a form of content.
Trend 5: APIs
Developers now have another powerful resource in addition to code snippets all over the internet – and that is APIs. The Software as a Service (SaaS) boom now means that many powerful services (from databases to AIs that can detect objects and read OCR) can now be accessed with a few lines of code. This makes it not just simpler to build powerful solutions, but also makes it easier to create elastic and scalable solutions. Want to build an app that scales to thousands of users? You still need to think about how parts of the solution will accommodate that scale, but common services like databases can now accommodate that scale for you automatically, removing the need for you to become a database expert.
Trend 6: Apps and Websites
Where Trends 1-5 provide people with the foundation for coding, Trend 6 provides a destination. The worldwide app ecosystem has grown rapidly in recent years, for example with Apple demonstrating robust growth of the AppStore even during the pandemic. Where democratization of coding makes it easier for people to learn how to code, apps and websites provide a way to package up their creations for use by others. The synergy between coding and apps is further driven by governments, such as the US with the Congressional App Challenge, which encourages high school students to create unique and impactful apps. These trends are not independent either – app development is also benefiting from NoCode/LowCode/CodeGen tools as well as declarative programming approaches that make coding easier – like SwiftUI from Apple.
Trend 7: Creativity and Community
The world has known for quite a while that coding fosters logical thinking and provides a way to express creativity in the form of problem solving and solution creation. Trend 6 further reinforces this, but we can expect more outlets for creative expression with code. Musicians are already using AI programs to augment their own creativity. Is this a form of coding expression? I think so. Environments like Roblox allow users to create code for the platform, thereby injecting their own creativity into the virtual. The emerging metaverse promises more of this, with examples like Nvidia’s Omniverse.
So, what do these trends suggest? While some may seem contradictory, they are not really. What they imply are two fundamental things in 2022 and beyond.