2011-2013

  • Программист-прагматик - на мой взгляд, эта книга — лучший способ “раскочегарить” новичка в разработке ПО, хорошо зайдёт фрилансерам-самоучкам в возрасте и джуниорам. Чтобы понять какого типа советы там даются, ответьте для себя - насколько хорошо вы знаете используемый вами текстовый редактор, насколько быстро вы в нем работаете, если он еще не является продолжением ваших рук, сколько альтернатив ему вы рассмотрели? Одна моя знакомая, когда была начинающим програмистом писала неплохой, читаемый код — я ревьюил ее дипломную работу и мне почти не к чему было придраться. Но! Она начала изучать Vim. В мире нет никого более беспомощного, безответственного и безнравственного, чем человек, начавший изучать Vim. Операции, которые делаются парой команд, она делала вручную, не пользовалась автозаменой, поиском по шаблонам, а порой искала что-то глазами. Все те же самые действия в gedit заняли бы у нее куда меньше времени. А все почему? Люди редко думают о том, что использовать надо инструмент, самый удобный для решения своей задачи. Из таких рассуждений книга и состоит. Она больше художественная, читается она легко, перечитывания не требует.
    • Update 2020 (вообще не про книгу, но в тему вывода): относитесь осознанно к тому что вы делаете — “работу работаете” или играетесь с новым для себя инструментом, чтобы понять, может ли он помочь работать эффективнее. Если второе — отмерьте, сколько своего времени вы в него готовы инвестировать и в конце этого временного отрезка не забудьте сравнить его с вашим предыдущим инструментом. Ещё круче, если вы попросите сделать это кого-то со стороны, “vim — круто, я — хакир!” часто отуманивает.
  • Верёвка достаточной длины чтобы выстрелить себе в ногу - я бы назвал эту книгу иначе - “Этикет написания кода на С/С++”. Выучить C она мне не сильно помогла, но сильно увеличила читаемость моего кода, при том, что я редко комментирую/документирую свой код. Использование clang-check и warning==error спасёт от ошибок в эффективнее.
  • Азбука Ядра с примерами - можно сказать по ней я и выучил С, хотя она и подразумевает, что читатель итак его знает. Читается легче, чем подавляющее множество книг о ядре Linux. В ней описывается устройство версии 2.6. Минус - около 10% книги посвящено разбору кода для архитектуры PowerPC. Хороша, чтобы забить голову нужными терминами чтобы работать ядром.

2011-2016

  • Психбольница в руках пациентов - напоминает о том, что если вы программист - вы ментальный калека. Этого не исправить, но нужно учитывать при разработке ПО для людей.
  • An Introducion to programming on Go - бесполезная книга, рассказывает о синтаксисе, который без постоянной практики забывается за неделю и вспоминается с гуглом за 5-10 минут.
  • Мифический человекомесяц - нужно перечитывать раз в 3 года, о том что 9 дам не родят ребёнка за месяц и что купив две книжки вы не прочитаете их быстрее.
  • Язык программирования Си - выучить синтаксис и понять основные концепты управления памятью на базовом уровне.
  • Факты и заблуждения профессиональого программирования - хорошая книга для новичков, которые думают что в программировании всё довольно просто. Или что всё сложно.
  • Гибкие технологии экстремальное программирование и RUP - читал когда только устроился работать тестером, понял мало. Видимо надо перечитать.
  • Человеческий фактор. Успешные проекты и команды - книжка о том что люди важны и о том, что нужно хорошо кушать (вместе во славу тимбилдинга). Сдаётся мне если я это перечитаю сейчас - меня стошнит.
  • Scrum и XP заметки с передовой, 2007 - после прочтения от вас будет много нытья о том что “у нас скрам неправильный!”. Ценности мб чуток подправит если вы технарь-аутист.
  • Экстремальное программирование, 2002 - читалось хорошо, как художественная литература, а о чём - не помню.
  • Advanced Bash Scripting Guide - любому околосистемщику стоит по диагонали прочитать эту книжку просто чтобы понимать что написано в не low-skill-compatible скриптах.
  • Linux Advanced Routing and Traffic Control - о том что iptables и iproute2 вообще умеют.
  • Unix in a nutshell - неплохая книга о том как и почему именно так устроен Unix.
  • Искусство программирования для Unix - хорошо почитать тем, кто в будущем планирует стать архитектором. Unix-стайл не единственный правильный стиль архитектуры ПО, но имеет много очень правильных и полезных концепций.
  • Introducing to Machine Learning with Python - ниасилил (прочитал около 80 страниц ничего не пробуя) потому что не вставал sklearn на старый макбук ибо я чот намудрил там с кашей из brew/macports/python’ов.

2017

  • Главный вопрос программирования, рефакторинга и всего такого - напоминает верёвку достаточной длины, подходит для C/C++ кодеров. Бесплатная, вроде от авторов PVS студио.
  • Чистый код - нудятина, но меня подмывает написать свою книгу в том же духе, не думаю что она сильно отличалась бы от. Примеры вроде на java.
  • Dive into python - так и не дочитал, но хорошо для вкатывания в питон для тех кто в нём ноль.
  • Packagecloud blog posts: Monitoring and tuning Linux networking stack: sending data / receiving data - большая статья по устройству сетевого стека в Linux. Всем разработчикам и поддержке Carbon Reductor настоятельно рекомендуется к прочтению. Меня вдохновила и одновременно расстроила своим объёмом необходимых знаний настолько, что я начал проект netutils-linux, который в идеале должен спасти людей от чтения этих статей.
  • Ядро Linux, Робер Лав - это как Азбука Ядра, но не так нудно, мб потому что когда начал читать во второй раз уже бэкграунд был получше.
  • Cracking the Code Interview - всем кто решил свалить в другую контору и матерится от того что проваливает интервью с алгоритмами на доске стоит пробежаться по задачкам из книги.
  • Site Reliability Engineering: How Google runs production software - поверхностно прочитать - стоит, понимать что мы не гугл - стоит, реализовывать все идеи - мб не стоит, понимать почему именно у них именно так - тоже стоит. Вообще руководителям отделов техподдержки почитать про алертинг и постмортемы стоит. Создателям мониторингов тоже стоит почитать, там хороший разбор подводных камней.

2018

  • Пиши, сокращай - 2018 год начался с того, что я решил развиваться не только в сторону программирования, но и в смежных дисциплинах - дизайне, документировании, стратегиях. Эта книга про то, как не разводить воду в тексте. Может испортить человека с интересным живым стилем, если он не умеет думать над тем, что читает.
  • Теория игр - или как я полюбил просчитывать оптимальные стратегии вообще для всего и усилился в Excel. Хорошая книга, местами больше художественная, читается очень легко, много интересных примеров того, как взаимодействуют люди.
  • Distributed Systems, Таненбаум, 2015 - наконец-то осилил этот гигантский талмуд, который позволил мне систематизировать знания по распределённым системам. Отличная книга, даже если вы не занимаетесь непосредственно разработкой и поддержкой распределённых систем. Длинная, на английском, зато бесплатно и легально. Вдохновила меня начать писать свою книгу о менеджменте для программистов, т.к. увидел много схожих моментов в взаимодействии компонентов распределённых систем и людьми.
  • Изучаем SQL, O’Reilly - небольшая книга, которая помогла мне заткнуть пробелы в знаниях по SQL (не знал как вообще JOIN’ы работают). Хоть и старая (там люди с пёсьими головами^W примеры для MySQL 4.0.3), но вполне внятно проходящаяся по стандарту ANSI SQL 92. Теперь хочу SQL-like фичи в Excel. Что дальше? Microsoft Access?
  • C++ today. Beast is back - коротенький очерк того, что происходит с современным C++ и куда он движется (компилируемый перл блин).

2019

  • 97 этюдов для архитекторов программных систем - занудная книга с неконкретными советами.
  • Дизайн для недизайнеров - моё чувство прекрасного затребовало огранки и хоть какой-то теории. В целом неплохая книга о шрифтах, контрасте, выравнивании, повторе и других вещах, которые я и так делал интуитивно.
  • Чистая архитектура - очень легко читаемая книга про архитектуру от дядюшки Боба. Пока читал, передумал писать свою книгу про менеджмент и выстраивание бизнес-процессов для программистов, потому что понял, что вся моя идея объяснять взаимодействие людей с помощью терминологии архитектуры распределённых систем далеко не нова и нормальные люди называют её “распределение обязанностей”. Конец книги забавный - Боб травит истории из начала своей карьеры, при этом стиль похож на ситуацию, когда приходишь в гости к деду и он начинает байки травить. Мне кажется если бы через книгу можно было наливать водочки, это был бы лучший экспириенс, ибо истории в самом деле интересные. Помимо историй он проводит аналогии с правилами чистого кода, рассказывает о том, к чему приводят те или иные решения, объясняет почему единственно-верного решения обычно нет, всё очень зависит от ситуации и как правило нужно балансировать.
  • Проект “феникс” - купил и начал читать вместе с девушкой прочитав как в твиттере один товарищ её читал вслух. Девушка частенько вечерами ныла о том, что творится у неё на работе, какой ужасный бардак в процессах и всё такое. Вот первая половина книги была ЧЕРТОВСКИ похожа на это нытьё. А так, неплохая история о том, как ОЧЕНЬ БЫСТРО МИСТИЧЕСКИМ ОБРАЗОМ ПРОЦЕССЫ ИСПРАВЛЯЮТСЯ ЛЮДИ РАДЫ РАБОТАТЬ НИКТО НЕ МЕШАЕТ ДЕЛАТЬ РАБОТУ ЛУЧШЕ ПАЛКИ В КОЛЁСА НЕ СУЁТ ЗА ПОЛГОДА ВЕСЬ ОТДЕЛ НА НОГИ ВСТАЛ БРАТ ИЗ МОГИЛЫ ВЫЛЕЗ РАК ВЫЛЕЧИЛСЯ, А ГЕРОЯ НАЧАЛЬНИКОМ СДЕЛАЛИ. Книга заходит очень легко. Одна из наиболее подчёрнкутых мыслей - большая часть процессов в IT похожа на конвеер на заводе. Его можно и нужно оптимизировать, а оптимизировать надо умеючи.
  • Слово живое и слово мёртвое, Нора Галь - Пиши-сокращай это модернизированный вариант Слова, заточенный под современных людей – рекламщиков и прочих. Слово написано для писателей, редакторов и переводчиков. В отличии от пиши-сокращай затрагивает не только и не столько языковые конструкции, но уместность слов и игр слов – мол, не гоже писать что мальчику которому повредили спину в немецком концлагере воспитательница говорит «руки вверх», когда хочет помочь переодеться. Надо переводить не механически, а прислушиваться к своей душе – не ляпнул ли я херню. Стандартная глава про канцелярит и заимствования из других языков. В конце – очень много примеров переводов Кашкинской школы, которую Нора сильно хвалит за то что у переводчиков есть слух. Плюсы: начинаешь любить русский язык. Минусы: начинаешь обращать внимание на то как убого пишут окружающие люди. В какой-то момент мне даже захотелось поработать редактором, а потом по работе нужно было проревьюить заказную маркетинговую статью. Ох как же у меня пекло, как пекло! Подробнее
  • Вальсируя с медведями, Том Демарко - Книга об управлении рисками. Кажется она даже не столько про проекты по разработке программного обеспечения, сколько про взрослость человека. Мне нравится то что у них есть список причин не прменять его и они такие… социальные. Обычно чертовы технари о таком не думают. Думаю, по жизни оно пригодится чуть больше чем “Теория игр”.
  • Я так и знал. Голдратт - я так понял “Проект Феникс” - это та же самая “Цель” Голдратта, только в этот раз про IT. А “я так и знал” - про розничную торговлю. Честно говоря звучит как-то надумано, но позже в “Выборе” Голдратт сам говорит о том что решения, которые радикально улучшают жизнь компании - часто лежат на поверхности и просты до жути. Я половину книги читал и думал “господи, почему они сразу так не делали, очевидно же”. Интересно рассказывается про то, как люди принимают перемены (продажникам стоит почитать). Коротко сюжет - есть мужик, зять владельца компании, хочет всего добиться сам и если и занять серьёзную должность - то честно дойдя до неё с низов компании, чтобы знать всё о том как она работает. У него есть магазин в сети магазинов постельного белья, он им управляет и дела идут плохо. А потом ещё хуже.
  • Выбор. Голдратт - интересная книга о том как все просто, все конфликты можно устранить, все люди хорошие, обвинять их не надо, а всезнайкой себя чувствовать и довольствоваться имеющим не надо. Грубо говоря, дядька дает эдакий фреймворк для оптимизации вообще любой херни. 8.6/10. В целом по Голдратту - по-моему он почти все сводит к сокращению итераций, тащит эджайл в розницу, производство итд.
  • Государство. Платон - я долго ломал себе голову, почему авторство за Платоном, хотя диалог по большей части ведёт Сократ - оказалось тот не писал никаких книг, потому что считал что это мешает думать. В начале он всех бесит тем, что задаёт свои вопросы, а ответов не даёт. Сейчас я понимаю, что он своим стилем общения подводил человека к конфликту нескольких исходных посылок, сделанных человеком. Человек чувствовал, что он в чём-то не прав, но признать это было слишком обидно и поэтому проще было обидеться на Сократа. Чуть позже я посмотрел фильм 1991 года про него и узнал что его за эти самые вопросы в итоге казнили, заставив выпить яд. В общем, интереснейший человечище. А теперь к тому о чём книга. Пожалуй, основной вопрос в книге - что такое справедливость и стоит ли быть человеком справедливым или не стоит? Сократ и его товарищи долго не могут понять что есть справедливость в человеке и потому решают найти её в государстве, а затем провести аналогии с человеком. В итоге они выстраивают идеальное государство. Я начал читать это потому что захотел чуть лучше разбираться в политике, в итоге стал чуть хуже относиться к демократии и чуть больше начал страдать манией величия. Опасная книга! Сделал по ней заметки.
  • Цель. Голдратт - классическая “цель” про производство. Есть у чувака заводик, ему говорят что его закроют через три месяца, если не будет зарабатывать бабок, чувак разбирается с проблемами в процессе работы и вообще в том как он к ней подходит и в итоге хэппи энд. Его жена зачитывалась Сократом и говорит что он зашибись. Забавно, что почти все книги в духе “цели” обязательно от лица мужика и обязательно женатого и между женой и работой он мечется, мучается, а потом тоже хэппиэнд. Вывод, спустя полгода после прочтения: узким горлышком и в производстве и в разработке (частный случай производства) является неправильная приоритезация.
  • Критическая цепь. Голдратт - ещё одна цель, но на этот раз про управление проектами. Коротко, о чём: о том как задержки накапливаются, а досрочные завершения задач скрываются из страха за подстраховку. То, что в оценке около 200% времени - подстраховка. О том что подстраховка нужна, но не везде. О том что при shared ресурсах время проекта определяется не критическим путём, а критической цепью (загруженность разделяемых ресурсов не может паралеллиться, её приходится выравнивать и упорядочивать). В случае с несколькими проектами и отделом/человеком, который является бутылочным горлышком для них всех - нужно сделать для него расписание и подчинить ему всех остальных ребят. Попутно решается проблема университета, у которого MBA перестали цениться (а дирик мой говорит что на MBA сейчас в Екатеринбурге по крайней мере никто не учит хорошо, все говны, хорошо учат только в Сколково за 1кк/месяц). А так хотелось порядок в голове по управлению проектами навести, куче всякой херни устаревшей в духе PERT/GERT выучиться, большие проекты планировать сходу на 20 лет работы.
  • Джедайские техники - книжка со сборником рецептов по GTD, большую часть советов можно масштабировать до менеджмента в целом. Мне понравилась настолько, что я наделал море заметок. Захотел их собрать в конспект, систематизировать, вывести в очень стройную красивую систему, а потом оказалось что мой pocketbook весь такой с поддержкой облачных технологий, а заметки из него достать нельзя.
  • Ненасильственное общение - первые 30 страниц - какой-то сектантский ад. А потом вполне нормально о том, как начать думать, когда хочется орать на людей и бить, а самое главное - о чём думать - о том, что у людей есть потребности и они действуют так или иначе в основном потому что потребности не удовлетворяются, а их при этом не понимают. Да и вообще никто друг друга не понимает. И о том что когда пытаешься объяснять своё поведение сложной длиной рациональной цепочкой логических выводов - скорее всего ты всё усложнил и на самом-то деле всё очень просто.
  • Бизнес без MBA (Олег Тиньков, Максим Ильяхов) - книжка по верхам-азам. Некоторые примеры смешные. В комплекте мини-курс по Excel, прямо в сердце достучались. Я чуть лучше понял как считать деньги (про обязательства, про привязку ко времени итд). Узнал чуть больше про субсидиарную ответственность. А остальное в принципе и так знал.
  • Убеждать и побеждать. Заметил что моделирование и систематизация знаний похожи на ведение дискуссии с самим собой, принципы те же самые.
    • Аргумент необходимо раскрыть, объяснить таким образом, чтобы каждый из реципиентов понял вкладываемый в него смысл. Такое «разжевывание» мы будем называть поддержкой. Кроме того, необходимо наличие яркого, наглядного примера. В этом случае аргумент получает тройную силу. - беда маркетологов, на лендингах часто не раскрывают аргумент до конца, остаётся ощущение недосказанности, неотвеченные вопросы, после чего страницу хочется закрыть и поискать кого-нибудь, кто способен нормально аргументировать почему стоит использовать именно их решение.
    • Аргумент необходимо выстраивать в четкой, выверенной последовательности, которую мы будем называть линией аргументации. Есть линия аргументации, а есть хаотичная аргументация. На лендингах, в письмах и коммерческих предложениях - иногда всё хаотично. Не надо так.
    • Создатели Mary Key и Herbalife используют изумительно грамотные и отточенные технологии эмоциональной аргументации — так называемые истории успеха. Ее может поведать воодушевленная женщина с горящими глазами, рассказывающая, каким гадким утенком она была до знакомства с ПРОДУКТОМ. Делать ли из этого вывод о том, что истории успеха более применимы к женщинам, чем к мужчинам? Не думаю.
    • Про продажи - в книге столько маркетингового буллщита, который больше отталкивает, чем привлекает. Есть ощущение что книга очень устарела.
  • Диалоги, Платон - не самое полезное чтиво, чего-то прямо таки важного оттуда не вынес.
    • Апология Сократа - Сократ утверждает что он хороший человек.
    • Критон - Сократ говорит о том, что он настолько любит законы и своё государство, что раз уж по ним его приговорили к казни, то он помрёт и никуда не убежит и не будет просить кого-либо внести за его освобождение залог, а также выбирать иное наказание, например изгнание.
    • Федон - Сократ говорит о том, что почему ему не страшно умирать и почему он верит в загробный мир, как он его себе представляет.
    • Протагор - Сократ приходит в гости к мужику, который зарабатывает на том, что учит людей хитростям речи и троллит его (успешно).
    • Ион - Сократ чмырит мужика, зарабатывающего на жизнь чтением поэм на сцене (рапсода), мол не человек вообще, вторичен, от истины далёк так, что дальше только толпа, его слушающая.
    • Гиппий - Сократ чмырит мужика, хорошо зарабатывающего ремеслом советника, мол он недостаточно мудрый, а лезет ко всем с советами, так ещё и меряет мудрость тем, сколько он зарабатывает.
    • Пир - Сократ с мужиками обсуждает как лучше пить, а затем они слагают оды тому, как хорошо возлежать с мальчиками.

