Augmented may have cut a sceptical tone thus far, but this issue explores a use case of ChatGPT that has, without question, improved the quality and efficiency of one aspect of my work: coding.
I mostly use coding for data analysis - anything from user retention modelling to predictive analytics. Python is my go-to language for importing data, cleaning it, manipulating dataframes, extracting key metrics and visualising trends. My data analysis workflow comprises three steps: 1) Framing the analysis, 2) Writing and executing the code to run my models, 3) Interpreting the results (which usually triggers another cycle).
To say I ‘write’ the code overstates the case - my usual habit is to search for the next snippet of code on Stack Exchange and other such stores of human knowledge, hoping that somewhere in the hivemind a solution has already been cooked up and documented. On a good day, the precise commands can be lifted directly off those forums. Even in the worst cases, my persistence is usually rewarded with a reasonable approximation. Copy-paste-modify may not be the most flattering of descriptions, but it aptly characterises my actual level of involvement in coding.
The process can be painful. Hours can, and have, been spent wading through responses, desperately hoping for a match. It is at this stage that I might defer to colleagues who are more proficient in programming, and who can deliver my requirements to spec with a fraction of the effort.
Upskilled in an instant
With the advent of ChatGPT, things have changed dramatically. The total number of search terms I have fired into Stack Exchange (and Google) is zero, which is also the number of times I have had to delegate the writing of code to a colleague. The pain has gone. ChatGPT, even as a rough and ready general purpose chatbot, is so adept at serving up scripts, paired with human-friendly explanations, that my previous workflow already seem obsolete.
There is usually some debugging required when ChatGPT deviates from what was asked, although even then it will gladly have another go as I clarify its misconception. True to form, ChatGPT will occasionally miss the point entirely, serving up nonsensical code, though I have found this to be rare.
With ChatGPT at hand, a novice programmer like me is upskilled in an instant. I can now compile scripts that would have seemed unthinkable just a few months ago. My efficiency has improved by orders of magnitude - I can do more data analysis, and more types of analysis. I can hardly take credit for generating the code myself, but how is that different to before? I still have a role to play in crafting prompts with clarity and precision, in evaluating ChatGPT’s outputs, and stepping in to correct or modify its suggested code.
This is augmentation in action: AI-powered tools empowering humans to rise up the cognitive pyramid, delegating the drudgery of coding to computers. Developers of all stripes are experiencing the benefits. OpenAI’s Andrej Karpathy has tweeted that around 80% of his code is outsourced to Copilot, a programming assistant developed by GitHub in partnership with OpenAI (the same company behind ChatGPT). Based on OpenAI’s specialised Codex model, Copilot is increasingly being trusted to generate code, complete partial snippets, or debug - all at the behest of human programmers. GitHub CEO Thomas Dohmke bullishly predicts that AI tools will make developers more productive and reminds us that there is very recent precedent for generating code in this way - namely, open source. Anyone who relies on external libraries and plugins is already building on stacks of code that were laid before them.
Fleeting empowerment
There could be a sting in this tale, as my triumphant spirit of coding collaboration proves short-lived. OpenAI has set its sights on removing any dependence on human programmers. They may be emboldened by the fact that chatbots such as DeepMind’s AlphaCode are already outperforming human developers in coding competitions. Some 40% of the contractors on OpenAI’s payroll are programmers who create and label the data that the company’s programming models learn from - 40% devoted to the singular goal of automating software development. If successful, it promises to turn us all into makers, even those of us with basic programming experience, even those with none at all. We’ll need only the imagination, and the vocabulary, to articulate our desired creations that chatbots will dutifully build for us. As Karpathy has quipped, ‘the hottest new programming language is English’.
Skilled developers - whose technical expertise runs deeper than the instrumental task of scripting lines of code - are probably safe from near-term prospects of automation (possibly longer-term prospects too). But the novice developer, who dabbles with code without sinking into the craft, may be a transient phenomenon as ever-more capable language models eat up our modest contributions to programming. I am personally untroubled by that, but only because my career identity is not bound to my coding skills. To the extent that it helps me perform my own tasks, and converse with developers to grasp something of their approach, coding has proven useful. My value-add, however, is situated at the bookends of the development process.
But for the legions of aspiring coders sold on the narrative that a career can be built on programming skills alone, chatbots should serve as a wakeup call. Coding is widely heralded as a twenty-first century skill, a surefire path to employment during a time of increased automation. Now that the AI industry has coding itself in its cross-hairs, nascent programmers should be aware of just how high the bar is becoming. If OpenAI has its way, jobs that rely primarily on one’s ability to write code will be in vanishingly short supply. Human programmers may well go the way of now defunct human computers.
The case for coding can still be made, but it needs to adapt. ‘Learning how to code is emancipation’, according to a 2014 UNESCO article. How else will we grasp the behaviours of today’s technologies, interrogate their behaviours and build, from the ground up, alternatives that truly live up to our ideals of fairness and justice? But as the same article goes on to say, it is ‘more than the mere teaching of “coding techniques”’. That nuance matters more than ever.