25 years of C++ myself. Back in the 90s I coded up all the grossest memory management blunders many times over. Long time since I produced one of those; these days I'm capable of producing some exquisitely subtle synchronisation and threading bugs ;)
(I'm saying this as someone who's been coding in C++ for over two decades, while still finding lots of room for improvement in my older code.)