To each his own. Comparing his ideas to software development would not be my first instinct, but I don't think level of abstraction is what he was going for. A closer analogy would be where there are many different implementations of an interface that run concurrently and then have their many outputs fused back into one single output. But that reads more awkwardly than the way Lem said it :)
>the example you selected (git) is rarely the right thing to choose
It's clearly just an example, but whether it's a bad one or not is debatable. Git is used by most shops, and most people have challenges with it at one time or another. Further, it is IMO an excellent example of how choosing the right data structure for a problem can have a profound impact on the resulting application. You could do worse for broadening your knowledge of ComSci than by a deep study of Git.
Similar experience here: I started early and played the game for a while, and years later with very little activity I'm still top 0.08%. My technique was to focus on speed. I wrote a tool to alert me to new questions and would often answer within one to two minutes. This wasn't as disruptive as it may sound to my real work, as I knew my domain well enough, so it was the mental equivalent of getting up for a quick walk.
I loved del.icio.us back in the day. So much, that when it went down for a few days in 2003, I wrote a clone of it that I still use to this day, self-hosted. I also archive the text content of the page, which has saved me a few times. At this point I have about 11,000 bookmarked URLs, and if nothing else, it's a fun way to find out what I was doing on a given day.
This is a great answer. The details REALLY matter. One of my best early tech success stories was rewriting a SQL query that took 27 hours to one that took ~5 seconds. This was running on a very large Oracle cluster. They had poured more and more money into hardware and licensing trying solve this. In the end, it was a matter of turning a cursor-based query into a set-based query.
Came here to say this - I almost never think much of the code I wrote. But when I see a moment in time that I took the care to do something for future me, it's almost the same as looking at an old photo of myself, and thinking, 'Hey, I didn't look half bad back then!"
Feynman is not known as the "Great Explainer" for nothing. It occurred to me recently that one of his great gifts was in setting the stage for the learning process. He had a knack for a visceral initial presentation of the subject matter that was going to be discussed, often with analogies to the physical world we experience. This had two main effects on the listener, 1) the feeling (whether true or not) that the subject matter was somehow going to be relatable and familiar, and 2) providing a strong central mental image around which to further hang ideas as the discussion went on, rather than staying in the realm of the abstract for a long time with no grounding point.
In this sense he was a guide, saying, "Don't worry, this is a journey we can go on together, and parts of it you have traveled before". He makes you believe you can understand something (or frankly tells us when we can't), which seems the ideal mental state for difficult subject matter.
Thanks, I really appreciate the reply and hadn't thought about those side effects. I then thought "why not derive the identity type from an attribute on the identity property of the table class?", but then you have a dynamic return type, so you either return an object needing a cast, or it leads you back to the same problem you identified.