RE: How to learn X++ without any programming experience
As Vilmos said, it's important to realize that learning the language isn't the same as learning how to program, therefore "how much time will it take to learn X++" isn't a good question. Also, time needed to learn something is extremely subjective.
What you need is really a mix of several things: understanding object-oriented principles, X++ language, DB design and querying and supporting tools (debugger, cross-references etc.).
When choosing resources for learning object-oriented programming, picking C# is a particularly good choice, because it's similar to X++ (I didn't say they're the same), you can utilize the same libraries in X++, later you can write some libraries in C#... (these are advanced topics that you don't have to worry about for now, but later the knowledge may come in handy). And you'll find a huge amount of resources.
Prior programming experience isn't strictly needed, but you'll obviously have to learn more than if you already knew most principles from another environment.