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

157
30 октября 2021, 05:30

Рекомендуемая литература и документация по знаниям и навыкам разработки, не привязанным к конкретным языкам и платформам.

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

Дополнения к ответу всячески приветствуются!

Данный перечень входит в поддерживаемый сообществом Сборник учебных ресурсов по программированию.

Answer 1
Архитектура ПО
  • Structure and Interpretation of Computer Programs - 2nd Edition. Harold Abelson, Gerald Jay Sussman, Julie Sussman

    Русский перевод: Структура и Интерпретация Компьютерных Программ. Харольд Абельсон, Джеральд Джей Сассман

Алгоритмы и структуры данных
  • Data Structures & Algorithms in Java. Robert Lafore. 2002

    Русский перевод: Структуры данных и алгоритмы Java. Роберт Лафоре. 2012 г.

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

  • The Algorithm Design Manual. Steven S Skiena. 2008

    Русский перевод: Алгоритмы. Руководство по разработке. Стивен Скиена. 2014 г.

  • Introduction to Algorithms, 3rd Edition. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. 2009

    Русский перевод: Алгоритмы. Построение и анализ. Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн. 2015 г.

  • The Art of Computer Programming. Donald E. Knuth. 2011

    Русский перевод: Искусство программирования. Дональд Э. Кнут. 2015 г.

  • Algorithms + Data Structures = Programs. Niklaus Wirth, 1976 (or Algorithms + Data Structures. 2004.

    Русский перевод: Алгоритмы + структуры данных = программы. М.: Мир, 1985, Алгоритмы и структуры данных. М.: Мир, 1989, Алгоритмы и структуры данных. Новая версия для Оберона. М.: ДМК Пресс, 2010. Старая версия книги, в отличие от новых, содержит подробно разобранный компилятор простого языка.

Проектирование и стиль кода
  • Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

    Русский перевод: Приёмы объектно-ориентированного проектирования. Паттерны проектирования. Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидс

  • Patterns of Enterprise Application Architecture. Martin Fowler

    Русский перевод: Архитектура корпоративных программных приложений. Мартин Фаулер

  • Domain-Driven Design: Tackling Complexity in the Heart of Software. Eric Evans

    Русский перевод: Предметно-ориентированное проектирование. Структуризация сложных программных систем. Эрик Эванс

  • «Совершенный код» (Code Complete). Стив Макконнелл

  • «Рефакторинг. Улучшение существующего кода». Мартин Фаулер
  • «Чистый код. Создание, анализ и рефакторинг» (Clean Code: A Handbook of Agile Software Craftsmanship). Роберт Мартин
Навыки разработчика
  • Эндрю Хант, Дэвид Томас — «Программист-прагматик. Путь от подмастерья к мастеру»
Организация процесса разработки
  • Том ДеМарко — «Deadline. Роман об управлении проектами»
  • Роберт Мартин — «Быстрая разработка программного обеспечения»
  • Джоэл Спольски — «И снова о программировании».
  • Джо Мараско — «IT-проекты. Фронтовые очерки»
  • Стив Макконнелл — «Сколько стоит программный проект»
  • Джин Ким, Кевин Бер, Джордж Спаффорд — «Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему».
Синтаксический разбор и компиляция
  • Compilers: Principles, Techniques, and Tools, Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman

    Русский перевод: Компиляторы: принципы, технологии и инструментарий, Альфред Ахо, Моника С. Лам, Рави Сети, Джеффри Ульман. Известна как «Книга Дракона».

Answer 2

Книжки и теория это хорошо, а для практики я рекомендую проект Эйлера (задачи на русском).
В каждой задаче есть набор данных с готовым ответом, на котором можно обкатать алгоритм. Но задачи устроены так, что за вменяемое время в лоб не решаются, чтоб узнать ответ - часто приходится изобретать более оптимальный алгоритм после того, как с тестовым набором данных у вас все сойдется.
Полученный ответ можно проверить, и если он правильный - то откроется ветка форума, где участники оставляют свои варианты решений на разных языках.
Рекомендую всем)

READ ALSO
SFML, View и отрисовка

SFML, View и отрисовка

Подскажите, пожалуйста, отрисовывает ли SFML то, что находится за пределами используемого вида?

82
Свой тип данных с границами в C++

Свой тип данных с границами в C++

Мне нужно создать тип данных Percent, который бы хранил в себе только целые числа от 0 до 100, и чтобы логика была такая:

103
При клике на ссылку закрытие меню (jquery)

При клике на ссылку закрытие меню (jquery)

У меня есть меню для мобильной версии; я не силен в js и jqueryЯ не понимаю, как сделать так, что бы при нажатии на ссылку меню закрывалось

111
Google website Mobile-friendly Тест с провалами

Google website Mobile-friendly Тест с провалами

Есть сайт Ссылка который я максимально пытаюсь оптимизировать под разные устройстваПока что работаю с главной странницой

111