Изучай то, что тебе интересно. Если хочешь писать драйвера или низкоуровневое системное ПО - то тебе на Си. Если хочешь писать игры, софт и много-ещё чего то плюсы. Если десктопные приложения под Windows, и игры (но щас в .NET появилась .NET Core, там есть кроссплатформенность) - C#.
>увидев знания которые нужно знать Андроид программисту я был в ужасе
Почему? Перед вами был огромный мир, который можно познать, с кучей всяких интересностей :) (Конечно, если вам это интересно как впринципе). Если вам интересно - вы всегда будете развиватся. Если вам интересно устройство или принцип работы чего-нибудь - то у вас будет мотивация изучить это.
По-моему мнению - порог зависит от сферы программирования.
Ну то-есть, допустим в написании аудиоплеера под винду, высшую математику знать не надо, а если писать например, игровой движок, то там нужно знать, как минимум, про коллизию, графику и собственно высшую математику.