▲ | bckr 2 days ago | |||||||
Is your working definition of a computer scientist similar to a civil or electrical engineer? To me, a computer scientist is someone who studies computation. They probably have the skills to figure out the run times of algorithms, and probably develop algorithms for solving arbitrary problems. A software engineer is what I would call someone who can estimate and deliver a large software application fit for purpose. | ||||||||
▲ | pphysch 2 days ago | parent | next [-] | |||||||
I agree with this. A reason there is so much crappy software is because companies are hiring fresh CS grads expecting them to do real software engineering work. And they end up hacking it like they hacked it through school. CS programs have gotten better at teaching real SWE skills, but the median CS grad still has ~zero real SWE experience. | ||||||||
▲ | harimau777 2 days ago | parent | prev [-] | |||||||
Theoretically, I think that the ideal situation would be for a Computer Scientist to be someone who performs fundamental research in computation while a Software Engineer (I think that something like Computer Engineer would be a better term) applies computation research. Analogous to the relationship between a Physicist and an Electrical Engineer. However, as the terms are currently used, I see Computer Scientist as analogous to Electrical Engineer. On the other hand, it seems to me that Software Engineer is used to suggest that developers don't need to know the theory behind computation. Therefore, I currently think that the way "Software Engineer" is used respresents a lot of what's wrong with current software development. | ||||||||
|