3 ms·
To me, those are roles that describe different aspects of software creation. Depending on the job, those roles are needed in different proportions. Engineers a
by toohotatopic 6y ago
To me, those are roles that describe different aspects of software creation. Depending on the job, those roles are needed in different proportions.
Engineers apply math to create systems. Without Newton and his math there wouldn't be engineers or the other way round: engineers are those who create the stuff that is only possible with Newton's math.
Since only few software needs math to that degree, rarely any software is developed by software engineers.
Software developers on the other hand are like real estate developers. They don't build walls, they don't do structural analysis. Instead they combine systems. Unlike real estate developers, they mostly do the plumbing by themselves.
Programmers are to engineers what words (Greek: grams) are to math. They focus on the language and care about expressing ideas in program code.
Then there are also software designers and architects who care about the overall system structure.
- jkqwzsoo 6y ago> Software developers on the other hand are like real estate developers. They don't build walls, they don't do structural analysis. Instead they combine systems. Unlike real estate developers, they mostly do the plumbing by themselves. I like this analogy, because it confirms my personal biases/discomfort about web and app developing falling under the same umbrella of "engineering" as nuclear reactor design, missile guidance, and the worldwide chemical industry. However, to advocate against my biases, in my field (ChemE), most of the fundamental work has been done. Very few BS graduates in chemical engineering will design a distillation column or a chemical reactor. Again, most of the basic science and engineering has been figured out long ago (which is why most research ChemE looks more like chemical physics, molecular/systems biology, and materials science than reactors and unit operations). So, to an approximation, a chemical engineer won't "build" something. They'll stitch together components that were figured out a century ago. In fact, this was the entire point of "unit operations" -- black boxes that can be represented as a functional transformation on their inputs to produce outputs, and can be solved, quasi-linearly, to estimate the overall inputs and outputs of a chemical process. In that case, by the same analogy, they wouldn't be "chemical process engineers", but "chemical process developers". Yet I wouldn't suggest a chemical engineer who pulls correlations out of Perry's isn't really an "engineer", so with critical review, it's hard for me to justify a believe that somebody who stitches together APIs for a living isn't equivalently an engineer. [Edit: a relevant xkcd: https://xkcd.com/1988/ https://xkcd.com/1988/ -- Most engineering doesn't seem to be that different]