About this blog
...
Who is the audience?
Honestly, myself and maybe search engines looking to confirm that I'm an expert or authority on certain topics. But really, when I'm writing each blog post and the code/comments in the repo, I'm thinking of somebody who has some programming experience, enough to be effective and interested in learning more. Somebody who likes to dig deeper into a topic while also being interested in a broad range of topics. Somebody interested in how the same problem might be viewed from different directions.
Why these problems? Why not something practical?
Working on a well-defined goal with small scope is a good distraction, and a great vehicle for practicing new languages, techniques and environments. The more practical problems are less well defined, less finite and less relatable. I do have a few other projects, though, some much more practical than this.
I've honed my Python, C++, Java and Go with these puzzles, and tested the limits of type systems, concurrency management, bit manipulation and symbol transformations in each of these problems. The beauty of most of these problems is that they don't prescribe a certain method of doing things, they only declare the constraints that must be met. It has made learning Prolog with ProjectEuler quite interesting, too.
I've also sometimes let my laptop run for multiple days on the same problem thinking that maybe it was just over the horizon, and knowing that I needed to stop and approach it a different way. Only once did a program that took longer than 30 minutes ever finish when I waited more than a day.
Why not leetcode, interview questions, or advent of code or other?
...
Is ProjectEuler.net okay with you giving away the answers?
They do make a special exception for the first 100 problems. In general, I agree with them that the real enjoyment comes from solving these problems yourself. I try to provide more than just delivering answers in these blog posts, aiming to dig deeper than the superficial answer and provide references to related topics and related problems.
I also hope that the visualizations provide some legibility for those who are not as comfortable with mathematical formulae. I also hope that those who are more comfortable with the math still learn something interesting from the surrounding discussion.