The market “demands” cheap, turnkey, easily replaceable programmers who don’t really know what they’re doing, and justifies this with “I made a website last weekend, programming is easy, you’re just pretending its hard to keep out competition”. Until software engineering is treated as actual professional engineering, time, money and resources will continue to be wasted frivolously.
Having previously worked in a “professionalized” field (architecture) before a career change to software engineering - please no.
Having a credentialing body that has to review and certify you just kills wages and innovation, and makes it take an outrageously long time to enter the field. But, more importantly, it will not prevent bad programmers from existing and shipping bad software.
Further, software engineering most assuredly is treated as actual professional engineering in most of the industry. That there are many companies that don’t treat it that way just means there are a lot of poorly led or non-software companies out there, which is no different than any other field.
Informatics Engineering is a professionalized field in some countries.
What happens in Portugal is that although most people tend not to do the admission exam, all universities that give engineering degrees (including in computing) need to be certified by the order, and signing legal contracts for projects as Engineer does require the exam approval.
No one took the exam because it was effectively impossible.
To become a PE, first the candidate has to pass one of the Fundamentals of Engineering exam to become an engineer-in-training. Except, whoops, there wasn't ever a software specific FE exam; the most relevant one is the EE/Comp. E. exam. Take a look at the list of topics: https://ncees.org/wp-content/uploads/FE-Ele-CBT-specs.pdf Most developers aren't going to pass that even with a CS degree.
Secondly, you need 4-8 years of supervision by a licensed engineer. Again, whoops, there are barely any software developers with a PE license, so who would they get to supervise them?
Only then do you get to take the PE exam for software engineering. Frankly, the situation was so absurd that one has to suspect that NSPE didn't want to certify software developers as PEs.
There is a growth process in any profession. Nobody starts out as an expert just like nobody starts out as an adult. Wages to such are not a waste, but money well spent on training. There are degrees of skill, and jobs to match each level. And at the end of the day, the best quality education comes through real life experience.
How does it matter? What 'unqualified programmers' (in your speak) say has no bearing on the outcome/quality of actual software that is being created elsewhere by the 'professionals', right?
Unlike other professions, software is ambigously placed in between art and commerce. Perhaps, the only art form that drives commerce heavily compared to music/painting etc. Just like there are no certifying bodies for qualified painters/sculptors/musicians (even if they exist, they are not stopping actual artists creating and sharing stuff), creating a certifying body for software will not take anyone anywhere.
While they might be true to some extent, I argue there are lots of Engineering Principles that should be taught and required for coding, before call themselves Engineers.
Software Development right now has a little too much BroScience.
Got into programming because it was fun and interesting. I’ve watched what was “correct” change many times over the years. Or every few months months in JavaScript land.
Thought of being told what is correct is just wrong. It would crush so many people. So much innovation would be stifled.
Had a test question in college asking what is better, white on black or black on white for text. Knew I was wasting my time with “formal” education.
I agree. But it isn't being right or wrong as in other engineering discipline, where there are scientific evidence for those facts.
The principles I was thinking of is the act of trade offs, cost, performance, time and TCO. And it isn't about which set of trade offs is right, it is about knowingly and justify those trade offs. Throughput Vs Latency, CPU vs Memory etc. A lot of these seems to be learned while they are on the job and from mistakes. I wish there are more of these thoughts being taught.
The market “demands” cheap, turnkey, easily replaceable programmers who don’t really know what they’re doing, and justifies this with “I made a website last weekend, programming is easy, you’re just pretending its hard to keep out competition”. Until software engineering is treated as actual professional engineering, time, money and resources will continue to be wasted frivolously.