Develop Yourself

#258 - Should You Use AI While Learning to Code? A Senior Developer’s Take

Brian Jenney

A junior developer who got hired at a startup used AI non-stop to keep up.

It worked for weeks until he crashed and burned.

He'd built a house of cards that he couldn't keep up. The AI tools went in doom loops or just added more sloppy code that his team wouldn't accept.

Turns out they hired a prompt engineer instead of a coder.

We're in uncharted territory my friends.

You can't just NOT use AI but when should you start? How much is too much?

Let's explore a path to learning code with AI that won't make you another prompt engineer.


PS - If you're already a software developer, I'm working with a few people to crush their next interview. Apply here.


Send us a text

Shameless Plugs

🧑‍💻 Join Parsity - For career changers who want to pivot into software.

✉️ Got a question you want answered on the pod? Drop it here

Zubin's LinkedIn (ex-lawyer, former Googler, Brian-look-a-like)

Speaker 1:

Welcome to the Develop Yourself podcast, where we teach you everything you need to land your first job as a software developer by learning to develop yourself, your skills, your network and more. I'm Brian, your host. To AI or not to AI? That is the question, and it's a very difficult one, that a lot of more early career and junior developers in learning to coders are facing right now in this massive AI revolution which we're all living through, and I want to discuss some of my opinions about how you should be using AI. If you're a person that is learning to code.

Speaker 1:

This will be a fairly short episode. I really hope this helps some people out there, because I've seen firsthand the trouble you can get into. That is short-term. That will eventually become a really long-term problem in your career if you're relying on AI tools too soon. I also don't think that you shouldn't be using AI tools at all. I think that you should be using them in a very particular way once you're beginning to learn and then I think at a certain point, you should be using them a ton to generate code you otherwise could have written on your own, and I think that's the main takeaway.

Speaker 1:

If you get nothing else from this, know this If you write code, you must understand what it says. You must understand what it does. You should be able to explain it to a stranger, because if you can't, I guarantee you, my friend, that is not going to be a fun conversation with your manager, with your customers, with the other developers on your team. Trust me, I've been there before. Copying and pasting code that you don't know gives you the short-term win of actually getting something done. It's like cheating on your homework. Basically, you got it done, you got the A in the class, but as soon as the teacher asks you to explain it in front of the class, you fall flat on your face, you turn red, you run out this room crying and screaming. You get expelled from school. You live your life on the streets as a bum writing HTML code in the streets of San Francisco for a can of beans. You don't want that to happen to you, right? I don't want that to happen to you either. So when you're first learning how to code, right? Here's my challenge to you Don't use Cursor, don't use Windsurf, don't use Claude Code, don't use any tool that generates code on your behalf. I feel super strongly about this and I've evolved my opinion because at first I was wondering is that even necessary anymore? Do you truly have to know how to write code? I was kind of buying into a lot of the AI hype around there. Now, after almost a solid year of using AI tools and using them a ton, I have subscriptions to Cursor. We use Cloud Code. At work I use Gemini.

Speaker 1:

I've been using GitHub Copilot for years, like many other developers out there, and I've come to the conclusion that these tools actually make it more important than ever to know how to write code without these tools. Let me explain. These tools are wonderful in that they can generate tons of code really, really fast, and the problem with it the tiny, subtle problem is that the code looks like it works. It looks like it works and it will mostly work, but they've generated so much code most of the time that as you're digging through it and you get more complex problems or things change, you realize you've essentially built a big house of cards and if you don't understand how the code works or fundamentally how to construct and compose code, you can get fooled into thinking that what an AI agent gives you is really good. Ai agents and AI tools in general are very confident. They sound super duper confident. They'll tell you an answer to something and just say, yeah, the president right now is Martin Luther King and he was born in 1842. And, based on its training data or whatever, it's just going to spit out that answer. It is not a sentient human being. Remember, under the hood, large language models are like big old calculators crunching numbers, turning words into numbers and crunching them and telling you what the next likely word in a sentence is going to be is a highly oversimplified version of them. So please don't put your trust in these tools.

