Should K-12 students still code? If so, how and why?
Close-up of code on a computer screen for the Apache Struts framework, which was exploited by computer hackers using a Remote Code Execution exploit in order to allegedly steal the personal information of millions of people from credit bureau Equifax, October 2, 2017. (Photo by Smith Collection/Gado/Getty Images)
Getty Images
A recent New York Times podcast challenges that the tech industry encouraged students to code, only for those students to now struggle to find jobs. They further ask, if the tech industry was wrong about this, should we now trust them when they push all students to learn AI? While the statement has validity, the situation is more complex.
Why Is This Happening?
Part of the confusion (and pushback) that this article has caused is due to the fact that the drop in coding jobs is due to many factors, some of which are:
- Over the last few years, there has been a notable uptick in Computer Science enrollees and graduates, who are now entering the market.
- Generative AI tools (such as ChatGPT and Claude as examples) have become increasingly proficient at writing even complex standalone code. Tools like Cursor have also enabled developers to integrate AI tools into their professional software development workflows, further increasing their productivity.
- The actual pace (and hype) around AI development is causing many industries to ask whether AI can perform a task before they invest in hiring a human to do it.
Which of these is dominant is largely not relevant since the combination is causing impact. The struggle of new, fresh graduates to find coding jobs is real, and the need to change Computer Science education given AI advancement is also real. However, what does this mean specifically for K12 education? One key objective (not the only one) for education is to help students find meaningful careers that can sustain livelihoods. The employers providing these careers will choose what they need. It is quite possible, particularly with the rate at which AI is changing industries, that they do not fully know what they will need. However, whatever they think they will need is probably worth paying attention to.
What To Do?
In coding specifically, here are five tips from my personal experience in several decades in the tech industry (hiring at every level) and as a teacher of K12 and college students. These tips are hopefully useful to K12 educators, curriculum creators, students, and parents.
An Analogy
The previous model outlined in this podcast, summarized as “learn to code, get a 6-figure salary job,” is representative of a model that I like to model as a cruise ship:
- Students fight to get onto the best cruise ship possible (whether it is learning to code or at a particular university/major)
- The assumption is that if they can get on, stay on, and not fall off the ship, the ship can be trusted to take them to a good destination.
One can debate whether this was ever true, but the key fact is that it is no longer true.
- While the ship moves, destinations are changing. Some destinations are disappearing entirely.
- It is extremely hard for a large cruise ship to change course quickly. It is even harder for it to take every passenger to a unique, customized destination.
- Some of the more aggressive students (like here) are complaining and considering jumping off the ship to charter their own boats.
Caveats
K12 students do not typically look for jobs after high school graduation, so one can argue why any of this needs to be done in K12. The reason is that the sooner these core skills are developed, the better. Students who develop these skills in K12 can go on to further depth and exploration in college, which will enhance their career prospects. Developing these skills in K12 will also enable them to better assess how the coding and tech landscape is changing during their time in college, and prepare themselves to meet it where it will be when they graduate.
Tip 1: You Should Code, But Why Do You Code?
The first question I ask my K12 students is, “Do you like to code?”. I hope the answer is yes. The second question is “Do you code for purpose or code for fun?”. Any answer is ok. The distinction is that some students code because they have a specific outcome they wish to achieve, such as solving a problem or building a system. Others code for the sheer joy of seeing a problem get solved through logic and exploring how to make the solution smarter via different algorithms or styles of code. The first is valuable because it shows problem solving and the ability to use coding as a tool. The second is powerful for brain development.
That said, while both are valuable and should be encouraged, the first is hirable, the second is not. Employers hire to solve problems not for skills in tools or technology. Learning to use the skill to solve a problem is key. The more realistic the solution, the better.
Tip 2: Pick A Language, But The Language Matters Less
One of the issues with coding classes today is a heavy focus on syntax (the specific structure of a language, similar to grammar in english). Every programming language has syntax and structure. While syntax differs widely between languages, the structure of languages as they relate to programs is broadly similar. The syntax is also what AIs can easily excel in, and where online tools can help you fix issues in code. It is also unfortunately where many coding tests assess students, because it is simpler to assess than complex and varies approaches to solving complex problems. The latter however is what you need to learn.
Tip 2 is to pick a language and learn to build the most sophisticated programs you can that solve the most complex real-world problems. If you do not have a language in mind, pick python (the mainstay of AI and one of the fastest growing languages on the planet).
Tip 3: Learn To Read Code
One of the biggest issues that corporate hiring has always had with fresh computer science graduates is the lack of realism in the work they have done. In code, this often manifests as students never reading the code of others outside of a small project team. In professional software development, developers spend far more time reading code than writing it. This is doubly true in a world where AI writes most of the code.
Tip 4: Contribute To Big Code Bases
In production software development, code bases are big, complex and developed often over decades. There is no option to rewrite it all. Skilled developers understand how to add to complex code bases, upgrade as needed, and keep the entire machine stable. They also understand the complex testing and integration pipelines. It is not reasonable for K12 students to appreciate these in depth, but even a simple task of checking out and getting a big open source code base running, and possibly making a small change locally, will provide great perspective that students can build upon.
Tip 5: Understand How Code Works With Domains
This tip comes back to the need to code for purpose, even though coding for joy is strongly encouraged. Code is a poweful way to solve problems, but the deeper a student’s understand of the problem and the domain in which the problem exists, the more likely that the code is smart in ways that matter. How can K12 students develop such skills? Examples are curricula like The Textile Show, where students learn how to use code to address problems in animal health and environment, with varying levels of coding skill.
The Challenges Ahead
Significant challenges lie ahead. The message “learn to code, get a job” is simple. The message “learning to code will not guarantee a job, but please learn to code anyway” is far more complex. Guiding students through this path requires a far greater understanding of how code is actually used in professional contexts, what (changing) roles humans play in code-related creation, and a far tighter coupling between the technology revolutions occurring in industry and what is taught in the classroom. The latter, in particular, is so different from how teaching occurs today, that it will need profound changes to how we educate the next generation for success.
Takeaways
In short, the concern about coding no longer leading to jobs is unfortunately quite real. While the causes can be debated, there have been many reports of this issue being a ground reality. The question is what it means, for coding and for AI. I believe that coding is a necessary skill, but perhaps not the way it was envisioned previously. The tips above can help educators and students pursue coding skills in ways that they can adapt to what the future brings.
