Как научиться придумывать более простые алгоритмы, для решения любой задачи?

Т.к. я буду поступать в вуз на программирование, то решила уже сейчас, находясь в 10 классе, начать учиться этому. Я уже освоила основы Python 3, C++, а также сейчас осваиваю HTML, CSS и JS. Но я столкнулась с такой проблемой, что не могу придумать более простой алгоритм.
Это особенно видно на простых задачах, где многие другие люди пишут крайне простой, но рабочий алгоритм, занимающий всего пару срок, пока у меня этих строк все больше и больше... Причем, перенести алгоритм на ЯП мне труда не составляет, но эта разница в простоте самого алгоритма, меня расстраивает. Я понимаю, что это скорее всего, из-за недостатка опыта (всего 4 месяц учусь этому, до этого опыт кодить был только на паскале), но хотелось бы быстрее научиться придумывать более простые алгоритмы. Что можно сделать в такой ситуации?
  • Вопрос задан
  • 673 просмотра
Решения вопроса 2
Алгоритмы на большинство случаев жизни уже давно придуманы и никто не занимается придумыванием их заново. Вы же теорему Пифагора заново не придумываете каждый раз?

Ищите книжки со словом алгоритмы в названии. Если осваиваете С++, могу посоветовать: Sedgewick R. / Седжвик Р. - Algorithms in C++, Third Edition / Фундаментальные алгоритмы на C++. Есть на торрентах.
Хорошая книжка: Бхаргава А. - Грокаем Алгоритмы. Иллюстрированное пособие для программистов и любопытствущих. Тоже на торрентах есть.
Ответ написан
sgjurano
@sgjurano
Разработчик
Классический подход выглядит так: смотрим на задачу и пытаемся понять как мы будем её решать руками, рассматриваем разные варианты задачи, ошибаемся, пробуем ещё раз, знакомимся с ней одним словом. Потом полученное решение пытаемся формализовать и описать с помощью языка программирования.

Я, когда проходил этот этап, больше всего почерпнул из книги "Математика это просто": https://www.ozon.ru/context/detail/id/31172916/

Несмотря на слово "математика" в названии, там речь идёт о том, как научиться решать задачи, для которых в голове нет готового решения.

Удачи и терпения на этом нелёгком пути :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
Это просто опыт.

А ещё может быть дело в незнании возможностей языка и стандартной билиотеки. К примеру, если не знать, что так можно, то вместо r = [a.foo() for a in b if a is not null] придётся написать много кода.

Ответ написан
@dimoff66
Кратко о себе: Я есть
Но я Си учил не по учебникам, просто я работаю волшебником...

ЗЫ Это внутреннее ощущение, оно появляется действительно с опытом, может пройти год или два коммерческой разработки. Ты вдруг смотришь на свой старый код и ясно понимаешь как его оптимизировать. Это магия, этому нельзя научиться.

Другое дело вы уверены, что хотите провести жизнь перед компьютером, копаясь в коде? Деньги будут, но настоящее удовлетворение и счастье вряд ли.
Ответ написан
@AlexSku
Программист по автоматике
При чём тут язык? Алгоритмы пишут обычно на псевдоязыке (что-то типа Паскаля или Питона).
Если вам интересен функциональный подход, почитайте Haskell или F#.
Ответ написан
@PlugIN
Little Programmer
В программировании может нравиться сам код, сами языковые конструкции. Если это интересно, то все равно, какая прикладная область, хотя желательно, чтобы это была интересующая Вас сфера: моделирование физических процессов, гэймдев, энтерпрайз приложения.
Ответ написан
Olek1
@Olek1
Enterprise
Надо обладать хорошими математическими знаниями. Поищите учебники 60 годов тогда преподавали, либо новые на английском. Ну и книги конечно по алгоритмам почаще читать.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
20 марта 2019, в 01:07
1000 руб./за проект
20 марта 2019, в 00:27
2000 руб./за проект
19 марта 2019, в 23:14
6000 руб./за проект