It seems pretty clear that most people prefer the usage of explicit access modifiers as a best practice, because:
it lets future developers know that you gave the matter some consideration and made the decision to set the particular access modifier, and
it improves readability and precludes confusion because its unambiguous; a developer who may not know the rules for default access modifiers won't have a problem interpreting it.
In John Skeet's answer to a similar question, which on a whole echoes the above reasons, he says he was partly convinced by Eric Lippert "that making it clear that you've thought about it and decided to make something private is a good idea."
So is there a reason the item templates in Visual Studio 2017 differ from previous versions of VS in that they now use default access modifiers (this may have been the case for VS2015 as well, I don't know -- but it's not the case for 2013)?
class Program
{
static void Main(string[] args)
{
}
}