Learning to Code, Part 2: Making Growl Copywriter

On March 21st I posted an update sharing that I’ve started trying to learn to code, again, for the 3rd time. And that I hoped I could push through and build something as kind of learning capstone.
Thankfully, I managed to push through this time and created my first working app. Growl Copywriter (link). Even if it’s a crappy product, I almost can't believe it. I never considered myself to be the coding type as I prefer not to get into the deep details. You can tell by the amount of typos I make everywhere.
Anyway, if you’re a marketer considering learning to code then hopefully this post gives you some ideas or inspiration.
From Learning → Building
In my original post, I shared I’d try stick it through one learning course. Here’s what actually happened:
70% completed the Foundations course from Founder Hacker by Ryan Kulp. I almost finished the course, bar 2 major things (ironically probably the most important: APIs and object oriented programming). I didn’t finish them because I have a bit of perfectionism getting in the way because I want to really follow the tutorials and type out the code for myself, rather than just speed run the videos to make sure I really understood what was being taught.
I watched a bunch of YouTube videos about MVC (model, viewer, controller) architecture. Understanding this took a bit of time. Somehow it seemed not that logical to me, like why are Routes not the same as Controllers, in function? And why even do it that way in the first place versus having a bunch of Routes and single files that combine Controllers and Models. I had to chat with Chat GPT a lot about this too to better understand.
Got Ryan’s 24-hr MVP course too, then basically just followed along his videos but did it for my own project idea rather than his explanatory examples. This was golden because it walked me through the whole process of planning, building and deploying an app for real. For example, Ryan explained wire-framing, building databases, creating the front end, backend and deploying on Heroku. I literally just followed the same process.
Used Cursor to help me through it. I can’t claim I wrote all the code, though. Writing that as a total newbie is super hard. Cursor helped talk me through it and write a lot of it, honestly. But just by having finished the app, I have a much better understanding of how things come together and how they work and I can assume if I do this 100x, I’ll have a really good feel for it.
Started some basic promotions on Indiehackers, shared to my community of fellow media buyers (link) and annoying friends with it. I feel it has a chance at commercial viability, so let’s see. Build, measure, learn, right?
Looking back, this was a surprisingly effective way to go about it in my opinion. I didn’t get stuck in tutorial hell or anything and was able to produce something by the end of it.
Idea Selection: Why Growl?
Frankly, most of my project choices in the past have come out of my own curosities rather, except for my D2C brand where I did heavy market research first.
In this case, I was heavily inspired by Pieter Levels book MAKE (link) which suggested focusing on solving your own problems.
This was interesting to me because it seemed to be backed up by two different authors:
Sahil Lavingia who recommends building products for your own community in his book the Minimalist Entrepreneur.
Paul Graham, YCombinator guy - see the infographic below:
Reflecting on this, it seems like a good move compared to more abstract market-research driven product selection because I’d have:
A better understanding of how the product should work, and why I want it.
Natural connections to people who might use it or give feedback.
A bonus of community-kudos for making it, even if it fails.
Indiehacker Oliver Eidel wrote a cool exploration of this idea, too, in his article about becoming a full-stack person (link).
The drawback - I now get the apprehension Indiehackers have about sharing products though. When it’s your baby, you don’t wanna drop it in a chat/group etc and have people dunk on it and tear it to shreds. Funnily enough I don’t feel that way about videos or blog articles but it’s more severe with a hand-made product.
Learnings About Coding
Including this for fun reading for actual programmers, too:
Libraries and shortcuts are cool? I had no idea using these kinds of shortcuts or outsourcing solutions for things like authentication was so normal, practical and even cool in dev circles. I thought programmers would just write everything out from memory given they must have done it a million times, but that was obviously wrong. lol.
There’s a surprising amount of terminal checking. I realised if you save testing for when you think you’ve finished a feature, the whole thing can be stuffed up and you don’t know where. So I eventually got into a groove of testing everything I could in terminal as I went along so you don’t end up at the end with a broken implementation and not know why.
Plan file & folder architecture ahead of time. There were a few occasions where halfway writing code for something, I realised I should have structured the code a different way. So I learned that you better think through how you’re going to structure the whole program (files and folders) ahead of time to your best guesstimation to avoid having to redo stuff later. It also seems to help with making the program more scalable. E.g. making features modular in style, so you can simply plug in a new AI or more inputs, etc.
I learned what it meant to be opinionated with Ruby on Rails. Small thing, but I got a little bothered (probably unecessarily) that Ruby on Rails came with so much stuff, that I didn’t know what it did, in the beginning. And that it wasn’t really made to be flexible in how you made things.
Be very careful to avoid security flaws as you go, like SQL Injections, XSS attacks, authentication, etc. My mate Alex kindly took me through how to some issues here as it’s a common issue for newbies and people who use AI to code.
You can’t really code without the internet? I commented to my mate David that the internet went out once and I was pretty useless. He said that’s normal. Again, I assumed most programmers just write things in a kind of finger-tip native fashion, haha.
Overall, I’m pretty thankful to have friends like Alex for helping check through and Jesse (Indiehacker in Bangkok/Philippines) for guiding me through the learning journey.
Ultimately, I’m not very confident at codings till but I feel like it may be similar to marketing where you’re always trying to improve and add things into your techniques and get better over time.
What’s next?
I have some hardware projects I’d like to do that would use MicroPy, so I’m looking to use my next project idea as a chance to try Python and A/B languages. Let’s see if I like it overall for building versus Ruby.
I’m also going to continue promoting Growl for awhile, see what I learn and if it becomes it’s own thing.
Otherwise, I think that’s it for this series. Thank you for reading.