23 ms·
Software developer, computer programmer, system designer, software researcher. Engineer has a specific connotation to the outside world, developed over centuri
by throwawaymsft 12y ago
Software developer, computer programmer, system designer, software researcher.
Engineer has a specific connotation to the outside world, developed over centuries. We'd like to use it because we tinker with programs, and invent new things, but it's misleading to the general public. Should I call my self a Software Surgeon because I fix up bugs?
- dsacco 12y agoThat's not a fair comparison. You can demonstrably learn every skill integral to software engineering outside of a traditional university. You cannot do that with surgery. Or, well, you theoretically can, but it's much more hands on and almost certainly requires in-person mentorship. But I take it your answer is "yes", then - if someone is a better software engineer and an accomplished luminary in the field, who progresses engineering itself forward, we shouldn't call her an engineer without a degree. Is that your position? At the risk of being accused of developing a strawman - I'm not. I'm developing a baseline. Calling someone an engineer without a formal education is binary. If it can be done under any reasonably achievable circumstance, it's fair to say that you can be an engineer without a degree.
- deleted 12y ago[deleted]
- dietrichepp 12y ago> Engineer has a specific connotation to the outside world, developed over centuries. Words change over time, like "gay" (happy -> homosexual), "chaperone" (a type of hat -> someone who looks after others), "clue" (a ball of yarn -> a piece of evidence). I hope you're not arguing that words shouldn't change. Traditional engineers built fortifications and siege weapons, but now we have "chemical process researchers" or "chemical process designers" calling themselves "chemical engineers". What gives? Like other engineers, software engineers design real-world systems in such a way as to minimize cost while meeting objective requirements. Similar to mechanical engineers, software engineers build real, physical machines that perform quantifiable tasks--the major difference is that the software engineers are designing the non-tangible parts of the machine. I'm not saying that tinkering with programs makes you a software engineer. Kids (or adults, more likely these days) playing with erector sets aren't engineers either.
- snowwindwaves 12y ago"traditional engineers" used the science of physics to solve a problem, Chemical Engineers are using the science of chemistry to solve different problems. As you say software engineers build real physical machines, building a crud app doesn't make you a software engineer, but many people call themselves software engineers without applying any hard sciences.
- dietrichepp 12y agoMathematics and computer sciences are hard sciences. However, people don't often see them that way because they're not "natural sciences", they are instead "formal sciences", so empirical work is not required. As a software engineer, you might use formal semantics to verify code, or you might need relational algebra to design your databases, or you might need statistics to understand the performance of the systems you work with, et cetera. Computer programs have even grown to the level of complexity where we use empirical models to study them, and design them using simplified, scientific models. For example, memory usage. The way software engineers model memory usage seems broadly similar to the way a civil engineer would model loading. The fact that carpenters build houses does not diminish the accomplishment of engineers who build skyscrapers; the fact that novice programmers can build CRUD applications does not diminish the accomplishment of software engineers. The only reason that this is an issue today is because most people are old enough to remember when "software engineering" was not a thing.