Обзор литературы

Спецсеминар "Разработка свободного ПО": http://uucode.com/oss2004/. 15-я лекция, 18 декабря 2004.

Введение

Надо саморазвиваться. Важны не только специальные знания, но и общие. "Open minds open books."

В книжных магазинах полки завалены отстоем. Но среди отстоя иногда попадаются интересные книги. Проблема в том, что их не найти.

Я посмотрел на свою книжную полку и решил привести неполный список того, что я прочитал и готов рекомендовать. Знаком (*) помечены книги, обязательные для прочтения.

Список

Ален Голуб "Правила программирования C & C++" или (в онлайн-версии) "Верёвка достаточной длины, чтобы выстрелить себе в ногу"

(*) Фредерик Брукс "Мифический человеко-месяц"

Бьерн Страуструп "Дизайн и эволюция языка C++"

(*) Эдвард Йордон "Путь камикадзе. Как разработчику программного обеспечения выжить в безнадёжном проекте."

Эдвард Йордон "Управление сложными Интернет-проектами"

(*) Tom DeMarco, Tim Lister. "Peopleware: Productive Projects and Teams, 2nd Ed."

Гамма, Хелм, Джонсон, Влиссидес "Приёмы объектно-ориентированного проектирования. Паттерны проектирования"

Андрей Александреску "Современное проектирование на C++"

Krzysztof Czarnecki and Ulrich W. Eisenecker. "Generative Programming - Methods, Tools, and Applications"

Алистер Коберн "Современные методы описания функциональных требований к системам"

Ларри Константин "Человеческий фактор в программировании"

Joel Spolsky статьи на joelonsoftware.com + вышла книга "Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity"

Дж.Фридл. "Регулярные выражения"

Джон Бентли "Жемчужины программирования"

...              /* abcdefgh на 3 */
reverse(0, i-1); /* cbadefgh */
reverse(i. n-1); /* cbahgfed */
reverse(0, n-1); /* defghabc */

Брюс Тейт "Горький вкус Java"

Крэг Ларман "Применение UML и шаблонов проектирования"

Мартин Фаулер "Рефакторинг. Улучшение существующего кода."

Кернинган, Пайк "Практика программирования"

(*) Кернинган, Пайк "Unix. Программное окружение"

Кент Бек "Экстремальное программирование"

Лу Гринзоу "Философия программирования Windows 95/NT"

(*) Paul Graham "On LISP: Advanced Techniques for Common LISP"

Некоторое время назад стали использовать сборку мусора (Java), сейчас становится популярным AOP, макросы всё ещё terra incognita. Однако всё это уже давно есть в Лиспе. Знакомство с ним позволяет изучить новомодные технологии ещё до их появления.

http://www.silicontaiga.ru/home.asp?artId=2429 Список Терехова