|
|
|
|
|
by badminton1
3596 days ago
|
|
An abridged definition of engineering is "applying science to create technology". A software engineer applies computer science to create software based technologies. Under that definition you worked with programmers not engineers. Then, true. You might have worked with programmers that seemed productive and learned on the job. But much of that learning happened at the expense of exposing the company and the customers to great risk. For instance, if you are manipulating financial information, and you don't know what a floating point number is, you are eventually going to have a bad time. If you don't understand concurrency and parallelism, you might end up corrupting important data, if you are suffering networking issues and everything you know is HTTP at a high level... you are going to have a bad time. And the list goes on and on and on. Friendly software development technologies were created to augment productivity, not to release people from the responsibility of knowing what is going on with them. Now to your point, it is clear that not all computer science programs focus in producing highly-qualified software engineers. But that doesn't mean that you can simply skip the fundamentals. |
|