This is so true, I know I have my fair shareDespite your best efforts you *will* learn bad habits. The key is learning from those bad habits and figuring out better ways to do things. This will happen "automagically" as you gain experience.
Nice c2 wiki linkImpact on system resources is an interesting questions. It all comes down to "it depends". One tenant you will come across is this concept of "premature optimization". As you build software and gain experience you will quickly get an understanding of what not to do at the start. My recommendation is to jump right in, hit a wall, and figure a way around that wall. It's the only real way to learn.
But yes, always avoid premature optimization