• С чего начать изучать алгоритмы?

    @dmshar
    Нужно понять, кем вы стремитесь стать - кодировщиком или разработчиком.
    Если кодировщиком - то выучили язык и бегом - по готовому, кем-то составленному ТЗ - писать программы и деньги зарабатывать.
    Если разработчиком - то без знания алгоритмов вам не обойтись. Вы сами должны будете уметь хотя-бы из имеющихся реализаций выбрать наиболее подходящую или эффективную. А возможно и модифицировать их именно с учетом конкретного приложения. А "рядом" с алгоритмами обычно изучаются структуры данных - без них разработчику (а не кодировщику) - тоже никак.
    Этап изучения языка - это база. Другое дело, что учить "голый" язык бывает скучновато. И это обучение "разбавляют" всякими простенькими задачами -в том числе из области алгоритмизации. Ну, к примеру, поиск максимального элемента в массиве, или простейшие сортировки. Но это не более, чем база. Хотя многие почему-то гордо считают, что это и есть изучение "алгоритмов и структур данных".
    А этап изучения алгоритмов - это уже более высокая ступень совершенствования в профессии.
    Но и изучаются эти две дисциплины по-разному. Изучение языка - это как в школе. Многие вещи надо помнить наизусть. Вы не будете за синтаксисом каждого оператора лазить в Google. Знания языка, умение кодить - это как навык, который должен срабатывать даже во сне. А вот алгоритмы и структуры данных изучаются уже действительно на уровне понимания. Необходимо не запоминать, но понимать, какие они есть, когда они могут оказаться полезными, в чем отличие одного от другого. А при случае - суметь задать умный (!!!) вопрос Google и в море "шлакоответов" найти - и главное понять - правильный.
    Что-до книг. Кормен и Лейзерсон для новичка, действительно, сложноват.
    Но во-первых, есть его "прямая адаптация": Бхаргава А. - Грокаем Алгоритмы. Иллюстрированное пособие для программистов и любопытствущих - 2017. То же самое, но проще.
    Во-вторых, тот же Кормен написал еще одну книгу: Кормен Алгоритмы. Вводный курс. Вот ее можно уже рекомендовать и для новичка.
    Кроме того, могу порекомендовать сайты, с вполне доступными материалами:
    algolist.manual.ru
    aliev.me/runestone
    И в сети - если совсем лень - есть сегодня куча неплохих видеокурсов. Так что - удачи.
    Ответ написан
    Комментировать
  • С чего начать изучать алгоритмы?

    @dimoff66
    Кратко о себе: Я есть
    Не нужно никогда и ни при каких обстоятельствах учить алгоритмы. Нужно знать об их существовании и при необходимости подсмотреть. Все необходимые алгоритмы инкапсулированы в методы языков. Вам не нужно знать алгоритмы сортировки, потому что в методах sort языков они реализованы более менее оптимально. Теоретически может возникнуть ситуация, когда необходимо сделать сортировку супербыстрой, но для новчика это вообще не является задачей №1 и даже номер 5.

    Поэтому только язык и реальные проекты, где вы пишете все сами.
    Ответ написан
    Комментировать
  • С чего начать изучать алгоритмы?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Во-первых, сначала язык, потом алгоритмы. Во-вторых, Кормен со старта - это жестоко. Ещё бы Кнута посоветовали. Возьмите лучше "Структуры данных и алгоритмы Java" Роберта Лафоре, зайдёт намного проще. В-третьих, алгоритмы не надо заучивать и не надо с ними знакомиться, их надо понять.
    Ответ написан
    Комментировать