Лучше начинать с алгоритмов и паттернов проектирования, а не с языка программирования. Языки программирования меняются, всё-равно придется постоянно изучать их, а изучаются они легко, если есть алгоритмическая база. Для практики нужно выбрать язык под конкретную практическую задачу.