Hacker News new | comments | show | ask | jobs | submit login

I don't know how else to put it: this is wrong. Engineering is the practical application of science to create something with utility. Building a bridge is to physics as programming is to computer science. Programmers don't typically invent new algorithms and data structures to solve a problem. They apply a novel combination of known techniques to achieve a balance of quality and cost-effectiveness. My favourite quotation:

'Anyone can build a bridge that stands, it takes and engineer to build a bridge that barely stands'

You can write code in your basement for fun. You can also build your own house. Because you can do something doesn't mean you can do it well, nor that you can do it efficiently. Engineers are particularly concerned with the latter.

Computer science is the exploratory, scientific component of the equation. CS designs and quantifies new algorithms and data structures. With the rigorous understanding computer scientists develop, an engineer can evaluate the cost-effectiveness of a given solution. A basement coder may be applying known techniques, or they may be experimenting. Whether they're trying to gain knowledge or solve a problem seems to largely define whether the task is science or engineering.

Almost every point here addresses barriers to entry, which are a modern, and certainly not integral, component of engineering. Yes, becoming a licensed engineer is hard. But engineering isn't the act of 'doing things while being a professional engineer'. It is the systematic application of engineering principles, which anyone can use. While they are using them they are, to my mind, an engineer.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact