Каждый инженер-программист наверняка слышал о книгах, которые необходимо прочитать для программистов, или искал их в Google. Но действительно ли они живут своей славой и стоят ли потраченного драгоценного времени на чтение? За четыре месяца моей обязательной военной службы на Тайване я прочитал несколько из них, и вот мои мысли и обзоры на некоторые «важные» книги для инженеров-программистов.

Первая книга, Чистый код: руководство по созданию гибкого программного обеспечения. Пожалуй, это самая известная книга среди программистов после «Хакеры: Герои компьютерной революции». Само собой разумеется, о чем эта книга, она учит писать чистый код, особенно для объектно-ориентированных языков. Книга разделена на три части. В первой части описаны принципы, шаблоны и практики написания кода. Вторая часть - это некоторые тематические исследования, а третья часть - упражнения.

Что меня действительно впечатлило в этой книге, так это то, что автор очень «разборчив» в написании кодов, даже до такой степени привередливости. Например, он проделал бы много дополнительной работы, чтобы избежать использования комментариев в своем коде, потому что он считает, что код должен быть самоочевидным. Но я считаю, что это неплохо. Он действительно продемонстрировал, насколько серьезно и глубоко это ремесло кодирования, и поднял мой дух в поисках лучшего стиля кодирования. Кроме того, в книге очень хорошее содержание. Я все еще могу многому научиться из этой книги даже после того, как прошел курс по структуре программирования в CMU и прочитал часть Эффективной Java. Вывод из предложения из этой книги, безусловно, звучит так: «Кодирование похоже на написание статей. Мы должны писать коды, которые люди могут читать как статьи ». Когда я впервые прочитал об этой концепции, это поразило меня. Это было так просто, но так много смысла. По сути, это чистый код. Однако я думаю, что в некоторых случаях автор зашел слишком далеко, чтобы сделать код чистым. Но все же это отличная книга, которую я рекомендую каждому программисту.

Вторая книга, Soft Skills: Жизненное руководство разработчика программного обеспечения. Эту книгу также рекомендуют многие люди. В нем рассказывается обо всем, что вам нужно знать как программисту, от маркетинга до финансового менеджмента. Ценность этой книги в том, что она рассказывает программистам о том, что есть и другие навыки, которые очень важны для их карьеры, помимо программирования. Программистам легко зарабатывать на жизнь приличным заработком, но для того, чтобы разбогатеть, вам может потребоваться больше навыков, чем написание хорошего кода. Например, сам маркетинг - это то, что многие программисты игнорируют, но все бизнесмены делают. Так обстоит дело с личным финансовым менеджментом. И эта книга призвана напомнить людям об этих возможностях. Из этой книги я получил несколько хороших советов: написать блог, чтобы продвигать себя, что я делаю прямо сейчас, и инвестировать в недвижимость. Однако я не рекомендую эту книгу всем, потому что большинство глав просто убеждают вас сделать то, что вы уже знаете, что вам нужно делать (по крайней мере, для меня). И это требует много абзацев, чтобы сказать вам это, что делает соотношение знаний, которые я узнаю на странице, очень низким. Таким образом, эта книга служит напоминанием о некоторых хороших личных инвестициях, и я бы рекомендовал людям пролистать книгу и рассматривать только новые и интересные для вас предметы.

Третья книга - это Cracking the Coding Interview. Программисты не обязательно должны читать эту книгу, но я думаю, что большинство программистов встретят эту книгу где-нибудь в своей карьере. Эта книга предназначена для того, чтобы помочь вам проанализировать полученные ранее знания, концепции и навыки в области информатики, а также дать вам множество практических упражнений.

Я не проводил интервью в США прямо сейчас, поэтому не могу сказать, работает эта книга или нет, но я кое-что узнал из нее. В основном я знаю, что интервьюеры ищут на собеседовании, и как я должен себя вести; это не об алгоритме, шаблонах проектирования и написании кодов. Мне кажется, что эти вещи лучше практиковать на Leetcode с компьютерами, потому что, как говорится: «Дьявол кроется в деталях», нам трудно определить мелкие ошибки, которые мы допустили, просто взглянув на код, по крайней мере, не вначале. Кроме того, я обнаружил некоторые ошибки в решении в моей книге шестого издания, и после прочтения Clean Code некоторые коды в решении мне кажутся нечистыми. С учетом сказанного, я по-прежнему считаю, что эта книга имеет свою ценность в том, что дает программистам полную картину того, на что будет похоже собеседование, и помогает вам пересмотреть то, что вам нужно знать, прежде чем идти на собеседование.

Четвертая книга - это Into the Plex. Он был написан в 2011 году, поэтому может быть устаревшим, но он был написан Стивеном Леви, автором книг «Хакеры», и вы можете получить довольно хорошее представление о культуре и истории Google. Автор закрыт для Google, поэтому он может взять интервью у некоторых из известных гуглеров и дать нам лучшее представление о Google. После прочтения этой книги я очень впечатлен видением Ларри Пейджа. Он знал, что будущее за данными, 20 лет назад, и все эти годы он собирал больше данных и делал компьютер умнее и умнее. Кроме того, Google действительно ценит хороших инженеров, и я думаю, что это большая причина успеха Google, у них самые умные люди, и это каждый день привлекает их все больше, чтобы создавать действительно отличные продукты, которые изменяют мир. Я думаю, что то, что построил Google, действительно потрясающе, но в то же время при таком большом количестве данных это может быть опасно. Я думаю, все, что мы можем сделать, это поверить в то, что Google не будет «злым».

Последней книгой, которую я прочитал в армии, была книга Стивена Хокинса «Краткие ответы на большие вопросы». Это не обязательно к прочтению разработчиками программного обеспечения, но мне эта книга понравилась больше всего из всех книг, которые я прочитал в этом году. В этой книге, используя научные факты и логику, Стивен Хокинс дает ответы на некоторые важные вопросы. Но это было нечто большее, книга не только учит меня основам физики и космологии, она показывает мне, что мир больше, чем я думал, и заставляет меня смотреть на мир и свою жизнь на более высоком уровне. Один из моих любимых абзацев - это когда мистер Хокинс говорит о том, насколько нам повезло, как людям. Из-за принципа неопределенности у Большого взрыва может быть бесконечное количество возможностей, и лишь очень малая его часть является результатом четырехмерной Вселенной, которая является требованием для выживания человека. И вероятность того, что Вселенная вырастит углерод из основных атомов гелия и водорода, тоже очень мала. Кроме того, у Земли должно быть определенное расстояние по орбите, углы и т. Д., Чтобы сделать ее пригодной для жизни, и есть вероятность того, что атомы углерода превратятся в органических создателей и, надеюсь, людей. Более того, раньше на Землю падали метеориты каждые 20 миллионов лет, и вот уже 66 миллионов лет не было ни одного метеорита, который дает человечеству окно для процветания. Таким образом, из-за низкой вероятности мы, люди, возможно, являемся единственными разумными творцами в этой великой вселенной. Мы - очень немногие существа в этой великой вселенной, которые могут наслаждаться видами, которые мы видим, вещами, которых мы касаемся, и чувствами, которые мы испытываем. После осознания этого каждое мгновение стало для меня таким драгоценным. Я бы порекомендовал эту книгу всем, чтобы они могли прочувствовать и насладиться ясными, логичными и теплыми мыслями об этом великом человеке.

Подводя итог, из всех пяти этих книг я больше всего рекомендую Чистый код и Краткие вопросы к важным вопросам. Если вам предстоит собеседование, я бы сказал, что Cracking the Coding Interview может быть полезным, но не забудьте про Leetcode. Что касается Into the Plex, это хорошая книга для людей, которым интересно, как устроен этот эпический центр мира технологий. Наконец, Soft Skills - хорошая книга для людей, которые только начали разбираться в разработке программного обеспечения, но не для людей с многолетним опытом.

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