Главное правильно составить алгоритм, а записать его на любом языке можно. Правда, если возникнет потребность на Ассемблере или, не дай бог, в машинных кодах. Вот это будет уже проблема.
Зависит от того, на каком уровне изучать. C# сложный язык, там много возможностей. Но ты не будешь изучать всё сразу. Постепенно изучишь. Для программирования на C# не обязательно знать все возможности языка и библиотеки .NET.