Tomoki Cheung
← Writing

Building before understanding

I had encountered TypeScript in a few projects before I studied it properly, mostly through hobby work and through building alongside a language model. I’d used it as part of larger projects without much understanding of what TypeScript itself was doing. Over the summer I experimented heavily with Claude and used it to build websites involving GitHub, Cloudflare, Astro, and TypeScript. That let me work with technologies I probably wouldn’t have reached on my own yet, but it also made me realize that being able to build something is different from understanding how it works.

Studying the language directly has started filling in those gaps. I had already seen features like let, const, classes, arrays, and for...of in generated code, but I hadn’t always stopped to understand why they were being used. Learning TypeScript on its own terms has made me think about types, functions, and classes rather than letting a model handle them for me. From an engineering perspective, the type system is useful because it makes expectations explicit and catches certain mistakes before a program runs. The additional syntax can feel unnecessary in a small exercise, and I can see why it earns its place as a project grows.

Timed programming problems have exposed my lack of fluency more clearly than anything else. In a way, they put my ego in check. I can work on a website using several technologies with AI assistance and still stop cold on a loop, a piece of syntax, or how to approach a problem under a clock. I find them stressful because I’ve never really programmed under that kind of constraint, and I’m not particularly good at thinking on the spot. That’s also why I think they’re useful. They make it harder to avoid the areas where I still need practice.

I don’t know yet whether that style of practice suits how I learn, but I want to give it a fair chance. I’d like it to become less uncomfortable as basic patterns become more automatic. The goal is less about performing well on any given problem and more about ending up with stronger fundamentals than I started with. AI has already shown me how quickly I can build with assistance. What I need now is the ability to understand, evaluate, and eventually write more of that code myself.

I used ChatGPT for grammar, wording, and structural feedback while revising this essay. The experiences, opinions, and examples are my own.