> Can you develop this part I'm curious, how do you make the difference between a good engineering mind and a bad one for example ?
Sure
I'm simply stating what I've been feeling meeting developpers peers the last few years. I've met engineers and I've met tinkerers.
As far as what I've understood, engineering is mostly conception. Given a set a requirements and constraints, the engineer does some thinking and tries to come up with a technical solution that satisfies both requirements and constraints. Much of the time it's about compromising. That requires thinking ahead and anticipating stuff. Whatever the field, CS, aerodynamics or mechanics, the process is basically the same with different time scales. You're given a problem or a need. You have to understand it and its implications. You have to imagine some tool that will solve it. And the tool will exactly solve it. Durably. Efficiently.
Now, sometimes you can see developpers throwing a few lines of codes, assembling (with more or less duct tape) some modules found here and there and then testing it with a few simple cases.
Nothing wrong with that way of doing things. I do it myself on some home-projects of for a Proof Of Concept on the job. I litteraly use duct tape on some robot-arduino-thingy that I build for fun.
This way of doing thing, I call tinkering. And it's needed as much as engineering. Tinkering, DIY, duct taping, it's where new and innovative ideas come from. Because when you tinker you play around. You add this or that just to see what could happen.
But the thing is, when you tinker you don't build to last. And I've seen many developpers building things that way that would be delivered to clients in production.
So maybe when I said "not much have a good engineering mind" I should have said "not much understand the difference beetween DIY and Engineering". Both are needed. The key is to know when and why.
Finally, engineering is taught, yes, but it's a skill that is also and mainly developped with your few first years on the job. Not just in uni. I just feel that It should be a concern of any school that teaches futur developpers. Or a concern of any company that hire freshly out of school students. I know I try to sensibilize my interns to those subjects.
Sure
I'm simply stating what I've been feeling meeting developpers peers the last few years. I've met engineers and I've met tinkerers.
As far as what I've understood, engineering is mostly conception. Given a set a requirements and constraints, the engineer does some thinking and tries to come up with a technical solution that satisfies both requirements and constraints. Much of the time it's about compromising. That requires thinking ahead and anticipating stuff. Whatever the field, CS, aerodynamics or mechanics, the process is basically the same with different time scales. You're given a problem or a need. You have to understand it and its implications. You have to imagine some tool that will solve it. And the tool will exactly solve it. Durably. Efficiently.
Now, sometimes you can see developpers throwing a few lines of codes, assembling (with more or less duct tape) some modules found here and there and then testing it with a few simple cases.
Nothing wrong with that way of doing things. I do it myself on some home-projects of for a Proof Of Concept on the job. I litteraly use duct tape on some robot-arduino-thingy that I build for fun.
This way of doing thing, I call tinkering. And it's needed as much as engineering. Tinkering, DIY, duct taping, it's where new and innovative ideas come from. Because when you tinker you play around. You add this or that just to see what could happen.
But the thing is, when you tinker you don't build to last. And I've seen many developpers building things that way that would be delivered to clients in production.
So maybe when I said "not much have a good engineering mind" I should have said "not much understand the difference beetween DIY and Engineering". Both are needed. The key is to know when and why.
Finally, engineering is taught, yes, but it's a skill that is also and mainly developped with your few first years on the job. Not just in uni. I just feel that It should be a concern of any school that teaches futur developpers. Or a concern of any company that hire freshly out of school students. I know I try to sensibilize my interns to those subjects.