What do you know, it turns out the professional software developers I work with are actually scientists and academics!!
What do you know, it turns out the professional software developers I work with are actually scientists and academics!!
The average software developer doesn't even know much math.
Right now, "software engineer" basically means "has a computer, -perhaps- knows a little bit about what goes on under the hood".
There isn't a standard license that show that someone is proficient in security, or accessibility, or even in how computer hardware or networking work at a basic level.
So all we're doing is diluting the term "engineer", so as to not mean anything.
The only thing the term "software engineer" practically means is: they have a computer. It's meaningless, just a vanity title meant to sound better than "developer".
Well, I know stupid amounts of math compared to the average developer I've encountered, since I studied math in grad school. Other than basic graph traversal, I only remember one or two times I've gotten to actually use much of it.
I believe they are referring to what the degree currently known as Computer Science should be called.
Incidentally, I don't think I know any SWEs who actually majored in software engineering. I know one who didn't even bother to graduate high school and therefore has no academic credential whatsoever, a couple of music majors, a few math majors, and a lot of "computer science" majors, but I can't think of anyone who actually got a "software engineering" bachelor's degree. Hell, I even know one guy with a JD. I think I know 1 or 2 who have master's degrees in "software engineering," but that's it.
Readable code is often simple code, as well. This also has practical benefits. Kernighan's law[0] states:
> Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
Dijkstra says it this way:
> The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.[1]
Knuth has a well-documented preference for "re-editable" code over reusable code. Being "re-editable" implies that the code must be readable and understandable (i.e. communicate its intention well to any future editors), if not simple.
I know that I have sometimes had difficulty debugging overly clever code. I am not inclined to disagree with the giants on this one.
---
[0]: https://www.defprogramming.com/q/188353f216dd/
[1]: https://www.cs.utexas.edu/users/EWD/transcriptions/EWD03xx/E...
This also lead to a strange naming now we have data science as well where it is called "Data videnskab" which is just a literal translation of the English term.
[0]: https://dl.acm.org/doi/10.1145/365719.366510 (sadly behind a wall)
Computerwissenschaften (literally computer science) exists, too, but it's the less common word.
Perhaps because no one had any idea about how it would be pronounced?
It's not about computers and "You don't put science on your name if you're a real science"
He prefers the name informatics.
Having flashbacks to when a close friend was getting an MS in Political Science, and spent the first semester in a class devoted to whether or not political science is a science.
I've yet to find a classification I really like but this is an interesting take. I still tend to like CIS (Computing and Information Sciences). The problem with CS is it focuses on computation and puts state as second class. The problem with IS is it focuses on state and puts computing as second class. To me, both are equally important.
I have studied informatics, but don't call myself an informatic, because I am not doing any research.
I call myself a programmer, because I am not doing engineering either.
"Computer science is no more about computers than astronomy is about telescopes." - Edsger W. Dijkstra [0], [1].