About Page

How I built this site with AI, and why I still want to understand what is happening underneath.

How this was built

Every text on this website was written by me, although I sometimes used an LLM when I got stuck on a sentence or wanted to make something clearer. The website itself was much more collaborative. I used Claude and ChatGPT throughout the process, not by picking a template and filling in the blanks, but by going back and forth on the structure, CSS animations, layout, and other parts of the site.

Almost every line of code on this site was written with some help from these models.

When this started to matter to me

I first used an LLM in 2022 for a fairly difficult logic problem from one of my first-year university exercise sheets. The answer was not completely correct, and some of the proofs had problems, but I still remember being really surprised by how far it could get. Before that, when I didn't know something, I would usually search Google, open a few forum posts, and piece together an answer myself (which also only worked half the time). It was the first time I could give a system the actual problem and have it try to work through it with me.

At the time, I found that interesting, but it did not really change how I worked. That happened later, when tools like Claude Code and Codex appeared.

For many people, including myself, it used to be difficult to go from a pretty cool idea to a prototype you could actually try, change, and develop further. Even when the idea itself was simple, building the first version could take a lot of time, and if something went wrong you could easily spend hours debugging before getting back to the thing you originally wanted to make. That work is not worthless, and learning how to debug is obviously part of programming, but for me programming is mostly a tool for building something larger. These tools have made it much easier to get to that point sooner.

What I like most about that is not even the speed itself. It is that I am much more willing to try things that might not work. If testing another approach only takes a few minutes, there is less reason to keep the first solution just because I already spent hours on it. I noticed this with my own small projects: I start more of them, experiment more, and throw away bad ideas more easily.

It also means I can build things in areas where I am still learning. Before making this website, I had only taken two courses that included some JavaScript, HTML, and CSS. I knew the basics, but probably not enough to build something like this within a few days on my own. With AI helping me when I got stuck, I could keep moving while learning parts of it as I went.

What I don't want to lose

The part I am more careful about is ending up with something that works even though I do not really understand it.

There have already been moments while building this site where I looked at a piece of generated code and realized that I could see what it was doing, but I could not have explained why it worked that way. That bothers me more than I expected.

I do not want to get into the habit of describing what I want, accepting whatever code comes back, checking that it works, and moving on. That would make me faster, but it would also remove a part of programming that I actually enjoy. A big reason I study computer science is because I like understanding why things work, not only because I like having a finished result.

The difficult part is that taking the time to understand everything can sometimes feel inefficient. When a tool can produce a solution almost immediately, spending another hour reading through it can feel unnecessary, especially when there is a deadline or when other people are producing things quickly too.

That is probably the part I struggle with most. I do not think AI-generated code is automatically bad, but I can notice the difference in myself when I rely on it too much. If I stop reading code carefully, I understand less. If I give every difficult logic problem to an assistant before trying it myself, I lose the satisfaction of eventually figuring it out.

I still want to have moments where I sit with a problem for a while, get something wrong, try again, and then eventually understand it.

How I try to use it

I am still working out what a good balance looks like. For things I already understand, I am happy to let AI save me time, although every now and then I feel the need to go back to some concepts so I don't forget them completely. I do not think I need to manually write every repetitive piece of code just to prove that I can. For things I am learning, I try to use it more as a way to get unstuck or see one possible solution, and then I go back through what it produced.

That means reading the code, asking why something was done a certain way, changing parts myself, and sometimes breaking things just to see what stops working. I have found that I often understand something much better after changing it than after simply reading an explanation.

What I want from these tools is to get from an idea to something real faster, without skipping the part where I actually understand what I made. If AI saves me an hour of boring work, great. I just do not want it to save me from thinking.

I probably use these models most usefully when they feel less like something doing the project for me and more like someone I can constantly ask questions while I work.

How I want to keep using it

I do not want to stop using AI for programming, because it lets me build and try things much faster. I just want to make sure I still understand what I am building and keep learning along the way.