За свою карьеру Java-программиста я прочитал несколько книг, некоторые из них повлияли на меня больше, некоторые меньше. Что-то мне очень понравилось читать, а что-то не очень. Я собираюсь сфотографировать их и поделиться своими мыслями.

К сожалению, из-за переезда за эти годы я потерял некоторые из них, но я хотел бы, чтобы они все еще были у меня, чтобы их фотографировать. Например, я помню, как потерял «Думая на Java» (Б. Эккель), «Внутри JVM» (Дж. Бош), «Эффективная работа с устаревшим кодом» (М. К. Фезерс). Это были действительно хорошие книги, которые оказали на меня большое влияние. Но все же позвольте мне показать вам, что у меня осталось на полке.

Это первая книга на моей полке, я тоже хотел, чтобы книга была первой по этой статье. Рефакторинг — одно из занятий, которое мне больше всего нравится, когда дело доходит до написания кода на Java. Я просто нахожу это настолько удовлетворительным, что перемещаю куски кода, удаляя и удаляя дублирование. Код читается намного лучше, и его интересно читать после того, как вы потратите некоторое время на рефакторинг. Это как закончить картину или какое-то ручное ремесло, ты делаешь шаг назад, смотришь на это и чувствуешь себя хорошо. Еще одна приятная особенность этой книги заключается в том, что она больше похожа на словарь, вы не просто читаете ее от корки до корки и все, вы можете вернуться и легко обратиться к ней и найти конкретный рефакторинг, который вам нужен. Это одна из книг, которая показалась мне более полезной, и я время от времени возвращаюсь к ней, чтобы узнать, как был выполнен конкретный тип рефакторинга. Он имеет большой глоссарий и прост в навигации, каждый из рефакторингов хорошо классифицирован, а также включает диаграммы и примеры кода.

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

Через пару лет после прочтения книги Кента Бека TDD by Example я наткнулся на это. Многие люди в офисе говорили об этом, и у меня даже была возможность встретиться с обоими авторами этой книги на встрече в пабе в Лондоне. Эту книгу в Лондоне называют книгой GOOS. Я решил получить его. Удивительная книга, которая очень хорошо объясняет другой стиль TDD, лондонский стиль, и как постепенно расширять и улучшать дизайн вашего кода с помощью mocks. Кроме того, очень практично, и примеры легко следовать. На мой взгляд, надо еще прочитать.

Ух ты, вот еще один на модульном тестировании. Боже мой, я так увлекся TDD, что действительно хотел узнать все, что мог. Эта книга также великолепна, иногда она остается незамеченной для многих, но ее нельзя недооценивать. Есть масса продвинутых техник и полезных вещей. Очень хорошо объяснил. Эта книга оказала на меня большое влияние. На самом деле я написал рецензию на эту книгу и разместил ее здесь, в блоге, некоторое время назад. Вот, если вам интересно узнать больше об этой книге: https://medium.com/javarevisited/efficient-unit-testing-a-must-read-book-for-programmers-a6da83f0b23b

Когда я начинал как программист, я придавал большое значение TDD, но одна из самых первых компаний, в которой я работал, казалось, не слишком заботилась об этом, и в корпоративной культуре также были некоторые плохие привычки, которые для меня стали началом. показаться немного непрофессиональным или, по крайней мере, непродуктивным. Я начал искать в Интернете информацию о том, как стать хорошим программистом, потому что не знал, хорошо это или плохо то, что я видел у других более опытных программистов в этой компании. Больше всего меня беспокоило тестирование и рефакторинг, но было и много других подходов, не обязательно связанных с кодированием как таковым. «Продуктивный программист» была хорошей книгой, которая помогла мне разобраться в том, что значит быть хорошим программистом. Эта книга, вероятно, не оказала особого влияния, но она была достаточно мощной, чтобы указать мне направление, которое позже станет одной из моих самых больших страстей в программном обеспечении, а именно созданием программного обеспечения.

Прочитав «продуктивного программиста», я комментировал это в столовой с коллегой, который сказал мне, что тоже читал ее. Он начал цитировать какие-то примеры, которые я не мог вспомнить, и через некоторое время мы поняли, что на самом деле читаем разные книги с похожими названиями. Я прочитал «продуктивного программиста», а он прочитал «прагматичного программиста». Так что, не долго думая, в тот вечер я заказал «прагматичного программиста» на амазоне. Отличная книга, наверное, одна из моих любимых, очень рекомендую. Мне нравятся истории и анекдоты в этих книгах, они такие сильные и правдивые. Удивительная книга и, вероятно, одно из моих первых посвящений в области профессионализма и мастерства программного обеспечения.

На самом деле мастерство в программном обеспечении было причиной, по которой я ушел из компании, в которой работал в Дублине в начале своей карьеры. Стремясь получить больше понимания в этой области, я решил переехать в Лондон, где у меня была возможность посетить несколько встреч, связанных с этой областью, а также получить возможность встретиться и послушать многих важных деятелей программного обеспечения, говорящих об Agile, а также о мастерстве программного обеспечения. На одном из таких мероприятий я встретил Р.С. Мартина (дядя Боб) и решил купить его книгу «Чистый код». Эта книга является классикой и обязательна к прочтению. Очень хорошо написано, много примеров. Мне понравилось читать и следовать примерам. Кроме того, дядя Боб чрезвычайно харизматичен, и мне нравилось смотреть, как он говорит, и следить за его действительно крутыми видео, особенно из коллекций чистых кодеров. Я знаю, что есть еще одна книга дяди Боба об архитектуре, которую я не читал, но слышал, что она тоже очень хороша.

Когда я проработал в отрасли около 3 лет, я понял, что часто у меня возникают трудности с пониманием требований. Тогда не было JIRA, по крайней мере, не так, как сегодня. Билеты были распечатаны на бумаге и прикреплены к физической доске Agile Kanban с помощью bluetack. Я думаю, что мне очень понравились эти доски, и я очень заинтересовался процессом жизненного цикла доставки и самой непрерывной доставки, но в особенности меня очень интересовало, как писать хорошие требования. Я получил эту книгу, чтобы лучше понять пользовательские истории и как лучше всего их создавать, потому что техника, которую я тогда начал изучать, называлась ATDD, которая была TDD, но начиналась не с модульного теста, а с приемочных тестов (отсюда «A '). Я знал, что автоматизация приемочного тестирования была очень важным аспектом, чтобы все было правильно, но чтобы иметь возможность автоматизировать критерии приемки, также важно знать, как написать хорошие критерии приемки. Многие компании изо всех сил пытаются выразить свои требования словами. Эта книга очень помогла понять некоторые уловки, предубеждения и ловушки при подготовке пользовательских историй.

Тема Agile была очень актуальна в первые годы моей карьеры, я был одержим Agile-практиками, ретроспективами, пользовательскими историями, TDD и т. д. Однажды я обедал в столовой и услышал, как другие разработчики говорят об этой книге. это был довольно забавный роман об Agile. Я решил купить его и получил массу удовольствия. Оказалось, что эта книга на самом деле была приключенческой игрой/книгой «выбери себе». Вы впервые приходите в компанию в качестве руководителя проекта программного обеспечения, и вам предоставляется выбор, и в зависимости от выбора, который вы делаете, ваш проект и команда идут тем или иным путем. Это действительно весело, а также содержит несколько полезных уроков не только об Agile, но и о лидерстве.

Я думаю, что прагматичные программисты — одна из моих любимых редакционных статей. У них очень хорошие книги, мне понравились все, что я у них купила. Этот действительно хороший. Я хотел лучше понять, как работают мыслительные процессы и, в частности, процесс обучения. Как люди учатся? Эта книга вне чартов. Очень маленький, но и очень мощный. Мне это очень понравилось. В нем много иллюстраций, диаграмм и отличных пояснений. Тема обучения тому, как учиться, я думаю, очень важна не только для программистов, но и для всех, независимо от профессии. Вам не нужно быть программистом, чтобы прочитать эту книгу.

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

Было время, когда я так увлекся вопросами и ответами в stackoverflow, а также в project euler, что хотел найти хорошую подборку задач, которые можно было бы решать время от времени просто для развлечения и практики. Друг сказал мне, что в этой книге много проблем, и это также было очень полезно, потому что многие из проблем иногда были вопросами для интервью. Поэтому я решил получить его. Вау, эта книга просто огромна, я не прочитал даже 10%, но иногда случайно читаю некоторые части. А также интересно найти проблемы через глоссарий. Это действительно хорошая книга для изучения и подготовки, и ее можно пересматривать много раз. Я лично использую его только между работой/контрактами. Я делаю одно или два упражнения, чтобы немного решить проблему, и я думаю, что это помогает мотивировать меня на собеседование.

Я позаимствовал эту книгу в одной из первых компаний, в которой работал, а потом забыл вернуть ее. Я понял, что он все еще был у меня через 3 года после того, как я ушел или около того. Это просто отличный карманный путеводитель по Linux. Linux-терминал был одной из тех важных вещей, которые вам нужно изучить, когда вы начинающий программист, и это карманное руководство долгое время лежало рядом со мной на моем столе. Я узнал много полезного из него.

Учитывая, что я разместил руководство по Linux, я подумал, что было бы забавно показать вам, что у меня также есть руководство по DOS. Этот небольшой буклет издан в 1991 году. Тогда я был еще ребенком, и у меня был старый компьютер, я тогда ничего не знал о программировании, но эта книга помогла мне выучить некоторые основные команды DOS, которые я в основном использовал для копирования файлов, создания папки и устанавливать игры с помощью дискет. Моей любимой DOS-игрой был Принц Персии. Я был так счастлив, когда мне удалось установить его, потому что один из дисков, которые у меня были, был поврежден, поэтому мне пришлось пойти к другу и клонировать одну из его дискет, чтобы завершить установку.

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

Раз уж речь зашла о старых книгах, позвольте мне показать вам эту. Это одна из очень немногих книг, которые я сохранил с университетских времен. Я закончил универ в Белграде, и большинство книг после их использования я раздавал или просто клал в коробку и оставлял на чердаке у родителей. Но этот я решил оставить. Это забавно, потому что в самом начале универа, когда я начал интересоваться программированием, я действительно думал, что буду использовать инструменты CASE (Computer Aid Software Engineering) для создания программного обеспечения, поэтому я решил, что мне действительно нужно знать UML. Эту книгу мне дал другой ученик из предыдущего поколения, и в итоге я прочитал ее почти от корки до корки. 10 лет спустя UML — это то, что на самом деле не оказало большого влияния на мою карьеру. Честно говоря разработчик даже не знающий "UML" если на работе показывает UML диаграммы, то это никогда не проблема. Но я думаю, что это все еще полезно для тех, кто больше занимается системной архитектурой и любит представлять идеи и концепции компаниям и командам, с которыми они работают. Я храню его просто как память о временах универа, но я действительно никогда не возвращаюсь к нему.

Когда я купил книгу Cracking The Coding Interview вместе с ней, Amazon предложил мне также эту книгу за дополнительные 5 евро, так как она была в продаже. Так я тоже купил. Это забавная книга по математике, и я кое-что прочитал, но так и не закончил. Но в нем есть очень интересные разные данные, которые вас удивят.

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

Не читать книгу или читать ее наполовину — это не должно нас беспокоить. Это лишь один из многих интересных уроков о самообразовании, которые можно извлечь из «секретов пирата-ученого». Вскоре в своей карьере я понял, что многие вещи в программном обеспечении требуют «самообразования». Поскольку все движется довольно быстро, нет ничего необычного в том, что что-то либо устаревает, либо появляются новые необходимые вещи, которые нам нужно изучить. Эта книга была очень интересной, и я получила большое удовольствие, читая ее. Если вы заинтересованы в сфере самообразования и хотите стать более автодидактичным. Это хорошая книга.

Ява умрет! Я столько раз это слышал... Однажды меня пригласили на встречу, организованную какой-то рекрутинговой фирмой в лондонской Heron Tower, и вся их презентация была о том, насколько хороша scala и насколько плоха java, толком ничего не объясняя. Они просто пытались промыть нам мозги, чтобы мы сменили работу и чтобы некоторые люди в банковском секторе считали нас Scala. Нам дали несколько книг бесплатно. Я некоторое время изучал Scala и даже пару раз работал с ним, но я никогда не делал карьеру в Scala. Я не жалею, что отказался от Scala, по крайней мере, я попробовал. Я обнаружил, что кривая обучения довольно крутая, и меня просто это не беспокоило. Java всегда была рядом, поэтому я придерживался ее. Я очень уважаю разработчиков Scala, так как знаю, что этот язык достаточно универсален и для многих не прост в изучении.

Для меня Scala нет, а Kotlin да. Котлин — моя новая любовь, уже 2 года назад. Я просто люблю язык. Я прошел хороший курс по udemy и даже решил создать блог, чтобы загружать несколько видео kotlin и документировать свой переход: http://kotlin4j.blogspot.com/. Я купил эту книгу позже, чтобы дополнить свое обучение, она довольно хороша и Я хочу закончить чтение. Я думаю, что прочитал около 60%, затем сделал паузу, так как у меня были другие приоритеты. У меня уже была возможность профессионально кодировать код Kotlin, и я даже рискнул немного заняться Android в личном проекте, просто чтобы посмотреть, как это выглядит. В ближайшем будущем я вижу, что полностью перейду на Kotlin в качестве альтернативы Java. Я заметил, что компании уже нанимают разработчиков Kotlin даже в серверных системах. Так что да, это одна из моих настоящих целей на данный момент. Эта книга действительно хороша, как я уже сказал, мне нравится эта редакция, я рад порекомендовать любую книгу из них.

О, смотри этот. Большинство приложений, над которыми я сейчас работаю, основаны на RESTful, но несколько лет назад многие системы все еще использовали архитектуру SOAP. Это была одна из учебных книг, которые я использовал для прохождения одной из своих сертификаций Oracle под названием OCE-WSD (Oracle Certified Expert — Web Services Developer).

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

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

Есть лучшая книга по шаблонам проектирования под названием GOF (Gang Of Four), которую я в конечном итоге скачал в формате pdf и прочитал вместо этой, даже если примеры в книге GOF были написаны на C++
Это ссылка на книгу GOF: https://www.amazon.com/gp/product/0201633612

Я тоже не люблю эту книгу. Многие говорят, что это отличная книга, и, вероятно, так оно и есть, но у меня просто немного беспокойства и головной боли, когда я открываю ее. Дело в том, что он появился много лет назад, потому что одно приложение, с которым я работал, во многом полагалось на API многопоточности Java, поэтому я хотел изучить некоторые основы параллелизма в Java. Но вскоре после того, как я сменил работу, и поскольку большинство серверных приложений, над которыми я работал, на самом деле не имеют таких проблем с параллелизмом, потому что они написаны в функциональном стиле и также стремятся быть без состояния. Так что да, слава богу первому VAVR (ранее Java-сленг) с неизменяемыми коллекциями и немного более поздним появлением Java 8. Функциональный стиль кодирования с его неизменяемостью стал преобладающим, поэтому эта книга не была так нужна. Так что да, он у меня на полке, но я захожу к нему только после интервью, чтобы проверить, правильно ли я ответил.

Есть такая вещь, как теория ограничений, которая весьма актуальна для Lean-Agile-команд, особенно если они заинтересованы в Канбане, а также в Непрерывной доставке. Я не буду вдаваться в эту теорию, но эта книга рассказывает об этом через интересный роман. Рекомендую прочитать всем, кто интересуется сферой Agile-лидерства. Очень ценные уроки в этой книге.

О, круто, еще одна университетская книга, которая действительно пережила чистку. Это веселая книга. Большинство книг из коллекции Head-First довольно круты для чтения и очень практичны. У меня также был один на Java, но я подарил его другу, который только начинал. Эта книга может быть полезна любому, кто начинает работать с SQL.

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

Вы когда-нибудь слышали поговорку: «Если вы верите, что можете, значит, вы на полпути»? Сила мотивации в командах разработчиков сильно недооценивается. Многие рекрутеры ошибаются, и создание сплоченной команды — это гораздо больше, чем навыки и предыдущий опыт, это также мотивация, культура, отношение...

Эта книга очень маленькая, я не думаю, что в ней 100 страниц. Вам понравится читать его.

Эту книгу, я думаю, можно назвать ИТ-книгой, потому что она посвящена области HFT (высокочастотной торговли), которая в основном представляет собой компьютерные алгоритмы, которые торгуют валютой, акциями или другими финансовыми инструментами быстрее, чем это могут сделать люди. Меня это заинтересовало, потому что я прослушал бесплатную лекцию по форекс-трейдингу и по чистой случайности услышал о HFT, и кто-то порекомендовал мне прочитать эту книгу. Действительно увлекательное поле и история. Это действительно открыло мне глаза, когда я заметил, насколько важна высокая производительность для некоторых систем, вплоть до того, что требуется географическое расположение и даже покупка земли для создания инфраструктуры для прокладки оптических кабелей. Это действительно безумно интересная история.

ИТ-безопасность всегда интересна и актуальна. Очень важно знать, как защитить ваше веб-приложение от SQL-инъекций, XSS-атак и других. Я хотел узнать немного о безопасности с точки зрения злоумышленников, и мне предложили эту книгу. В нем есть довольно интересные вещи. Это не книга по программированию, это просто наступательная книга по основам безопасности. Возможно, есть другие книги получше в этой области, но, поскольку я не эксперт, я не могу рекомендовать или сказать, насколько хороша эта. Мне лично понравилось.

Угадайте, что является слабым местом каждой системы? Люди, использующие это. Эта область социальной инженерии и разведки с открытым исходным кодом действительно удивительна. У меня было больше времени, чтобы исследовать это, потому что тема довольно широкая. Но я получил это, потому что меня всегда интересовали психологические аспекты системной безопасности. В этой книге рассказывается не о программном обеспечении, а о принципах социальной инженерии и аналитике с открытым исходным кодом, а также о том, как они используются пентестерами и другими специалистами по безопасности. Мне очень понравилось, в этой книге очень интересные случаи и истории из жизни.
Также я забыл упомянуть, извините за эту картинку, я пошел в магазин и оставил книгу на диване после прочтения, и моя собака начала ее есть. К счастью, это все еще читабельно.

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

Я хотел немного заняться мобильным телефоном, потому что никогда этим не занимался, а также потому, что хотел показать программирование детям. Во время учебы в университете я преподавал программирование другим студентам, чтобы заработать немного денег на карманные расходы, и я всегда думал, что учить детей будет интересно, поэтому я решил приобрести эту книгу. App Inventor — довольно хороший инструмент для начинающих, но вскоре я понял, что он слишком продвинут для некоторых детей, поэтому я решил все-таки использовать скретч для младших детей.

Я использовал эту книгу, чтобы обучать нулям и некоторым концепциям программирования некоторых детей, в том числе членов моей семьи, в свободное время. Они все это любят. Скретч — это очень весело и действительно здорово пробуждает творческие способности детей. Кстати, я нашел эту книгу в супермаркете Tesco в Лондоне всего за 5 фунтов.

Это были мои книги по информационным технологиям, те, которые у меня остались, как было сказано в начале, к сожалению, некоторые из них я потерял.

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