I once spent two days debugging a typo in variable called smallIllustration. That's when I really started to like "snake_case".
I think the most important thing is to use descriptive names. I always try to use at least two words. In functions/methods, the first word should be a verb, e.g. publishArticle instead of just publish. In variables, there should be an adjective, e.g. filteredArticles instead of just articles.
This way, I can immediately see, without looking at the code around, distinction between functions and variables. I can also understand what kind of input the function expects and what kind of data the variable contains.