| Everything should be made as simple as possible, but not simpler. -Einstein That's the quote that's been banging around in my head since I've been trying to clean up the mess left by the programmer I replaced. When I think of a good programmer, I think that reading/understanding their code should be as simple as possible. If I'm reading through the controller of a basic Rails app, it should be pretty simple. I should be able to easily figure out what's going on. I shouldn't see a 100 line action that mixes view and model code. If I'm reading through the Rails core, I should expect to spend significant time understanding what's going on. Simple as possible, but not simpler. In my experience, bad programmers take misguided pride in writing complex code (which is always more brittle than clean, clear code). Or they think you are the bad programmer because you don't immediately understand it. Good programmers are programmers that are fun to work with (code-wise especially) that get things done. At least that's my working definition. Here's how I judge myself: 1) Do other programmers have good things to say about working with me? 2) Do other programmers have good things to say about my code? 3) Do I get things done/working? 4) When I read my old code, do I understand it quickly (relative to the complexity)? 5) When I read my old code, do I see things that I could have done better (shows personal growth)? The Dunning-Kruger effect is always on my mind as well. http://en.wikipedia.org/wiki/Dunning–Kruger_effect edit: formatting, typo |
I indeed solved some problems in a more complex way than it was necessary - though I wasn't proud of it.