It's always nice to see the new generation & I'm always happy to answer.
First of all don't feel frustrated about not knowing everything everything. Mastering a language can take a long time. Especially C#. It's a good language, but it takes quite a lot of time to master all the components of the .NET Framework. I've been programming in C# since 2005, but I think I don't even know half of the possibilities.
To answer some of your questions:
1. Building a complex software, like kmplayer requires a lot of time, and it's not written by only one programmer. Complex softwares can easily contain millions of lines of source code, but eventually you will get there :)
2. There's no universal program to make an app prety. I Wish it would be simple as: Application.LookRelalyNice(); :)
Usualy nice looking applications are designed by a designer, who draws the layout in photoshop or a graphical software, then the programmers make it work. I suggest looking into the WPF subsystem of the .NET framework. It's designed to be modified. Almost everything can be styled. A good example is the MahApps framework:
http://mahapps.com/[
^]
3. Becoming a pro depends on your dedication, but to be honest, the more I know about programming the less I feel that I know something. There's always something new worth learning, so it's a never ending process.