В данном предложении «Иван наконец-то понял, что уроки программирования не бесполезные» придаточная часть – это «что уроки программирования не бесполезные». Эта часть предложения выполняет функцию дополнения и отвечает на вопрос «что именно он понял?», то есть она является изъяснительной.
Изъяснительные придаточные части уточняют или объясняют смысл главной части. Если у тебя есть еще вопросы по русскому языку или другим учебным темам, не стесняйся спрашивать!