Learn by Wrapping
mikerourke.dev
mikerourke.dev
- Learning a new language? Pick a problem you know very well.
- Solving a new problem? Pick a language you know very well.
- Trying a new front-end framework? Pick a backend you know very well.
And so on…
[1]: I say "trying" because it's so easy to try all the cool new things at once.
On the flip side of this, I always end up wearing the performance hat on every project I’m on, and one thing I keep meaning to do is to write myself a benchmark/test suite that asserts some things I “know” about the behavior of the language. Why? So that I can run it again on every release to make sure that the slow but pretty solution didn’t suddenly get 10x faster or the fast but ugly one didn’t get 2x slower to fix a security hole, narrowing or flipping the heuristic for selecting the correct solution. Speaking of, I really miss jsperf even though half the benchmarks there were misleading.
I then benchmark it and go and try to make it as idiomatic according to that languages style.
I recently did this for running processes in .NET (to automate starting ESBuild's watch mode when my ASP.NET Core project starts), and now I'm doing it with yt-dlp to get YouTube links rendering in my VR app at work (which is serendipitously much easier now that I have all this process management code).