Как развить алгоритмические навыки программирования?

Существует такая трудность, даже не трудность , а проблема, захожу на любой ресурс по программированию для решения каких-либо задач и просто встаю в ступор как разработать алгоритм для решения поставленной задачи, причём на работе когда ставят задачи как например написать какой-либо небольшую консольную утилиту для подсчёта трафика нетфлоу, либо TCP-server для приёма и дальнейшей обработки соединений, телеграмм-бота проблем не возникает,либо решаю задачи из devops на codesignal тоже с легкостью, но как дела касаются сортировок,графы,матрицы мозг отключается, может кто сталкивался с такой проблемой? можете посоветовать как правильно себе построить план?
  • Вопрос задан
  • 2995 просмотров
Решения вопроса 3
DevMan
@DevMan Куратор тега Алгоритмы
нет никакого плана, только опыт.
нельзя прочитать/посмотреть что-то и сразу просветиться.
теория даст базу, но без практики эта база ничего не стоит и быстро забудется.
прост решайте задачи по интересующей тематике, и всё придёт само собой.
Ответ написан
Комментировать
@tlbogdanov
Самое легкое, что нужно сделать, это понять - в задачах на hackerrank или где вы их смотрите нет ни одной задачи, которая создана, чтобы Вас завалить. Ни единой. Уверен, за то время, что вы работаете, вы уже изобрели собственный подход к решению рабочих задач и он эффективен и подходит именно вам. Попробуйте применить его в алгоритмических задачках. Представьте, что вы решаете не какую-то "сложную задачу, которую фиг знает как решать", а одну из тех, что вам дали на работе... Просто - вот такую.
И не стесняйтесь гуглить, большинство задач уже прорешано, и посмотреть метод решения - не значит завалить задачу... Вы же хотите принцип понять, а не "нарешать ответственно 100 задач без подглядывания в гугл"
Ответ написан
myjcom
@myjcom
jajabin, попробуйте использовать классический подход.
Есть много книг по алгоритмам, обзоры/отзывы/рецензии можно найти в интернете.
Что лучше/хуже для конкретного индивида может понять только сам индивид. Возможно вам конкретика нужна, "сколько вешать в граммах" или "ткните пальцем"
как правильно себе построить план?

В общем случае план одинаков +/- нюансы конкретного издания. (теория + практика)
Тут главное не распыляться, а начать.
Левитин А.В.
Алгоритмы: введение в разработку и анализ (написана доступным языком, много упражнений для закрепления)
Кратко

5d64febe62b08896920686.png

и Алгоритмические головоломки (немного теории и практика, практика и еще раз практика) этого же автора.

Поллис Г., Хайнеман Дж., Селков С.
Алгоритмы. Справочник с примерами на C, C++, Java ... (поможет понять что где когда и как применять)

Да и еще, тут такое дело
придется немного вспомнить математику и логику уровня старших классов школы, ну или даже 1 курса ВУЗа. Можно и без этого конечно, на уровне Грокаем алгоритмы, но тогда это уже совсем не то, скучно будет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Beshere
@Beshere
Разработчик
Вопрос: а зачем? Если честно, все эти "реверсни-ка строку" встречаются только на собеседованиях. Непонятно, чего хотят увидеть вопрошающие.

Но если надо, вот можно потренироваться на кошках https://simpleprogrammer.com/programming-interview...
Почти наверняка одну из этих задач вам подсунут.
Ответ написан
Комментировать
@kaz_orphan
Алгоритмы вторичны. Начинать надо с системотехнических навыков. Системный анализ и даст вам план. Программирование по сути это моделирование систем.
Ответ написан
Комментировать
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
Вообще алгоритм - это последовательность шагов, стало быть декомпозировать надо, потом снова декомпозировать, пока отдельные части не станут решаемы. Потом архитектурно всё соединяешь и вуаля.

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

Еще помогает брать чужие решения и их разбирать на кирпичики. По первости я только так и вникал в премудрости. Теория у меня всегда шла строго по потребностям и после практики.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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