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

 Т.к. я буду поступать в вуз на программирование, то решила уже сейчас, находясь в 10 классе, начать учиться этому. Я уже освоила основы Python 3, C++, а также сейчас осваиваю HTML, CSS и JS. Но я столкнулась с такой проблемой, что не могу придумать более простой алгоритм.  

Это особенно видно на простых задачах, где многие другие люди пишут крайне простой, но рабочий алгоритм, занимающий всего пару срок, пока у меня этих строк все больше и больше... Причем, перенести алгоритм на ЯП мне труда не составляет, но эта разница в простоте самого алгоритма, меня расстраивает. Я понимаю, что это скорее всего, из-за недостатка опыта (всего 4 месяц учусь этому, до этого опыт кодить был только на паскале), но хотелось бы быстрее научиться придумывать более простые алгоритмы. Что можно сделать в такой ситуации? 

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

Ищите книжки со словом алгоритмы в названии. Если осваиваете С++, могу посоветовать: Sedgewick R. / Седжвик Р. - Algorithms in C++, Third Edition / Фундаментальные алгоритмы на C++. Есть на торрентах.  

Хорошая книжка: Бхаргава А. - Грокаем Алгоритмы. Иллюстрированное пособие для программистов и любопытствущих. Тоже на торрентах есть. 

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

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

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

Удачи и терпения на этом нелёгком пути :) 

 Это просто опыт.  
  

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

 Но я Си учил не по учебникам, просто я работаю волшебником...  
  

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

Другое дело вы уверены, что хотите провести жизнь перед компьютером, копаясь в коде? Деньги будут, но настоящее удовлетворение и счастье вряд ли. 

 При чём тут язык? Алгоритмы пишут обычно на псевдоязыке (что-то типа Паскаля или Питона).  

Если вам интересен функциональный подход, почитайте Haskell или F#. 

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