Воскресенье, 06.07.2025, 03:47       
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
ОПЕРАЦИОННЫЕ СИСТЕМЫ
РАБОТА В ОФИСНЫХ ПРОГРАММАХ
ВИДЕОУРОКИ
Опрос
Какой язык программирования наиболее популярен ?
Всего ответов: 12

ID

Главная » 2015 » Октябрь » 26 » Какие алгоритмы должен знать уважающий себя программист?
07:55
Какие алгоритмы должен знать уважающий себя программист?
Что такое хорошая алгоритмическая подготовка?

Да, хорошая алгоритмическая подготовка важна для программиста. И нет, хорошая — это вовсе не заучивание алгоритмов из списка "Самых Важных Алгоритмов, Которые Должен Знать Каждый”. На мой взгляд хорошая алгоритмическая подготовка должна стремиться дать программисту следующие три умения.

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



Очевидно, для этого недостаточно просто знать алгоритмы. Нужно уметь "видеть их”, распознавать возможности их применения.

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

В-третьих, алгоритмическая подготовка должна помогать умело пользоваться готовыми инструментами. Базы данных — это сплошные структуры данных и алгоритмы. Причем на концептуальном уровне довольно простые и понятные — деревья поиска, хэштаблицы, SS-Table, …

Например, зная, что индекс в БД — это просто дерево поиска, несложно понять, какие запросы могут быть выполнены быстро, а какие обречены на full-scan.
Зная, как на каких алгоритмах работает полнотекстовый поиск в Lucene, можно предсказать, какие запросы к Elastic будут давать релевантные ответы, а какие — нет, и даже как это можно доработать.

Если подводить итог:

  • Кроме самих алгоритмов — учитесь их распознавать в задачах реального мира.
  • Прививайте себе привычку анализировать эффективность кода, который вы пишите.
  • Изучайте алгоритмы под капотом у инструментов, которыми вы пользуетесь — это пригодится при их эксплуатации.





Просмотров: 371 | Добавил: Ronaldo | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
УЧЕБНИКИ



Вход на сайт
Календарь
«  Октябрь 2015  »
Пн Вт Ср Чт Пт Сб Вс
   1234
567891011
12131415161718
19202122232425
262728293031
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Облако тегов
    Яндекс.Метрика



    Copyright MyCorp © 2025uCoz