i am the opposite. when it comes to the technical parts (rendering, etc) i always try using generic solutions.
but if it is comes to the game itself, or the specific software i doing, i always use the most shortest, uglyest, hardcoded inflexible solutions, becouse that is ~10x faster to do, and becouse i rarely will create the same app again, so i will not need to recycle the code once again, it not worths wasting generic implementations.
well, i am more a generic programmer, than a graphics programmer. and also, i am a programmer, not specifically a game developer. i sometimes touching the game industry with my works, but nowdays i would not classify myself as a game developer.
talking from graphics - i used third party engines at first, but they was too buggy (just as nowdays), so i self-learned graphics programming with opengl 1.0 using tutorials on the internet. i was not a good programmer in C at that time, but i was still able to put together my stuffs relatively easily. at first, i not actually learned anything beyond my needs (~10 necessary opengl function to paint textured geometry), i just wanted to display the graphics i needed, but not cared about the features of opengl beyond that.
later i enhacned my knowledge a bit more, to cover newer technologies as my hardware (and as the market demand) become more modern (voodoo3->geforce4->radeon9800). my middle-scool math skills was more than enough, and if i need a formula, its easy to find it on the internet. later i started to design software renderers, becouse i was not satisfyed with the conception and compatibility of opengl, gpgpu and shaders.
dogs are also very dangerous around me, people dont even build proper fences, so the dogs can come out, and agressively bark. getting a weapon is a good idea, if it is legal in your contry. dont risk yourself.