@Yonghwa
121

Важно ли уметь реализовывать структуры данных и алгоритмы?

Я понимаю как работают 3-5 сортировок, представляю их плюсы и минусы.
Будет ли плюсом умение их написать? Т.е они есть, ты их используешь и понимаешь, но всех деталей реализации не улавливаешь.
Тоже самое и со структурами.
Я понимаю разницу между hash map и vector, и представляю, когда какую взять, но я не знаю деталей реализации. Стоит вообще тратить на это время?

Я писал реализации сортировок и поиска на Java и Python, просто для того, чтобы понимать, как и что работает, но, как показывает практика, крайне маловероятно, что придется это каким-то образом применять в будущем.

Почему я это вообще спрашиваю?
Минусом, знание реализаций тех или иных структур и алгоритмов точно не будет, а вот будет ли плюсом?
  • Вопрос задан
  • 503 просмотра
Пригласить эксперта
Ответы на вопрос 3
somenumboola
@somenumboola
Team Lead in B-online Solutions
Качество реализации структур данных и алгоритмов в проекте определяет:
- Масштабируемость (scalability)
- Поддерживаемость (maintainability)
- Производительность (performance)

Если вы штампуете сайты на вордпрессе или магазины на битриксе и джумле пачками никакого смысла заморачиваться о этих понятиях нет, но судя по вашим же задачам, у вас более масштабная направленность. В проектах с высокой посещаемостью, big data, или на поддержке без знания алгоритмов и структур данных не обойтись. В поддерживаемых high-load проектах с big data, алгоритмы и структуры данных это в принципе главное о чем вам нужно думать.
Ответ написан
vlreshet
@vlreshet
Full-stack PHP web-developer
Смотря куда устраиваться. Если работа тесно связана именно с алгоритмизацией и быстродействием (разработчик систем баз данных, разработчик игровых движков, и т.д.) - тогда естественно плюс. Но на обычных проектах (бизнес-логика, геймдев, веб-разработка, десктоп-приложения) это не сильно пригодится. Безусловно, алгоритмы и структуры надо знать чтобы понимать как оно под капотом работает, но в работе скорее будете использовать встроенную в язык функцию сортировки, массивы, списки, а не городить свои велосипеды.
Ответ написан
angrySCV
@angrySCV
machine learning, programming, startuping
для разработчика - жизненно важно, для внедрителя готовых решений - совсем не важно.
решите для себя кем хотите быть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы