Thomas Frank @TomFrankly 2024-10-11

A few people saw me coding while I was in LA last weekend and asked,

ā€œHey, do you use Cursor or Copilot?ā€

I do not, and I think it’s important to share the reason why.

I tested Copilot in VS Code for a few months earlier this year. Yes, it feels like magic.

But then I noticed a change in my behavior. I’d type up the name of a function I wanted to create…

…and then I’d just wait.

I was waiting for the robot to do my thinking for me.

I’ve heard @ThePrimeagen call this the ā€œCopilot Pauseā€ and that was 100% my experience.

I remember initially having this defensive thought pattern:

ā€œWell, code auto-complete isn’t going away, and I’m still getting good at the higher-level architecture! I shall be the conductor of machines, all shall love me and despairā€

But that wasn’t true at all. In reality, I was just unconsciously outsourcing my ability to solve problems in addition to outsourcing knowledge of the syntax.

So I uninstalled it (and saved myself the $10/mo in the process).

I do use LLMs in the browser, but in a conscious way. I make a point of seeking out official docs, and of trying to interpret error messages myself instead of mindlessly pasting them.

I do think these tools are extremely useful.

But it also seems that, just as extremely, they entice me to change my habits around problem-solving and mental effort – for the worse.

I think it’s very important to be careful how much we rely on them.


Sever @SeverMM 2024-10-12

You could soon post your repos to Etsy - ā€œhand crafted code with tiny imperfections that only humans can makeā€


Thomas Frank @TomFrankly 2024-10-12

I’ll embroider my code on quilts


kitze @thekitze 2024-10-11

bad take. writing repetitive code manually belongs in the past. writing some complex and architecture code manually is still fine

try supermaven. treat it as a fancier autocomplete. there is no ā€œwaiting for copilotā€ there’s just tab driven development


Thomas Frank @TomFrankly 2024-10-11

Do you believe new developers simply don’t need a working understanding of programming concepts, or the tooling they’re working with?


Matt Kuda @MattKuda 2024-10-11

I think you’re undervaluing the ā€œoutsourcingā€ aspect.

I become a better developer by shipping more frequently and getting reps seeing a project through from start to finish—not by meticulously centering every div on my landing page.

Hours spent building and iterating > hours spent rehearsing beginner code.


Thomas Frank @TomFrankly 2024-10-11

How long have you been coding?

I can only communicate from my experience, and I wouldn’t even classify myself as being at junior level.

My worry is over-use of these tools will prevent me from ever even getting to that level.

For example, I used a ton of Node functions in my code for long time without understanding any of them. Only recently did I force myself to write stuff from scratch, and in the process learned the difference between exec and spawn (and realized I had been using the wrong one for a very long time).

LLMs never taught me that difference because I didn’t know to ask. I had just accepted the model’s suggestion and moved on, unwittingly making my code very inefficient in its use of memory.

I want to become a better developer, and I believe that means truly having to work with, and understand, my tools.


Manosai @manosaie 2024-10-11

I appreciate the thoughtfulness, and also share some of the underlying concern you felt in the near-term.

I wouldn’t articulate your defensive thought in the same way. But I do think there’s something about both these skill sets having their respective place. If you assume progress and the evolution of technology are constants, then isn’t it our human nature to evolve alongside these constants? We didn’t stop exercising when we invented cars, we didn’t stop reading paper books when we invented the Internet.

There will be a place for the deeper understanding and problem-solving skills of coding, but it will also evolve based on the needs of efficient software building.


Thomas Frank @TomFrankly 2024-10-11

I should say my post is coming from a beginner/intermediate perspective. And since I made a video on learning to code last year that did well, I have to assume that many folks who follow me are also beginners as well.

There’s some great discussion on this thread around using these tools at the senior dev level, and at that level they do seem quite useful. There might still be a bit of atrophy risk, but the damage potential there is probably minimal.

Still, for folks at my level, I think there’s a very real risk that over-reliance on these tools leads to over-confidence in one’s own skills, and either a significant delay in becoming a true expert or it never happening altogether.

Your examples are interesting, too:

ā€œWe didn’t stop exercising when we invented carsā€

