I bet you also never used "Animal->Cat" and "Animal->Dog" classic class hierarchies apart from demonstrating inheritance. That's not the point.
This is just a stupid example. It might be not a sorting algorithm. It might be "run 50 transformations on each item in this list". And a good programmer that can't write code will copy the list in memory 50 times, transformation after transformation, forgetting about corner cases and error handling. And a terrible programmer who can write code will make memory footprint smaller, group 50 transformations so there are only 5, and his code will never crash the process.
All programmers can make mistakes or not know certain nuances, such things are pretty simple to catch in code reviews, which will in turn enhance their development in the future. Grads and the lessed experienced need to have good mentors to show them best practices.
You're telling that juniors will become more experienced over time. It is self-evident (if they're able and if they continue to learn, of course).
If for each LOC you have 2 mistakes, it's easier to scratch the whole thing. If your code has 2 mistakes per LOC, you're a bad programmer. Sorry. You can't code. You can't fulfil your main responsibility. I don't know how to explain and I surrender.
Everyone has their own opinions, and I appreciate you sharing yours. The article was written to elicit responses from the community, and we can see that there are people that agree and disagree with your stance.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.