15 марта 2011 г.



Книги для программистов

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

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

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

Итак, приступим.

«Совершенный код. Мастер-класс»
Автор: Стив МакКоннелл

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

Авторы: Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес (aka Банда Четырех/Gang of Four)

Согласен, эта книга может стать полезной не всем. Все же другие парадигмы программирования накладывают свой отпечаток на проектирование. Но т.к. на текущий момент объектно-ориентированное проектирование и программирование являются наиболее популярными и долго еще будут оставаться таковыми, считаю прочтение этой книги крайне полезным. Думаю, не нужно рассказывать, что эта книга - классика объектно-ориентированного проектирования. Пожалуй, именно в ней впервые был собран и обобщен многолетний опыт проектирования в IT. Что важно, авторы предлагают не только описание приемов, но и рассматривают типичные сценарии применения и различные подходы к выбору способов решения задач. Еще отмечу, что эта книга - не на один раз. Она является прекрасным справочником, который поможет на этапе проектирования очередного модуля вашего приложения. Не ставьте ее на самую высокую полку :-)

Автор: Джоэл Спольски

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



Автор: Алан Купер

Об этой книге я уже тоже писал. Я считаю эту книгу просто необходимой каждому разработчику. У меня после прочтения произошел настоящий сдвиг парадигмы. Это прекрасное напоминание, что в первую очередь мы работаем для пользователей и решаем ИХ задачи. И мы должны это делать с максимально удобным и подходящим результатом. Дело даже не в удобстве использования приложений как таковом. Автор смотрит на проблему шире. Главное - это взаимодействие приложения с пользователем, которое уходит далеко за рамки пользовательского интерфейса в глубь программной архитектуры. Если вы разрабатываете конечный продукт, то эта книга должна стать одной из настольных - современные тренды в разработке ПО уверенно ведут в сторону более детальной разработки взаимодействия программы и пользователя, нежели внутреннего устройства самой программы. Однако, даже в заказных разработках проектирование взаимодействия будет полезным - это позволит эффективно решить бизнес-проблему и облегчить внедрение. Продолжением темы является следующая книга...

Автор: Дэвид Платт

Она более жесткая, нежели предыдущая. Автор не стесняясь называет современные программы отстоем (sucks в оригинале): «Современное ПО - отстой. Приличных слов, чтобы выразить этот факт, нет. Оно не защищено и позволяет программам злоумышленников проникать в наши компьютеры. Оно ненадежно и ломается в самый ответственный момент, уничтожая плоды наших долгих трудов. Работать с ним трудно, потому что приходится ломать голову над тем, как выполнить простейшие операции ». Мне показалось, что эта книга менее обстоятельная, чем предыдущая, и в то же время более эмоциональная. Обе они призваны решить одну и ту же проблему: разработчики ПО создают свои приложения для кого угодно, только не для пользователей, мало задумываясь об истинных проблемах последних. Только решает эту проблему каждая из них по своему. Если эмоциональная составляющая вам ближе и способна быстрее вас заинтересовать, обратитесь сначала к этой книге.

Автор: Роберт Гласс

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

Автор: Нил Форд

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

Вот такой список книг для разработчиков получился у меня. Еще раз повторюсь, что себя я отношу больше к менеджерам, чем к программистам. Поэтому ни в коем случае не нужно мне доверять ограничивать себя этим списком. Что еще можно в него добавить?

-




Понравилось сообщение - подпишитесь на блог Подписка на блогFollow grodnosoft on Twitter




Читайте также:


4 комментария:

  1. "книги для разработчиков, книги для менеджеров и книги по управлению проектами"<<<<
    а куда кинуть свой взор QA????

    ОтветитьУдалить
  2. @archik

    Вот как раз в QA у меня ни грамма опыта :) Хотя, считая QA составной частью процесса разработки ПО, я бы порекомендовал кинуть свой взор на книги для разработчиков. А для руководителей отделами QA конечно же на книги для менеджеров :)

    ОтветитьУдалить
  3. Хорошая подборка.
    Я бы ещё наверно добавил
    Д. Томас, Э. Хант: Программист-прагматик. Путь от подмастерья к мастеру.
    http://oz.by/books/more1031721.html

    ОтветитьУдалить
  4. @Pavel Drobushevich

    Спасибо, добавим в закладки.

    ОтветитьУдалить