Message from C, C++ talks
Disagree, in my experience, the main reason of using bad practices and suffering with them was lack of knowledge that things could be done a different way.
E.g. I was making my first games with very bad practices based on overuse of inheritance. Not knowing about good patterns made me suffer that time a lot.