Algoritma ve veri yapıları ile ilgili bilgin yoksa her şeyden önce kesinlikle bunun üzerinde kendini geliştir sonra ardından dil öğrenmeye geç. C# seçebilirsin ancak benim tavsiyem c++ veya python ile başlaman çünkü c# , vb.net gibi diller bağımlıdır ; sınıflar, yapılar, modüller, metotlar ve fonksiyonlar hep .Net platformunun destek verdiği ölçüde ve sürekli .Net framework olan sistemlerde çalışır. O sebeple python ve c++ senin için daha iyi olacaktır ancak çok zorlayacaktır (eğer çok üzerine düşersen) özellikle de C++ ama gerçekten de bitirdiğinde çok iyi işler başarabileceksindir.