15 книг от Bolide Software Bolide Software
Программист должен читать книги! Иначе - никакого развития, болото, потеря мотивации. В этой подборке нет книг, касающихся какого-то определенного языка программирования, здесь книги, прочесть которые будет полезно любому развивающемуся (!) программисту. Поставьте закладку и читайте постепенно эти книги из списка, это не даст вашему мозгу расслабиться и будет держать его в тонусе. А если вы ищете подарок программисту, эта подборка - ваше спасение :)
Не заставляйте меня думать - Круг Стив

Не заставляйте меня думать Круг Стив

Впервые изданная в 2000 году, книга "Не заставляйте меня думать", написанная гуру юзабилити Стивом Кругом, успела помочь сотням тысяч веб-дизайнеров и разработчиков освоить принципы интуитивной навигации и информативного дизайна. Благодаря своей практичности, остроумию и здравому смыслу, эта книга стала одним из самых любимых и рекомендуемых изданий на тему юзабилити.

Сегодня Стив вернулся к своим читателям с новыми знаниями и дополненными представлениями о юзабилити, пересматривая правила, сделавшие книгу "Не заставляйте меня думать" классикой. Автор освежил примеры, а также добавил новую главу о юзабилити для мобильных устройств. Книга по-прежнему небольшая, хорошо иллюстрированная и, что важнее всего, увлекательная.



Мифический человеко-месяц, или Как создаются программные системы - Брукс Фредерик

Мифический человеко-месяц, или Как создаются программные системы Брукс Фредерик

Эта книга - юбилейное (дополненное и исправленное) издание своего рода библии для разработчиков программного обеспечения во всем мире, написанное Бруксом еще в 1975 году. Тогда же книга была издана на русском языке и давно уже стала библиографической редкостью. В США полагают, что без прочтения книги Брукса не может состояться ни один крупный руководитель программного проекта.

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

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

В предлагаемой книге описываются простые и изящные решения типичных задач, возникающих в объектно-ориентированном проектировании. Паттерны появились потому, что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме. Авторы излагают принципы использования паттернов проектирования и приводят их каталог. Таким образом, книга одновременно решает две задачи. Во-первых, здесь демонстрируется роль паттернов в создании архитектуры сложных систем. Во-вторых, применяя содержащиеся в справочнике паттерны, проектировщик сможет с легкостью разрабатывать собственные приложения. Издание предназначено как для профессиональных разработчиков, так и для программистов, осваивающих объектно-ори�...

Эффективная работа с унаследованным кодом - Майкл К. Физерс

Эффективная работа с унаследованным кодом Майкл К. Физерс

Учитесь извлекать максимум пользы из унаследованных систем, повышая их производительность, функциональность, надежность и сопровождаемость!
Можете ли вы без особого труда изменить код и тут же получить ответную реакцию на внесенные изменения? Насколько понятен этот код? Если вы ответите на эти вопросы отрицательно, значит, вы имеете дело с унаследованным кодом и понапрасну тратите время и средства на разработку.
В своей книге Майкл Физерс предлагает полноценные стратегические приемы эффективной работы с крупными базами унаследованного нетестированного кода. В основу этой книги положен материал, подготовленный автором к известным семинарам, организуемым компанией Object Mentor, включая приемы, которым автор обучил сотни разработчиков, технических руководителей и тестирующих программное обеспечение подчинять себе непослушные унаследованные системы.
В этой книге освещаются следующие вопросы:
Представление о механизмах внесения изменений в программное обеспечение, включая ввод новых свойств, устранение программных ошибок, улучшение структуры кода, оптимизацию производительности. Перенос унаследованного кода в средства тестирования. Написание тестов, препятствующих внесению новых ошибок в код. Применение методов, подходящих для любого языка или платформы, с примерами кода на Java, C++, C и C#. Точное выявление мест в коде, где требуется внести изменения. Работа с унаследованным кодом, который не является объектно-ориентированным. Обращение с приложениями, у которых, на первый взгляд, нет вообще никакой структуры.
Кроме того, в этой книге представлены 24 способа разрыва зависимостей, помогающих работать с элементами программного обеспечения обособленно, чтобы сделать внесение изменений в код более безопасным.

