Задать вопрос

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

Знаю Delphi, PHP, немного ASP, HTML, CSS, JS.
Но возник вопрос... как научиться программировать?
Не шаблонно вспоминать что и где применяется, используя CMS, Фреймворки и кучу плагинов.
А именно с точки зрения правильного когда, с пониманием парадигм и паттернов, с полным осознанием ООП и фишек типа синглтон, плейсхолдер и всяческие интерполяции. Что бы точно понимать архитектуру и возможности решения той или иной задачи.

Хочу делать игры на Unity или UE4. Пока склоняюсь к первому движку, но окончательно не решил. Думаю понимая теорию и изучая C# можно будет легко перейти на C++ и наоборот. Так что тут особая разница не чувствуется.
Если есть возможность и там и там использовать Java, то согласен и на него.

Решил начать все с нуля, так сказать "наплывом", освежить прошлые знания и приобрести новые. Но не могу составить систематизированный перечень литературы.
Что бы было понятней, я открыл статью в Вики "парадигмы программирования", и был несколько озадачен, когда начал идти по списку составляющих, где императивное программирование сразу же описывалось как противоположное декларативному. Системности в этом не увидел, потому как, условно, декларативное программирование я еще не знаю, т.е. не дошел до него по статье. Грубо говоря нельзя объяснять человеку что-то, терминами которые он не знает.

Начать с нуля, это с самых основ, но с упором на то, что бы не просто взять общие знания, которые дают в школах и универах, а именно подготовить себя как профессионала. Начиная например с понятий алгоритма, принципов работы автоматов (Машины Тьюринга), принципов работы памяти. Насколько надо далеко уйти в начало, я не знаю, и оставлю это на ваше усмотрение.

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

Разумеется список хочется получить систематизированным, и в прямой последовательности. Сначала читаем эту книгу, затем эту, потом эту, а на этом этапе определяем конкретный язык для изучения и читаем эту книгу.
Допустимы отступления в виде "что бы лучше понимать о чем речь на этом этапе, можно прочитать еще вот эту книгу", с условием что не забегается вперед по этапам.
  • Вопрос задан
  • 5790 просмотров
Подписаться 57 Оценить 2 комментария
Ответ пользователя Дмитрий К ответам на вопрос (5)
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
Если бы имел машину времени, чтоб вбить "Я-в-прошлом" то что надо читать, то это было бы так:
1. Таненбаум про его Операционные системы
2. Таненбаум про аппаратное обеспечение
3. Язык программирования Python по книге Лутза и при этом чтение "Structure And Interpretation Of Computer Program".
4. Только после этого приступил бы к чтению Керниган, Ричи "Язык С"
5. Попытался бы влиться в какой-нибудь OpenSource проект

Далеее уже следуют попытки понять к чему душа лежит, толи вебу, толи linux kernel module, толи еще что.
В течении этих пункто НЕПРЕРЫВНО улучшать английский. Большинство серьезной литературы о новых технологиях появлятся сначала на английском.
Ответ написан