About Learning to Code
Today I finished the codefast course by @marc_louvion. (That link to Codefast is an affiliate link, by the way). I thought I'd share my impressions on the course and what I'm going to do next.
The TL;DR:
It's a great course, is very detailed, moves very fast, and is opinionated about the tech stack. Be prepared to spend a lot of time with an AI assistant and get confused as you go.
The Summary:
- The course covers everything, but moves very fast. Embrace confusion and trust the process.
- Use an AI assisted IDE, or you'll get lost quickly. I used Cursor, and heavily leaned on the AI to explain points in more detail.
- Marc advertises 12 hours of video - allow 3-4x that time to properly go through it.
- Turn off AI assistance when you're starting, so you type things out properly. I didn't, and found it too easy to just tab-tab-tab my way through code I should have been typing.
- You're heavily embedded in Marcs' tech stack choices. That's fine if you just want to build, but expect to spend a lot more time reading docs if you want to switch to alternates (database, mail providers, etc)
Overall, the course gave me a fast overview of building a modern web app, and that's what I came for. Detail can come later once I have the basics down. I fully expect to spend a lot more time building on the basics and expanding my knowledge as I go.
Why learn?
In the land of AI coding, vibe coding, and every other person on X shouting about how they built a complex SaaS in one day with just one prompt, you'd think that learning to code is a dumb idea. It's not.
I've tried vibe coding. I've cobbled together scripts and odds and sods to build small projects, and they (mainly) work OK. The huge problem with them is if they start to go wrong, or if you want to add a feature; right now, that can quickly get out of hand and make life extremely complicated very quickly.
I've often given up and trashed projects because I either can't prompt clearly enough, or my idea for a project was poorly thought out - resulting in a mess of code that I have no idea about. If you're building projects that you hope to stick around for a while, then starting off with a bunch of files that you don't understand is a recipe for future pain.
My starting point
I've been a tinkerer for a while. I have VPS servers scattered about, I mainly use Docker, and have taken a few courses in the past on web programming, but with little to no success (if I finished them at all, which was rare). I'm OK whipping up a docker compose file - with some guidance - and can pull together basic scripts to handle admin tasks on a Linux server, but I was heavily dependent on other peoples' knowledge. Building an app of my own was completely out of my grasp.
It wasn't just learning how to code - it was understanding what makes a good app, how it should be structured, how to deal with auth and databases and all the other bits and pieces that made something I could be proud of, that served a purpose.
My driving point was my day job. I write for a living, and my desire for tinkering got me into building small apps for work using Microsoft PowerApps. If you've ever tried to do that and make them work over the long term, then you know my pain. They broke, constantly. Sometimes Microsoft would change something in the background and the app would work - until I opened the editor, at which point the app would break and I was stuck in hell trying to fix it.
This situation was insane. Every time I was called upon to fix one of the apps, I swore to myself that I would learn to code and move these things off PowerApps and into a place where I could manage, control, fix and upgrade them to actually be useful.
Enter Codefast
I've tried other courses. My Udemy list is full of them. 'Learn to code! Build Full Stack Apps! 120 Hours of detailed learning!'. I tried, and failed. I couldn't sustain the knowledge or the practice. 120 hours of videos put me off immediately. I don't want to be a developer; I just want to build apps that work and do what I want them to do so I can get back to projects that build on my expertise - writing.
Like any other person who spends time on IndieHacker / Build in Public twitter, I'd heard of Marc. I'd seen the abuse he got when ShipFast was being slated by every random stranger with an opinion. I confess, I got sucked into that for a bit - then realised I was listening to people who had nothing to offer but abuse. Then Marc launched Codefast, and I realised I had a path to learn. Fast.
Some Observations:
I used Cursor and AI assistants heavily - in some areas, I'd go over a 4 or 5 minute lesson twice to try and understand it, then ask AI to look at the code, answer my questions, and test my knowledge. That helps a great deal.
Marc apologises at the beginning for his English, which is fair; his English is massively better than my French! In practice, this helps - I've always found it easier to learn when I have to listen more carefully to a non-native English speaker.
Don't lean too heavily on AI - When I started, I let Cursor autocomplete the code and it was very very close to what Marc was providing. I suspect at some point Cursor has had access to the full codebase; it was uncanny. If you let AI autocomplete code, you're not learning. I quickly found a way to snooze cursor assistance so I could pay proper attention to what I was typing.
Be prepared to experiment - at one point, Marc shows a counter app as an example, and I went off on a tangent implementing that as an example page. It was a hell of a lot more useful to properly experiment with the code and understand what I'd learnt so far.
Don't expect to be a full fledged developer from this course - you deliberately cover just the basics, and there is a lot more going on that is completely ignored (deliberately!). You learn just enough to make this app, and understand why and how the choices were made for the components that make it up. This is a foundation course that gets you building. If you're happy with Vercel, Resend, MongoDB, and NextJS, then you're good. Marc is very clear that this is a stack that works for him and has made him successful, but don't feel obliged to follow that path - you'll have learnt enough to start exploring and building on your knowledge.
Wrapping up
I'm delighted I took the course, and I can recommend it easily for people who want to understand the principles of constructing modern web apps, and not be wholly dependent on AI. Yes, AI can enhance your experience, but it's good to know what's going on under the hood and be capable of steering it to get the result you want.
If you want to give it a go, then feel free to use my codefast affiliate link and try it for yourself!