▲ | harimau777 2 days ago | ||||||||||||||||||||||
It seems to me that in other areas of tech, companies generally hire electrical engineers, mechanical engineers, civil engineers, etc. On the other hand, software companies feel that they don't need to hire computer scientists. Then periodically there is a discussion on Hacker News that boils down to "all of the other engineering disciplines can make reliable predictions and deadlines; why can't software?" or "why is this company's code so shoddy?" or "why are we drowning in technical debt?". Perhaps the these are all related? | |||||||||||||||||||||||
▲ | bckr 2 days ago | parent | next [-] | ||||||||||||||||||||||
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. | |||||||||||||||||||||||
| |||||||||||||||||||||||
▲ | chamomeal 2 days ago | parent | prev | next [-] | ||||||||||||||||||||||
The definition of “software engineer” is SO broad though. If you’re maintaining a database/flight controller/cloud service, etc, you probably need real comp sci knowledge. Hacking together an internal tool with laravel? Doing vanilla CRUD for a client’s web app? Probably not! No amount of comp sci knowledge will help you configure the millionth nested layer of Wordpress plugins. So much “software engineering” is just plumbing. Connecting things to other things with a little bit of business logic in between. Honestly my job is plumbing, most of the time. | |||||||||||||||||||||||
▲ | Terretta a day ago | parent | prev | next [-] | ||||||||||||||||||||||
> [P]eriodically there is a discussion on Hacker News that boils down to "all of the other engineering disciplines can make reliable predictions and deadlines; why can't software?" or "why is this company's code so shoddy?" or "why are we drowning in technical debt?". You'd find those also have more trouble with predictions when machinery needed for the goal hasn't been delivered before. While most software jobs today are a bespoke configuration of a solved problem, the practice of software development is new enough to remember when most software was to solve a physical problem in a new digital way. Discovering/inventing are predicted on the search space being unknown in advance, making discovery and invention unlikely to be estimated accurately. Note, though, most software today has already been writting, and the lack of predictable delivery is because the process doesn't rigorously enforce a "first, apply known/solved software" approach. If, in software, materials use was third party inspected and certified as it is in physical or electrical engineering, you'd find software get more predictable. | |||||||||||||||||||||||
▲ | 2 days ago | parent | prev | next [-] | ||||||||||||||||||||||
[deleted] | |||||||||||||||||||||||
▲ | AnimalMuppet 2 days ago | parent | prev | next [-] | ||||||||||||||||||||||
In other areas of tech, companies hire electrical, mechanical, and civil engineers, and not, say, physicists. Software engineers are analogous to the other engineers. Computer scientists are analogous to the physicists. Or take chemicals. When the question is "how are the outer-shell electrons distributed", you hire a chemist. When the question is "how do we make the stuff in multi-ton quantities without blowing up downtown", you hire a chemical engineer. Part of the answer to your question is that schools are producing computer scientists and not software engineers. (It's not the whole answer, but it's part of it.) | |||||||||||||||||||||||
| |||||||||||||||||||||||
▲ | ahartmetz 2 days ago | parent | prev [-] | ||||||||||||||||||||||
They are related to the discipline being quite new, I think.I have seen little correlation between studying computer science and being able to program well. That might also have something to do with the generally atrocious quality of CS teaching in Germany. Professors try so hard to avoid "dirty practice" in favor of doing quasi-mathematics that they ignore interesting and fruitful fields because (get this!) not only does practice follow theory, but vice versa as well, maybe even more so. |