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.)