3 ms·
I agree. I prefer the term software engineer. Terms like "coder" and "programmer" (when referring to job roles) trivialize the profession; they set low expectat
by jcrites 12y ago
I agree. I prefer the term software engineer. Terms like "coder" and "programmer" (when referring to job roles) trivialize the profession; they set low expectations for the contributions an effective engineer will make to a business. Programming, the art of writing code, is just one piece.
I wrote a comment a while back attempting to capture and explain my thoughts on the greater responsibilities and competencies of a software engineer [1]. The effective engineer has a holistic approach to software and business:
> Engineering in the software field isn't /always/ about building super-reliable things. That is one factor that I think differentiates it from other engineering fields. Engineering in the real, physical space has safety implications that typically require a high level of rigor at minimum. If a bridge fails or a building collapses, that's catastrophic. Physical products are only useful if engineered to a high level of quality. However, software is useful across a wider spectrum of reliability: if a back-office web app used by the recruiting team has to come down for maintenance for 2 hours on Sunday, that may not be a showstopper.
> Consequently, part of software engineering is understanding what level of robustness is needed to meet business goals, and building to it appropriately, with appropriate costs, and understanding the properties of the built system. Controlling the [tradeoffs] is what makes it engineering.
[1] https://news.ycombinator.com/item?id=5809358 https://news.ycombinator.com/item?id=5809358
Furthermore, the effective software engineer, who in a corporate environment is also an effective businessperson, understands and influences the strategy of the business, and breaks down that strategy into goals which then influence the design and implementation of software. (Regarding earlier threads about whether programming is a dead-end job:) A wider perspective on what constitutes software development, and its role in business in general, also yields better long-term career development opportunities than focusing on being solely a "programmer".
- Dewie 12y agoWhy do people have a penchant for insisting on comparing software engineering (or programming or whatever) to civil engineering, specifically? Isn't there a whole world between the structural engineering of a skyscraper and the engineering of a new todo-app? Are really all other engineers doing work as delicate and safety-critical as brain surgery? I'd imagine (not that I know, really) that a lot of risk-averseness in more concrete engineering fields simply has to do with the bottom line: if a design has already been put into production, what if there is a fault in that design and subsequently all the final products of that batch? With software, you can just nag the end users to update.
- rsl7 12y agoWhat I do is more like playground engineering - keeping the users from killing themselves.
- HeyLaughingBoy 12y agoI'm a Software Engineer. You can scoff, roll your eyes, or outright laugh if you like. But it's the term I use to describe what I do, it's the title on my business card, and, if I may be permitted an appeal to authority, it's the subject of my graduate degree. There isn't any substantial difference between some types of software engineering and other engineering disciplines. The HDTV antenna I unboxed this morning was a travesty of "engineering" and is the electrical engineering equivalent of a crappy todo app. OTOH, my day job developing software is as rigorous as the physical engineering I've been involved in (my undergraduate degree is in Electrical Engineering and I worked in that field for about a decade). The "problem" is that most software doesn't need to be engineered any more than the average garden fence does, so there is a lot of drawing of false parallels. And as far as nagging users to update, that can be a little difficult if your software is embedded in the controls of a diesel engine somewhere in the South China Sea.
- azth 12y agoExactly. Software engineering practically surely involves programming, the reverse does not hold. Adhering to rigorous coding standards, static analysis, deep understanding of the program structure at hand goes a long way in the software engineering field. Not every programmer (or coder) does that, so not every programmer is an engineer. Of course, going to school for an EECS degree also should instill such values, including engineering ethics and codes of conduct.
- Dewie 12y ago> And as far as nagging users to update, that can be a little difficult if your software is embedded in the controls of a diesel engine somewhere in the South China Sea. Yes. There are, of course, exceptions.