One day at the office I was given the task of collecting education data from a government website. There was no API, no option to export the data. Just endless, poorly-formatted tables. My task was to copy and paste the data, cell by cell, from the website into a spreadsheet, for hours on end.
Much as one sees an oasis after days in the desert, I began to see a diving board and cool, inviting pool just off the edge of the 25th floor office balcony. But it eventually occurred to me that it might be feasible to automate such tasks, even with my limited experience in programming, and soon my computer was doing the work for me.
There’s a term I like to use for folks like me who have a minimum viable proficiency in programming, just enough to be able to hack together useful things for themselves: casual coders.
I generally think of this class of amateur programmer as white-collar workers who automate repetitive, computer-related tasks at the office, such as data entry, report generation, or web scraping. They’re a diverse group that includes analysts, marketers, researchers, journalists, engineers, entrepreneurs, administrative professionals, and many others.
They certainly aren’t professional developers, and most of the time programming isn’t anywhere in their job description. But they still find opportunities to program useful things, and they tend to appear where the following the conditions are met:
- There are tasks whose automation would save time or money, or that would be of value but aren’t currently feasible without an automated procedure (e.g. web scraping)
- Beginner-level programmers are capable of automating these tasks, i.e. the solution consists of simple scripts that require little-to-no maintenance and it’s easy to verify they’re working as intended
- The long-term savings of automation are clearly worth the upfront development costs
- There is no existing, cost-efficient software solution, often because the problem is too small or niche
- Hiring a professional programmer, even a freelancer, isn’t a good option, perhaps because the solution requires lots of domain knowledge, or because it requires interacting with proprietary software or data that outsiders aren’t permitted to access
Satisfy these 5 conditions, and you’ve got yourself a prime environment for some casual coding.
A Rising Trend?
I don’t have any idea how many casual coders there are, and I doubt there’s any reliable data on the subject. However, with the proliferation of coding education and resources, as well as the development of tools like Python and other beginner-friendly coding technologies, I have to think casual coders are on the rise.
But the question I have is: How does this trend play out over the next decade or two? Is this the beginning of something much larger? A few scenarios to consider:
They rise in number – K-12 schools continue to integrate programming more and more into their curricula, and increasingly beginner-friendly coding resources and tools make it easier to get in the game. Coding custom scripts for yourself becomes a routine activity in many white-collar jobs, and familiarity with programming becomes almost as basic an expectation as knowing your way around Microsoft Office.
They fall in number – New machine learning-based tools, where you “train” your computer instead of program it, automate many programming tasks, particularly the simpler, automation-related ones. Only highly-talented programmers are able to program useful things that this widespread, training-based software can’t.
They remain a relatively fringe group – No radical technological changes occur. Programming is more widely taught, but most of that talent gets channelled into creating more flexible or targeted software that solves many of these automation tasks, so casual coding remains an occasionally useful but relatively fringe activity.
What do you think?