
Vibe Coding? Try Vibe Learning
I was scrolling through a few articles on AI, the same types that have been popping up everywhere, a mix between the benefits of AI and ones about the negatives.
I tend to like browsing these articles to find little bits of wisdom from time to time.
Then I saw it, “Vibe Coding” and the abundance of benefits that it brings to your developer experience and how much it speeds up your development.
As I read it I began to think to myself, how I knew this would eventually come.
Developers have quickly pushed away the notion of AI being just a “tool” and have now adopted it so much a part of their development process that it has slowly taken over the entirety of it from beginning to completion, and there’s even optimized patterns around it.
So, what is Vibe Coding? What are the tradeoffs? And how can we use AI to help us learn instead of just relying on it to churn out code for us?
What is Vibe Coding?
Vibe Coding is a term that describes the practice of using AI to generate code using some kind of prompt workflow and depending on your initial skill level in programming can have a varying degree of refinement attached to higher level details.
Generally this initial prompt contains something like the requirements, then moves into system design aspects to get an overall idea and you start with something simple. You eventually evolve through going back and forth with AI to get the solution you want.
With proper prompting and a detailed overview of the requirements of what you need, Vibe Coding can be surprisingly effective in producing the results that you need.
So, why is it a problem?
These approaches slowly kill our true value
In your mind, what would you consider the value(s) that you bring to the table in your workplace?
I know, more and more code!!
Developer value is an interesting word for many people though and to your employers, it most likely represents the ability to provide X solutions in X time, repeatedly.
This is where AI provides the most value and is the main reason in how we rationalize its use. We will trick ourselves into thinking like employers do, and coerce ourselves into believing that we are making massive strides in development productivity while completely ignoring the huge tradeoffs and long term degradation of our development skills in the process.
We do this constantly, and we do it without even thinking about it.
Human beings will always reach for the least path of resistance. We are lazy by nature, and we will always try to find the easiest way to get to our destination.
The moment we reach for “Vibe Coding” or AI in general, our personal creative processes and critical thinking for the most part become second class citizens. Our mindset is no longer fixated on how we get there, it’s fixated with how AI will get you there and the dopamine rush that is received when the code flows onto our screen.
The moment we copy and paste it into the codebase, run it and hope it works in anticipation, our goal is no longer to learn or understand it, but to follow the least path of resistance for the highest short term gain.
Another bug fix or feature down the queue and another pull request ready to go for your fellow engineers to review.
What do we lose, as developers in this process?
To me, one of the main core developer values is the ability to critically think and creatively think of solutions to problems.
To look at a problem, break it down, and approach it in such a way that it almost becomes like art. The satisfaction received from stepping through a problem, solving it and coming up with a rather sound solution brings such a human element to the entire process.
At its heart, the personal satisfaction of that journey happens to also be one of the most translatable skills you have across all aspects of development. It transcends programming languages and constructs. It is essentially the most powerful skill you can have.
When you are Vibe Coding, you are outsourcing that exact process of critical thinking to AI, but it’s not just a specific portion of the process. It’s the entire thing. For each vibe coding session you do, you are instilling into your mind that it is ok to drop a majority of the inherent value you have as a developer and simply let AI handle it for you.
When vibe coding, AI is in the driver’s seat. You are the passenger. You don’t care how you get to your destination, you just want AI to get you there.
Of course, there are use cases for this. For example, I would prompt AI or do a quick vibe coding session to help me with a complex regex pattern because I absolutely hate regex.
However, most developers aren’t doing just this. Myself included.
As I learned about Vibe Coding, I realized I was slowly slipping into the same habit myself. The realization had snapped me out of this illusion that becoming an efficient prompter and throwing away everything else was going to make me more valuable because I felt much quicker and didn’t have to worry about learning why something needed to be implemented or fixed anymore.
And it does silently transform into that, until you get to a point where most don’t even know what they’re copying and pasting into their codebase anymore.
Are the tradeoffs worth it in this ecosystem?
So, are these initial tradeoffs and gains worth it in the long run?
Prior to AI, there were pretty solid lines between what represented an entry level, junior, mid-level and senior engineer. In our ecosystem with AI, these lines are very quickly getting more blurred.
With this growing divide, there looks to now be higher level engineers that truly understand their craft and are extremely good at what they do, then there’s the rest. What used to have very clear lines between them, have quickly evaporated to leave very questionable boundaries for what people’s skill levels really are.
In an ecosystem where everybody can just vibe code up solutions, the moment you join them, you no longer stand out. You are just like everybody else.
A growing dependence on vibing
The final thing I will say on this is that these are things that you become more dependent on as you progress, as you rely on something else to come up with your solutions for you.
And the worst part is that these are actual habits you form by doing so.
A problem arises? You no longer are running to the documentation to figure out the issue or looking at your stack trace to identify the problem. You are running to AI to have it go through every single step of the process for you. From start to finish.
As time progresses your mind starts to tell itself that it’s fine to drop those cognitive skills, they are no longer relevant in your “development” process.
The very skills that inspired your love for programming in the first place are deteriorating to endless copy and paste sessions, waiting for an answer to slowly scroll out onto the screen.
The goal now has become not to master your own skills and improve your craft, but to master the layer of requirements you provide to AI so it can improve its own process in delivering code to you.
Vibe Learning
As I read that article on Vibe Coding, I thought to myself how a process like that could be used the other way around. For emphasizing critical thinking and inspire creative thought.
I immediately thought Vibe Learning and that kind of stuck with me ever since.
The approach is roughly the same to Vibe Coding but with a twist. The goal is to set out a list of requirements that you want to learn. AI’s job instruction is to help guide you with as minimal help as possible. AI is to provide you only questions that solely focus on you solving the problem.
- No code solutions or generation at all
- No direct answers at all
- Only guide you with questions and hints
- If you get stuck, AI can provide you with a hint or a question to help you think through the problem on your own
- If you are on the right track, AI can provide you with a question to help you think through the next steps
- Only provide you with documentation links
- Questions should be worded in ways that force you to think creatively about the problem including things like “What if” scenarios
It’s fine to get assistance, because you’re learning the approach of assistance not just the questions/hints that AI provides, and these are techniques you can use yourself within your next vibe learning sessions.
Did AI provide an interesting approach on solving some complexity in the form of a question or a hint that led you down a pathway to forming some creative thought processes towards the solution? Ask that to yourself in your next session if you get stuck.
The important part of Vibe Learning is learning how to approach and creatively think of solutions to problems.
This can be expanded upon, and it can be refined to be more specific to your needs. You can even instruct AI to ask you questions and provide hints in ways that you respond to very well. Analogies, mnemonics, etc.
Much like Vibe Coding focuses on the requirements of the code production, Vibe Learning focuses on the requirements of the creative thought process and learning in a way that resonates with you the most.
As you progress through your learning, you can refine the objectives to pinpoint specific things throughout your overall process to truly understand every part.
Keep in mind I’m not talking about merely asking AI to explain something to you, or asking it to provide you with an example of a solution. This removes the initial creative thought and critical thinking aspect of it and only focuses on one part of the process.
Vibe Learning puts you into the driver’s seat, and AI is the passenger. You drive to your destination while AI helps guide you with hints and questions.
At the end, you have not only completely learned about the solution, but you have also learned about the process of reaching to that solution through practical critical thinking with AI assisting you along the way.
Post processing of information
Let’s say you have just finished a Vibe Learning session and there are some notable things to take away from the experience.
Now that you have this information, it will be likely stored into your STM (Short Term Memory) and you will either do one of 2 things with this information:
- Use it -> Reinforce some of these concepts selectively into your memory
- Never use it -> Slowly fades from your memory over time
The goal of post-processing is about filtering and storing that filtered information to eventually transition this knowledge to your LTM (Long Term Memory), so that the initial processes of creative approach and critical thinking are reinforced.
Spaced Repetition
I’m a big fan of spaced repetition, and I think it’s a great way to help you retain information and store it into your long term memory.
Spaced repetition is a technique that helps you learn and retain information over time by spacing out the intervals review sessions for given concepts. The purpose is to continually recall this information based on the previous session. The harder an item was to recall, the more frequently you will see it in your next session. The easier it was to recall, you will see it less frequently.
I think the best way to help remember information from your Vibe Learning sessions is to store impactful information into flashcards and use Anki repetition sessions to help you retain these approaches over time.
I would put mostly deeper level concepts into it and focus also on “wow moments” more than anything else. For example, I would never put syntax memorization into flash cards, you will end up remembering a lot of those things just from practically coding in general.
I would also focus on storing “approach” strategizes towards problem solving that AI may have helped you with or that you yourself figured out on your own through a session you had.
Approaching problems in certain ways is extremely valuable to initially coming up with solutions and helps drive the process down the road since you have a strong direction of where you want to go initially.
Did AI ask you a certain question that sparked your creativity to think through the problem efficiently? Mark that approach down and store it.
The goal is to train your brain with habits around critical thinking and creative problem solving.
Conclusion
With Vibe Coding, the ultimate result of using it pushes you towards more reliance on AI, less creativity and critical thinking and removes the very value you bring as a developer.
With Vibe Learning, the ultimate goal is to push you away from reliance on AI, to help form your cognitive habits to immediately reach for creatively thinking of the problem, breaking it down, moving to documentation, help build approach strategies towards thinking of problems and improving your critical thought processes.
They both follow a similar process, but the end goal for the developer is completely different.
I encourage developers to focus on this type of learning and to help build their own cognitive habits around problem solving. It’s truly what separates you from the rest in a growing pool of AI-reliant developers.