Well, I Called Bullsh*t on AI Coding - Here's What 60 Days Actually Taught Me
For a very long time, I kept consuming content around vibe coding, AI tools that can help you create full SaaS products in less than 30 seconds, launch your company in less than 2 hours, make you a million dollars in less than a week.
Well, I called bullsh*t! Yet, I still couldn't let go of the FOMO. What if it's actually true? What if I can be a millionaire and the AI products are as good as they say they are? I was stuck in the what-if loop like a Marvel character with endless possibilities and questions in my head.
I did what any self-respecting adult would do: I procrastinated.
Things changed about 2 months ago when I joined a tech company in a product marketing role. Now there was more push to learn about these tools. Do they really work? Can they really make me productive enough to replace the CEO in less than a week? Oh! The imagination ran wild - a marketer with a degree in economics who has not written a single line of code other than PRINT "Hello World"
in BASIC in the second grade makes CEO, grows the company to a billion dollars in less than 2 months.
Well? That definitely didn't happen, but I completely got the hype around these tools while playing with them for the last 2 months.
This story is about how much hype Claude, Gemini, ChatGPT and their wrappers truly deserve from the perspective of a non-coder who learned everything by figuring stuff out on the go and now runs a team of 12 agents and countless personalized apps while leading marketing at a tech company.
The dramatic quote aside, I did have a head start on coding - not in practice but in observance. I have been a product marketer for the last 8 years, have interacted with people who code, given specific execution plans but never written a line of code.
Google AI Studio (Gemini 2.5 Flash and 2.5 Pro)
The first task was to figure out what the customers were doing, how they were using the tool, challenges, drop-offs, etc. Every other place I worked, we had a dashboard for marketing, an intern or junior level engineer was assigned to create dashboards and give us the data we needed. Here, these guys were all tech! They wanted me to write SQL queries and get my own data to understand the journey of the users.
I instinctively went on LinkedIn Learning and took up a 12-hour course on SQL before joining. Only to realize on Day 1 that it's very different to write example queries versus queries for a database which runs into millions of lines. My palms got all sweaty, the new laptop given by the company now had my sweaty handprint on it as marking my territory was as important as getting Day 1 right.
I took a step back, took a picture of the goodies, posted on my socials - typical marketing stuff - then got back to the laptop after a brief smoke break.
After about 3-4 minutes of Google and my memory of countless content consumed, I found Lovable, Cursor, Google AI Studio and an SQL wrapper. I inclined towards AI Studio because, duh! Google! It took me about 4-4.5 hours to prompt, re-prompt and do this until hunger kicked in to finally get a workable SQL query generator that understood my schema and could write code in any of the following: PostgreSQL, NoSQL, etc., as I didn't even know what format the queries were to be written in.
Then I started asking it for code, generating my reports. A few issues popped up while doing this - let's say I spent about 30-40 minutes every day for the next 3 days to fix everything and make my SQL Genius flawless.
It had been 3 days. I wasn't close to a million but definitely understood the power AI yielded and what can be created with it.
Mission blind data to visualization completed. Thanks to AI Studio!
PS: It was mostly 2.5 Pro used in the process of creating SQL Genius as I'm sure 2.5 Flash would have taken longer, given how much I used to create this tool and four others.
Functionality Used: Google AI Studio - Build App
Claude and Claude Code (Opus and Sonnet)
Now it was time to work on the blogs, schema, landing pages for the site and other SEO optimizations to improve our rankings and get crazy results. After all, it was just Day 4 - I had a whole 3 days to make a million!
Slight context before I continue: Even after 8 years, I prefer working hands-on on everything, especially the basics, ensuring the direction taken over the next few years is solid and backed by first principles.
Anyway, I went and asked the team, which is all engineers. What do you guys use to upload blogs? Can you guess the answer? I'm sure you got it right! MARKDOWN!
MARKDOWN? Are you serious?
Can we set up Ghost or any other headless CMS?
If you want to be cheap, we can even go with an open-source one?
Random engineer: Well, once you fix the formatting, add a TOC component, change the line spacing, font sizes, colors, backgrounds, create card components, buttons, details component, FAQ section, image containers, etc., this code will work exactly like a headless CMS.
In my head, I just thought: if I spent 4 years coaching, 4 years doing engineering and 2 years actually learning how to code on the job, I would work exactly like a headless engineer.
Anyhow, I said sure, let's create that!
Random engineer: But our sprint has xyz, we are busy till the end of the month... goes on rambling for another 3 hours.
I wasn't going to give up on my million dollars this fast. How hard could it be?
Well, spoiler alert: it was quite hard.
Most people like me would give up on the first step itself: npm install -g @anthropic-ai/claude-code
I don't know what npm is, I don't know where to run this, I don't know if it'll work.
Let's ask Claude: how to install Claude Code? I am not an engineer, give me step-by-step instructions so I don't screw up.
Claude Sonnet screws up with the response, but Claude Opus then gives a good one. It understands I'm not an engineer and helps me first install everything to run npm
commands in the first place, then goes ahead with Claude Code installation.
While I summed up the issue in 2 lines, it took me about 2 hours to get this working. Doesn't make me look too bright, does it? Well, most of us non-engineers feel that way with unfamiliar code language. The funny part was, between the setup I jumped to ChatGPT's Codex, but it almost caused my back to sweat, leaving my mark now on the chair too as it auto-started taking access to the main branch on GitHub.
Don't forget, I also had to create a local repository of the GitHub repo - quite complicated for a person who knew what a repository was but was unaware of how it's used and its function.
Cool, now we have Claude Code running with Sonnet.
I spent Day 4 prompting it, getting it to create everything that can turn this blog beautiful and in the future work like a headless CMS where I just have to go and put my content in .md format.
Can you guess what happened? It failed!
Well, to be fair to Claude, I initially failed it by prompting like this: "Create a modern TOC component that is inspired by best TOC components in the market in my code's style."
It's Day 5 now, and we are as far from the million as we were before joining the job. Let's see what we can do.
Buy a $5 course on "learn prompt engineering, build million dollar companies in few hours"?
Well no! We already bit that apple with SQL on LinkedIn Learning; we're not going to do that.
Logically, we understood Opus is smarter, but given the token limits, we have to make Sonnet do the legwork.
Now prompting was better. I gave Claude Opus specific examples like the GitHub doc TOC, tocbot, etc., by first finding these examples using ChatGPT and Google AI search mode. Then asked it to give sample code with specific instructions for an AI to create this component.
Then gave this prompt plus sample to Sonnet on Claude Code to make it work. Voila! It worked - a few glitches here and there, but nothing about 4 hours of prompting couldn't fix.
Now end of Day 5, we have two things: an SQL Genius and a perfectly coded blog that has the potential to be turned into a headless CMS with a combination of Google AI Studio, Claude and GPT.
Great! There are million-dollar companies in these sectors; I think we can do this too.
Well, not really. You see, while I had just learned how to create the frontend, the backend, infra, etc., was being taken care of by the super proud engineering team that loves Markdown.
End of Day 5: I have made progress with the team, made them see I can learn, can execute and code with a ton of commits correcting errors to give a final finished product.
By now I had realized the potential of AI in coding and truly believed it could do wonders with a lot more practice, some edge tools and some back and forth.
With this we begin Day 6, the weekend. Just like a responsible adult who is heading marketing for a growing tech company, I start my Saturday with thoughts from Friday about the potential of AI in coding and turning me into a full-time coder with zero experience - and a cold glass of beer, because day drinking is better than staying awake the whole night partying and sleeping the next day (an argument for next time). I digress.
After celebrating on Day 6 and getting nothing done, I actually start Day 7 with practicing and figuring out which AI model is better for what. At this point I realize: it may have been possible to make a million dollars building products using AI in 7 days had it not been easy. The only reason to slack off on Day 6 and do minuscule practice with just one model was the fact that it seems easy - it's a 2-line prompt returning 20-30 or more lines of code, making you feel like you can do it fast and don't really need to put in the time.
Please do not make this mistake. It is as hard as using any traditional tool for the first time, arguably harder because when you're stuck in a traditional tool, your progress hits pause, forcing you to figure out what's wrong before going forward. Here, if you mess up, it'll give you an illusion of progress by constantly generating code, but this code just creates new problems while solving existing problems just enough to create an illusion of progress. You wouldn't even know it and you'd have wasted days solving a simple scroll highlight issue on TOC (table of contents).
To sum up, at the end of week one, we understand how AI code works, we have a little idea about what model is good for what, how AI can give you an illusion of progress, and we have a reality check about the million-dollar mark.
If you have reached here and are curious about the rest of the 7 weeks, I'm glad you liked my story and appreciate you sticking around.
Enough about you, let me get back to the protagonist here: me!
The self-worth conundrum
Week 2: pushed over 12 PRs using the process and realized that this method is not working. We need something more - it's creating too many errors that are not visible to me because Claude is editing files beyond the ones expected of it.
Here's how it does that: let's say you're fixing the font size on the docs page, but there's a shared SCSS file with the blog. The page layouts of the two are different given the format of the content in each, but Claude, in an attempt to fix the doc page font size, edits the shared SCSS file, breaking the fonts on the blog page.
At the end of week two, you're left with this feeling of being stupid. All your unrealistic dreams of getting to a billion dollars and becoming the CEO are getting shattered. A person who can't fix font size without creating an issue - how is this person supposed to code? Is AI coding really going to change the world? Should I give up and go back to my job of just being a marketer, have that conflicting fight with the team to push their sprints for marketing?
Your self-worth is now attached to AI's coding skills. The end product is in your name; you're the one who can't write simple English to a model that can do all the work for you. You feel like a fresher again, someone who needs to be taught the ABCs.
At this point, it's easy to give up and move on, especially because you entered this work that is not yours because of the promise of a million in a week, which by now you know is not true. Your self-worth should not be tied to work done by someone else but your own domain, work and execution.
As the title suggests, it's a 60-day story and we're only 14 days in, obviously I didn't give up.
The discovery, trial, error and fixing
Okay. There are key problems that I identified with AI models irrespective of which tech giant made them:
- The AI model in an attempt to fix the given problem will go to any extent, does not understand the concept of collateral damage, needs to be taught.
- It can't see what you're trying to say, making it harder to comprehend.
- Limits on models are quick; lazy execution with just one model won't work.
- Just like humans, none of these models are good at everything; you need to find what they're good at and then make them do that.
- Emotions do not play any role in your prompting; just because you get angry at a model, it won't give you better results.
- You need to be as specific as possible to work with these models for them to work fast and with fewer errors.
- When the AI model tells you that this is the best way to prompt it, listen to it. It might take longer but it's hella shorter than actually learning how to code and code.
Oh the solution weeks!
These two weeks I think were the most fun weeks of all. For the first time, I didn't think about what AI was offering here; rather, I truly enjoyed what it had to offer and learned more about it. It was super fascinating - a lot of things even felt lowkey out of science fiction.
The AI model in an attempt to fix the given problem will go to any extent, does not understand the concept of collateral damage, needs to be taught.
The concept of memory: on Claude, GPT, Gemini there is a functionality of memory where you give it certain things to remember. Now these don't work like fundamental rights; rather, constitutional principles that allow the AI to perform better. It does not have to, and maybe won't do it, but with memory, it might just do. Prompting it properly to update its memory to avoid collateral damage was step 1.
It can't see what you're trying to say, making it harder to comprehend.
Microsoft has something called Playwright, which I'm sure the engineers are aware of, but for non-engineers, it's basically a tool that allows the AI to browse the internet on your behalf. Now there are alternatives like Puppeteer, Claude's Google Chrome connector, but I think Playwright works the best out of them. Now you don't have to describe the error; it can go see the error on its own and figure out what's wrong, how the code is not behaving like it's supposed to visually.
PS: Playwright is also one of those npm setups and has prerequisites. Use Opus and ask it to break down everything, just like we did with Claude Code setup.
Note: If you have sensitive data and do not feel comfortable giving access to AI to do this, you can share screenshots. It works, but not as perfectly as Playwright, yet definitely better than giving descriptive text-based prompts.
Limits on models are quick; lazy execution with just one model won't work and get the work done.
The limitations in pro plans of all of these are frustrating. You have to understand and allocate specific queries to specific models unless you're super rich and can afford the Max plans with $200 monthly spend on the tools. First, plan out how you're going to work these models in what order prior to starting any work.
Just like humans, none of these models are good at everything; you need to find what they're good at and then make them do that.
I need help and more practice here, but what I can say is this: the best tool for coding is Claude Code, the best to get details about any errors is ChatGPT, and Google AI Studio's chat with high thinking budget is best for ideating any plan prior to execution. You need to find a combination of these that best fits your requirement and then use them wisely.
One more pro tip: Use the replies from ChatGPT to get inputs from Claude Opus or any other cross queries to help make your solution better. If one model misses, the other adds.
Emotions do not play any role in your prompting; just because you get angry at a model, it won't give you better results.
I have seen some absolute buffoons suggest screaming, pushing the AI model helps, but trust me it does not. Like I said earlier, it gives you an illusion of progress because with every prompt you give, it'll try to fix things. Now it might just be able to take 2 steps forward in getting the right, complete solution, but that is irrespective of your tone - it'll do that anyway and end up breaking something on the way.
PS: If you're around till now and think this makes sense but would like to see data to support this, please comment and we can work on some way to extract this data from all my chats and attempts across models.
You need to be as specific as possible to work with these models for them to work fast and with fewer errors.
Now, a little flashback. Like I said, I have zero coding background and the last line of code I wrote prior to this was PRINT "Hello World"
in BASIC. The frustration of feeling stupid was horrible and the fact that many people claim AI can code - though I believe it's overhyped with the money attached to it - they can't all be wrong about its potential. I started learning the basics to prompt better.
How to inspect, what basic commands like overflow-y, position, etc. mean, what are different values px, vw, vh, etc., structure, class, logic clause and the most important of them all: how to see a working tree and understand the changes or at least prompt the code change and with AI's help understand why certain code was changed (use ChatGPT for this). This helped me be more specific about the code I wanted it to correct without impacting something it didn't have to.
When the AI model tells you that this is the best way to prompt it, listen to it.
It might take longer but it's hella shorter than actually learning how to code and code. Just reiterating this here! Imagine if you said I consume knowledge better with visual aids than without. Well, the same logic applies to AI.
Week 4 ends with these solutions realized and at this point you must think: this man has figured it out, he is killing it at being a vibe coder. Well, yes and no.
The yes or no phase with a refactor cherry on top
Week 5 saw a reduction in corrections and a lot more clean PRs that were approved. Taking a second to show off here - also included a fully animated section that was super cool and dazzling, made from scratch using what I learned. Yet I was still far from perfect.
One thing people underestimate about AI is how steep the learning curve is when you're not from the domain. For example: It's easy for me to use AI for marketing automation like LinkedIn outreach, competitive intelligence, etc., because I have done all of this manually for 8 years and know granularly every step. If the AI screws up, I correct it with simple muscle memory - it just helps me automate the boring stuff that took time. With coding here, I didn't know where to start, where to end, where to catch mistakes and where to let them go. Week 5 saw endless practice with these models.
To anyone reading this, I would request you try things on your own, using my experiences rather than just watching a reel about Lovable making finished products, getting the illusion of a finished product with mere frontend being built. There is a lot more to products than just looking pretty - it needs to solve a problem, it needs to have great tech behind it. Build yourself up in a way that even though a product does not find PMF, you can contribute to a product that has extensively.
Practice, countless new elements, functionalities, bringing APIs in, working on the backend, learning about infra - all of this took place in Week 5 and 6.
If it was such a simple, straightforward story, I wouldn't be writing an article which maybe with a bit more effort could at least be turned into a short story if not a novel.
Welcome refactoring! For those who don't know, refactoring is improving the internal structure of existing code without changing what it does. You're cleaning up and reorganizing the code to make it more readable, maintainable, or efficient, but the external behavior stays exactly the same.
It's way more tricky than it sounds. Remember how I spoke about AI's memory function working like constitutional directives and not fundamental rights that are guaranteed? Well, that's more true here than anywhere else.
Its goal now is to refactor, but to get x functionality working it edited 4 files which have interdependencies. How will it refactor when there are conflicting instructions now?
Simple: it'll break the logic and just focus on refactor, which in turn breaks the functionality of the code.
In that case, we should just ask it to not break the functionality while refactoring, right?
Lol, unfortunately, this doesn't work. One key thing that I forgot to mention before on purpose was: AI models work on context. It has context of the chat until it's cleared or a certain limit is reached. Let's say in the first chat it worked on 4 files to get x working. Post limit breach or clearing, it doesn't remember it worked on 4 files to get x working. Prior to refactoring, you need to explain to it what it created, how it created it, what was the logic behind it, and then the prompt to refactor will work. This utilizes a lot of tokens, therefore do not use the model you're using to code to analyze this. Post analysis, give the summary prompt to the model that is coding.
Now week 7 goes into refactoring!
Last week, Week 8, is where I believe I have reached the level of a full-stack intern with all these capabilities at my disposal. I am humbled about my goals here and am learning on the fly. One key point I have realized is while the billion dollar is a possibility with AI, it'll be as slow as the million dollars made with my marketing career. I have made 12 agents to do a lot of my work now, freeing me up from marketing work as well to dedicate time to my weaknesses in order to write a story of making a million in a week with AI backed by data and truly help people from falling for the reel trap and give them a perfect flow to take advantage of this extraordinary once-in-a-generation technology.
I'll cover the agents in the next article in detail, once I have used them enough.
Final pro tip: Learn by practicing. You can execute things much faster as long as you're practicing, and the goals will follow.
While my pro tips are pseudo, I'd love it if some of you who've spent more time with these models could share some actual pro tips. Thanks.
Comments
Post a Comment