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

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

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

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

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

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

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

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

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

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

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