Чистый код. Создание, анализ и рефакторинг. Библиотека программиста - Роберт Мартин

Чистый код. Создание, анализ и рефакторинг. Библиотека программиста Роберт Мартин

Даже плохой программный код может работать. Однако если код не является "чистым", это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и "укрощение".
Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги - концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и "запахов кода", собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.

Совершенный код. Мастер-класс - С. Макконнелл

Совершенный код. Мастер-класс С. Макконнелл

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

Путь программиста - Джон Сонмез

Путь программиста Джон Сонмез

Любой программист - прежде всего, человек со своими достоинствами и недостатками. Но в то же время программист - это интеллектуал, человек, постоянно занятый решением задач, анализом требований, исправлением ошибок, взаимодействием с коллегами и заказчиками. Наконец, программист - это человек, регулярно испытывающий серьезный стресс, вынужденный укладываться в жесткие сроки и просто обязанный постоянно самосовершенствоваться как профессионал и человек. Эта книга содержит исчерпывающую информацию о том, что требуется для выстраивания успешной карьеры программиста, помогает IT-специалистам лучше понять свою профессию и коллег, всегда оставаться востребованным на рынке труда, целенаправленно и результативно развиваться, а также получать от любимой работы настоящую самоотдачу и подлинное удовольствие.

Алгоритмы. Построение и анализ - Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн

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

Книга "Алгоритмы. Построение и анализ" удачно объединяет в себе полноту охвата и строгость изложения материала. Много книг, посвященных алгоритмам, отличается строгостью изложения материала, но страдает определенной неполнотой; другие книги охватывают огромный объем материала, но недостаточно строго излагают его. В книге "Алгоритмы. Построение и анализ" описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки. Каждая глава книги относительно самодостаточна и может использоваться в качестве отдельной темы для изучения. Алгоритмы в книге "Алгоритмы. Построение и анализ" описаны простым человеческим языком и с применением псевдокода, который понятен любому, кто хоть в небольшой степени знаком с программированием, а пояснения принципов их работы даны без излишней математической строгости и требуют лишь элементарных знаний.
Первое издание книги "Алгоритмы. Построение и анализ" давно стало стандартным справочным руководством для профессионалов и учебным пособием для университетов. Второе издание было дополнено новыми главами, раскрывающими такие темы, как вероятностный анализ и рандомизированные алгоритмы, линейное программирование. Третье издание также существенно дополнено и пересмотрено. В него вошли две совершенно новые главы, посвященные деревьям ван Эмде Боаса и многопоточным алгоритмам, а глава, посвященная рекуррентности, существенно расширена. Изменена подача такого материала, как динамическое программирование и жадные алгоритмы, и введено новое понятие потока, основанного на ребрах, в материале о транспортных сетях. В третье издание книги "Алгоритмы. Построение и анализ" также было добавлено множество новых упражнений и задач.
Фундаментальный труд "Алгоритмы. Построение и анализ" известных специалистов в области информатики достоин занять место на полке любого человека, чья деятельность так или иначе связана с вычислительной техникой и алгоритмами:
для профессионала эта книга может служить настольным справочником, для преподавателя - пособием для подготовки к лекциям и источником интересных нетривиальных задач, для студентов и аспирантов - отличным учебником.
Каждый может найти в ней именно тот материал, который касается интересующей его темы и представлен именно с тем уровнем сложности и строгости, который требуется читателю.
Описание алгоритмов на естественном языке дополняется псевдокодом, который позволяет любому имеющему хотя бы начальные знания и опыт программирования, реализовать алгоритм на используемом им языке программирования. Строгий математический анализ и обилие теорем сопровождаются большим количеством иллюстраций, элементарными рассуждениями и простыми приближенными оценками. Широта охвата материала и степень строгости его изложения дают основания сч...

Кодеры за работой. Размышления о ремесле программиста - Питер Сейбел

Кодеры за работой. Размышления о ремесле программиста Питер Сейбел

