I used to joke to my students that the hardest part of programming is coming up with names -- for variables, functions, classes, modules, packages, etc. I still tell them that, but now I'm relatively serious about it. ("Relatively", because I don't know that it's the hardest part, but it certainly is hard.)
But you're totally right. I was watching my friend code last night, we both have the same # of years experience, and I was like "what does that function name even mean? How about 'FindNeighbors' instead of 'CheckNeighbors' ". I'm sure I do the same thing in my own code.
If you still teach, do you ever have your students do code review on eachother's code?
Yes, I teach. No I haven't done that. But it's a great idea. I'll think about it.
<ggchappell proceeds to think about it>
If you do this, in order to incentivize the code reviewer you might actually make 10% of the grade based on the code submitted by the person they reviewed. (Granted that could be kind of harsh, and I always hated group projects in school.)
But I still can’t make a directory for the project without first thinking of a name…