Well, I made that up — I did not actually find that headline. However, I see a lot of the, “Learn ‘X’ in 2 weeks”, where ‘X’ is almost anything, French, Python, Java, cellphone apps, etc. Folks sign up, go through the process and are happy that they can “speak some words”. Possibly, even do something useful :-).
My “Brain Surgery” headline is so absurd, not because it is fundamentally different, but because the consequences are so much more severe. The principles are the same.
The consequences of “Java in 2 weeks”, are minimal. Maybe your program won’t work at all or will move a screen icon right instead of left.
So if rigorous “safety” techniques aren’t taught, it’s no big deal.
But, what if your program were controlling a robot or machine that could damage property, or harm a person? Might want to know about appropriate methods to minimize those kinds of possibilities? You think?
The stated arguments for not dealing with these methods initially is basically, that it’s boring and will “turn folks off”. We’ll lose them. All of that can be learned later.
But I believe that there’s another reason. The folks building and teaching these courses have never built programs where the consequences of errors were of any major concern. Building a game, printing out numbers, or moving icons around on a screen is not, well, dangerous. If it doesn’t work — just quit, change the code and run again.
If that’s your world, why bother?
A software product that is used by folks that did not build it, is an entirely different manner. Even if there are no dangerous failure consequences , it better work well, or users will quit using it. Also, might ask for their money back.
Real programs have errors, need fixing from time to time — or need to be enhanced. All of that has to be done by people — often not the ones that built it.
Adhering to proper standards and proven methods can make the fixing and enhancing much easier (read: possible!). There is a “rule-of-thumb” that the chance of making another error while fixing a problem is 30%. With proper techniques that can be reduced. Generating programs with very few errors is very important, but difficult.
Does anyone remember the Obamacare sign up sites? All fixed now?
Why not teach proper standards and methods at the beginning? Is it possible?