How do you consider them? Did they give you anything or it's just was a waste of time?
Whenever I looking my repo, I see unfinished projects:
I wanted to build my next photographer portfolio in Node.js + Express, instead I went with Wordpress again. But in return, I learnt Node.js.
I wanted to create a website, which listing companies of my country with public data. This stage, I'm an unverified identity to get access for this official database from the government, so I built a web scraper in Go able to start the development and actually come up with a product. The project still hangs in this state. I never finished it, but now I know how to implement this in Go, how to work with files on the disk and use the standard library.
What are your letdowns, that hadn't payed you anything, but you learnt something new?
Top comments (3)
I developed a program to run through all possible chess moves. Of course this is an "impossible" problem, but I had a few ideas that might make it achievable in my lifetime. So I gave it a try.
I learned soooo many things about running high-throughput and long-running programs. I learned a lot about different concurrency models. I had to create my own custom binary serializer/deserializer to make the most compact representation of data (that I could come up with). I shoved trillions of rows into a table in Postgres. I ran the simulation for about a month and got the first ~ 1 million distinct checkmates.
Based on the size of the data, I believe I could store all possible (distinct) chess moves in about an exabyte of data. However, the compute time it would take to fill that data is less-straightforward to calculate.
Anyway, I learned these lessons specifically:
Agents and actors are better for "chunky" rather than "chatty" work.
Postgres is awesome. I could kick myself for not using it sooner.
Linked-lists are not for hotly-used code paths.
I periodically pick up the program and play with it as I think of new ideas. And then it sits dormant for months. Started messing with it a couple years back.
It depends on how far you go. If you always come to the same place and stop you don't gain anything from that project.
Me, for example, started my first project that was stupidly big for one man team and I had no chance of finishing it. But for the first time in my life, I wrote repository pattern and unit of work to entity framework from scratch. Learned a lot about EF and delegates...
Next project I setup DI for the first time, configured Automapper and wrote my first unit tests.
From my last PET I gained nothing! Copied my repository patter, wrote some actions and tests and then summer came and I gave up so it was complete waste of time
I struggle with an ever-growing list of unfinished things that become an increasingly heavy anchor around my neck because they prick at my perfectionist nerve in a really bad way. However, most of them are, at best, a subject for a blog post about whatever thing I learned from them.
Unfortunately, writing blogs about them puts me into a position of needing to clean up code snippets or realizing I should have tried a different implementation approach for some component so they become a project again because I don't want someone to learn the "wrong" way to do a thing.