Hacker News new | ask | show | jobs
by woahAcademia 2028 days ago
I'm thinking we need a new word that isn't "Engineer" for programmers.

Engineering is Applied Science, Programming is not Applied Science.

Programming is a combination of Art/Authority/Tradition/Science.

If you talk to an engineer and you talk to a "software engineer" you will notice a huge difference in visualizing the world. An engineer talks in metrics, you won't get that detail from a software engineer.

An engineer cannot program like a Programmer can.

Source-Changed to Programming because it was my passion. Programming is not Engineering.

2 comments

In my school we spent five years on the intersection of math and programming that would make Dijkstra proud with only around 2 tiny courses for learning to program.

I don’t like to call me a software engineer because then people assume I studied git flags for years. Computer Scientist would be one term but people starts to assume that’s programming. If I say Theoretical Computer Science then programmers starts to understand the subjects spent learning (I was one course away from having that as my speciality). Even so I feel quite silly being irked about it because school was a long time ago and I’ve forgotten most of it and now I do remember a lot of git flags...

Any way, I’m rambling, my point is, Software Engineering as applied science does exist and thrive, you only need to look at some award winning research papers to convince yourself of that. The problem is that people assume they are training engineering when they are coding because the allure is so strong, when what they should try to do is write a research paper.

I think of programming as most similar to writing. This may be more true of userland application development than things that are more purely mathematical or low-level. But even then there are parallels. At the end of the day you are creating a work of written language, where "humanistic" decisions beyond the raw formulas shape how the work is understood and interacted with (e.g. symbol/variable/file names, or how the code is broken up [or not] into modules/subroutines).

A programmer getting started contributing to a large existing codebase may feel more like a proofreader or editor at first. But creating an application from scratch definitely seems very similar to writing a novel.