Speaker 1:

So if you're learning how to code, it's really important to struggle with the syntax, to have some sort of friction in your learning. Why do you want friction in your learning? The same reason why you remember really bad events as a kid or something like that, or an an adult, when you get hit or you got burned or maybe you had a traumatic experience or something like that. Your brain, our Neanderthal brains, have a way of retaining this information because it will save us later. So it's like, wow, that was a really terrible event, something bad happened. Let me store that deep in our brain so we never forget that ever again. We're not that far removed from our Neanderthal ancestors. Right, our brains are fairly simple. Right, we do a lot of complex things. We live in a very complex world with a pretty Neanderthal-like brain, so we have to use this to our advantage and understand how we learn in general.

Speaker 1:

So if you're not struggling to learn, if you're not having a little bit of struggle, a little bit of friction and then having those pain points happen, then you're going to be missing out on a really important part of your learning. You're going to be missing out on that struggling which creates these deep grooves in your brain which means that you retain the information longer. There was actually some studies done that proved in quotes we don't know yet right, but these studies claim that using chat, gpt is making you dumber, it's making it harder for you to have complex reasoning, it's making it harder for you to think independently, it's giving you a crutch, and when you do that, when you're trying to enter into a new career. That is really appealing in many ways and incredibly dangerous. Because what I've seen and I've seen this not only at Parsity when we take people in, we often give them a baselining exercise. We say, hey, why don't you solve this problem? And we've definitely seen a lot more people using AI to solve the problems.

Speaker 1:

Now, me and Zubin, my partner, when we look at these submissions, we can kind of tell we're like this code looks not like something this person would write. We look at their GitHub history, we look at their professional work history and then we look at the code that's written. We look at some of the comments that are being made, we look at some of the choices for style and the composition of the entire project and we think this seems a lot like AI. And we'll just ask them straight up you know no hard feelings, because we get it. We get that using AI is attractive and many people are feeling like they really should be using it, and so when we ask them that they're pretty truthful for the most part and they say, yeah, I did use AI for this, we say great, okay, thanks for sharing that.

Speaker 1:

Do you mind doing it without AI tools? And a lot of times I'd say about half the time the person can't. And that is a big problem, because when you're on the job, there's a very strange expectation that you'll have. It's not only be, you know, semi-fast you can't be forever to write code but that you also understand the code and write it in a scalable way. That means other developers can come along and then add to the code, remove code, recompose it, use it for different purposes and functionality and, at the very minimum, you should be able to explain the code and then update it as needed, right? So you're not only saying, hey, give me good code, but write it kind of fast. And so what a lot of developers do is they're like well, I'm going to focus on being really, really fast.

Speaker 1:

And there was a story of this kid maybe not a kid, he was an adult a young adult got hired at a startup and he did pretty well at first, right, writing a lot of code. The code was getting into production and then thinking, wow, this person is really fast. And they asked them hey, are you using AI tools? They said, yeah, I'm using a ton of AI tools and I'm being able to scaffold these projects really, really quickly. And they thought, cool, around week, four or five or a month or so into this job they had, they noticed there was a massive drop off in this person's productivity. They basically were using AI so much and it was generating so much code that they didn't really understand. They just saw that it was working and because it was working, they thought, oh, I'm doing a great job.

Speaker 1:

And then requirements changed, like the person at the job, the CEO or the product manager or somebody somewhere says hey, we want you to change this functionality. So instead of accepting a date, it accepts a string or something like that. Or instead of accepting two numbers, it accepts a string or something like that. Or instead of accepting two numbers, it accepts two letters Some ridiculous change somebody wants to make, or maybe it's a larger change and then that person needs to now update the code they wrote no-transcript. And you'll get in these vicious loops where the AI just keeps telling you let's change this file, then this file, then this file, then this file, then this file.

Speaker 1:

