DEV Community

Cover image for We should still teach coding
Sue Smith for Fastly

Posted on

26 5 4 9 5

We should still teach coding

Software written using generative AI is all over the web. Performance and security issues abound. Open source projects are being overwhelmed by bot traffic. There's a lot of harm being caused, but as an educator who cares about lowering barriers to software creation, I can't ignore the democratizing potential of these tools either.

In this post I’d like to explore the opportunities for learning that this paradigm shift presents – from how to make your projects more efficient and secure, to learning about the intellectual property and labor exploitation that might have gone into training the models you used.

Understanding incentives

One thing I have learned working in education is the value of accepting people’s motivations – having a goal that a skill will help you achieve is the most effective motivator for learning. Clearly many people are finding ways to use AI to help them achieve goals.

Motivations are determined by complex socioeconomic factors beyond our ability to reason away. Let’s instead keep the door to the good internet open by empowering people to make responsible choices, equipping them with knowledge of the technical systems they’re creating within.

Gen AI might help you spin up an MVP, but eventually you will have to dig into the code. You’ll either learn software engineering skills, or have to bring in the experts. Far from making engineers obsolete, I worry that less investment in these skills will make the barriers around the profession more extreme. A select few having insight into how critical systems work is not a future I’m enthusiastic about. Instead I’d like to find learning paths that these new ways of building software present.

The conditions for learning are in place

Projects developed using gen AI can support a range of good practices in education, including some key activities that we often neglect in both formal learning and the workplace:

  • Personalization: We can work on something meaningful to the learner rather than dragging them through a one-size-fits-all experience.
  • Fast feedback loops: Automation can fuel adaptive learning through short iterative cycles.
  • Reflection: Reflecting on an experience helps you internalize skills you’ve acquired and reapply them in different contexts.

Code generated using LLMs enables and requires these perhaps more than “traditional” ways of making software. There are also some coding pedagogy techniques that gen AI projects can lend themselves to:

  • Reading before writing – code comprehension is a crucial software engineering skill, consider an experienced engineer performing code reviews and mentoring junior teammates.
  • Starting from a functioning application instead of a blank slate.
  • Running an app to see what it does, then investigating how it did it.
  • Taking gradual ownership of a project by making a first edit, then turning it into something new.

⚠️ Generative AI is not an appropriate substitute for the many interpersonal aspects of effective learning IMO. “Mentoring” powered by biased LLM content is incredibly dangerous.

Encouraging inquiry and independent thought

I wonder about a gen AI coding exercise that gives you a broken project to fix, or prompts you to explore where the code came from – this kind of inquiry is being used in the humanities to support the development of critical thinking skills, especially important since these tools might by default erode those very skills.

Then we have the wealth of problems that arise when people deploy applications with little to no understanding of their implementation. What happens over the long term, what happens if your project becomes a real thing people depend on, what happens when it breaks, what happens when it causes harm, how do we navigate the obfuscation of accountability? These are learning opportunities we’ll embrace if we want people to make more informed choices about how they use technology.

Software engineering is a very privileged profession, largely because it requires access to education. Vibe coding creates new paths into building with tech. The starting point may be different, but we might even manage to invite more people into the spaces where we shape the future of the web.

Learn how Fastly is making AI more sustainable.

Cover image is The March of Intellect by Robert Seymour.

Top comments (14)

Collapse
 
jess profile image
Jess Lee

Really well put @suesmith!

Collapse
 
kwnaidoo profile image
Kevin Naidoo

Nice article! I see the whole AI shift as positive. Especially vibe coding, since it allows more people to gain access to tech. This does not mean the end of coders; it just means there are more people coding at some level.

The vibe coders are going to start new businesses, maybe even new industries. This will only grow the software market because at some point, they'll need to iterate or scale those programs, and this is when the "real" programmers can assist.

AI is just another hammer, a very sophisticated one but still a hammer. As developers, we just need to evolve to a higher level, which means diving deeper beyond just surface-level implementation of SDKs and APIs; we need to have a deeper understanding of software and complex systems as a whole.

Collapse
 
maincomputer profile image
maincomputer

I think this is fine for quickly iterating a prototype. I don't see a problem with it doing the tedious and boilerplate stuff but we shouldn't outsource our thought process to it.

I think its going to be a security nightmare if lot of this vibe code goes in to production.

Collapse
 
avanichols_dev profile image
Ava Nichols

Absolutely

Collapse
 
shady33 profile image
BojanR

Well said, great article.

Collapse
 
roelr1 profile image
Richard Roelofs

Really well said!!

Collapse
 
dansasser profile image
Daniel T Sasser II

Excellent insight 👏

This is something I’ve been discussing frequently, and I’m currently planning to publish a detailed article on the topic.

I believe we are heading toward a major reckoning. A bubble will burst when companies that have become dependent on AI-generated code start facing serious challenges.

The need for refactoring, combined with widespread security vulnerabilities, will create real risks. Especially when no one fully understands the underlying code.

I’m glad to see more people starting to recognize the importance of this issue.

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Nice article, but I reject the framing that coding is inherently an economic activity.

For some people, having fun with it is a side-effect of serving capitalism, for others it's the other way around. Assuming or even prescribing one of the two is missing part of the picture.

Collapse
 
lexlohr profile image
Alex Lohr

I think there's another dimension to the whole AI replacing developers paradigm shift.

Those companies going all in on AI will be down shit creek without a paddle when the last idiot recognizes that there's no AGI right around the corner that would save them from the self-inflicted technical debt amassed by hallucinating language models.

By then, the surviving companies fall into two categories: too big to fail, so others will take their fall for them and those made by developers for developers.

Collapse
 
ansellmaximilian profile image
Ansell Maximilian

Very well said

Collapse
 
anh_kittrn_57a297f2272 profile image
Anh Kiệt Trần

Ai a person who use "vibe coding" for home project, bro have ever shit on chair and asking AI to code ? Actually vibe coding only work with some programming language nearly more with human language than machine language. Those language's complier already be mature to handle stupid code from AI . Ai code will be starting at if-else statement, it s still correct indeed it s a bad solution. To achieve better code base , a user must have wide understanding in math,and language. Because AI will not provide solution path and other academy research for project.

I did vibe coding,but before that i understand OS, C,C++ python and have a lot of research on technology knowledge.
When i querry, i know workflow, i make pattern on paper ,and pipeline on my mind , and 200h to read codebase on open source just to make a querry good enough to generate a code with 100% working at frist attempt.
Despite with this, it s still better than the pass when i have to do both job at same time and learning a libs just to do a few of task . vibe coding really help me out , i take api from OS, using several simple libs ,but the quality is the same with a bunches libs project.

My code will be more independent and avoid a lot of licence . nla bla bla.

I saw a lot of non programer using vibe coding as solution, as expected i will generate a bad code and it can be reuse overtime