7 ответов на вопрос: зачем программисту надо знать алгоритмы ?

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


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

2. Кандидаты на вакансию приходят с самым разным бэкграундом, каждый может знать какой-то свой зоопарк технологий, у каждого свой уникальный опыт, и по большому счёту единственное, что у них может быть общего — это знание основ computer science. Это хорошо структурированная и массово доступная система научных компьютерных знаний, на самом деле очень даже активно применяемая буквально в каждом проекте. Языки программирования, компиляторы, рантаймы, системы типов, это всё часто результаты серьёзных научных исследований.

3. Как минимум, компания должна убедиться, что вы владеете достаточно универсальным problem solving-ом, и академические алгоритмы позволяют проверить это очень эффективно. Тут не требуютcя знания какой-либо конкретной платформы, фреймворка или инженерного подхода.

4. В каком-то смысле, этот подход действительно создаёт равные условия. Это позволяет увидеть, сколь успешно самые разные люди решают одни и те же проблемы. Конечно и тут есть свои ограничения, однако очень удобно, когда один и тот же академический материал успешно выявляет сильные стороны у кандидатов с сильно разным опытом.

5. Хорошие компании стремятся выявить достаточно универсальных сотрудников. Если человек упёрся в один веб-фреймворк и не интересуется ничем полезным за маленьким загоном своей ежедневной рутины, это показатель, что в современных условиях, когда смена технологий и платформ в проектах происходит быстро и часто, он может сильно отстать от общего ритма.

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

7. Сама ваша реакция на вопросы по алгоритмам уже будет хороший показатель вашей адекватности. Довольно много людей считают хорошим тоном начать читать интервьюеру лекцию о бессмысленности вопросов по алгоритмам. Такое отношение как раз и говорит о том, как (плохо) вы будете выполнять свою работу. Будете ли вы командным игроком, или станете ныть и жаловаться, почему все эти проблемы случаются?

Резюме, что тесты ваших навыков программирования с помощью алгоритмов — это отличный универсальный, простой и хорошо структурированный способ, который будет применяться всегда.

Напомню, что все топовые университеты мира в обязательном порядке и в больших объёмах учат алгоритмам, и это наверное вообще единственная общая тема, которая находится во всех академических компьютерных программах.

А пригодились ли вам алгоритмы в вашей основной работе? Поделитесь своим мнением в комментариях.

Комментарии: