My subconscious doesn't like LLMs

2025 Jul 16  |  10 min read  |  tags: blog 4 llm 1 ai 1

Programming is subconscious

I've been programming for way too long. And I enjoy it very much.

The reason is that I don't actively program. When programming seriously, I either have music(psytrance or german techno) or a movie playing on another another screen(any from the mission impossible series).

And in that time I'm in a trance. I genuinely have no idea what I'm doing. The subconscious has taken over. I'm somewhere in limbo. The fingers move on their own. The abstractions emerge on their own. The functions and variables get created on their own. The links between them get created on their own.

I GENUINELY AM NOT PROGRAMMING MYSELF. Something simply takes over. Let's call it the subconscious. After a few hours, it just says "I'm done". And beyond this point, I have to take the day off, because it is not coming back until I sleep. Sometimes it works for a few hours. Sometimes for 12 hours. Depends on the problem and how well it has rested.

All of this has happened subconsciously.

Once it is done, it is my turn - the conscious. I now look at all that was created. I recognize the structure and the links of logic (the subconscious shared it with me). Then I do the janitor work - polishing up variable names. Adding some clarifying comments. Writing adversarial tests. And that's it. The work is usually ready. If some tests fail, I let consciously modify the code and fix up the logic. Once conscious - I simply prettify, correct and sometimes extend the code.

Programming was entirely subconscious.

My responsibilities while being conscious are mostly that of a caretaker:

  • Reading a lot so that the subconscious has a knowledge base to internally refer to
  • Learning keyboard shortcuts enough to develop muscle memory (sometimes it stops and asks - how do I do x? And I have to find a keyboard shortcut or something while it waits)
  • Manage time well so that the subconscious gets to rest

That's all.

I've been though a loop too many times (since childhood). So it is very easy for me to enter into the programming trance.

You can tell when I'm working in the trance. There will be multiple windows open over the 4 workspaces I use across 2 monitors. From outside it looks like I'm switching a lot between workspaces. On the inside, I don't have to think about this at all. It all just happens.

I don't need a lot of ram only because I write programs that eat up a lot of resources. I also need it because I open up a lot of apps and windows that end eating a lot of memory. The context my subconscious ends up opening is quite large.

Again - I am not thinking at all. Things are just happening.

How I arrived at this setup

In the early days, I used to program consciously. Eventually, my projects grew. Soon I realized that my working memory is simply not enough to hold the amount of context I need. Sometime near the age of 16, I realized that when I do things just right - something gets unlocked in the brain that can take over, and it can hold A LOT of context in working memory. Over the years I've learnt to offset almost all of my work to it, and just sit back and let it do its thing.

And I've learnt that it is the majority of my thinking power. All I have to do actively is to build the internal knowledge graph.

How AI interferes with this

Programming with AI is very conscious. I simply cannot turn off my brain. Earlier, my subconscious ruled the land. Now, it has to write out a prompt to the llm. And the llm spits some code here and there. Then the subconscious has to:

  • navigate to changes that the LLM did
  • check the changes
  • update the internal representation/understanding of code

Sometimes it does things by itself. But most of the time, it has to come out and ask me for help. In these instances, it says things like

  • "this feels weird. Something is not right. Take a look at it". This is usually when the LLM's style of programming is not the same as my style of programming.
  • "I know how to do this, I don't know how to communicate it to the LLM". This is usually when the changes are through layers of abstraction. It has found a way to improve on the layers it built before, but the changes are either subtle or way too expansive. Communicating it in words is simply not possible.

The working with AI interrupts my flow of programming way too much. The subconscious and the LLM don't play well together.

Where is this AI useful

One thing I've realized is - for flow, there can be only one entity generating the logic-structure (code). It can either be the subconscious, or it can be the LLM. In my case, the style of both of them are not matching, so the subconscious is coming to me and complaining a lot. It is practically bitching at this point about the code/structure the LLM created.

So, I've been experimenting with changing the partnership. Instead of the (subconscious+me), or (subconscious+llm+me), I've been trying out the (LLM+me). Telling the subconscious to sit back.

I still follow a similar game plan. Earlier, I used to write a requirements document to clarify the outcomes. Then I'd let the subconscious take over and type out the code. Now, I do the same thing with the LLM - write a requirements document to clarify the outcomes, and then give it to the LLM and let it take over.

Once the LLM says it is done, I take over consciously and do the janitorial duties - cleaning up the code etc.

One distinct new responsibility I have to take up consciously is - I have to check up on the quality of abstractions, and make sure they are clean and human friendly. The variable names are usually good. I just have to take care of adversarial tests.

From my perspective, the LLM and the subconscious are operating in the exact same way. The only difference is that when the subconscious works, it also creates an internal map of the code within my memory, and shares it with me. The LLM doesn't do it, and I have to manually do it.

I have to create this internal representation of code in my brain because LLMs currently aren't perfect. The code has to be verified. To verify the code, it has to be understood.

I am a big believer in correctness. Without correctness, we lose one of the major reasons of using computers to do things.

Current opinion

When writing truly critical programs (usually the ones where I am footing the bill of their execution), and when writing programs for fun, I code with the subconscious.

And I have to study A LOT to give the subconscious a knowledge base to use. Its capability is directly responsible to the quality of knowledge graph I've created for it to use.

If you think about it, this is way too similar to the LLM. It too has to be fed a nice "knowledge graph" to draw from. But I don't trust it because it is not MY subconscious. And I don't definitely enjoy it.

I enjoy programming because of the trance. I particularly enjoy when the subconscious encounters something hard, stops and tells me to find out more, and it waits while I research and find new info (usually - new algorithms, or new documentation). I simply enjoy using the brain from both sides. It is exhausting and also very fulfilling.

It has been 3 months of using the LLM+conscious combo extensively, and I can clearly see that my internal knowledge graph has degraded by quite a lot. And the strength of my subconscious has also diminished noticeably. It is not just due to the deteriorated knowledge graph. Something has happened to the raw horsepower of the subconscious also. You can call it a decline of problem solving ability. You can call it a decline of capability. I don't really know. But it for sure has been struggling more than I remember.

So that's it. As LLMs grow stronger, and as I use them more instead of the subconscious, the subconscious will be atrophying more and more.

I am sure this will affect me in other areas of life also. Not just in programming. And as my dependence on LLMs increase, this will only grow.

For now, I'm "exercising" every now and then. But I don't see a future where I use LLMs extensively, while also maintaining the capability of the subconscious. There will come a point where the subconscious will feel too incapable in comparison to the LLM, and I'll simply end up letting it waste away. It will be a horrible day, and the start of a very un-fun phase.

Until then, I'm somewhere in the between. Currently enjoying coding until the subconscious+conscious combo is working well.

There will come a time when agent will be correctly doing the programming I need 100% of the time. Once that happens, I'll find something else the for subconscious to be engaged by. Most probably music or some sport.

Until then, I am using the subconscious to maintain a level of capability.

I'll be very happy the day I get a way to bridge the subconscious and the LLM or whatever is generating the code. Neuralink!