Neither of those are designed around object-oriented programming, which Java is all about. I think you can do OOP with Python, but I have little experience with it. That said, if you're looking to get a good sense for how to code, it's probably a good idea to start with procedural and functional programming before moving on to OOP.
Visual BASIC.Net's biggest thing was moving to proper OOP design, instead of the pseudo-OOP that VB6 implemented.
Also, I disagree on learning procedural and/or functional programming before learning OOP. The most-used languages for both hobbyists and professionals are object-oriented: C++, Java, C++/CLI, Python, etc. From my experience, you're also more likely to find
quality tutorials and examples in the more popular object-oriented languages, meaning learning may end up taking less time, depending on the person. Personally, the greatest barrier I faced (pre-C++) when learning programming was getting a handle on control flow and structuring, something that VB.Net makes abundantly clear because of its plain-language keywords and lack of whitespace requirement. I'll even provide an example using a for loop, one of my most common loops:
C#:
Code:
for ( int i = 0; i < 5; i++ )
{
System.Console.WriteLine( i );
}
VB.Net:
Code:
For i as Integer = 0 To 5
System.Console.WriteLine( i )
Next
For a beginner, the latter is likely
much easier to read, and thus, to understand. VB.Net also doesn't
require you to start off with making classes and such, making it a good entry point for beginners, since they can progress to classes when they feel comfortable doing so
without having to change language, making the transition from newbie code to object-orientation.