“Kids who code early start thinking of themselves as people who can create. In the future, you can either be a creator or a consumer of technology. If you are a creator, you are set for a powerful life,” says Bajaj
It is now common for those not trained in computer science to employ programming in their work. This may include a business focused worker writing VBA in Excel, or a scientist writing statistical analysis in R, or writing data analysis software in Python, possibly employing machine learning libraries.
It is common for workers in other fields to engage in various forms of computer programming or software development.
In the 1980s and 1990s, only about 25% of those working in software development had a degree in computer science or computer engineering. Those with other skills have long been involved in software development.
Computer programming has never been the exclusive domain of those trained in computer science. I have worked as a software developer with others who, for example, had undergraduate degrees in non-technical subjects, or an MA degree in French, or an MA in music, or a PhD in music, or a PhD in geology, a PhD in geophysics, or PhD in psychology. All had applied software techniques in their work and eventually gravitated to working as software developers via “learning on the job”. It is common to find those with degrees in electrical or mechanical engineering, mathematics, physics and other engineering and science fields working as software developers.
While many are outstanding software developers, not all such persons write the best software. Much software has been written for climate models and paleoclimate studies – and once made public some of that was found to be written poorly in ancient Fortran. Neil Ferguson’s Covid-19 simulation software is a pile of C code lacking adherence to software engineering principles that would have made it maintainable and verifiable. Just because you can write “code” does not mean you can write good code, or have any understanding of systems analysis, software engineering principles or software quality assurance.
It is a mistake to confuse “coding skills” with software development, and a mistake to confuse “coding skills” with computer science. Regarding the latter, I have seen public school programs – in elementary school! – refer to programming using Scratch as “computer science “. Uh, there’s a bit more to computer science, such as design and analysis of algorithms, systems analysis, language theory, database theory, operating systems principles, a wide scope of mathematics, and numerous specialty areas such as computer graphics or machine learning, and each of those subjects have their own sub-fields of study too.
The key point is to recognize that “coding skills” are a skill, much like typing was 30-50 years ago in public schools – that are an important adjunct skill to being a specialist in unrelated fields (business, science, medicine, etc). But “coding” is not “computer science” or “computer engineering” any more than being trained in first aid would make you into a paramedic, nurse practitioner or doctor.