Поздравляем с завершением третьей недели CS50! В этой части курса вы столкнулись с алгоритмами сортировки и поиска. Их изучают практически на всех программистских курсах и профильных вузах, но при этом дискуссии о том, нужны ли алгоритмы «рядовому» разработчику не утихают годами.

А всё потому, что в промышленном программировании (именно в нём занято процентов 90 всех девелоперов мира) «рулит» объектно-ориентированный подход, и все основные алгоритмы уже давно написаны (причём в лучшем их виде) и доступны для общего использования. Это значит, что с очень высокой долей вероятности в процессе реальной работы вы ни разу не столкнётесь с необходимостью реализовать алгоритм сортировки самостоятельно.

Алгоритмы важны:

  • Для формирования программистского мышления.
  • Для прохождения собеседований.
  • Для работы в специфических наукоемких областях: Big Data, моделирование реальных процессов, отчасти — разработка компьютерных игр.

Если вы планируете работать в одной из вышеперечисленных отраслей — изучайте математику и налегайте на алгоритмы. В остальных случаях — пробегитесь по основным алгоритмам, реализуйте их для тренировки мозгов (только убедитесь, что реализовали их правильно!), и повторяйте их перед собеседованиями.

Разумеется, и нашем в курсе JavaRush есть задачки на сортировку, поиск и прочие «головоломки». Однако отдельно мы теорию алгоритмов не изучаем, поскольку главная цель JavaRush — научить будущего программиста языку Java и показать ему то, что скорее всего его ждет на работе (а это вовсе не популярные алгоритмы). Тем не менее, решать такие задачи очень полезно. Упражнения на сортировку доступны всем, кто оформил подписку на курс. Они располагаются в конце многих уровней JavaRush. Решайте и проверяйте!