1. «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих». Книга, Бхаргава Адитья.
Автор прежде всего стремился к тому, чтобы книга легко читалась. Он избегал неожиданных поворотов; каждый раз, когда в книге упоминается новая концепция, Он либо объяснял ее сразу, либо говорил, где будет объяснять. Основные концепции подкрепляются упражнениями и повторными объяснениями, чтобы читатели могли проверить свои предположения и убедиться в том, что не потеряли нить изложения.
В книге приводится множество примеров, дается объяснение, что такое алгоритм и как можно ускорить и упростить его . Цель автора упростить наглядное представление этих концепций. Он считает, что читатели лучше всего учится тогда, когда могут вспомнить что-то уже известное, а примеры помогают освежить память. Так, когда вы вспоминаете, чем массивы отличаются от связанных списков, просто вспомните, как ищете места для компании в кинотеатре и таких примеров в книге много.
Содержимое книги было тщательно продумано.
Обобщим:
Эта книга введет вас в обширный мир алгоритмов, познакомит вас с самыми известными из них, легко и просто расскажет о их работе, и все это оборачивается в красивую, тематическую рисовку. В добавок, она направит вас дальше, откроет пути на дальнейшее изучение алгоритмов, будь то алгоритмы поиска, хеширования, машинного обучения и так далее. Отличное подойдет для тех, кто решил познакомится с тематикой алгоритмизации и стать программистом.
2. «Чистый код: создание, анализ и рефакторинг». Книга, Роберта Мартина.
Автор прежде всего хочет донести до читателя, то что программирование - это искусство.
Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Читатели будут рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри.
Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей. Сначала вы познакомитесь с принцами, паттернами и приемами написания чистого кода. Затем приступите к практике. И только после этого перейдете к самому важному - выражению сути книге.
Обобщим:
Книга хороша для новичка. Ненавязчиво объясняет необходимость чистки кода, обращает внимание на важные, незаметные, моменты и содержит много практических рекомендаций и примеров. Позволит вывести твои знания на новый уровень программирования, На чистый уровень.
3. «Идеальный программист». Книга, Роберта Мартина.
Еще одна книга дядюшки Боба, которая учит методам, практикам и инструментам настоящего мастерства в области программного обеспечения. Интересное повествование с примерами из более чем обширного опыта автора, показывающие где стоит задуматься над шагами и в каком направлении себя развивать. Причем не столько в hard skills (изучение ЯП, например или технологии), сколько в soft skills, то есть как вести себя. на что обращать внимание. Она содержит практические советы по оценке проектов, написанию кода, рефакторингу и тестированию.
Эта книга довольно популярна. Она содержит много историй из жизни и гипотетических разговоров, которые в большинстве случаев приводят к выводу, что разработчик в конечном счете несет ответственность за то, что он делает.
Прочитав эту книгу, вы научитесь справляться с конфликтами, плотным графиком и нерациональностью менеджеров; научитесь бороться с постоянным давлением и избегать выгорания; узнаете, как управлять своим временем, как писать качественный код и способствовать созданию среды, в которой разработчики и команды могут успешно развиваться.
Обобщим:
Книга однозначно хорошая, делиться многолетним опытом при разработке очень полезно для остальных разработчиков. Но я думаю, тем кто только "входит" в ИТ, читать ее рано. А вот кто немного уже поработал или попробовал попрактиковаться - добавляет мотивации и понимания, можно сказать, слегка чистит мозги.
4. «Психбольница в руках пациентов. Алан Купер об интерфейсах». Книга, Алана Купера :)
Эта книга стала манифестом и до сих пор не потеряла актуальность. Дверь на свободу распахнута. Почему же мы не замечаем выхода? Об этом и рассказывает Алан Купер, объясняя разницу между интерфейсом и взаимодействием.
Автор пытается донести до читателя, то что дизайн также важен как и функционал, то что он должен быть не только качественным, но нужным, полезным и понятным для потребителей.
Хорошо, если в компании есть дизайнеры, которые анализируют потребности пользователей, сценарии их работы и проектируют грамотный интерфейс. Но иногда за эту часть работы отвечают те же программисты.
Если отнестись к проектированию слишком легкомысленно, программа может оказаться никому не нужной. Автор подтверждает это множеством историй о провале маленьких фирм и крупных корпораций. Купера стоит читать хотя бы затем, чтобы не оказаться виновником очередной такой неудачи.
Обобщим:
Книга нужна чтобы лучше понимать целевую аудиторию, что ей нужно, и делать удобный и качественный в использование продукт. Книга не отнимет много времени, но зато сэкономит его всякий раз, когда нужно сделать работающую форму по краткому ТЗ — без помощи дизайнера и ещё вчера.
5. «Кодеры за работой. Размышления о ремесле программиста». Книга, Питера Сейбела.
Программисты — люди не очень публичные, многие работают поодиночке или в небольших группах. Причем самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове. Питер Сейбел, писатель-программист, снимает покров таинственности с этой профессии. Он взял интервью у 15 величайших профессионалов: Кена Томпсона, создателя UNIX, Берни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Джейми Завински, Саймона Пейтон-Джонса, Питера Норвига, Дугласа Крокфорда, Джошуа Блоха, Брендана Айка, Джо Армстронга, Брэда Фицпатрика, создателя Живого Журнала, и других.
Все они «подсели» на программирование ещё в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу.
Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.
6. «Алгоритмы. Построение и анализ». Книга, Томаса Х. Кормена, Чарльза И. Лейзерсона, Рональда Л. Ривеста, Клиффорда Штайна.
Книга «Алгоритмы. Построение и анализ» удачно объединяет в себе полноту охвата и строгость изложения материала. Много книг, посвященных алгоритмам, отличаются строгостью изложения материала, но страдают определённой неполнотой; другие книги охватывают огромный объём материала, но недостаточно строго излагают его. В данной книге описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки. Каждая глава книги относительно самодостаточна и может использоваться в качестве отдельной темы для изучения. Алгоритмы в книге описаны простым человеческим языком и с применением псевдокода, который понятен любому, кто хоть в небольшой степени знаком с программированием, а пояснения принципов их работы даны без излишней математической строгости и требуют лишь элементарных знаний.
Каждый может найти в ней именно тот материал, который касается интересующей его темы и представлен именно с тем уровнем сложности и строгости, который требуется читателю.
Описание алгоритмов на естественном языке дополняется псевдокодом, который позволяет любому имеющему хотя бы начальные знания и опыт программирования, реализовать алгоритм на используемом им языке программирования. Строгий математический анализ и обилие теорем сопровождаются большим количеством иллюстраций, элементарными рассуждениями и простыми приближенными оценками. Широта охвата материала и степень строгости его изложения дают основания считать эту книгу одной из лучших книг, посвященных разработке и анализу алгоритмов.
Обобщим:
Наверное лучшая книга по алгоритмам. Все написано простым и понятным языком. Описаны все основные алгоритмы. Книга подойдет для новичков, и ,конечно, она должна быть в библиотеке любого программиста.