2020

  • Политика, Аристотель - эдакий Сократ, но без максимализма (платоновского идеализма?). Хорошо проводит аналогию между правительством, гражданами и государством; руководителем и организацией; мужем, женой, детьми и родителями. Интересно рассказывает об устройствах государств, плюсах и минусах. По сути дело в том чьи интересы преследуют правители - личные или всего государства. Государственные - монархия, аристократия, полития. Личные - тирания, олигархия, демократия. Помимо этого хорошо разъясняет за имущество, собственность и неравенство.
  • Жёсткий менеджмент, Дэн Кеннеди - 70% книги - сплошная мегаломания. Если быть максималистом и принимать всё буквально - можно прийти к выводу о том, что всю работу должны делать работники, в том числе и сами собой руководить, а единственная задача руководителя - контролировать и наказывать. Если максимализмом не страдать - лишнее напоминание о том, что найм - ограниченное определёнными рамками законодательства и договора рабство, ничего в обществе не изменилось за NNNN лет.
  • Идеальный руководитель, Ицхак Адизес - книга о том почему им нельзя стать. По мнению Ицхака, для того чтобы быть идеальным руководителем нужно превосходно уметь заниматься производством, администрированием, предпринимательством и интегрированием. Всё бы хорошо, но занятием чем-то одним приводит к тому, что на другое уделяется меньше внимания. К тому же люди не предрасположены ко всему одновременно - что-то выходит лучше, что-то хуже. Фокусировка только на чём-то одном - плохо, получается не руководство в плане вождения чужими руками, а тот или иной трэш и хаос.
  • Первые 90 дней - книга-руководство для адаптации руководителя на новом месте работы. Чего подчерпнул: модель STARS, в разных ситуациях нужно вести себя по разному. Если примешать сюда идеального руководителя Адизеса - в разных ситуациях нужны разные люди.
  • Ководство, Артемий Лебедев - много историй о том как писать правильно, как писать нельзя, почему нельзя, почему это зашквар и неправильно, история изменения языка, культуры, примеры косячных дизайнерских решений итд. Эдакий сборник баек от деда-дизайнера. Пока читал, наткнулся на такое старое понятие как фокус-группы. Так вот, Customer Development – новые фокус-группы, то есть способ маркетолога снять с себя ответственность за принятое решение. Ещё понравились главы “Заявка на дизайн”, “Польза ограничений” и “Творческий рост”. Суть – учить дизайнеров надо плохими, а не хорошими примерами. В хороших содержатся ошибки, которые найдут в будущем, но дизайнеры начнут штамповать их в настоящем. Ещё довод - систематизация ограничений вида “так нельзя” – это построение множества ограничений, по которым дизайнер затем будет новую идею проверять и улучшать. Имея лишь хорошие примеры, дизайнер каждую свою идею будет сверять с эталоном и задавать себе вопрос - “а так можно?”. То есть не будет дизайнить.
  • Дедлайн, Том Демарко - позабавило то, как в 18й главе про конфликты по сути они изобретают суды - добровольное привлечение незаинтересованной стороны в качестве посредника, а в 20й они изобретают выборную демократию, бодаясь с большим числом людей на совещаниях. Единственное, что смутило - это водопадная модель разработки ПО с акцентом на проектирование архитектуры. Не, чёткое ТЗ это круто, вопросов нет, но ведь есть непредвиденные технические трудности и ложные предположения, о которых узнаёшь только во время реализации. Опять же, книга 1997 года, писалась явно до этого, а до публикации Agile Manifest (2001) ещё 4 года. А вообще эти бизнес-романы какие-то одинаковые, напоминает “Проект Феникс”. Немного полистал чужие рецензии. “Очень грамотный акцент на предпроектную подготовку, а не саму реализацию проекта” - так вот там предпроектной подготовки-то особо нет. Вебстер приходит к ВВН и узнаёт какие 6 продуктов ему нужно скопировать. Всё! - понимание того, какие продукты делать есть, всё что после - уже не подготовка. “Одна из ключевых идей книги: «Весь потенциал Вашего проекта заложен в вашей команде». С другой стороны, все проблемы Вашего проекта будут связаны с людьми.” - напоминает Адизеса с идеей о том, что возможности и проблемы - одно и то же, просто разные люди видят это по разному. Наверное у разных людей разные оценки вероятности материализации риска. Кто-то считает что с большой долей вероятности всё обернётся удачно, кто-то считает большой вероятность провала.

В процессе

Начатое и отложенное

  • Диалоги, Платон
  • Антихрупкость, Талеб
  • Об интерфейсе, А. Купер

Бэклог

  • Безопасно by design. Берг Джонсон Д., Деоган Д., Савано Д.
  • Высоконагруженные приложения. Программирование, масштабирование, поддержка. Клеппман М.
  • Идеальная работа. Программирование без прикрас. Мартин Р.
  • Цифровая гигиена, Ашманов
  • Принципы юнит-тестирования, Хориков В.