I strongly disagree with this one. Car dependent infrastrucure correlates strongly with obesity and prevelance of metabolic syndrome.

In these places, folks now have to fit dedicated exercise time into their days (especially if their job isn’t blue-collar). Most don’t.

ā€œWe didn’t stop reading paper books when we invented the Internetā€

I’ve seen a lot of comments from teachers lamenting how their students don’t have the attention span to read a full book – and they’ll note that this trend seems to worsen each year.

Folks definitely still read books, but it does seem that internet use has had an effect on attention span and how likely a person is to read more challenging books.

Nicholas Carr’s book The Shallows is a good read on this (and on how tool use always changes the brain).


Arthur @artorius_drake 2024-10-11

They are completely inferior at writing code. What they are very good at is assisting with the enumeration of knowledge spaces that I am unfamiliar with. A good LLM is very useful to figure out the stuff that I didn’t know that I had to know. It is normal learning from there.


Thomas Frank @TomFrankly 2024-10-11

Totally agree with this. For me the biggest strenght of an LLM is that I can ask it questions that will expose me to new concepts I wouldn’t have come across using other tools.

I can ask something like ā€œWhat would a senior JS dev consider given this function and its intended use?ā€

For me, that’s intentional use of the tool and it’s genuinely useful. It’s the reason I know as much as I do about error handling, concurrency, and a bunch of other concepts I wouldn’t have known to look up otherwise.


DeFish @TygerrFish 2024-10-11

autocomplete definitely develops some bad pavlov’s dog type habits. although I’ve had a lot of success with having dialogs with the AI where i’ll say hey i’m trying to build this and was planning on doing it ā€œthis wayā€ do you have any better approaches? if yes why?


Thomas Frank @TomFrankly 2024-10-11

I do the same dialogue thing and it’s very helpful. I do still think there’s a risk of over-reliance, but it’s far lower. I feel the bar is low enough that I don’t fall into a habit of avoiding docs


Brandon Kindred @brandonkindred 2024-10-11

You should try Cursor. It’s not like copilot. It has that auto feature, but I mostly use Cursor to chat with the AI. I have to think through exactly what I want it to do and how I want it done. Writing it out gives me clarity and it suggests code. I still review it and approve it


Thomas Frank @TomFrankly 2024-10-11

Can the auto-insert feature be turned off?

I’m happy with chat features; I just didn’t like how my habits changed once code was being injected into my projects automatically.

It feels like I have a much greater ability to be intentional about my use when I’m limited to a chat interface – almost like I just have a peer to help me


Amado | Product Marketing @Amados_Emporium 2024-10-11

This was a great take to consider. Im loving all the comments and everyones different ideas as to how much AI should code for you.

Im just in the beginning stages, and I rely on AI to break down each section of the program for me. Their usually only about 30 lines or less right


Thomas Frank @TomFrankly 2024-10-11

I definitely don’t have all the answers! But I do believe that exercising your problem-solving muscles in any domain helps to keep them strong, which benefits your primary/job domain.

You mentioned ā€œfor the sake of timeā€, and that’s been the real slippery slope for me.

I’ve had


Sean Joyce @sean_joyce 2024-10-11

Thank you, @TomFrankly . I teach college computer science, and I’m worried that students will rely on these tools to their detriment. AI has its place, but I don’t believe that to be critical thinking and problem solving skills. I wonder where the ā€œhappy mediumā€ is.


Thomas Frank @TomFrankly 2024-10-11

I wonder about the same thing. I think these tools are far from useless, and they likely won’t go away or even remain stagnant. I think becoming adept with them is likely important.

At the same time, I’ve experienced how easy it is to become mentally lazy while using them.


TimeKing @PalmquistCaleb 2024-10-11

I relate a bit but I’m not stopping. I can’t afford to be replaced.


Thomas Frank @TomFrankly 2024-10-11

What level do you feel you’re at?

My sense is that non-senior devs who rely too much on these tools are at a greater risk of being replaced.

These tools will get good at allowing 1 senior dev to replace several junior team members before they get good at actually replacing


Surge @super_surge6 2024-10-11

Wait, you used to pay $10? 😮