Pride In My Horrid, Flawed Code Means I May Never Be A "Vibe Coder"
I may Frankenstein my way through a bunch of coding projects and programming, but I'll appreciate every mistake I make.
I've always known enough programming to be dangerous, and by that, I mean dangerous to my own programming environments and to my grades back in school. Don't get me wrong - I have blossomed into a somewhat decent technology professional, but my strength doesn't necessarily lie in the programming tools that got me my minor in Computer Science.
Part of that is because what I'd typically create when it came to assignment time were Frankenstein monsters that were uglier than the Colorado Rockies losing 100+ games three years in a row. Sure, they technically ran, and yeah, they accomplished the assignment goals, but they never really got to the pristine level of programming that you might see glorified in a film like "The Matrix", or made up for lack of realism with glitzy graphics, like in "Hackers". No, if I could get to the goal of my assignment by setting twenty variables to count when I only needed two or using the worst while loop ever to stumble my way through working through the alphabet, that's what I'd do.
Ugly programming has kind of followed me throughout my career, as stitched-together scripts and "how did that work" runtimes ended up inexplicably working to fix problems, and I'd always clean them up "later". So when I'd heard about how "vibe coding" has become a thing - that is to say, the practice of utilizing AI tools to conceptualize and stand up working code by prompts and feeling things out rather than knowing programming concepts or foundations - I got curious.
I'll get this out of the way now - I have a nuanced opinion about AI, mostly due to my proximity to and professional obligation to educate myself about it, as with any technology. I can see some of its uses - and in fact, before we had any concept of an AI bubble, we were seeing it in much more lowkey, innocuous uses, such as in autocomplete, or in guessing at search results, or in recommending things you might also be interested in if you like buying language books you order constantly but never open (I'll get back to you someday, Billy Go Korean book, honest).
Yet there are some pretty terrible consequences to its becoming increasingly ubiquitous, like AI's immense resource appetite, or huge sweeping swings and sales pitches that don't seem definitely proven, or generative AI in particular having a consequence of removal of and lack of compensation for human professionals, and more - all of which I am against. We'll probably settle into some kind of realistic middle ground before all is said and done, though I worry about what will happen leading up to that.

Regardless, I decided one night to give vibe coding a try, using Claude. Those of you who regularly subscribe to me know that I'm a Dreamcatcher fan - a 3rd generation K-Pop group with an eight-year history and more recent individual and subunit achievements. One of my contributions to the Dreamcatcher community is a searchable Dreamcatcher video database - one that as of this writing, contains over 5,000 entries and is hosted on Notion.
The problem is that while passable, Notion's had some weird things they haven't implemented, like being able to search on multiple conditions that required all the conditions to be met for results (you can only search for Yoohyeon OR Weekly Idol, but never Yoohyeon AND Weekly Idol, for exmaple). And the interface is nice, but slow in certain conditions. I've long since wanted a front-end easy-to-search method that would allow users highly customized filtering and a faster performing search. I've just never had the time - which is where the vibe coding came into play.

Within two hours, without knowing anything about modern web front-end application languages like next, react, or node, I had a working prototype up. It could search on more than one condition, cleanly come up with the answers within seconds, and aside from some very basic looking UI elements and that it had a short load time of 30 seconds, I made something that would have probably taken me days to do the "normal" way.
Vibe coding, for someone like me who's able to be comfortable writing details and massaging language, seemed like it'd be workable. Were there problems? Sure there were, especially when I somehow still couldn't get the Youtube preview thumbnails to work despite all my firm prodding. But did it work? Absolutely. I could have released it to the public, honestly said that I had generated most of it with an LLM, taken the heat for that, and been fine.
But I didn't, because I realized a critical element was missing - I didn't own this code.
For all the nonsense that I've done over the years with my fumblings and jury-riggings when it came to scripts and programs for both work and leisure, that nonense was mine. I knew what I'd conceptualized and stumbled through for a design. I knew what functions I'd tried (and failed) to use. I knew how many times I'd had to painstakingly fix foolish, obvious mistakes or introduced serious ones that broke my entire program. But because of that, I knew how to document, improve, iterate, and eventually make not-so-ugly that same program that started out like so much electronic spaghetti.
This wasn't the case with the vibe-coded front-end I'd built. I didn't know the languages, only what I wanted something to do. I didn't know how to fix it exactly, only what I needed to be fixed. And I didn't know how it was all put together due to all the rapid-fire code generation that saved time, but robbed my learning. In other words, I didn't own this UI - Claude did. And I was essentially at its mercy to be able to fix issues - some of which it had created on its own in an effort to understand what I'd been feeding it. It's that sacrifice of speed for autonomy that probably makes me far less likely to continue with vibe coding in the future - at least, not without me having some independence to code and understand the languages myself.
As a postscript to all this, I've been learning Python, one day at a time, through Dr. Angela Yu's brilliant and fun 100 Days of Python Bootcamp on Udemy. I need to know this language for work and for my personal projects, and I've been doing so slowly, painfully, and with a lot of mistakes. But you know what? I'm feeling much more like I'm in control of and understanding the ins and outs, and that's because I own all the code and all the responses to the challenges Angela has given to me. I've built a tip calculator, a coffee machine that can dispense coffee and change, a Hangman game, a version of Pong, a Frogger game, and more. And more important than that, I feel like I own and did all of those projects, even when they didn't come out exactly like the way Angela coded them in her solutions. That sense of accomplishment is a lot greater than having something else code something functional in less time, and I would trade time for personal satisfaction and learning any day.