And it's not uncommon I've seen this happen for it to go off for minutes at a time, maybe 30 minutes at a time, if you're using something like Cla and over, and the problem is you don't know what was written, because in reality you're not a software developer, you're an AI code editor, prompter, and that's not a career. That is just a hobbyist at best. That's like somebody that buys a camera like a disposable camera and says I'm a photographer Not quite. Just because you have a wrench and you know how to undo some screws in your car doesn't make you a mechanic either. You're still playing with the engine and destroying it nevertheless, but it doesn't make you an actual expert in that field, same way that using these AI tools and editors doesn't make you an actual programmer just makes you somebody who knows how to use these AI tools.

Speaker 1:

So what can you do to make sure you don't fall into this trap? The most obvious answer is to build stuff without the assistance of tools, but how do you know when it's time to start using them and how much should you not rely on them? Like, what's the limit, right? So I have a pretty opinionated opinion on this. As a matter of fact, I think you should be able to build the following thing with no AI tool assistance, before you consider using AI tools and here's what I think you should be able to build a full stack web application and I'm being very biased here, because I know a lot of people out there.

Speaker 1:

Why a web application? Why not some sort of backend service? Just give me a break here, okay, I'm trying to speak to a lot of you out there and I know that most people out there are interested in some form of full-stack development where the writing code that is not only front-end but has some backend components, no-transcript. I think you should be able to build a full-stack web application that uses some sort of modern front-end framework like AngularJS or ReactJS or Nuxt or whatever whatever the hell you wanna use. I think it should have a backend that is deployed separately, that is using some other language, maybe a strongly typed language like TypeScript, or maybe Go or C, sharp or whatever. You could also just write it in JavaScript using Node Express.

Speaker 1:

I think it should be deployed separately from your front-end app. I think those two apps should be able to speak to each other. So the front-end app I think those two apps should be able to speak to each other. So the front-end should be able to send requests to the back-end and the back-end should be able to send responses back to the front-end. And I think this thing should be deployed at a publicly available URL and I think all the code should live in GitHub. If you can do that, maybe have some light authentication, whatever.

Speaker 1:

If you can do all that, then I think, my friend, that you are ready to start using AI tools, and I think if you use them any sooner than this, you're going to be doing a real disservice to yourself. Now, does that mean you should completely avoid all AI tools altogether? I don't think so either. I don't think that's the answer either, honestly, I mean, before we had AI tools, we had Stack Overflow, and plenty of developers, myself included, were guilty of just copying and pasting code from Stack Overflow into our code base, seeing if it worked and then just saying, yeah, this works, let's just go with it. That's also not a great choice, so there's a happy medium, of course. Right? Should you be using the internet to understand how to find solutions A hundred percent? That's a really important part of being a software developer.

Speaker 1:

Should you be using things like chat GPT to reinforce your understanding and learning 100%? And here's the way that I suggest you do it. If you have a solution, or if you're staring at a blank screen and you have no freaking clue where to start, start with something like this Write something out or talk through your solution into chat GPT. I use the pro version or the plus version so I can use my speaker and I can talk into chat GPT. I love doing this.

Speaker 1:

It forces me to articulate my thoughts, come up with a plan, and this often gives me something to start with. I might start with something like I have an HTML file and a JavaScript file and I need to make it so. This form, that is an HTML, has a button and when I click on it it submits the form. I'm thinking of creating a function, and that function will be triggered when a person clicks submit. I forget the syntax for how to add an event listener to a button. Can you show me that syntax? And then you can simply ask does that make sense? Does what I said make sense? Please don't show me the code, just either confirm or deny if this actually is a good path to follow and we'll say, yeah, that makes a ton of sense. If you want more help, then let me know and I'm happy to help you write all the code, and the code could be written within seconds with ChatGPT.

Speaker 1:

