Long time programmer, short time engineer. I was born in 1982, I started coding C/C++ when I was about 16-17, I didn't really start thinking about design patterns or reusable/generic code until about age 28 when I got my first, professional, full-time code-monkeying gig. A lot of people I work with sneer and snicker about how I obsess over details that they consider academic, like using the STL/Boost and emulating those libraries' reusability. I just grind away at them. Some of my co-workers rejoice when their code compiles, so I try to be patient.