In late 2022, a few months into teaching myself, I wrote a post about coming back to web development after five years away. I listed the projects I planned to start with: calculators, counters, a todo app. I said I had no real idea where any of it would go, and that I was comfortable with that.
Looking back at that list is funny. Not because it was wrong, but because the actual path looked nothing like the plan.
What I Actually Built
I started with the small projects I described. Calculators, counters, a todo app. They taught me the basics of state and rendering. Then I built an amortization calculator because I wanted to understand how loan math works visually. Then I built this website. Then I kept going.
The projects got bigger faster than I expected. Not because I was particularly talented at this, but because the tools let you move quickly once you understand a few core concepts. React, Next.js, Tailwind, and an AI coding assistant handled a lot of the complexity I would have struggled with alone.
What Was Harder Than Expected
CSS. Specifically, getting things to go where I wanted them on the screen. I understood the JavaScript logic before I could reliably center a div. That surprised me because I expected the visual side to be easier than the logic side. It was the opposite.
Debugging was also harder than I anticipated. Not because the errors were complicated, but because I didn't yet have the mental model to know where to look. When a spreadsheet formula breaks, the structure tells you where the problem is. When a React app breaks, the error could be in the component, the state, the props being passed, or something happening three layers up. Learning to trace problems through layers of abstraction was its own skill.
What Carried Over From Finance
More than I would have guessed. The habit of working backward from a broken output to find the root cause is the same in both fields. So is the instinct to check your assumptions when something doesn't look right. Spreadsheet modeling taught me to think in data flows, which maps well to how data moves through components in a frontend app.
Financial modeling also made me comfortable with complexity that builds up gradually. A nested IF formula with eight conditions isn't that different from a component with multiple conditional renders. Both require you to hold the full logic tree in your head and trace each path.
What didn't carry over: the pace. Finance work is slow and deliberate. Code gives you feedback in seconds. I like the tighter loop, but I had to learn to stop planning everything upfront and just try things.
What the Original Post Got Right and Wrong
The post claimed that the tools available in 2022, especially AI-assisted development, made the on-ramp "shorter and less intimidating than it's ever been." That turned out to be right, though for reasons I didn't anticipate. AI didn't just make learning easier. It made building faster, which means the bottleneck shifted from "can you write the code" to "do you know what to build and why." The operations and finance background I thought was separate from coding turned out to be the more valuable half of the combination.
The post also said I wanted to use this second attempt to fill in the gaps from the bootcamp years: backend development, algorithms, data structures. That part has gone slower. I've absorbed pieces of it through building, but the formal study I described is still mostly ahead of me. And the few specific products I came back to build are, for the most part, still ideas. I've built real things; they just weren't the things I planned.
What I'm Still Figuring Out
I'm not sure where the line is between using AI as a tool and using it as a crutch. I write better code with an AI assistant than without one. But I sometimes wonder if I'm learning the concepts deeply enough, or if I'm learning to describe problems well enough that the AI solves them for me. Those might be the same thing. I'm not sure.
I also don't know what kind of developer I want to be. I came into this from a finance and operations background, and the projects I'm most drawn to are the ones that solve business problems I've actually encountered. Whether that makes me a "real" developer or a business person who can code is a distinction I used to care about and mostly don't anymore.
The original post ended with me looking forward to finding out what I could build this time around. Two years in, I'm still finding out. The list of things I want to build is longer than when I started, which I take as a good sign.
— Lo