4 ms·
For an engineer to create something that works reliably and that they can't understand would rely heavily on luck. Usually, an engineer will start with proven s
by thatcat 9y ago
For an engineer to create something that works reliably and that they can't understand would rely heavily on luck. Usually, an engineer will start with proven science and work towards a design.
- jerf 9y agoThat is a common myth, but it's complete bunk. There is no clean flow of "science -> knowledge -> engineering". The flow goes every which way, and there's plenty of engineering that we do without a particular knowledge of the "science". Heck, we can barely get half of Hacker News to agree that programming is a mathematical endeavor, a close equivalent to the idea. How many programmers are out there just bashing away on engineering despite not knowing the science of what they're doing? How many "cloud" developers don't understand the science papers on consensus algorithms? Yeah, their code hurts for that lack, but it still works to some extent. How many programmers are reading papers with any routineness in their field? Non-zero, but nowhere near 100%. Or even 50%.
- thatcat 9y ago>How many programmers are reading papers with any routineness in their field? Non-zero, but nowhere near 100%. Or even 50%. Yea it's gotta be pretty low. I guess that's a sort of engineering by intuition that, if it lead to a working design, could then be explained with scientific theory. Still, I would expect a licensed engineer not to sign off on a design if they don't understand it theoretically because they are legally liable in a similar way to doctors.
- TheOtherHobbes 9y agoNo, that's a feature of software engineering, not of other kinds of engineering. No one seriously believes that airliners, bridges, and the electrical grid stay up because of luck, hope, and positive thinking. The last time the flow went "every which way" was during the industrial revolution, when it was still possible to build useful things with a certain amount of guesswork. Sometimes they didn't even explode. CS is roughly in that state now - lots of opinion and proselytising, plenty of cut-and-paste cookbook programming, far too little empirical testing of various beliefs and propositions, and even less interest in the continued refinement of formal methods that have proven to be useful.
- PeterisP 9y agoWe did (and engineered) chemistry long before we understood why chemistry works the way it does; we built airplanes long before understanding how a wing actually works (I mean, wing and propeller shapes were derived experimentally in wind tubes, not because of solid reasoning why). If there is proven science, sure, an engineer should base the design on it. But if there isn't, that shouldn't prevent trying to get a workable solution before you can get proven science - if anything, the practical experience of your working (and non-working) solutions might be required to make the "why" questions answerable. I mean, right now we have a boom of building things with neural networks despite the lack of proven science on guarantees and reasons why a deep NN (often with much more parameters/degrees of freedom than training samples) must generalize. We have "rules of thumb", algorithms and tricks that tend to result in state of art results, we have practical comparisons between them, but little in the way of proofs stating that this method must be better than the other one and stating why. We'd have some proofs where method A has better guaranteed lower bounds than method B, but the guaranteed bounds are so far from real world results that you'd ignore those proofs and pick method B anyway because it seems to works better in practice for everyone. And yes, exactly as you say, this means that new systems/NN architectures can't be built reliably, they are designed and tested empirically and some degree of luck is involved; still, that doesn't mean you can't design useful things with it. Making those designs becomes hard engineering work, especially because of the lack of solid rules.
- woodandsteel 9y agoThe flow of knowledge is often from practice to science. For instance, it was known that aspirin could alleviate pain for many decades before scientists discovered why. Engineers can make their work science-based because the sorts of phenomena they are dealing with are well-understood by the scientists. With psychological phenomena, the scientists have a much poorer understanding, and so you have to go by what experiment shows works.