Программисты - люди не очень публичные, многие работают поодиночке или в небольших группах. Причем самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове. Питер Сейбел, писатель-программист, снимает покров таинственности с этой профессии. Он взял интервью у 15 величайших профессионалов: Кена Томпсона, создателя UNIX, Берни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Джейми Завински, Саймона Пейтон-Джонса, Питера Норвига, Дугласа Крокфорда, Джошуа Блоха, Брендана Айка, Джо Армстронга, Брэда Фицпатрика, создателя Живого Журнала, и других.
Все они "подсели" на программирование еще в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу.
Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.

Release it! Проектирование и дизайн ПО для тех, кому не все равно - Нейгард Майкл

Release it! Проектирование и дизайн ПО для тех, кому не все равно Нейгард Майкл

Не важно, каким инструментом вы пользуетесь для программной разработки - Java, NET или Ruby on Rails. Написание кода - это еще только полдела. Готовы ли вы к внезапному наплыву ботов на ваш сайт? Предусмотрена ли в вашем ПО "защита от дурака"? Правильно ли вы понимаете юзабилити? Майкл Нейгард утверждает, что большинство проблем в программных продуктах были заложены в них еще на стадии дизайна и проектирования. Вы можете двигаться к идеалу сами - методом проб и ошибок, а можете использовать опыт автора. В этой книге вы найдете множество шаблонов проектирования, помогающих избежать критических ситуаций и не меньшее количество антишаблонов, иллюстрирующих неправильные подходы с подробным анализом возможных последствий. Любой разработчик, имеющий опыт многопоточного программирования, легко разберется в примерах на Java, которые подробно поясняются и комментируются. Стабильность, безопасность и дружественный интерфейс - вот три важнейших слагаемых успеха вашего программного продукта. Если в ваши планы не входит в течение последующих лет отвечать на недовольные письма пользователей, выслушивать критику заказчиков и постоянно латать дыры, устраняя возникающие баги, то прежде чем выпустить финальный релиз, прочтите эту книгу.

Глубокое обучение. Погружение в мир нейронных сетей - С. Николенко, А. Кадурин, Е. Архангельская

Глубокое обучение. Погружение в мир нейронных сетей С. Николенко, А. Кадурин, Е. Архангельская

Перед вами - первая книга о глубоком обучении, написанная на русском языке. Глубокие модели оказались ключом, который подходит ко всем замкам сразу: новые архитектуры и алгоритмы обучения, а также увеличившиеся вычислительные мощности и появившиеся огромные наборы данных, привели к революционным прорывам в компьютерном зрении, распознавании речи, обработке естественного языка и многих других типично "человеческих" задачах машинного обучения. Эти захватывающие идеи, вся история и основные компоненты революции глубокого обучения, а также самые современные достижения этой области, доступно и интересно изложены в книге. Максимум объяснений, минимум кода, серьезный материал о машинном обучении и увлекательное изложение - в этой уникальной работе замечательных российских ученых и интеллектуалов.

Рефакторинг. Улучшение проекта существующего кода - Бек Кент, Фаулер Мартин, Брант Джон

Рефакторинг. Улучшение проекта существующего кода Бек Кент, Фаулер Мартин, Брант Джон

По мере распространения объектных технологий - в особенности с использованием языка программирования Java - для сообщества разработчиков программного обеспечения становилась все более и более актуальной новая проблема.

