В данном списке собраны лучшие и проверенные бесплатные книги для обучения программированию open source приложений для начинающих.
Программирование может обеспечить вам крутую карьеру. Да, это будет сложно, иногда вам придется работать в команде, учиться думать по-другому. И самое главное, это улучшит вашу жизнь, нет, действительно. А учиться эффективнее вам помогут книги из этого списка.
Многим из тех, кто хочет стать программистом, нужен пинок. Возникает много вопросов о том, как лучше сделать ту или другую фичу, как правильно изучать. Или о том, должен ли я читать очередную статью "Научитесь [ваш_язык_программирования] за 24 часа"?
Эта подборка полезных, а главное, бесплатных книг о программировании. Вы можете копировать, распространять и обучаться по ним. Последняя книга в этом списке не очень подходит для новичков, но после прочтения первых семи я рекомендую продолжить свое ознакомление с программированием именно с нее.
Introduction to Computing: Explorations in Language, Logic, and Machines
David Evans (266 страниц)
Эта книга описывает самые основы программирования. Для примеров используются языки Python и Scheme. Я считаю, что это лучшая книга для всех начинающих программистов.
Автор концентрируется на описании вычислительного процесса с помощью процедур, подсчете стоимости их выполнения и описании того, что можно посчитать на компьютере, а что нет.
Structure and Interpretation of Computer Programs
Harold Abelson, Gerald Jay Sussman и Julie Sussman (688 страниц)
Это классика в мире программирования, так сказать, мастрид.
Материал этой книги является вступлением к курсу информатики в MIT. Для обучения авторы испольуют язык LISP.
Building Skills in Object-Oriented Design
Steven F. Lott (285 страниц)
Этак книга учит не просто писать ОО-код, а проектировать его. В качестве языка программирования в книге используется Python, а в процессе прочтения вам предстоит написать такие игры, как рулетка, кости и блэкджек.
Foundations of Programming
Karl Seguin (79 страниц)
Эта короткая книга является сборкой постов, которые помогут вам в разработке. В книге есть такие разделы:
- Проблемно-ориентированное программирование
- Настойчивость
- Внедрение зависимостей
- Юнит-тестирование
- ORM
- Возвращение к основам: Память
- Возвращение к основам: Исключения
- Возвращение к основам:Прокси
Producing Open Source Software: 2-е издание
Karl Fogel (232 страницы)
Producing Open Source Software - это очень простая и интересная книга об open source-движении. В ней описывается опыт больших проектов, ожидания пользователей и разработчиков. Эта книга описывает такие темы:
- Основные советы при запуске проекта
- Технические аспекты
- Социальная и политическая инфраструктура
- Как получить финансирование для собственного проекта
- Искусство общения
- Пакование и распространение
- Лицензия, копирайт и патенты
The Architecture of Open Source Applications
Amy Brown и Greg Wilson (432 страницы)
В этой книге описана архитектура двадцати пяти больших приложений с открытым кодом. Она описывает, как это ПО устроено, как взаимодействуют разные его части, почему именно так, а не иначе и какие уроки из этого вынесли разработчики. Вот лишь некоторые приложения из книги: Asterisk, Audacity, Eclipse, LLVM, Sendmail и VTK.
The Architecture of Open Source Applications, второй том
Amy Brown и Greg Wilson (390 страниц)
В этой книге авторы двадцати четырех приложений с открытым кодом описывают, как устроены их детища, для чего нужна каждая его часть, как они общаются между собой и чему они научились в процессе разработки.
Книга описывает такие проекты, как GDB, Git, GNU Mailman, Moodle, nginx, ZeroMQ и другие.
Advanced Linux Programming
Mark Mitchell, Jeffrey Oldham и Alex Samuel (269 страниц)
Эта книга постепенно знакомит вас с главными концептами и техниками, а также дает примеры их использования. В отличие от прошлых книг, она не предназначена для новичков. Для комфортного чтения вы должны уметь писать на С и знать его стандартную библиотеку.
Эта книга для вас, если вы хотите:
- Писать ПО для Linux
- Писать программы с использованием мультипроцессорности, мультипоточности, а также пользоваться аппаратными средствами
- Улучшать существующие программы
- Понять особенности Linux, включая его ограничения и специальные возможности
Комментарии