4 ms·
I think this is correct. It's understandable when it's a physicist or electrical engineer trying to code something up to get something working. What really ups
by vbtemp 8y ago
I think this is correct.
It's understandable when it's a physicist or electrical engineer trying to code something up to get something working. What really upsets me is when it's professional software developers who never evolve out of that mindset.
I feel like at the end of the day the trick is to think algebraically -- Your data types and structures are some domain and you define operations over the elements of that domain in such a way that certain properties hold.
- candiodari 8y agoThe big advantage of CS is the accessibility of the domain. You cannot take that away and hope nothing else changes. That, of course, means any idiot or 8 year old can just pick it up and run with it. They may become less of an idiot after a while, but this may not be desirable or expedient, and it's great that that's not much of a problem. I mean, this is a bit like saying, why doesn't every physicist do everything by just coming up with a random differential equation for their problem then use fixed points to deduce the long-form non-recursive version and isolate out the wanted variables into long form ? It's, after all, usually by far the simpler process, especially since everyone can come up with a few differentials for any situation. Coming up with the correct long form directly, however, is absurdly hard. So if you simply learn to work with differentials, that's the way to approach essentially any problem. With a tiny caveat ... "learn to work with them" is 6 months of study and intensive practice, and that's assuming you already know a lot of math that isn't exactly high school level either, including a significant list of "tricks" that you just need to know by hard. But what you can do with it is amazing. But the level of knowledge and understanding required is just too high for anything resembling general application.
- haliax 8y agoThis sounds cool, can you point me to a good primer on the technique?
- candiodari 8y agohttps://www.youtube.com/watch?v=-_POEWfygmU https://www.youtube.com/watch?v=-_POEWfygmU Don't look at other videos until you've internalized the first sentence. Think long and hard about what that sentence means : differential equations allow you to find any function that you can make enough "what happens when it moves" observations about. Enough usually means one. For instance you can find Newton's equations from the statement that "falling things keep going linearly faster" (because they're the simplest function that satisfies that differential equation). On the more complex side, Google's pagerank is also the solution to a differential equation. Very technically it sort-of kind-of qualifies as a first-order one, just not in the real number space. There's a separate branch of "differential equations" (let's call it "the physics branch") that studies how to work it with discrete time intervals rather than continuous ones, which is also interesting and useful.
- westoncb 8y agoYour description of 'thinking algebraically' is similar to how I think of it. Seems to match something in human brains that partitions thought into subjects/domains which each have their own definitions of which things are fixed and which vary. I tried building a minimalist framework around the concept, adding one other element: 'converters,' which are used to move objects between domains. I wrote on it in more detail here if anyone's curious: https://github.com/westoncb/Domain-slash-Converter https://github.com/westoncb/Domain-slash-Converter (probably not much of anything special in the source, though I think the concept may have something to it, and I've successfully built one pretty large and interesting thing on it.)