But remember, the goal here is not to build something that's going to wow or impress anybody. You're building things simply to reinforce your learning, the same way that somebody who might study at barber school or who might study being a mechanic will often start off with really trivial, easy tasks to do and then they'll move on to more difficult, more complex tasks. They start with the easy stuff because that's where you start. Could the person instructing them do it within seconds? Probably Could they do it much faster and much better than the student? Absolutely, but that's not how you learn right. You don't learn from just watching somebody else do something much better than you. You only learn by getting in the reps. Learning how to code is like learning how to drive is like learning how to ride a bike is like learning how to work out in a gym. You can read all the books you want, but until you get some time in the saddle, you really don't have anything at all.

Speaker 1:

So using ChatGPT as a learning reinforcement tool or to confirm or deny your suspicions is a great thing to use it for. Now here's an even better way to use it. I've been trying to learn a little bit about data engineering, large language models and even linear algebra at the beginning of this year, and here's the way I use ChatGPT to learn these things. I didn't ask it to write a single line of code for me or tell me how to solve some mathematical equations. I simply talked into it and said here's my understanding of how a large language model works. Can you confirm or deny that this is, in fact, pretty accurate? So I would try to just teach it what I understood, see if it said, yeah, that makes sense or no, that doesn't make any sense, and then ask it to can you explain it in a way that makes sense to me? So, asking it to explain high-level concepts, like tell me how asynchronous JavaScript works in layman's terms, or explain it to me like I'm five years old or whatever, that's a really good use case and that will help you not only reinforce your learning but give you some examples that you might not be able to find into a book.

Speaker 1:

The problem we used to have when we looked up problems and answers on the internet is that you'd get somebody's version of how that made sense, and it might make sense to a lot of people, but it wouldn't make sense to you, right? Like? I had to learn recursion a long time ago and I was like I looked up all these examples in YouTube videos and I'm like man, none of this makes sense. And this is way before chat, gpt or large language models were a thing, and so I basically just had to keep scouring the internet until I found the solution that made the most sense to me. Nowadays you don't have to do that at all. You can really speed up your learning by saying hey, can you explain recursion to me like I'm five years old, or can you give me some examples of using recursion in a programming language that is not JavaScript or some pseudo language, so I can just get the higher level concepts out of this topic? But whatever you do, please don't just say, hey, solve this problem for me. That's just cheating on your homework. You're not going to get very far ahead, and even if you do trick somebody into getting the job, I can almost guarantee you won't last very long in that job.

Speaker 1:

I'm saying this as a senior software engineer working with a bunch of really smart software engineers who are using Cloud Code, who are using Gemini, who are using Cursor, who are using all the AI tools we have at our disposal, and guess what? We still have to write a ton of code. The more difficult the problem, the less useful AI is. Now, if you want to have a career where you're solving difficult problems, which is exactly the kind of career you want to have, because no one's paying you to solve easy problems. You have to get used to solving problems. You have to get burned a little bit. You have to bash your head against the computer a little bit. You got to pull out a couple strands of hair. You got to just go through the experience in order to get the result. No pain, no gain, as cliche as that sounds. So if you take my very opinionated advice and you wait until you can build and deploy this full stack web application, then go nuts on the AI tools.

Speaker 1:

But simply remember this if you cannot explain it, if you cannot rewrite it, if you cannot update it, if you cannot defend the choices that your little AI robot has made, you should delete them. You should reprompt it. You should tell it to do things that you understand. Then massage that code into a form that makes sense to you, because, at the end of the day, you can't blame your robot. When something crashes and burns at work. You can't say, oh, ai did it. It's like my dog ate the homework, right? I hope that's helpful.

Speaker 1:

And if you're interested in learning how to code without AI tools, going old school, learning JavaScript the right way for 30 days 30 days of making a ton of progress join me at dev30.xyz, which is open for enrollment. Wonderful program. People love it and go to dev30.xyz and you can enroll now and I will see you on the inside. Hope that's helpful. Be careful with those AI tools, please Bye. That'll do it for today's episode of the Develop Yourself podcast. If you're serious about switching careers and becoming a software developer and building complex software and want to work directly with me and my team, go to parsityio. And if you want more information, feel free to schedule a chat by just clicking the link in the show notes. See you next week.

Podcasts we love

Check out these other fine podcasts recommended by us, not an algorithm.