5 ms·
Besides Asimov's and Jonathan Blow's illustrations of the problem. What is the cure? Instead of focusing on abstractions of technology, why not focus on the fu
by throwaway_777 5y ago
Besides Asimov's and Jonathan Blow's illustrations of the problem. What is the cure?
Instead of focusing on abstractions of technology, why not focus on the fundamentals?
With fundamentals, I mean mathematics and physics.
This is perhaps all you need to understand tech in its fundamental nature. Everything is built out of mathematical and physical principles it seems.
The problem then may be to determine how much you need of it for your field. Do you need quantum mechanics to know how bicycles work? Maybe classical physics (mechanics, electricity, optics) will suffice here and the rest is a combination of physical principles aka engineering or creativity if you will. (Creativity is a fundamental human skill it seems.)
There's also abstract engineering as I would put it: computer science.
What are the principles of CS? I am not so sure, but I have a rough idea that perhaps it is also field dependent.
For computer graphics seemingly you don't need a lot of math. It's roughly at high school math level.
You can do projections and other transformations without linear algebra (vector, matrix math). All you need to do here, is deriving relations/equations out of geometric rules (like you can for perspective projection for example).
Then you have 2 fundamental ways of rendering things to the screen: rasterization (Pineda's method) and ray tracing.
Rasterization:
- after projection, you need to bring your vertices projected onto your virtual screen to an actual "screen" or should I say PPM image. Then you need a filling algorithm like Pineda's one.
Ray tracing:
- here, you don't need any projections. The projections are basically "a given". As you shoot rays from your virtual camera through your virtual screen, all you need to do here is to calculate intersections with geometrical objects and color them accordingly.
That's it.
So for all this basic rasterization and ray tracing you at least need: high school-level math (perspective projection, intersections, transformations, ...), basic rendering algorithms (Pineda's method, ray tracing, Phong shading, ...).
I suppose the other field's fundamentals or basic principles can be "filtered out" from these many layers of abstractions.
Matrix math or linear algebra is not needed for CG. (Although it is really comfortable to know it... It's like doing CG by Assembly instead of C or C++.)
I also suppose that back propagation - the backbone of neural networks - can be also done with basic high school math.
So my suggestion is: decide what are the basic principles of a given field and filter them out.
Also, my question to all of you: learning Assembly is pretty much an educational endeavor nowadays as CPUs these days are doing lots of magic behind the scenes. So what are the fundamental principles here? Physics surely, but I see a problem with my argument above. Getting down to the common denominator (math and physics) is relatively easy, but it is hard to build a CPU out of it albeit theoretically possible.
Charles Petzold's code seems to suggest that those principles are actually not that far from basic principles.
Dunno, what do you think of my comment here?
- mattgreenrocks 5y agoI like the idea here. As I've gotten older my technical aesthetic has mostly drifted toward amassing knowledge of these fundamentals that you speak of. It isn't that they let you know everything, but they serve as a good map and have very high power-to-weight ratio. Random examples: * parser combinators * automata * virtual machines etc etc.
- XargonEnder 5y agoI don't think there's enough understanding about how physics connects to chemistry to biology to psychology etc for a fundamentals first approach. I think what we actually do is we find something that works, and then we explain why it works later. I've had titles like software engineer and database administrator, but the most important aspect of my jobs is always psychology, not computer science.