3 ms·
Maybe call yourself a software developer then? Or a software technician? A mechanical engineer does have deep understanding of everything they do. They underst
by YZF 2y ago
Maybe call yourself a software developer then? Or a software technician?
A mechanical engineer does have deep understanding of everything they do. They understand their systems from first principles. Maybe not as much as a physicist but certainly more than your carpenter example. They know how lathes are designed, they understand the principles, and a good mechanical engineer can design (and build) a lathe.
- margalabargala 2y agoBuilding a programming language is such a tiny, niche part of computer science and software engineering that most computer scientists and software engineers never do it. They don't need to do it. I think a decent computer scientist and software engineer should be able to understand everything written in this blog post, modulo any Clojure-specific syntax if they're unfamiliar with that language. But replicating it off the top of their head? No, and that's not expected. A mechanical engineer is a different example than I gave, so that changes the analogy. We're discussing a member of a profession being able to de novo create the things they use in their trade. I would expect most mechanical engineers to be able to build a lathe, yes. But a mechanical engineer is not a materials scientist or a metallurgist. I would not expect a mechanical engineer to be able to create rubber capable of being used for a belt in the lathe, nor capable of creating steel hard enough to form the cutting bit. Perhaps you're right, and there's insufficient granularity in the terms used, where "computer scientist" or especially "software engineer" is used to describe the 99% of us who haven't and have no need to create a programming language, plus the rest. But I won't be updating what I call myself. To paraphrase Office Space, "Why should I change? They're the ones who are elitist gatekeepers".
- YZF 2y agoI've done it a few times in my career. A lot of people build domain specific languages or compilers or translators or assemblers. Compilers and related theory is often covered in a CS degree curriculum. I didn't say replicating off the top of your head. The blog post is meant as parody. I'm not suggesting someone should be asked to design a language in an interview though maybe some questions on the topic might be ok for some specific roles. A mechanical engineer is not a material scientist or a metallurgist but they're definitely educated on the topic of materials. They need to choose the right alloy or material for their designs and understand its properties, they need to select vendors and understand the relevant processes. They're not as specialized but that have some base understanding and the capability to dive in if needed. That's I think what a software engineer needs to have as well. A car mechanic doesn't have those and that's fine. I don't think this is elitist. There needs to be some distinction between people at different levels and capabilities. I'm not saying a car mechanic isn't capable of being a mechanical engineer. They can even become the equal or better through self study. But replacing an alternator isn't the same thing as designing the alternator. EDIT: And just to be clear, I wasn't trying to be personal there. The reality of life is that lots of people that work on software call themselves (and companies call them) software engineers.