C# лучше. Java слишком громоздкая, овер-инжиниренная, и с платформами тоже большие проблемы. Некоторые хотят GUI, я не представляю себе школьника, который нормально сможет писать на свинге, JavaFX, не говоря уж об Android. А вот у C# - есть WinForms простой и вылизанный, есть WPF для покруче...
Новичку необходимо хотя бы примерно понимать, что такое основы ООП, теория графов и множеств, булева алгебра, двоичная система счисления, матрицы для работ с массивами. Это минимум для того, чтобы понять станет человек программистом или быдлокодером.