I can't say I agree here. I suspect you knew this would trigger some debate.
First of all, the definition of OO is not well established. What defines OO? Is it encapsulation? Inheritance? Message passing? Jonathan Rees discusses the issue in more depth here: http://paulgraham.com/reesoo.html . Whether OO, by any accepted definition is a Good Thing is also debatable, and beyond the scope of this comment.
More importantly, I think imposing that "good OO practice" on a brand new programmer is a distraction from learning the basics of programming. None of the boilerplate Java requires for a "hello world" program actually has anything to do with printing "hello world" to stdout. The beginner has a great deal of information to absorb, and the meaning of "public static void main()" is an extraneous distraction from what's fundamentally required to make a program work, and arguably not helpful for making programs that are well-structured and easy to understand. If "hello world" requires much more than "print('hello world')", it's not a good language for learning the basics.