I disagree with this part: "learning C before C++ teaches you how to program C++ wrong".
IMO the problem isn't so much about learning C or not. It's about which other languages do you learn alongside it.
You need to practice in a language that encourages OOP and a little bit of functional programming, like JS or Ruby.
If you know Ruby and C already, using C++ well will be much easier :)