Недостаточно опытные разработчики создали множество плохо спроектированных программ, оказавшихся в результате малопроизводительными приложениями, которые трудно поддерживать и расширять. Все чаще разработчики программного обеспечения сталкиваются с тем, насколько сложно работать с такими доставшимися им в наследство приложениями. В течение нескольких лет объектные программисты-эксперты использовали постоянно растущую коллекцию методов повышения структурной целостности и эффективности таких существующих программ. Известные как "рефакторинг", эти практики так и оставались достоянием экспертов, потому что не предпринималось никаких попыток донести эти знания до широких масс разработчиков в доступной форме. В данной книге известный эксперт в области объектных технологий Мартин Фаулер открывает перед сообществом разработчиков новые горизонты, рассказывая о практиках, применяемых экспертами, и демонстрируя, какие значительные преимущества от их применения может получить любой разработчик. При надлежащей подготовке квалифицированный проектировщик систем может взять плохо спроектированную программу и превратить ее в хорошо продуманный, надежный код. В книге Мартин Фаулер показывает читателям, где обычно можно найти возможности для оптимизации и как превратить плохой проект в хороший. Каждый шаг рефакторинга прост - даже, казалось бы, слишком прост, чтобы его стоило выполнять. Оптимизация может включать перемещение поля из одного класса в другой или извлечение некоторого кода из метода с тем, чтобы превратить его в отдельный метод, или даже перенос некоторого кода вверх или вниз по иерархии классов. Хотя эти отдельные шаги могут показаться элементарными, кумулятивный эффект таких небольших изменений может радикально улучшить проект программы. Рефакторинг кода - проверенный способ предотвращения распада программного обеспечения. Помимо описания различных методов рефакторинга, автор приводит подробный каталог более чем с семьюдесятью рефакторингами и полезными указаниями, которые научат вас, когда их следует применять. Книга содержит подробное описание свыше 70 методов рефакторинга, причем не только теоретическое их описание, но и практические примеры на языке программирования Java. Следует учесть, что изложенные в книге идеи применимы к любому объектно-ориентированному языку программирования.

На пике. Как поддерживать максимальную эффективность без выгорания - Брэд Сталберг, Стив Магнесс

На пике. Как поддерживать максимальную эффективность без выгорания Брэд Сталберг, Стив Магнесс

О книге

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


В этой книге Брэд Штульберг (бывший консультант МакКинзи и колумнист, пишущий о науке производительности) и Стив Магнесс (тренер ведущих спортсменов) вместе исследуют и описывают эти практики.


В ней сочетаются истории лучших из лучших в своих областях и последние научные исследования о производительности. Результат - десятки способов улучшить вашу продуктивность: от грамотного чередования отдыха и работы до правильного целеполагания.


Если вы хотите выйти на новый уровень - чем бы вы ни занимались - это книга для вас.


От авторов

Нас занимал вопрос: возможна ли здоровая и устойчивая максимальная производительность? И если да, то как ее добиться? В чем секрет? Какие, если они есть, принципы лежат в основе отличной производительности? Как могут люди вроде нас - то есть практически любые люди - применить их?


Поглощенные этими вопросами, мы поступили так, как поступил бы любой ученый или журналист. Мы зарылись в литературу и пообщались в поисках ответов с многочисленными корифеями своего дела, работающими в самых разных отраслях: математиками, исследователями, художниками, спортсменами. И родилась эта книга.


Мы не можем гарантировать, что чтение этой книги приведет вас к получению золотой Олимпийской медали, что вы напишете шедевр или откроете новую математическую теорию. К сожалению, генетика играет немаловажную роль в нашей жизни. Однако, мы можем гарантировать, что чтение этой книги поможет вам укрепить свои природные способности так, чтобы вы могли здоровым и устойчивым образом повысить свою производительность.


Для кого эта книга

Для всех, кто хочет выйти на новый уровень


Для всех, кто хочет повысить продуктивность


Для всех, кто хочет добиться успеха


Цитаты из книги


Власть целеполагания

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


Помощь при выгорании

Помощь другим активирует центры вознаграждения и удовольствия в нашем мозге. Это не только...

Программист-фанатик - Чед Фаулер

Программист-фанатик Чед Фаулер

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

Для тех же, кто только в самом начале своего пути как разработчика, чтение данной книги, несомненно, откроет широчайшие перспективы.

Программирование без дураков - Катрин Пассиг, Йоханнес Яндер

Программирование без дураков Катрин Пассиг, Йоханнес Яндер

Хотите научиться программировать "less wrong"? Тогда эта книга - для вас. Ведь программирование - это во многом коммуникация. Стиль программирования, именование, комментирование, работа с чужим кодом - зачастую соглашения складываются именно там, где строгая регламентация на уровне языка программирования отсутствует. Познакомьтесь с разнообразными традициями, существующими в различных языках программирования, узнайте, как практически не спотыкаясь передвигаться по этой пересеченной местности. Со знанием дела и юмором авторы погружаются в обсуждение ложных путей, неверных суждений и ошибок, тем самым значительно облегчая жизнь любому начинающему и бывалому программисту.

Мнения