С качественного учебника программирования. В котором для объяснения алгоритмов используется язык, максимально удобный именно для обучения. Потому как любой язык программирования - не цель обучения, а всего лишь инструмент для записи алгоритмов. Но есть инструменты, доступные и новичку, а есть инструменты, рассчитанные только на профессионалов с большим опытом.