Corey Haines
October 19, 2023

How I learned to code in two weeks

In August I flew across the country to spend two weeks in a house with eight strangers from the internet with one goal: learn to code.

Working in tech my entire professional career, I've picked up on technical vernacular over time.

API, user interface, backend vs frontend, database query, http requests... fancy words that made me sound smart.

I grew discontent with just saying the words. I wanted to truly know what they meant. I wanted to be able to have an intelligent conversation with a developer.

I also grew discontent with no-code tools. Don't get me wrong — the no-code space has made huge strides the last few years. But I grew impatient waiting for platforms to develop capabilities to allow me to build the apps I've had sitting in my ideas folder for ages.

So when Ryan Kulp tweeted the idea of hosting a live coding bootcamp to cut away the distractions and focus on being able to learn enough to ship your own apps in two weeks, I was the first to raise my hand.

I vlogged all 15 days of the trip if you want the first-hand account.

Seriously... two weeks?

Yes and no.

I went through the Fundamentals course before arriving to nail Ruby basics. That took me about a month to get through with a few nights a week.

At Camp, I spent the first week building two out of three apps in the 24 Hour MVP course. This is where I learned Rails and Tailwind CSS. We're talking 9am to midnight — taking a few breaks to eat, touch grass, and occasionally play poker or shoot guns.

I devoted the second week to building my own app. The biggest selling point of the camp is having Ryan within arm's reach to ask a question or help you get unstuck when you're banging your head against your keyboard. So I wanted to take advantage of that proximity while building my own app while I could.

And guess what? I did ship an app in a week. It's called Work User Manual. Yeah, it's a simple CRUD app. But it uses rich text, pulls in podcast and book images based on a URL, and allows you to host it on your own subdomain.

We were all surprised by how much progress you can make in two weeks when it's your singular focus.

The TLDR of what I learned

Coding is as simple or complex as you make it.

Most academic curricula and mainstream coding bootcamps make it more complex than it needs to be.

This is what makes the Founder/Hacker curriculum so special — it just focuses on the bare minimum you need to build your own apps.

I don't want to be a professional developer. Heck, I don't even want to be a "good" developer. I just want to be able to build MVPs and see if they can make money.

I took notes as I noticed proverbial lightbulbs going off in my head. Here are some excerpts:

Programming is not math. There’s math in programming, but programming is not math.
Code is text in files. Files are stored in folders on your computer. The terminal is a way to run code stored in folders. Git is a way to store different versions of code in GitHub while you develop it on your computer so you can always revert back to a previous version and have a record of all changes. A client is what’s displayed for a user: e.g. a browser or a view from the terminal. A server is what runs the code. A server is just a machine (or many machines) that run your code. This is why you can run your code “locally” on your computer (via the terminal) or globally for anyone you want to allow to access it (via a hosting provider). A server sends the code to a client, and the client interprets the code to display for a user.
Code is usually always HTML, CSS, Javascript, and some other backend programming language like Ruby, Python, Java, etc. A framework is a set of tools that extends the functionality of your programming to generate code and execute commands. Rails is Ruby code scaffolding that gives you shortcuts so you can execute commands in 1 line that might have taken you 100 otherwise. These commands can include generating files, modifying code, storing data, and managing 3rd party code libraries to give you even more functionality.

The hardest part about learning to code is that you’re flying blind. It feels a little bit like being shoved into the pilot seat of a rocket ship and doing everything mission control tells you to do, but you don’t actually have much idea of what’s going on as you’re doing it. You’re trusting that it’ll start to click as time goes on and that you’ll make the right connections between concepts as you get familiar with each one.

Learning to code isn't just learning a programming language. It's also:

  • Making HTTP requests
  • Setting up a local dev environment
  • Using and customizing a framework
  • Learning git and GitHub
  • Deploy to a PaaS or hosting on AWS

A rising tide lifts all boats

So much of learning to code is information being passed down from developer to developer based on what they learned the hard way.

There were countless times I explained an issue to Ryan and he would show me a little technique he picked up from someone else that felt like magic.

An unexpected benefit of learning with eight others simultaneously is that as each of us picks up these little tricks and nuances, we passed them along to each other.

"Hey did you have this same issue when you were building app #2?"

"Oh yeah let me show you this workaround I got from ChatGPT"

"Actually there's a better way Ryan showed me. All you have to do is..."

AI-assisted learning

I picked up Cursor as my code editor of choice, and boy has that made a huge difference.

It's never been easier to learn how to code.

Having ChatGPT within my code editor so it has full context of my codebase along with GitHub Copilot feels like cheating.

A few examples of how I use it:

  • Describing the frontend I envision to generate basic HTML/CSS
  • Feeding terminal and console logs to the ChatGPT panel to interpret errors and debug issues
  • Asking it to refactor files to be cleaner and more efficient
  • Telling it to generate detailed instructions on how to do something I otherwise would have no idea how to tackle
  • Asking it what specific lines of code do and explain in simple terms
  • Asking it to scan a file for potential issues before deploying

What now?

Nothing changes for me day to day. I'm still committed to Conversion Factory 9-5.

The exciting bit is that this is just the beginning. *New Ability Unlocked*

In fact, I'm already working on another SaaS app that I pre-sold a $250/mo subscription for.

I have a note on my phone with 50+ app ideas.

At the end of the day, my goal isn't to be a solo founder. If an MVP gets some traction, I'd like to pair up with a technical cofounder to take the reigns.

But now I don't have to worry about asking someone else to build my crazy ideas.

One thing's for sure: this was the final straw to becoming officially unemployable.

Want more posts like this?