Я обычно объясню необходимость изучения алгоритмов примерно так.
Представте, вы учитесь играть на музыкальном инструменте и хотите стать музыкантом.
Не тем, который "три аккорда - любая мелодия" а настоящим, классным исполнителем неважно чего - хоть Битлз, хоть Бетховена, хоть Моцарта - но именно классным.
Ежу понятно, как идти к этой цели.
- Сначала играем гаммы. Долго, упорно. до автоматизма.
- Потом играем этюды. Да это скучновато, да это точно не Битлз, да мелодия не ахти -но там есть тысячи пассажей и приемов, от простых к сложным. Вот их мы осваиваем, постепенно, повышая свое мастерство. Шаг за шагом, с каждым этюдом или с каждой адаптированной для новичков мелодией приобретаем навыки игры все более и более сложных "комбинаций нот".
- И только потом учимся играть "настоящую" музыку.
Попытки перескочить этот естественный путь развития приедет к тому, что "для себя" вы играть может быть и научитесь, но вот слушать вас толпы зрителей - вряд-ли согласятся добровольно.
Ничего не напоминает?
Гаммы -- синтаксис языка программирования и простейшие задачи из учебников. Даже если в этих учебниках есть примеры "как бы сложных" проектов - игр, решалок и пр. - это все равно с точки зрения профессионала не более, чем гаммы. И научившись этому кодировщиком вы станете, а вот алгоритмическое мышление развить - врят-ли.
Этюды -- вот это и есть алгоритмы. На самом деле этот курс надо рассматривать не как последовательое изучения предмета (как математика, физика, химия, история..) а как мастер-класс, в котором вам показывают, как подойти к задаче, с какой стороны ее проанализировать, как разложить на последовательность элементарных кирпичиков и как потом эти кирпичики сложить в стройную конструкцию. По сути вас учат алгоритмически думать, тренировать себя для того, что-бы потом, освоив эти навыки уметь самостоятельно "играть любую мелодию"=составлять любую программу от идеи до реализаци, и составлять ее так, что-бы она была по возможности эффективной, читабельной и масштабируемой.
Конечно, изложение выше - это некое упрощение, можно сказать краткое объяснение на пальцах для новичков. Но суть от этого не меняется. И алгоритмы - есть обязательное (одно из многих других, кстати!) условие превращения "кодировщика" в "разработчика", даже если этот разработчик никогда сам в жизни не будет писать алгоритм сортировки или обхода графа.
Вот как-то так.