Hacker News new | ask | show | jobs
by thimabi 5 days ago
I always liked yak shaving, but avoided it because I knew it came with costs and tradeoffs. More recently, with the help of AI, I’ve been doing lots of it, as the costs and tradeoffs have greatly diminished. In fact, I’ve learned that building my own tools and frameworks, when done properly, comes with huge performance benefits and helps me understand the problems I’m trying to solve much more deeply. There has never been a better time for yak shaving!
3 comments

Personally, I find it difficult to competently reason about a system unless I've built my own version of that system. So if you make a practice of building your own versions of things, you end up with a more robust mental library of how stuff works. For this reason, I've never seen yak shaving as a waste of time. The yak shaving was at least 50% about loading the abstractions into my brain fully.
> I find it difficult to competently reason about a system unless I've built my own version of that system.

You're in excellent company from Feynman onward.

> The yak shaving was at least 50% about loading the abstractions into my brain fully.

I haven't always made a version of new kind of system I'm trying to understand but I always try to at least find a toy model that I can play with to confirm understanding.

Same with me. Made me also learn a lot of bash and Linux. I'm not expert (better than average but I'm not fucking around with kernels or deep stuff) and have found that very beneficial to my career, even (especially!) with agents.

Even if I ended up moving to something not hand written the learning helped me find which tools are actually the tools I want to use. Helps me reason about what's necessary.

I fully believe you can't reason about things unless you have some understanding beyond the minimum needed to reason about them. Otherwise you just have unknown unknowns.

Downside: Code is not mature; can have edge cases, bugs and security issues. Likely limited config options without hardcoding features

Upside: Only the features you actually need. Likely fewer dependencies. You know exactly what your yak looks like under the fur.

the downside is mitigated by the amount of yak shaving you do. see?
I wonder, how well does Yak-Shaving work for you with AI, how does it look for you specifically and how do you make sure it's not undermining the friction for learning things properly? I want to try some more yak-shaving soon too.
Yak shaving with AI allows me to function more as a systems designer, code reviewer and tester than a coder per se.

AI is great if you simultaneously guide it and let it guide you. I take my time building a very detailed spec for what I want, then run it through the AI looking for contradictions, misconceptions, edge cases, performance bottlenecks, potential optimizations… anything that might cause problems in the future. Usually these discussions lead to multiple spec-improvement journeys, and that’s where the bulk of learning in a project comes from. Sometimes the AI will flag actual issues, while other times I might need to rein in its proposals — mostly in terms of feature creep and finding non-existing problems. I believe this back-and-forth is the most significant aspect of making the best out of yak shaving.

By the time the spec is “final”, it can be quickly implemented by an AI as I watch, review and test, with practically zero code banging on my part. This way, I get to understand precisely how the project works, make it tailored to my needs, and still not waste time, muscles or even mental bandwidth with menial coding.

You say this just as Google's AI is confidently telling me 'c.addi4spn' is 7 characters long.

So from my perspective you still need to know how to do the thing to catch the errors. Also, are you not missing out on the unknowns?

If an ai does a thing, fair enough. But you haven't tried to work it out yourself, done the wrong thing, to realise why it's done that way.