Страницы

Поиск по вопросам

воскресенье, 24 ноября 2019 г.

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


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

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

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




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

    


Ответы

Ответ 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-проекты. Фронтовые очерки» Стив Макконнелл — «Сколько стоит программный проект» Джин Ким, Кевин Бер, Джордж Спаффорд — «Проект «Феникс». Роман о том, как DevOp меняет бизнес к лучшему». Синтаксический разбор и компиляция Compilers: Principles, Techniques, and Tools, Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman Русский перевод: Компиляторы: принципы, технологии и инструментарий, Альфред Ахо, Моника С. Лам, Рави Сети, Джеффри Ульман. Известна как «Книга Дракона».

Ответ 2



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

Комментариев нет:

Отправить комментарий