A Generation Of Illiterate Programmers: AI Over Dependency
January 31, 2025
• 2,531 views
Are software developers having an over-reliance on their AI tools? Or what about how AI is affecting their ability to learn how to become a good developer?
Are we... doomed? I don't think so, but let's dive into it.
View Transcript
not only is AI taking all of the software engineering jobs but it's also making all of the developers illiterate hi my name is Nick centino and I'm a principal software engineering manager at Microsoft the other day on my code commute Channel I was talking about a article that was posted on the primagens subreddit and this article is something that we're going to be going over in this video I'm going to give you my perspective on it because this is something that I did a stream of Consciousness Vlog about on code commute now as we go through this video I'm going to read through the article give you my perspective on what this individual is saying and I want to make sure that we keep an open mind and try to look at multiple angles of what's being said as software Engineers I think that it's
a really good opportunity that we can consider different perspectives even if we don't necessarily agree with them and that way we can do better analysis and form better opinions so if that sounds interesting just a reminder to subscribe to the channel check out code commute and check out that pin comment for my courses on dome train let's jump over to Reddit all right so on the primagens subre here this was posted 3 days ago at the time of recording and this is titled AI is creating a generation of illiterate programmers so there's lots of discussion going on here and so I thought this is really interesting it caught my attention and just because I mentioned it I did make a code commute video which you can see her on my screen so if you're interested you can go check out code commute I post multiple
videos a day when I'm commuting to or from Crossfit or two or from work and that way you can have some software engineering added to your commute or if you're just working around the house doing chores okay so now let's jump over to the article and read through this together now this article is posted on nam's blog I'm hoping I'm pronouncing his or her name correctly and let's jump into it so AI is creating a generation of illiterate programmers and I like the way that this article is written by the way it's kind of like a nice little story and then they kind of go into some of the other details towards the end so let's say a couple of days ago cursor went down during the chat gbt outage I stared at my terminal facing those red error messages that I hate to see
an AWS error glared back at me I didn't want to figure it out without ai's help after 12 years of coding I'd somehow become worse at my own craft and this isn't hyperbole this is the new reality for software developers all right so interesting start right there feeling like they're very dependent on AI so the Decay it crept up on me subtly first I stopped reading documentation why bother when AI could explain things instantly then my debugging skills took the hit stack traces now feel unreachable without AI I don't even read error messages anymore I just copy and paste them I become a human clipboard a mere intermediary between my code and llm this is awesome language I love it so previously every error message used to teach me something now the solution appears magically and I learn nothing the dopamine hit of instant answers
has replaced the satisfaction of genuine understanding deep comprehension is the next thing that was affected remember spending hours understanding why a solution works now I simply Implement AI suggestions if they don't work I improve the context and just ask the AI again it's a cycle of increasing dependency then come the emotional changes previously it was part of the joy of programming to solve new problems now I get frustrated if AI doesn't give me a solution in 5 minutes and the scariest part I'm building an AI power development tool but I can't shake the feeling I'm contributing to the very problem that's eroding our Collective skills sounds very Doom and Gloom um kind of interesting right they're calling out that they have been developing for 12 years and now it's like they're so dependent on the AI tools and they're noticing this vicious cycle so what's
interesting though is they come up with this rehab plan as they've worded it and we're going to read through that now so I'm not suggesting anything radical like going AI free completely that's unrealistic instead I'm starting with no AI days one day a week where read every error message completely use actual debuggers again write code from scratch and read source code instead of asking AI I won't lie it sucks I feel slower dumber and more frustrated but I can also see the difference I feel stronger connection with my code and a sense of ownership which had slowly disappeared with AI plus I learn a lot more so this is interesting right we're going to keep reading but I want you to keep in mind some of the things that are standing out here right so they're saying it sucks and understandably so because they're used
to using tools and then they say they feel slower dumber and more frustrated interesting right so they're saying slower dumber and more frustrated but they also see the difference and that is that they have more ownership and they feel like they're learning more kind of interesting dichotomy going on here so the uncomfortable truth we're not becoming 10x developers with AI we're becoming 10x dependent on AI there's a difference every time we let AI solve a problem we couldn't solve ourselves we're trading long-term understanding for short-term productivity we're optimizing for today's commit at the cost of tomorrow's ability and I think that this is a very um interesting statement this is something that when I read this it certainly aligns with my perspective I want to go through this more I'm going to try sharing an alternative perspective that um spoiler alert I don't necessarily agree
with but I'm trying to keep an open mind to because I think that it's very interesting so they go on to say I'm not suggesting we abandon AI tools that ship has sailed but we need Rules of Engagement here are some ideas that I have no AI for problems that you haven't tried to understand first read and understand all AI suggested Solutions I think these are I mean this second one for sure is something that I recommend no matter what you should read and understand anything that you're trying to take and go Implement they say regular periods of coding without AI assistance focus on learning patterns not just fixing immediate issues they say I won't lie I don't think I'll be able to follow these rules all the time but it's a start and I strongly believe anyone who's new to programming should definitely follow
all those rules right now somewhere a new programers is learning to code they'll never know the satisfaction of solving problems truly on their own they'll never experience a deep understanding that comes from wrestling with a bug for hours we're creating a generation of developers who can ask AI the right questions but can't understand the answers every time AI goes down their exposed is increasingly helpless as of now ai isn't capable enough to replace programmers fully but this will only get worse as it improves the real question isn't whether AI will replace programmers it's whether we're replacing ourselves try coding without AI for just one day the results might surprise you all right so that's an awful lot to take in I wanted to give this person a shout out again because I thought that this was very well written and in particular I really like
that they kind of tell it like a story and then they go on to give some suggestions about how they're approaching and then they give some suggestions about how they're going to approach differently their own development process I wanted to go back through this and touch on some things and kind of take on their perspective right like let's try to side with them see things through their lens and see if this feels like there's relevant points that we can extract some value from right so they're going on in this part where they talk about the Decay they're talking about as they're developing things now right so they've been a developer for a long time over 12 years right and they're starting to say like these things crept up so all of a sudden it kind of feels like out of nowhere but they know it's
been over a period of time that they have things like their debugging skills they're basically finding that they're more Reliant they're finding that they're just like uh using AI to solve like what whatever the stack traces are they like critical thinking ability and and problem solving is starting to go away because they're relying on tools so I think that's interesting I've certainly found myself using AI for things that I don't necessarily want to spend time on I've talked about this in previous videos where I might be going to create some SQL tables different schemas and I have some basic queries I don't mind writing SQL but it gets to a point where I have something a little bit more complicated and I could go figure it out but instead of spending the time to go figure it out I just ask AI to do it
and then I ask it to optimize for different things so for example if it gives me back some C code that's quering the database and it gives me three queries I say can you try doing this with one round trip right can we optimize this for latency can we do other things with this and that way I'm not spending my own time trying to go write the query and make it better I don't really have to worry about that anymore it's interesting because I can acknowledge that I'm not spending time doing that kind of stuff but at the same time I would absolutely say that my ability to go do more complex things in SQL that is going away I'm not spending time doing it anymore I think there's probably a lot of things like this that individuals can relate to so if you're watching
this it might not be SQL queries for you but you might be finding that you replacing part of your development process with things like AI being able to ask it questions or go do things tasks that you don't really want to do in your development process and I think for some developers maybe ones that are completely new to programming or individ ual that are more comfortable with AI tools the Reliance is growing and growing right like some individuals might not even know how to go code things from scratch and truly they're just taking things right out of the llm I think that is becoming more and more common so the next part that I want to dive into though is that they talk about this rehab plan and what I think is interesting about their approach and this is something I want to focus on
a little bit here their perceived solution to this is that they want to consciously be taking breaks from different aspects of leveraging AI and so they're going on to say that because they've identified some of the spots that they're using AI heavily for they're trying to say instead of doing that I will consciously avoid using AI for these things I think that for someone in this situation I don't think that that's necessarily a bad idea I think it's uh something that they can try out especially if they're more concerned about this dependency that they're creating on AI right this is something that they've acknowledged for themsel that they don't necessarily like so I think that's important one of the takeaways that I want people to have when they're watching this video is that I want people to think about tools AI for us is a
tool I'm going to switch gears in a little bit to talk about my different perspective on tooling how tools help us and in this case this person saying yes this has been a helpful tool but it's now reaching a point where they feel like it's compromising other things that they value so at some point to them the tool is having a trade-off and they're not happy about that this is important because I think that other people including myself will have a different perspective on this you might be someone who totally agrees with this individual and you saying hey look there is an overreliance this is a tool people are using and abusing and it's actually causing more problems and other people might say the complete opposite Hey look it's a tool it's doing awesome things it's helping people lean into it and there's going to
be people in the middle of that so I think everyone's going to have a bit of a different perspective on this but I think what they're trying to say is for them there's too much Reliance so they want to be able to step away from it if we go down a little bit lower um just to touch on this part again where they're talking about uh not a 10x developer but 10x more dependent I do like some of the things that they call out in this section in particular so um I do think that reading and understanding uh not only all AI suggested Solutions if you're taking code from anywhere right if you didn't write it even if you did write it you should be understanding what you wrote like double check things make sure you understand it uh this is no different than taking
stuff from stack Overflow from forums copying it out of you know you're pausing a video to go copy down the code make sure you understand it um I do like the first point as well and I think that um between the first point for no AI problems that you haven't tried to understand first and this last one focus on learning patterns not just fixing immediate issues I think that these are two points that I'm going to drill into a little bit more that um in my opinion kind of to form up a traditional approach or what I might consider a traditional approach to going to learn uh software development um this third one this is something that I think is very individual so for example um you know right now for myself I don't regularly focus on periods of uh coding without AI assistance but
that's again because I fall into this category of I don't feel that I'm overusing it or I don't feel that I'm becoming over Reliant and I also have some different perspectives about what this person wrote in the first place however if you do kind of side with this person and you saying hey I don't want to fall into that category a feeling over Reliant then I do think that this one here is also a good option okay so two things in general that I want to dive into like I said it's going to be this point here at the top and this one down here right so the first and the fourth point and I also want to talk about tooling and in particular I want to talk about Reliance on tooling so in code commute when I was first filming this and it was
more of a stream of Consciousness that was sort of my first time thinking through some of these things and I like filming code commute because it lets me actually just think about stuff say it out loud maybe sometimes I'll say something and I change my mind because it's the first time the thoughts coming together so it was a good opportunity for me to try and think about this now when I was talking on code commute about this content one of the things that came to mind is that I think that from my own development experience I have always been heavily reliant on tools I thought that was kind of an interesting thought because in this article it's very much talking about how we're so dependent on AI which I am calling a tool here so if AI is a tool and we're so dependent on
it well what about other tools and when I reflected on my own development experience I've been so dependent on tools since the very beginning now for me I am a net developer I love coding in C working in net and that means that I've been using visual studio for forever in particular I love features like the debugger we get I love the intella sense I love the IDE itself I know some people don't like Visual Studio I get it but my experience working with c and visual studio I have been so reliant on having visual studio and I think that we can kind of make this a little bit more generic right like if you're a developer you probably have an IDE that you like to use does that mean that you must have it probably not but are you more effective with it yeah
like I wouldn't want to program unless I had a good ide to work in now because I use C I like Visual Studio but if someone said hey Nick you can't use C you have to go use JavaScript which would be the worst just kidding but if I had to go use JavaScript I would say I want an IDE I want to go use something that makes me feel like I'm using visual studio and that's going to be Visual Studio code for me which is is fine so the point here is that I have a Reliance on an IDE I wouldn't want to go coding anything at all in notepad or something else that wasn't really integrated I wouldn't want to go work in an environment that didn't have a debugger attached to it that I could go step through things I wouldn't want to
program without intellisense all of these things are tools and experiences that I've had throughout my entire time being a developer and I've had them since the beginning obviously they've evolved over time but these are things that I've gotten used to having the entire time does it mean that I couldn't code at all without them no what I want to also no so when this person talks about this extreme dependency on AI I actually don't really share the same concern personally I can absolutely acknowledge where they're coming from if that makes them uncomfortable that's not for me to say they're not allowed to feel uncomfortable but when I was reflecting on this I don't have that same discomfort in fact I've sort of accepted that I rely on a lot of tools I don't assemble my own code I really hope that no one's doing that
but I also use a debugger I also have an IDE with intellisense I also have you name it I'm always using tools for things and if I didn't have some of those core tools I would really not enjoy the process of developing so that was the first thing I wanted to call out and because this is supposed to be a bit of an exercise and considering different perspectives I wanted to kind of challenge you and think about this right I'm not here to say this person's right or wrong or that I'm right or wrong but this is my perspective on it and I'd be curious about yours so if you're thinking about this do you also have an overreliance on tools already excluding AI like or is AI sort of the Tipping Point for you are you totally content programming and developing with minimal tools
because I'm personally not but that might be very different for you okay the last part that we're going to talk through here is back to these bullet points right so no AI for problems that you haven't tried to understand first and focus on learning patterns not just fixing immediate issues now when we talk about a more classic approach to learning software development I will be the first to say because I've been telling people this as long as I've been trying to Mentor them and that's probably in the neighborhood of like 12 plus years of trying to help other developers now we haven't had AI like this for 12 plus years but the point in the first part is really about trying to understand problems so the idea is that if you're asking someone for help and always getting answers and you're not actually trying something
first you're probably not going to learn as effectively I've made other videos about this in terms of asking good questions or how I coach other people to basically tell other people go try something first it's the same idea in terms of learning I think that it's very important that we have periods where we're getting stuck on things getting stuck trying to work through the problem do a bit of Investigation exploration analysis troubleshooting all those things are super valuable for trying to learn more effectively if we jump to the last part when it says focus on learning patterns this is the same type of thing where people will say you should learn the fundamentals right that means if you're going to go learn a programming language or a text stack people are saying you don't have to go memorize those things think if you're learning the
fundamentals of what you're doing they'll be very transferable to other languages other text stacks and that sort of thing I think that when I read this last Point that's also what they're saying and again this is advice that I would be giving people already regardless of AI or not those two things the way I frame them are how I recommend people learn on top of that practice right go build things I think that's the other piece of advice that I would always add in now this is the part where it's going to feel a little bit awkward and a little bit challenging in terms of thinking about a different perspective and the disclaimer that I'm going to read here is is that I'm not even convinced that I align to this but I wanted to say it out loud because I think it's interesting and
what that's going to be is that maybe this perspective in terms of learning software development maybe that is becoming outdated and I wanted to pause because I realize that might sound like whoa what the heck are you saying and I realized that and that's why I said I don't know if I totally agree with it myself certainly don't agree with it yet but I'm keeping an open mind I'm very curious if for the new wave of developers leveraging tools that we have today and how they're going to be getting more and more advanced hopefully more and more accurate and just kind of Paving this new way of development are we going to see a trend like we're seeing already where people are becoming more Reliant and it's actually enabling them to become more effective developers again I recognize that that's probably going to get some
people triggered I am waiting for the thumbs Downs to come in on this video but I wanted to say it out loud because I'm curious I don't believe it yet but I am trying to keep an open mind in terms of how this is going to unfold the reason that I wanted to keep an open mind about this though is because I do try to help other software developers in terms of getting ramped up in terms of learning more effectively that's one of the reasons that I make these videos I like being able to help others now I need to keep an open mind myself because if this is the direction all of the tools are going who am I to say that the way that I learned is going to be the most effective way for people going forward the way that I tell
people to learn is what I'm used to this is what worked for me and in fact I do think that it would be helpful however I am not sure if I will be able to claim that it is the most effective way as we go forward part of this for me is an exercise in keeping an open mind I'm very interested in following along to see if other developers are essentially becoming very effective and they are not abiding by this rule they are using AI for problems they've never seen before and you know what they're doing it they're doing it effectively they keep doing it and it's not really causing them problems or this last part they're not learning the patterns for thems at least the same way they're basically trying to fix the immediate issues maybe they're seeing these patterns over a longer period
of time and they're just learning in a different way again I'm not claiming this is a truth I'm not claiming this is reality all that I'm saying is that I'm very curious and trying to keep an open mind about it in summary I thought that this article was an awesome read I thought that it was very interesting to see how this person is going to try and address their over dependency on AI but I think for myself I have a couple of things that I don't necessarily agree with the first is that I already do have a dependence an extreme dependency on different tools and resources like I was using stack Overflow a ton before llms were around I use other tools like idees and things and I've always have and I always will so I'm not super concerned about an overreliance on tools but
that's my opinion and then the second part is like I was saying I think the way that we are learning currently and sort of that traditional way learning the fundamentals right trying to make sure that we're getting challenged getting stuck and navig ating problems I do think that that is really effective I currently think it's the most effective way however I'm not totally sure that it's always going to remain that way with respect to some of the AI tools that we'll have going forward would love to hear your opinion on this you're very welcome to disagree with me on these things because these are just sort of thoughts that I have and they're my opinion but you will have your own too so thanks for watching and I'll see you next time take care
Frequently Asked Questions
What is the main concern raised in the video about AI and software developers?
The main concern is that AI is creating a generation of illiterate programmers who are becoming overly dependent on AI tools for coding and problem-solving, which may hinder their ability to understand and learn from their own work.
What suggestions does the video provide for developers to reduce their reliance on AI?
I suggest implementing 'no AI days' where you focus on understanding error messages, using actual debuggers, writing code from scratch, and reading source code without AI assistance. This can help strengthen your connection with your code and enhance your learning.
How does the host feel about the use of AI in programming?
I have mixed feelings about the use of AI in programming. While I acknowledge that it can be a helpful tool, I also recognize the importance of maintaining a balance and ensuring that we don't lose our fundamental skills and understanding as developers.
These FAQs were generated by AI from the video transcript.