Учиться всегда лучше на практике. К программированию это относится на все 100%. Есть отличный сервис Codewars, с задачами по программированию на куче разных языков: от древних Кобола с Фортраном до более молодых Go и Crystal. В качестве мотивации выступает рейтинг, обзываемый тут честью (Honor), решая более сложные задачи (kata), получаем больше опыта и качаемся. Может, даже в рейтинг попадаем :) Простые kata обычно относятся к основным функциям языка и общепринятым вещам вроде форматирования строк и арифметических действий. Очень помогает, когда "пересаживаешься" с одного языка на другой. В более сложных надо будет уже думать головой: как это должно работать и по какому алгоритму... Задачи придумывают, модерируют и оценивают сами пользователи, поэтому обычно баги и ошибки чаще всего правят. Главная фича Codewars - онлайн IDE с запуском написанной программы на сервере и инструментарий для тестирования. Обычно авторы заранее заготавливают пару мелких тестов (Sample Tests) для быстрой