Software Project / Side Project
Just some thoughts on working on the software projects.
I think there are two approaches to a software project:
- You build upon a library
- You build everything entirely from scratch (Building from Scratch)
I’ve always done approach 1, because it is the least consuming, but I feel like process 2 is so much more fulfilling, though it takes a lot more work.
However, you can say that you wrote the thing entirely from scratch, and if you are really a great programmer, then you can do it super fast right?
And I might as well record the entire process.
I think it is going to be really fun, we can first do it with Blackjack.
And then, proceed to a Poker AI.
Or we go straight off for Poker? Yes, because that is more challenging. And why would go the easy route when you can go the hard route?
But at the same time, you need to weigh the tradeoff between producing results and learning. I mean, for YouTube videos, if you want to build something really cool, you can just take something really cool that someone else built, or you can try doing it from scratch.
- I think if you want to optimize for Learning, and for dopamine for watchers, and for Sharing Knowledge because you actually know what yo are doing, definitely Build from scratch
Also was having this conversation with Cheng about how when you build from scratch, you understand the code. Reading other people’s code mostly gives you the impression of learning when you’re not.