@Delyana

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

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

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

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

Войти через центр авторизации
Похожие вопросы
МойСклад Москва
от 140 000 до 200 000 руб.
от 70 000 до 130 000 руб.
ГРАН Software Москва
от 70 000 руб.
22 июл. 2019, в 08:24
100000 руб./за проект
22 июл. 2019, в 07:20
3000 руб./за проект
22 июл. 2019, в 07:13
150000 руб./за проект