Education : Higher education, СГТУ
Предпочитаю обучение " от задачи". Самый лучший способ изучить теорию - это решить несколько десятков задач на эту тему. Язык программирования любой, кроме совсем уж экзотических, конечно. Иногда у ученика просто нет выбора, например если в школе требуют все делать на каком-нибудь Pascal. Но если есть выбор, рекомендую Python, на нем можно программировать в функциональной парадигме. При этом, если она пока непривычна, то можно программировать и в обычной манере.