3 ms·
Engineers get degrees in engineering, have to pass tests to work in their field, and get required ongoing education to stay current. Not every engineer but in g
by gregjor 2y ago
Engineers get degrees in engineering, have to pass tests to work in their field, and get required ongoing education to stay current. Not every engineer but in general the title "engineer" connotes a minimum amount of education, credentials, exams, etc. that don't exist in the programming world.
I think of engineering disciplines as fields that have documented knowledge and processes that lead to predictable and repeatable results. In my experience programming defies accurate (or even useful) prediction, and we fail to replicate success reliably. I agree that programming has some engineering-ish aspects, some things we understand better than others, but we mostly fall down as a field producing predictable software.
I think those "failures" come from the nature of programming as an idiosyncratic craft, a field too big with too many specializations to master in a lifetime, and a constantly-changing landscape of hardware, languages, tools, frameworks, and so on. And programmers very often work with vague, incomplete, and shifting requirements -- something engineers have better processes for. A bridge or a building or a road gets planned out to a level of detail that similarly large software projects do not.
If a programmer wants to call themselves an engineer, I don't mind, and I understand how that means something different than electrical engineer or civil engineer. I have always found "programmer" sufficient to describe what I do.
- tjr 2y agoHaving worked in aerospace software for decades, I believe that software engineering exists. I also realize most software projects don't have (or need) that level of planning or rigor.