Когда мне нужен Windows SDK и для чего нужен .NET?

Я студент, и после прохождения некоторых вводных курсов по программированию на Java, C и только что закончив книгу по C ++, я хотел бы начать разработку приложений для Windows.

Я сделал все возможное, чтобы пролистать Google и найти ответы, которые мне нужны, но я, кажется, в растерянности.

Когда мне понадобится Windows SDK поверх обычного API? А что такое .NET и зачем мне это нужно? Что такого особенного в C #, и я должен использовать это по сравнению с C / C ++?