SkazOff Blog

Programming | Part#3

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

Итак приступим, для начала отмечу, что информации на данную тему в инете и так очень много, например Ландрина об этом писала, а еще упоминали на Скиллките, но как бы то ни было я представлю свою подборку топ-5, надеюсь вы найдете в ней много интересного.

1.»Совершенный код»  Стив Макконнелл ©Ozon

Изложенные в книге методики и стратегии помогут вам:

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

2. «Чистый код: создание, анализ и рефакторинг» Роберт К. Мартин ©Ozon

Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга состоит из трех частей. В первой части излагаются принципы, паттерны и приемы написания чистого кода; приводится большой объем примеров кода. Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем. Третья часть книги — концентрированное выражение ее сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.

3.»Приемы объектно-ориентированного проектирования. Паттерны проектирования» Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес©Ozon

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

Издание предназначено как для профессиональных разработчиков, так и для программистов, осваивающих объектно-ориентированное проектирование.

 4. «Программист-фанатик»  Чад Фаулер ©Ozon
В этой книге вы не найдете описания конкретных технологий, алгоритмов и языков программирования — ценность ее не в этом. Она представляет собой сборник практических советов и рекомендаций, касающихся ситуаций, с которыми порой сталкивается любой разработчик: отсутствие мотивации, выбор приоритетов, психология программирования, отношения с руководством и коллегами и многих других. Подобные знания обычно приходят лишь в результате многолетнего опыта реальной работы. По большому счёту перед вами — ярко и увлекательно написанное руководство, которое поможет быстро сделать карьеру в индустрии разработки ПО любому, кто поставил себе такую цель. Конечно, опытные программисты могут найти некоторые идеи автора достаточно очевидными, но и для таких найдутся темы, которые позволят пересмотреть устоявшиеся взгляды и выйти на новый уровень мастерства. Для тех же, кто только в самом начале своего пути как разработчика, чтение данной книги, несомненно, откроет широчайшие перспективы.
5.»Release it! Проектирование и дизайн ПО для тех, кому не все равно» Майкл Нейгард ©Ozon
Не важно, каким инструментом вы пользуетесь для программной разработки — Java, NET или Ruby on Rails. Написание кода — это еще только полдела. Готовы ли вы к внезапному наплыву ботов на ваш сайт? Предусмотрена ли в вашем ПО «защита от дурака»? Правильно ли вы понимаете юзабилити? Майкл Нейгард утверждает, что большинство проблем в программных продуктах были заложены в них еще на стадии дизайна и проектирования. Вы можете двигаться к идеалу сами — методом проб и ошибок, а можете использовать опыт автора. В этой книге вы найдете множество шаблонов проектирования, помогающих избежать критических ситуаций и не меньшее количество антишаблонов, иллюстрирующих неправильные подходы с подробным анализом возможных последствий. Любой разработчик, имеющий опыт многопоточного программирования, легко разберется в примерах на Java, которые подробно поясняются и комментируются.
Стабильность, безопасность и дружественный интерфейс — вот три важнейших слагаемых успеха вашего программного продукта. Если в ваши планы не входит в течение последующих лет отвечать на недовольные письма пользователей, выслушивать критику заказчиков и постоянно латать дыры, устраняя возникающие баги, то прежде чем выпустить финальный релиз, прочтите эту книгу.
Вот такой вот ТОП-5, есть еще огромное количество полезной/интересной/нужной литературы, но раз речь идет про «самое начало пути программиста», то начать лучше именно  с этих книг, а не пытаться читать Кнута как многие советуют.

Оставить комментарий