Thoughts On Vibe Coding
There are extreme and differing opinions on what vibe coding really is. Everything from a “fancy auto-complete” to “the end of software development as we know it”. I believe the real truth of the matter is, naturally, somewhere in the middle. This has been true with disruptive technologies since basically forever. Anything that changes the status quo, especially in regard to people’s means of making a living, will be seen as a threat by some and a blessing by others. Vibe coding or AI assisted software development as I prefer to call it, is no different.
Based on my own experience in the industry and with using AI tools to build apps, here is what I have to say about vibe coding thus far.
- you still need to know how to code to be a good “vibe coder”: the available tools at this point in time simply aren’t good enough to build you the perfect app, exactly as you want it, without being able to read the code it is outputting and to make occasional edits as well. The skills and experience gained by slogging through late nights of reading forums and tinkering with apps until you can’t think straight but you still keep pushing anyway will always be a valuable investment in yourself because it trains your mind to solve problems. Although, to be fair, a smart work flow using AI tools can vastly accelerate this process. Just drop the same Stackoverflow query into chatGPT to see what I’m talking about. But let us remember, while the AI output is amazingly useful, it is the mind making use of it that is most important.
- you still need to read the docs: while many LLMs have amazing capabilities when it comes to creating the functionality you want in the programming language or framework you want, they don’t know everything. This is especially true when it comes to integrating with APIs and/or cloud platforms for hosting and deployment etc. Yes, they can be extremely helpful getting things going but you will still need to know how to trouble shoot and how to get the information you need from a given service’s documentation and how to implement it and iterate until it works; the quest of any developer.
- you will still run into application errors and weird glitches with your local vs production environments: a large amount of the skillset it takes to be a decent programmer involves being able to troubleshoot problems. And that’s because most will be running into problems during the development process left and right to say nothing of deployment and post deployment.
- it will still take considerable mental effort and emotional balance: while the process of building from idea to fully deployed app with all the desired bells and whistles can be greatly shortened and lightened by leveraging AI, it is still going to take a high degree of effort and concentration to get where you want to go. You just wont be as exhausted by the time you get there. This was probably the first realization I had when I first gave vibe coding a go: no, it doesn’t do everything for you but, yes, it does make everything you do easier and by at least a full level of magnitude if you’ve got your workflow down.
- you still need to know how to talk shop: like all knowledge work, you need to have the knowledge in your head before you can start using it effectively. Walk before you run. Think before you speak. Learn before you build. And so on. If you don’t have a foundational understanding of software development and a continuous learning mindset before diving into vibe coding, you are going to suffer for it. It is really only a shortcut for those who have previous experience. This may well change in the future, and there is a lot of debate on how that may ultimately affect the industry, but, for now, is is highly advisable to get familiar with at least one programming language the old fashioned way before “going full vibe coder”.
- it is a skill in and of itself: vibe coding is a lot more than saying something like “Hey, computer. Make me a app.” Based on the limited experience I have thus far leveraging AI directly for building apps, I would say it is really just a means of leveraging skills and abilities that you (should) already have. That is, a tool. A new and extremely powerful tool but a tool nonetheless. As has always been the case, it’s not strictly about what kind of tool is being used, but who is using it.
So now the big question is, with vibe coding and all of these crazy AI tools taking off and becoming so powerful so unfreaking-believably quickly, what does the future of software development look like? I don’t think anyone ultimately knows because it’s impossible to do so. While the knowledge of full stack development will likely always be a requirement, we can already see that the methods we use to implement it are rapidly changing. I do agree that the rise of prompt engineering is likely to continue. And perhaps to the point where we really can say “Hey, computer, Make me a app with these features, this UI, these api integrations using this database and this auth service etc” and it will, flawlessly. Who knows?
For the foreseeable future, which may admittedly be extremely short given the current nearly exponential rate of progress with AI, I believe “vibe coding” will continue to be a valuable tool for those with the requisite knowledge to leverage it. Which means, we will still have to have a way to educate people in the art without over-reliance on AI to do all or most of the work. This phase may become increasingly shorter over time or it may not. But personally, to say the craft of software development will no longer require a degree of mastery sounds a bit premature. More likely, AI will serve to build on a solid, old school foundation to make us better masters.
At least that is my hope.
Thank you for reading.