Катрин Пассиг, Йоханнес Яндер, 2017, издательство «Питер», ISBN 978-5-496-02023-7
Эта книга — большое руководство по всему, что поможет вам стать хорошим программистом. Джуниоры из неё узнают о разных концепциях, правилах и инструментах, мидлы освежат память и, скорее всего, тоже обнаружат ранее неизвестные им вещи.
Книга разбита на четыре части.
Первая часть посвящена тому, как справиться с колебаниями между завышенной и заниженной самооценкой и перейти от неосознанной некомпетенции к осознанной. В ней рассказывается, какие проблемы присущи исключительно неопытным программистам, а какие присущи всем без исключения, и как некоторые слабые стороны вроде некомпетентности в некоторых случаях могут оказаться полезными.
Вторая часть посвящена искусству написания и чтения кода, а также работе в команде. Авторы объясняют:
- нужно ли учить английский (ответ прекрасно проиллюстрирован примером кода с комментарием на немецком);
- как избежать холиваров на тему форматирования кода;
- как называть переменные и функции (особенно порадовал список глаголов, часто употребляемых в именах функций, с объяснением их значений);
- когда и что нужно комментировать;
- как читать незнакомый код;
- где искать помощь, если что-то непонятно;
- как эффективно помогать коллегам;
- как выжить в команде.
В третьей части рассматривается вопрос поиска ошибок и их предупреждения. Рассматриваются:
- принципы поиска ошибок, следуя которым в не загоните себя в тупик;
- способы отладки;
- распространённые примеры плохого кода;
- польза, необходимость и техники рефакторинга;
- польза и виды тестирования;
- основные ситуации, в которых риск появления ошибки выше, чем обычно;
- компромиссы и ситуации, в которых они оправданы.
Четвёртая часть посвящена инструментам и концепциям программирования. В ней рассказывают:
- как обращаться с библиотеками и сторонним кодом;
- какие основные инструменты нужны программисту (редакторы, языки, менеджеры пакетов, фреймворки, среды разработки и тому подобное);
- зачем нужны системы контроля версий, какие они бывают и как ими пользоваться;
- что каждому программисту нужно знать о командной строке;
- что такое ООП, когда нужно и не нужно его применять;
- какие существуют форматы для хранения данных, как базы данных помогают хранить информацию и в чём разница между реляционными и NoSQL базами данных;
- что нужно знать о безопасности (что её нет, хе-хе), какие наиболее частые ошибки безопасности и почему безопасность — это процесс.
Также в конце четвёртой части есть обзор никак не связанных, но полезных концепций вроде типизации, исключений, транзакций, ID/GUID/UUID, stateful/stateless и многого другого. А в заключение даётся ответ на то, кто же такой хороший программист, и какие ещё книги почитать, чтобы им стать.