Получи случайную криптовалюту за регистрацию!

Нужны ли нам алгоритмы? Алгоритм – это последовательность дей | Mobile Pet

Нужны ли нам алгоритмы?

Алгоритм – это последовательность действий для решения конкретной задачи. Компьютерная программа – пример алгоритма, только очень сложного. Для упрощения процесса разработки мы дробим её на более мелкие алгоритмы, пишем и тестируем их по отдельности, собираем результат, как конструктор. Нужно ли программистам знать что-то еще про алгоритмы?

На большинстве технических собеседований, которые мне доводилось пройти, первые несколько вопросов были про алгоритмы и структуры данных. Очевидно, эти знания важны, и они должны быть куда более глубокими, чем поверхностные мысли из первого абзаца. В первую очередь необходимо понимать, что почти всегда одну и ту же задачу можно решить несколькими способами. И от выбора алгоритма зависит стабильность и быстродействие вашей программы.

Для сравнения разных алгоритмов используется вычислительная сложность (О-большое). Это величина показывает как быстро растет время выполнения алгоритма в зависимости от размера входных данных. Например, алгоритм пузырьковой сортировки имеет сложность O(n^2), а быстрой – O(n*log(n)). Это означает, что для больших объемов данных лучше использовать быструю сортировку. Я ставлю под сомнение необходимость знания всех алгоритмов сортировки, но они являются очень показательным примером и отлично подходят для осознания темы.

Иногда слышу такое мнение: «мобильная разработка больше про UI, алгоритмы здесь не важны». Отчасти так и есть. Если сравнить её с бэкенд-разработкой, слой логики действительно меньше. Но это не значит, что ее там совсем нет. Она присутствует всегда – преобразование данных, сортировка списков, фильтрация и т.д., и если нанять программиста, который плохо разбирается в алгоритмах, вы рискуете теми самыми быстродействием и стабильностью. Вот почему технические собеседования начинают с этой темы. И именно поэтому разработчикам стоит разбираться в ней.
#development #management