I especially feel this when I see small toy/pet projects or projects that are built throughout a long period of time (i.e. curl). For the latter case, I admire the dedication some people put in their passion projects, building/evolving/maintaining it over a long period of time (again, curl is a prime example).
However, despite these thoughts, while I do sit and try to learn a new language, I never start a project like this. But on the other hand I constantly feel this impulse to "create something", even if it's a toy project.
Does anyone else falls into this endless loop of unsatisfied creativity impulse? If so, have you found any way to tackle it somehow?
Don’t try to make a “DNS server” right off the bat. Make a program that is hardcoded to respond to a query for the A records for a single, hardcoded domain. Do this first before you give any further thought to “DNS server” functionality. Use the “dig” or “drill” command line utilities to make the query, and use Wireshark to inspect the the resulting request and response from an existing DNS server such as 1.1.1.1 or 8.8.8.8. Then make it so that your program can respond similarly to requests from dig or drill, for some single domain of your choosing. Test it a few times to make sure it works. And only after that should you continue with thinking about what to do next for the DNS server.
The result is a myriad of half finished things, some now wildly out of date, and most difficult to pick up again (ie undocumented). Also not a very productive place to be.
I don't know why, I am so mad about it, I am doing it anyway.
By starting something small and incrementally adding to it, learning as I go along.
For example, I was curious about multi-colored LED lights. So I bought a strip of WS2812 LEDs, an Arduino. Downloaded Arduino IDE and some examples. Bit by bit, I learnt C++, some electronics, need for external power, etc. Now have several "works" that respond to sound, rejuvenated antique lamp, etc.