Welcome to the Revit API!
Normally, I would point you to The Building Coder tips on getting started:
https://thebuildingcoder.typepad.com/blog/about-the-author.html#2
Unfortunately, the Typepad blog host platform is currently having serious problems, so take a look at the GitHub source code of The Building Coder blog instead:
http://jeremytammik.github.io/tbc/a/#2
It answers all you questions in depth, possibly except about time. Still, I'll briefly reiterate:
1- what is the best way to learn in this case?
Start by exploring the Revit UI. You already have. Gain some basic understanding of .NET and C#, of you plan to work in C#. That should be doable in a couple of hours or a couple of days, depending on you. Then, work through the Revit API getting started material. There are walkthroughs, video tutorials, numerous YouTube introductions, hundreds of options. Many have been mentioned and discussed here in the forum in the past.
2- Where can I ask and find information?
Please work through the getting started material before asking any questions. If you encounter problems with the getting started material, please search for existing answers. I guarantee that you will not have a problem that has not already been discussed and solved here in the past.
3- How much usually is time to learn such process?
Days, weeks, and years. Depends how far you wish to go. A proficient programmer can understand the system and have a non-trivial macro up and running within hours.
4- Do I need to learn the whole C# language or just the Revit Api?
There is no good way to use half a programming language. You have to learn and understand the entire .NET environment. That can be programmed in C# or in other languages as well.
All of this information has been presented hundreds of times in the past, so please search thoroughly for answers before raising any new questions.
Thank you! Good luck and have fun,
Jeremy