Просмотров-75
0

Как изучать алгоритмы решения задач?

Основные подходы к изучению алгоритмов

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

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

Поскольку алгоритмы имеют под собой математическую основу, то для их освоения следует обладать прочными знаниями математики и очень желательно(но не обязательно) иметь алгоритмическое мышление.

Примечание. Для более эффективного усвоения изучаемого материала познакомьтесь с методикой и стилем познания.

Сущность основных рекомендаций к тому как изучать алгоритмы сводится к следующему:

  • изучать алгоритмы решения задач лучше всего по книжкам, но с реальными задачами, а не просто читать про алгоритмы и не использовать их, они быстро забудутся, а ещё интереснее пытаться модифицировать существующий алгоритм и разработать подобный алгоритм самостоятельно;
  • в процессе изучения теории алгоритмов важно абстрагироваться от инструментария, «забыть» о языках программирования; недаром лучшие книги по алгоритмам содержат в себе примеры «программ», реализованных на псевдоязыках, так называемом псевдокоде, что позволяет не задумываться о реализации и тонкостях языка программирования и сконцентрироваться на логике;
  • для начала нужно освоить теоретический фундамент: основные структуры данных, их свойства и методы работы с ними, анализ и сложность алгоритмов, их основные типы и классы, не надо заучивать наизусть все виды сортировок или мудрёных деревьев — это вряд ли возможно и абсолютно бесполезно;
  • после изучения теоретического материала обязательно нужно научиться применять эти знания, используя для этого специализированные ресурсы типа HackerRank, в которых рассматриваются алгоритмы разного уровня сложности, начиная с самого базового, и затрагивающие много разных тем, или свои собственные задачи, но главное для решения любых задач недостаточно знать какой-то базовый алгоритм, нужно уметь приспособить его к конкретной ситуации, модифицировать, совместить с другими подходами;
  • не стоит ориентироваться исключительно на теорию: после изучения каждого алгоритма старайтесь реализовывать его, находить ему применение для какой-либо первой пришедшей в голову задачи и главное, конечно,понимание теории алгоритмов и структур данных поможет вам быстрее находить решения многих повседневных задач, правильно оценивать формальную корректность программ и принципиальную достижимость желаемого результата, не писать код, который тормозит на ровном месте, более глубоко понимать, как работают базы данных и тому подобное;
  • на начальном этапе программирования вообще не рекомендуется углубляться в алгоритмы решения задач и изучать их, потому что это сложная область computer science, и изучать ее без должной подготовки непросто;
  • если Вы хотите что-то понимать в алгоритмах, то Вам поможет учебная литература, например, книга «Грокаем алгоритмы», если знания нужны для подготовки к собеседованию, то полезно повторить основные понятия и алгоритмы и поупражняться в их использовании. Для тренировки решения алгоритмических задач на любом из языков программирования есть специализированные сервисы: HackerRank, Codewars и LeetCode. Используя их возможности надо научиться решать задачи среднего уровня и выше;
  • если Вы хотите лучше решать поставленные задачи, то надо четко определить, алгоритмы из какой области знаний нужно изучить в первую очередь, при этом обращайте внимание на книги с алгоритмами на вашем языке программирования Python, Java и C, C++, С# и т.п.

Вот таковы рекомендации программисту как изучать алгоритмы решения задач, которые можно встретить в интернете. Лично я со всеми согласен, но по каждому можно дискуссировать. Изучение алгоритмов это очень трудоемкий процесс. Поэтому надо изучать алгоритмы не ради алгоритмов, а для того, чтобы решать задачи, выбирая или создавая наилучшие(оптимальные) алгоритмы.

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

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

Книга и карандаш — вот два главных инструмента при изучении алгоритмов решения задач на ЭВМ. Самый тупой карандаш острее самой острой памяти. Если применить к этому правилу алгоритмы и программирование, то алгоритмы это понимание, а программирование — это знания и умения. Особенно это важно при изучении алгоритмов по последовательности математических преобразований решения поставленной задачи, приведенных(формализованных) к форме, удобной для использования ЭВМ.

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

Как изучать алгоритмы решения задач на онлайн курсах

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

Если самостоятельно трудно поддается изучение алгоритмов программирования, то можно воспользоваться специальными курсами. Например, на курсах «Алгоритмы и структуры данных» компании OTUS.RU Вы  сможете расширить свой кругозор и получить опыт реализации классических алгоритмов, который поможет Вам при создании собственных алгоритмов для решения задач различного назначения. В программу курсов входят самые известные прикладные алгоритмы, знание которых, как правило, требуется для программиста.

Именно понимание принципов работы алгоритмов и структур данных позволяет повысить производительность программ и улучшить качество кода.

Хорошо известная команда beONmax подготовила набор из 30+ курсов, которые выйдут (или уже вышли) на beONmax в ближайшие годы.

Сточки зрения изучения алгоритмов и структур данных следует обратить внимание на курс от beONmax «Алгоритмы и структуры данных от А до Я». Это достаточно полное руководство по алгоритмам и структурам данных. Курс практический с домашними заданиями и разбором решений. Присоединяйтесь.

С полным перечнем курсов компании beONmax можно познакомиться, перейдя по ссылке.

Таким образом, изучение алгоритмов на онлайн курсах эффективнее как по времени, так и по трудозатратам.

Заключение

Для создания качественного программного обеспечения требуется хорошая алгоритмическая база программиста, которая формируется как в процессе изучения основ программирования, так и в процессе профессионального образования..

Внимание! Кто хочет своевременно узнавать о выходе новой статьи на сайте должен подписаться.

ПОДПИСКА НА РАССЫЛКУ

Статьи об онлайн курсах обучения

Дистанционное обучение
Обучение программированию
Проектирование информационных систем
 
Реклама. Информация о рекламодателе по ссылкам в статье.

brasm

Пенсионер с 33 - летним педагогическим стажем

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *