Чтобы стать инженером, нужно не только читать код, но и писать его.

Эта история изначально была опубликована на The Smart Coder.

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

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

Однако есть вечнозеленые книги, посвященные метатемам, шаблонам дизайна или общим образам мышления.

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

Примечание. Ни одна из приведенных ниже ссылок не является партнерской.

Взломать интервью по кодированию

Интервью« Взлом кода: 189 вопросов и решений по программированию » настоятельно рекомендуется всем, кто хочет или должен пройти собеседование по программированию. Писательница Гейл Лаакманн Макдауэлл, опытный инженер-программист, была и интервьюером, и кандидатом. Она может помочь вам найти скрытые детали в вопросах, разбить проблемы на небольшие части и научиться лучше понимать концепции.

Кроме того, Гейл предлагает вам 189 реальных вопросов и решений для собеседования, чтобы вы могли хорошо подготовиться к следующему собеседованию по кодированию!

Код завершен

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

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

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

Главный вывод? Разработчики должны управлять сложностью. Написать код, который будет легко поддерживать и читать как вам, так и другим.

Чистый код

Чистый код: руководство по Agile Software Craftsmanshi p »Роберта К. Мартина (дяди Боба) - одна из самых популярных книг по программированию. Он был написан, чтобы научить разработчиков программного обеспечения принципам написания чистого программного кода. Он поставляется с множеством примеров, показывающих, как реорганизовать код, чтобы он был более читабельным и поддерживаемым, но имейте в виду тот факт, что он очень ориентирован на Java. Хотя некоторые шаблоны и методы можно перенести на общее программирование или на другие языки, основная аудитория книги - разработчики Java.

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

Рефакторинг

Книга Мартина Фаулера Рефакторинг: улучшение дизайна существующего кода, 2-е издание объясняет, что такое рефакторинг, как и оригинал 20 лет назад. Вопросы, которые вы можете задать себе и на которые даны ответы в этой книге:

  • Зачем мне проводить рефакторинг кода?
  • Как распознать код, требующий рефакторинга?
  • Как я могу успешно реорганизовать свой код?

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

Шаблоны проектирования Head First

Шаблоны проектирования Head First: удобное для мозга руководство Эрика Фримена, Берта Бейтса, Кэти Сьерра и Элизабет Робсон обучает вас шаблонам проектирования и передовым методам, используемым другими разработчиками для создания функционального, многоразового, элегантного и гибкого программного обеспечения. Он также наполнен отличными визуализациями, которые помогут вам легче усвоить новые концепции.

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

Паттерны архитектуры корпоративных приложений

Паттерны архитектуры корпоративных приложений - еще одна замечательная книга Мартина Фаулера, посвященная практике разработки корпоративных приложений. После краткого руководства по разработке корпоративных приложений Мартин предлагает вам более 40 шаблонов для решения типичных проблем при проектировании корпоративных приложений. Он также поставляется с множеством визуализаций UML и примеров кода, написанных на Java или C #.

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

Однако книга довольно сильно устаревает, поэтому современные концепции, такие как REST, облако или JSON, не упоминаются. Это все еще хорошее чтение, но будьте при этом критичны!

Эффективная работа с устаревшим кодом

В статье Майкла Фезерса Эффективная работа с устаревшим кодом авторы предлагают стратегии для работы с большими, непроверенными базами устаревшего кода. Хотя вы можете подумать, что мы находимся в 2020 году и унаследованный код больше не должен быть проблемой, потому что у нас всегда есть только чистый, поддерживаемый код и микросервисы, позвольте мне заверить вас, что это заблуждение. Унаследованный код по-прежнему остается одной из самых сложных проблем для многих компаний.

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

В книге приведены примеры, написанные на Java, C ++, C и C #, а также даны советы по работе с устаревшим кодом, который не является объектно-ориентированным.

Чистый кодер

Другая книга дяди Боба учит методам, дисциплинам, инструментам и практикам настоящего мастерства в области программного обеспечения. Чистый кодер: Кодекс поведения для профессиональных программистов содержит практические советы по оценке, кодированию, рефакторингу и тестированию.

Прочитав эту книгу, вы должны научиться справляться с конфликтами, плотным графиком и неразумными менеджерами; выдерживать безжалостное давление и избегать выгорания; управлять своим временем; попасть в поток кодирования; и способствовать созданию среды, в которой могут развиваться разработчики и команды.

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

Так что мой совет - прочитать книгу внимательно и критически, если вы это сделаете!

Введение в алгоритмы

Введение в алгоритмы, третье издание Томаса Х. Кормена, Чарльза Э. Лейзерсона, Рональда Л. Ривеста и Клиффорда Стейна является не чем иным, как важным руководством по алгоритмам всех видов. Он очень всеобъемлющий и доступен для всех категорий читателей, как новичков, так и профессионалов. Он четко сформулирован и охватывает множество вопросов. Но это также довольно сложно, и следовать этому не так-то просто.

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

Прагматичный программист

Программист-прагматик - одна из самых значительных книг, которые я когда-либо читал. Он наполнен как техническими, так и профессиональными практическими советами, которые помогли мне во многих проектах и ​​стать лучшим разработчиком.

Книга очень актуальна даже в 2020 году, особенно с новым 20-летним изданием. Он исследует, что значит быть современным разработчиком, исследуя темы, которые варьируются от личной ответственности и развития карьеры до архитектурных методов.

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

Если бы мне нужно было выбрать одну книгу, чтобы порекомендовать вам ее, то это определенно была бы эта!

Подводя итог: это одни из самых популярных книг для разработчиков. Если бы мне пришлось выбрать книгу, чтобы порекомендовать ее, это был бы Программист-прагматик Эндрю Ханта. Книги Роберта К. Мартина приняты в отрасли и нравятся многим разработчикам, но я буду критически относиться к их чтению, потому что я не разделяю многих мнений с дядей Бобом. Если вы хотите читать классные книги от классных разработчиков, посмотрите эти фантастические книги для разработчиков!