Обзор литературы прочитанной за два года

  • Tutorial
Привет Хабра! Когда я только начинал заниматься веб-разработкой, то даже не мог представить, сколько литературы нужно прочесть и какой объем знаний получить, чтобы стать нормальным специалистом. Кроме того, сфера постоянно меняется, и знания устаревают.

Для меня проблема заключалась в том, что я не люблю читать и чтение расцениваю исключительно как неизбежную работу, которую необходимо проделать, чтобы добыть материал из печатного вида. Но так получилось, что для повышения своей квалификации читать приходится. Я установил для себя норму — одна книга в месяц. С одной стороны, это мало, с другой, — много (если действительно придерживаться плана). Ну и раз уж мне приходится читать в принудительном порядке, это должно давать какую-либо выгоду. Каждая книга — это мучение, и я не вижу смысла тратить время на литературу, которая мне ничего не даст после. Поэтому каждый раз, попадая в книжный и держа в руках очередную книгу, я задаю себе вопрос: «А зачем?! Какой толк от этих кусков бумаги?! Что я вообще тут делаю?!». Чтобы вы не тратили время на книги, которые мне кажутся бесполезными, я решил написать небольшой обзор прочитанной за два года литературы и прочих найденных источников знаний. Весь материал ниже так или иначе связан с веб-разработкой и различными её аспектами. Ниже описаны только те книги, которые я прочитал. Те книги, которые «не осилил»/не дочитал (например, про NodeJS и пару фреймворков) не привожу.

Критерии оценки книг:

  • Количество кода. Чем больше кода в книге, тем она хуже. Это значит, что автор приводит бессмысленные листинги программ вместо того, чтобы описать словами алгоритм работы.
  • Толщина книги. Чем толще книга, тем хуже. Скорее всего, её будет трудно дочитать до конца. Почему она стала толстой?
    • Потому что там много воды.
    • Потому что автор не умеет излагать свои мысли коротко и четко.
    • Потому что автор работает в каком-либо университете, так что писать тонкую книгу — не серьёзно: коллеги с кафедры будут смеяться, поэтому он раздувает ещё бессмысленными вставками.
  • Иллюстрации. Чем меньше иллюстраций, тем книга хуже. Одна и та же информация, представленная в графическом и текстовом виде, легче воспринимается в графическом. Так же играет роль глубина переработки информации. Текст с иллюстрацией воспринимается лучше, чем текст без иллюстрации. Наличие качественных иллюстраций показывает, что автор работал над книгой «с душой».
  • Дизайн и верстка. Хороший дизайн ускоряет чтение и позволяет лучше усваивать информацию. В этот пункт входит соблюдение правил типографики, верстки и структурирования информации.
  • Хорошая книга легко читается: глаза не должны уставать, а страницы должны быть приятными на ощупь (в этом плане глянцевые издания для дизайнеров, конечно, вне конкуренции). Качественный дизайн, опять же, показывает, что над книгой работали «с душой».
  • Идеи, а не методы. Хорошая книга должна учить тому, что не устареет в ближайшие несколько лет, а то и больше. Для всего остального подходят статьи в соответствующих изданиях. Зачем платить 1000 руб. за книгу об API очередного модного фреймворка, о котором все забудут через полгода? Лучше почитать об идеях, которые воплотили авторы в фреймворке, о том чего они хотели, как этого добивались, к чему пришли. Как проектировали архитектуру и почему именно так.

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

JavaScript: Подробное руководство

(JavaScript: Definitive Guide. David Flanagan)


Итого: 982 страниц / средний дизайн

Очень толстая книга, в которой описано что, как и почему работает. Читать её, возможно, нет смысла, т.к. появилась альтернатива от Ильи Кантора.

Современный учебник JavaScript

Сайт: JavaScript.ru


Собственно, альтернатива Девиду Фланагану. Написано все и обо всем. Читается в два/три этапа — первый раз ты понимаешь основы JavaScript, а второй раз осознаешь все его тонкости. Честно говоря, так часто обращаюсь к справочной информации на этом сайте, что даже не представляю интернет до него.

Далее ряд книг, которые читали все JavaScript-разработчики. Книги нужно читать не потому, что в них конкретные мысли, а потому, что они учат, как надо писать на JavaScript`е. В них рассмотрены паттерны проектирования и объясняется суть различных библиотек. Именно эти книги учат думать, как веб-разработчик. Я не могу сказать, что это отличные книги, в основном они скорее хорошие, но все они обязательны к прочтению.

Веб-приложения на JavaScript

(JavaScript Web Applications. Alex MacCaw)


Основные мысли:
  • Бейте все на модули и инкапсулируйте (function() {… })();
  • Чтобы сделать цепочку вызовов, возвращайте объект, с которым работаете
  • Используйте библиотеки

Итого: 1000 руб. / 300 страниц / средний дизайн / нормальная книга

Повсюду в содержании написано слово MVC, хотя книга скорее о модулях и модульном подходе. Много написано про события, но скорее справочной информации. Много отсылок к jQuery, да и вообще автор поверхностно пробегает по разным библиотекам, объясняя, как они появились и зачем были нужны. В конце книги идет приложение, в котором, например, есть справочник по CSS3. Складывается ощущение, что автор стремился добить книгу текстом до нужного объема.

JavaScript. Шаблоны

(JavaScript Patterns. Stoyan Stefanov)


Итого: 900 руб. / 200 страниц / средний дизайн / нормальная книга

Книга целиком и полностью об ООП в JavaScript`е. Ну и конечно есть такие темы, как: каррирование, фасад, прокси-объект, стратегия, декоратор, итератор и т.п. Книга вряд ли когда-либо устареет, т.к. основана на алгоритмах, а они не меняются. Из минусов — это опыт читателей. Многие приемы, описанные в книге, на практике появляются только в сложных проектах. Для того, чтобы сделать визитку для ООО «Рога и копыта», такие знания конечно не нужны.

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

Читаемый код или Программирование как искусство

(The Art of Readable Code (Theory in Practice). Dustin Boswell, Trevor Foucher)


Основные мысли:
  • Одна функция — одна задача
  • Полные имена переменных
  • Разбивайте длинные выражения на короткие
  • Выделяйте блоки кода

Итого: 500 руб. / 200 страниц / средний дизайн / остался доволен

Ну, тут многие скажут, что книжка совсем уже для тех, кто только начинает программировать. Не соглашусь. Конечно, любители Java выберут «Чистый код. Создание, анализ и рефакторинг» (Мартин Р.), а вот веб-разработчики часто не следуют даже базовым принципам. Например, постоянные сокращения btn вместо button и подобные. Да и статьи в стиле Армина Ронахера «Хватит быть милым и умным» (Stop Being Cute and Clever, http://habrahabr.ru/post/205616/) не появлялись бы. Одним из самых запоминающихся для меня примеров из книги, был пример сокращения вложенности:
function(name, age) {
	if(!name || !age) return false;
	...
}
Вместо:
function(name, age) {
	if(name && age) {
		...
	}
}

Уж очень часто у любителей jQuery вложенность сильно возрастает. Да и факт появления библиотеки «Q» для NodeJS (https://github.com/kriskowal/q) для меня является скорее отрицательным показателем. Почему? Если у вас одна функция выполняет одну задачу, факт появления многократной вложенности маловероятен.

JavaScript сильные стороны

(JavaScript: The Good Parts. Douglas Crockford)


Итого: 250 руб. / 250 страниц / средний дизайн / отличный справочник

Многие ведутся на название книги «сильные стороны», хотя в самой книге этих самых сильных сторон нет.

По сути это некий справочник, в котором более-менее коротко описаны большинство объектов JavaScript`а.

Такой справочник хорошо пролистать перед собеседованием или чтобы вспомнить редко используемые методы. А так, Илья Кантор вам в помощь.

CSS3. Руководство разработчика

(The Book of CSS3: A Developer's Guide to the Future of Web Design. Peter Gasston)


Итого: 500 руб. / 170 страниц / средний дизайн / нормальный справочник

Книгу дали на конференции. Сначала думал — очередная подборка копирайта, но, как оказалось, это вполне нормальный справочник. Все примеры проиллюстрированы, автор пишет коротко и по делу, воды нет. Очень напоминает книгу «JavaScript сильные стороны», только по части CSS3.

Ошибки веб-дизайна или как их устранить до того, как вы лишитесь посетителей

(Defensive Design for the Web. Matthew Linderman, Jason Fried).


Основные мысли:
  • Сообщение об ошибке должно быть заметно
    • Используйте цвет, условные значки и текст, чтобы ясно обозначить проблемное место
    • Всегда обозначайте ошибки одним и тем же способом
  • Сообщение об ошибке должно быть понятным
    • Не используйте язык, который не понятен вашим клиентам
    • Текст должен быть коротким и понятным
    • Извинительный тон
  • Работа с формой:
    • Выделяйте обязательные и дополнительные поля
    • Принимайте ввод во всех распространенных форматах
    • Давайте примеры ввода, списки, подсказки
    • Ясно устанавливайте ограничение на количество символов
    • Если клиенту не доступны некоторые варианты — не предлагайте их
    • Проверяйте ввод как можно быстрее
    • Уберите кнопку «Очистить» и делайте недоступной после нажатия кнопку «Отправить»
    • Сохраняйте информацию
  • Работа со страницей 404
  • Перенаправляйте частично неверные URL
  • Предложите альтернативную версию информации и сведения об обновлении для старых браузеров
  • Отвечайте на вопросы на той же странице
  • Создайте раздел «Помощь»
  • Предусмотрите несколько вариантов поддержки
  • Отвечайте на e-mail быстро и информативно
  • Уберите ненужную рекламу
  • Лучше быстро, чем красиво
  • Не заставляйте регистрироваться
  • Уберите лишнюю навигацию
  • Помощь при поиске:
    • Четко объясняйте, почему при поиске не найдены результаты или показаны неточные совпадения
    • Предугадывайте типичные ошибки и показывайте подходящий результат
    • Дайте возможность отфильтровать результаты
    • Посоветуйте, как улучшить результаты поиска
  • Если продукт будет доступен позже, объясните когда
  • Предлагайте уведомление по e-mail
  • Анализируйте логи сервера
  • Изучайте обращения в тех. поддержку
  • Анализируйте конкурентов

Итого: 170 руб. / 200 страниц / дешевый дизайн / отличная книга

С первого взгляда книга не внушала доверия, но я остался очень доволен. Нет воды. На каждый совет по три-четыре хороших и плохих примера. Все примеры со скриншотами и коротким описанием. Основная мысль — «безопасный дизайн». Учит предупреждать ошибки пользователей. Можно использовать как чеклист перед сдачей сайта. Даже несмотря на то, что все советы довольно избиты, тем не менее, большинство программистов им не следует. В книге чувствуется взгляд не со стороны программиста, а со стороны специалиста по решению конфликтных ситуаций.

Веб дизайн

(Designing Web Usability: The Practice of Simplicity. Jakob Nielsen)


Итого: цену не знаю / 500 страниц / средний дизайн / бессмысленно

С одной стороны, содержание книги в целом уже не актуально, с другой — в тексте в основном вода. Возможно, совсем зеленым студентам следует бегло пробежаться по разделам. Как и в любой «книге про web» расписаны интуитивно понятные вещи:
  • Лучшие сайты — быстрые
  • Тексты: краткость, грамотность, четкость и т.п.
  • Делайте нормальное меню
  • Делайте нормальные URL
  • Тестируйте на ошибки
  • Используйте alt для изображений

Даже несмотря на то, что это сам Якоб Нильсен, — рекомендовать не буду.

На работе мне постоянно делали замечания об отсутствии «чувства прекрасного», поэтому решил пройтись по дизайну:

Универсальные принципы дизайна.

(Universal Principles of Design. W. Lidwell, K. Holden and J. Butler)


Основные мысли:
  • Высокий процент результатов в любой крупной системе зависит от низкого процента переменных
  • Объекты и среды следует разрабатывать таким образом, чтобы максимальное количество людей могли использовать их без модификации
  • Привлекательные с точки зрения эстетики разработки кажутся проще в использовании, чем непривлекательные
  • Внешний вид объекта должен подсказывать способ его использования
  • Люди находят более привлекательными формы, которые напоминают человека или обладают антропоморфными характеристиками
  • Выравнивать объекты следует по центру масс
  • Богатая пейзажами окружающая среда снижает стресс, улучшает сосредоточенность и концентрацию
  • Использование блоков информации
  • Цветовая схема Иттена
  • Предотвращение непреднамеренных действий путем их предварительной верификации
  • Система удобнее для использования, когда одинаковые элементы представлены одинаковым образом
  • Метод установления границ для операций, которые можно производить над системой
  • Тенденция отдавать предпочтение объектам с плавными контурами, а не с острыми углами или заостренными элементами
  • Уровень контроля, обеспечиваемый системой, должен соответствовать навыкам и умением её пользователя (expert / normal mode)
  • Глубина переработки информации
  • Проектирование, основанное на нахождении консенсуса
  • Следы использования или износа указывают на методы взаимодействия с объектом или окружающей средой, которые предпочитает пользователь
  • Всегда должна быть точка входа
  • Аварии — следствие ошибок в конструкции. Действие и бездействие, приводящие к непредумышленному результату.
  • Использование элементов в большем количестве, чем необходимо, с целью компенсировать влияние неизвестных переменных и предотвратить сбой системы
  • Отношение фигура/фон
  • Время, необходимое для наведения указателя на цель, является функцией размера цели и расстояния до нее (закон Фиттса)
  • По мере увеличения гибкости системы, её практичность снижается
  • Упорядоченная последовательность реакции людей на острый стресс
  • Качество выходных данных системы зависит от качества входных данных
  • Диаграмма Гутенберга (движение глаз по странице)
  • Время, необходимое для принятия решений, возрастает с увеличением количества альтернатив (закон Хика)
  • Не стоит заполнять пустые места из-за страха пустоты. Минимализм в дизайне.
  • Используйте пиктограммы в интерфейсе для лучшего распознания и вспоминания
  • Эффекты замедления обработки информации из-за конфликта психологических процессов.
  • Метод подачи информации в порядке снижения её важности.
  • Модульный принцип управления сложной системой.
  • Средство прогнозируемого изменения поведения без ограничения вариантов или значительного изменения стимулов.
  • Картинки запоминаются лучше, чем слова.
  • Сигнальный шум. Отношение релевантной информации к нерелевантной, выводимой на дисплей.
  • Одинаковые элементы воспринимаются как более связанные между собой.
  • Система становится удобнее в эксплуатации, когда её назначение и методы использования четко различимы.
  • Использование слабого элемента, который выходит из строя, чтобы защитить другие элементы от аварии.
  • и т.п.

Итого: 1 200 руб. / 250 страниц / отличный дизайн / отличная книга

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

Графический дизайн от идеи до воплощения

(Graphic Design Thinking (Design Briefs). Ellen Lupton, Jennifer Cole Phillips)


Основные мысли:
  • Рисуйте ассоциативные карты ваших идей
  • Проводите интервью с клиентами, возможно, им нужно совсем другое

Книга, по сути, представляет собой сборник копирайта на тему «Как определить задачу» и «Откуда брать идеи». Много слов, картинок и банальных штампов. Её интересно пролистать, но остаточных знаний она не несет. Когда её покупал, повелся на раздел «Исследование места». В нем шла речь о расстановке рекламных щитов и информационных указателей в различных сооружениях. Эта тема была мне интересна ещё с момента обучения на PR`е, но книги по теме не попадались. Впрочем, и тут нельзя сказать, что автор раскрыл эту тему. Скорее слегка приподнял завесу.

Итого:800 руб. / 200 страниц / отличный дизайн / покупать не советую

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

Школа графического дизайна. Принципы и практика графического дизайна.

(Graphic Design School: The Principles and Practices of Graphic Design. David Dabner)


Основные мысли:
  • Разбор шрифтов
  • Разбор цветов и оттенков (цветовую схему Иттена автор пропустил)
  • Блоку текста можно придавать различную форму и использовать сам текст как украшение страницы

Итого: 750 руб. / 200 страниц / отличный дизайн / средне, много воды

Довольно странная книга. Вроде и написано много, но остаточных знаний снова мало. Можно было бы отнести её к очередному банальному копирайту, но книгу вытягивает раздел о шрифтах и способах верстки страницы, используя сам текст как украшение. В любом случае, своих денег она не стоит. А про шрифты — лучше почитать у Иннокентия Келейникова в книге «Дизайн книги: от слов к делу».

Книги «Универсальные принципы дизайна» и «Ошибки веб-дизайна» помогают осознать, как надо проектировать систему так, чтобы люди совершали как можно меньше ошибок в ней, а также как свести к минимуму негативные последствия ошибок, если они все-таки произошли.

Под впечатлением этих книг решил покрыть полученные знания учебными курсами на тему дизайна. Нормальные курсы стоили не менее 30 000 руб. и по времени растягивались на полгода. Решил сэкономить (и пожалел). Выбрал два учебных центра, стоимостью в среднем 9 000 руб. за курс длинною в 1.5 месяца.

Графический дизайн



Чему учат: Corel, Photoshop

Что узнал:
  • RGBA, CMYK — в чем разница и как появились
  • Какие проблемы могут возникнуть в печати
  • Как градиентами создать объем и эффект стекла
  • Как создать объем через размытие и прозрачность
  • Как вырезать сложный объект
  • Как «добавить уют» и т.п.

При чем тут дизайн? Не знаю. Преподаватели просто показывают, как нажимать на кнопки. Хотя были и положительные моменты. На курсе Corel разобрали цвета и предпечатную подготовку. Это гораздо шире статей в интернете, которые читал до этого. На курсе Photoshop было много чего, но в памяти осталось разложение цветов по каналам (RGBA) и польза от цветокоррекции. Показали, как добавить «+20% тепла и уюта» и «+17% к объему и глубине снимка». В целом оно того стоило. Да и на собеседованиях часто встречаются вопросы про PNG, которые требуют знаний чуть больше, чем «нарезать макет».

Курс академического рисунка и живописи (рисование карандашом)



Что узнал:
  • Толщина линии с одной стороны рисунка должна быть меньше, это придаст иллюзию падения света

Фотошоп фотошопом, а рисовать надо учиться. Поэтому посчитал, что курсы рисования прокачают это умение. А по факту оно того не стоило. Минус 9 000 руб. и время. Мне кажется, тут была проблема в преподавателе. Курсы были очень похожи на школьное ИЗО. Ты приходишь, рисуешь куб два часа, и в голове остается только один вопрос: «И чё?!». Никаких методик и техник, никаких объяснений, только постоянное рисование квадратов, кружков и натюрмортов. Остаточных знаний ноль. Поэтому, если пойдете на рисунок карандашом, спросите про учебный план и какие остаточные знания у вас будут.

Но вернемся к программированию.

Когда начинал писать игры на JavaScript, спросил у коллег, что они могут посоветовать. Посоветовали следующую книгу:

Секреты разработки игр на macromedia Flash MX

(Flash MX 2004 Game Design. Jobe Makar)


Итого: 250 руб. / 600 страниц / плохой дизайн / одна из лучших прочитанных мною книг

Сначала отпугивала фраза macromedia Flash MX в названии книги, но я ошибся. Основные мысли выделить не могу, т.к. книга построена скорее как учебник. Вся книга является одной сплошной мыслью. Автор рассказывает о различных игровых жанрах, объясняет, зачем нужна тригонометрия и как обсчитывается физика столкновений. Пробегает по методам оптимизации, показывает, как использовать «сетку» для упрощения физических расчетов, перечисляет виды AI и рассказывает об алгоритме поиска пути. Автор также описывает этапы проектирования игры, улучшения графики, принципы создания изометрических миров, наложения и роли звука в играх. В общем, книга расширяет сознание и заставляет смотреть на игры по-другому. В отличие от других авторов (например, Рафаэло Чекко), Джоб Макар практически не пишет код в книге. Иногда, конечно, пишет, но мало. Джоб объясняет, как и зачем, смотрит в суть, а как вы это реализуете в коде — выходит за рамки книги. Секреты разработки игр — это одна из тех книг, которые больше по алгоритмам и идеям, чем по коду.

Когда искал информацию о книге, наткнулся на такую статью http://www.8bitrocket.com/tag/electrotank/. Поэтому перед покупкой проверьте, перевели на русский следующие его шедевры или нет. Возможно, лучше купить их, т.к. сам автор пишет, что у него было мало времени для работы над книгой «Секреты разработки игр на macromedia Flash MX» и он не очень доволен её качеством.

Лекции Андрея Короткова



После прочтения шедевра выше, стал искать информацию по разработке игр и случайно наткнулся на русского парня по имени Андрей Коротков. У Андрея есть канал на YouTube, где он поэтапно читает курс лекций на тему, как писать игры и создавать игровые движки http://www.youtube.com/user/megadrone86/videos. Да, это не JavaScript, это C++. Но это не имеет значения, т.к. суть лекции — идеи и алгоритмы.

Основные мысли:
  • Пишите диз. док.
  • Продумывайте концепцию игры в целом
  • Движок должен состоять из модулей

Но, как и у Джоба Макара, тут основные мысли размазаны. Лекции нужно воспринимать полностью, т.к. в каждой лекции рассказывают о конкретных проблемах и о том, как их надо решать.

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

Дизайн уровней. Теория и практика

Михаил Кадиков


Миша пишет серию статей, которые постепенно формируются в книгу. Все коротко, ясно и хорошо структурировано, каждая статья подкреплена кучей примеров. Познакомиться с книгой можно тут (http://pro.level-design.ru/). Читал взахлеб.

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

Flash реклама

(Flash Advertising: Flash Platform Development of Microsites, Advergames and Branded Applications. Jason Fincanon)


Основная мысль — хм… не уловил.

Итого: 800 руб. / 300 страниц / отличный дизайн / вода, но красиво

Довольно странная книга. Вроде и написано много, но остаточных знаний мало. Все, в принципе, довольно банально. Очередная подборка советов о том, как делать сайты правильно и красиво. Возможно, кому-то будет интересно, но мне не было. Большая часть книги легко перекрывается опытом работы в каком-либо рекламном агентстве, которое штампует одноразовые сайты и продвигает их. В защиту автора могу разве что привести раздел «Рекламные игры и приложения». Автор рассказывает, как с помощью игры вдалбливать в мозг игроков бренд какой-либо компании. Так что, если вам будет необходимо убедить Иван Иваныча из ООО «Рога и копыта» купить разработку мини игры для сайта, прочтите этот раздел книги.

Графика на JavaScript

(Supercharged JavaScript Graphics: with HTML5 canvas, jQuery, and More. Raffaele Cecco)


В первой главе описано разворачивание циклов и приведены графики скорости работы до и после в различных браузерах. Далее автор объясняет, как работать с CSS спрайтами (пишет функцию, которая постепенно меняет background-size). Рассказывает о погрешности таймеров. Ну а дальше начинается работа с плиткой и вода на тему написания игры. Если работу с плиткой в принципе можно осилить, т.к. вроде все верно, то пример игры (расписанный на полкниги) — это ужас. После книги Джоба Макара и лекций Андрей Короткова прямо таки хочется кричать: «Стой Рафаэль! Не делай так! Это немасштабируемо! Рафик, мамой клянусь, ты не прав!»

Итого: 800 руб. / 250 страниц / средний дизайн / вода

Это очередная книга из серии «должен прочитать» для веб-разработчиков. Стандартное животное на обложке, стандартное повествование. Но на фоне предыдущих авторов после прочтения книги хочется сказать: «И чё?! Рафаэлло, где алгоритмы?» С одной стороны, книга пробегает по новому API HTML5, с другой стороны, по нему пробегают все дешевые копирайтные книги. Беда с остаточными знаниями и выводами. Автор приводит полотна кода, которые не нужны, но раздувают толщину книги, обильно заливая все пастой на тему «есть такая библиотека». В защиту же автора можно привести главу «Использование векторов в играх и компьютерных моделях». Почему-то никто не удосуживается разобрать её в стиле «для чайников». Но опять же — где проекции векторов?

Собрание сочинений о флэше



Это интернет ресурс, в отличие от предыдущих книг об игрострое, наконец, покрыл тему обсчета столкновений (коллизий). Вот тут http://noregret.org/tutor/n/collision/ авторы (Raigan Burns, Mare Sheppard) написали то, чего не осилил Raffaele Cecco в своей книге. Суть: сторона многоугольника — это вектор. Делаете проекцию этого и другого вектора на плоскости координат. Если проекции пересеклись — у нас есть столкновение. Если векторы под углом — делаете их проекции на нормали друг на друга.

HTML5

(HTML5 for Masterminds. J.D. Gauchat)


Итого:710 руб. / 500 страниц / плохой дизайн / покупать не советую

Это очень толстый справочник API HTML5. Как справочник — так себе, просто подборка воды и копирайта. Толщина книги тут явно не соответствует качеству. Найдите что-нибудь потоньше.

Ajax для профессионалов

(Professional Ajax. Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett)


Итого:1000 руб. / 500 страниц / плохой дизайн / отличная книга

Книга — огонь! Возможно, её читали не все, но её определенно стоит прочесть. Авторы постепенно знакомят с асинхронной работой и трюками в старых браузерах. Я не могу выделить ключевые мысли, т.к. книгу нужно воспринимать целиком. Один из примеров, о котором говорятся в книге, это принцип работы подсказок при вводе в строку поиска.

Проектирование веб-интерфейсов

(Designing Web Interfaces. Bill Scott, Theresa Neil)


Основные мысли:
  • Предлагайте редактирование объекта около него самого
  • Добавьте возможность перетаскивания
  • Предотвратите переход между страницами
  • Добавьте анимационных эффектов. Это сделает интерфейс более живым
  • Увеличьте скорость отклика интерфейса

Итого: 950 руб. / 350 страниц / средний дизайн / среднее качество, мало информации

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

  • Раздел «Не уходя со страницы», как бы подкрепляет книга «Ошибки веб-дизайна» (Matthew Linderman, Jason Fried). Только в этой книге описана практическая реализация: оверлеи, инлеи, виртуальные страницы.
  • Раздел «Легким касанием» обоснован в книге «Универсальные принципы дизайна» (W. Lidwell, K. Holden and J. Butler)

Вообще по тексту очень много переплетений с книгами «Ошибки веб-дизайна» и «Универсальные принципы дизайна»

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

Дизайн книги: от слов к делу

Иннокентий Келейников


О чем книга:
  • Сетка. Модульная сетка.
  • Оформление текста и разбор шрифтов

Основные мысли:
  • Все, что размещено по сетке, выглядит лучше
  • Фон и шрифт должны контрастировать
  • Строка не более 70 символов, текст разбит на абзацы, шрифт крупный
  • Избегайте частого использования выделений
  • Если делаете колонки, следите чтобы строки в разных колонках совпадали по высоте
  • Делите текст на основной, вспомогательный и т.д.
  • Текст должен быть такой, чтобы по нему можно было быстро пробежаться взглядом и уловить суть

Итого: 800 руб. / 300 страниц / отличный дизайн / отличная книга

Купил практически сразу, т.к. при пролистывании попался следующий текст:

Отбивка пробелами:
Не отбиваются пробелом:
  • точки и запятые от предшествующего текста;
  • многоточие, как знак паузы, от предшествующего или следующего за ним слова
  • короткое тире между цифрами, обозначающее пределы какой-либо величины, например: 20-30 человек;
  • дефис между словами и при переносе
  • кавычки от заключенных в них слов
  • ...

Мне показалось это идеальным. Все коротко, четко, понятно и по пунктам. После прочтения книги остался доволен результатом. Много переплетений с «Ководством» Тёмы Лебедева. Ещё одним толчком к покупке данной книги стала предыдущая работа в рекламном агентстве. Там постоянно пинали за косяки в тексте на сайтах, за « вместо ", за +79112223344 вместо +7 (911) 222-33-44, за N вместо №, за — вместо -.

После прочтения этой книги чувство и понимание типографики стало лучше.

Ководство

Артемий Лебедев


Итого: 2300 руб. / 450 страниц / отличный дизайн / отличная книга

Честно говоря, не купил, а читал в интернете. Воды в тексте нет. Оно того стоит, т.к. там мысли, выводы и авторский взгляд. Все эти вещи не стареют. Даже если сама персона Лебедева вас раздражает, это ничего не значит. Вот пример статьи про фото http://www.artlebedev.ru/kovodstvo/sections/169/, вполне логичный вывод. Каждый раз, когда мне попадается дизайн на Bootstrap, мозг выдает http://www.artlebedev.ru/kovodstvo/sections/147/ т.к. сайты на Bootstrap, как правило, примитивны.

Теория и практика связей с общественностью. Учебник для вузов

Кочеткова А.В., Филиппов В.Н., Скворцов Я.Л., Тарасов А.С.


Итого: 300 руб. / 350 страниц / средний дизайн / отличная книга

Одна из тех книг, прочитав которую, можно понять суть профессии PR. Наверное, многие сейчас скажут: «Что за ересь для гуманитариев ты советуешь?!» На самом деле книга четко излагает суть профессии PR и тесно связана с книгой «Читаемый код или Программирование как искусство» (Dustin Boswell, Trevor Foucher). В последней был совет: «лучший код тот, которого нет». Как раз этот учебник помогает понять, что очень часто вашим клиентам сайт вообще не нужен. А значит, нет смысла его делать. Более того, вы начинаете обращать внимание на способы выхода программного продукта на рынок и осознаете, что у него все очень плохо с PR продвижением, а значит он не пойдет и денег за него вы не получите, а значит и писать его нет смысла.

Что ещё нужно для полного счастья:




Лекции Яндекса помогают взглянуть на многие вещи по-другому. Но опять же, все зависит от докладчиков. В любом случае, почерпнул для себя много нового. Самое значимое для меня видео на данный момент — Миши Давыдова о паттерне медиатора (http://tech.yandex.ru/events/yasubbotnik/chlb-feb-2012/talks/154/). Также радуют выступления Вадима Макеева, самое любое на данный момент, пожалуй, о CSS фреймворках (http://pepelsbey.net/2008/04/css-frameworks/).

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

Цифра или бумага.
Все книги по возможности покупаю в бумажном виде. В электронном почему-то не могу читать. Да и когда они стоят на полке и постоянно попадаются на глаза, их можно просто взять и пролистать. А ещё когда приходят знакомые разработчики, можно достать книгу с полки и дать им в руки со словами: «Вот эта збсь!»

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

P.S.: Жду вброса книги Алана Купера «Об интерфейсе» от UI специалистов. Ещё не читал её, поэтому описания нет. А также вброса знаменитого в узких кругах Огилви «О рекламе» на тему затронутую в книге «Flash реклама»
i-Free Group
0,00
Компания
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 36

    +2
    Я конечно не UI специалист, но, раз уж вы ждете, вброшу: «не хватает книги Алана Купер 'Об Интерфейсе' — отличная вещь, помогает правильно мыслить, думая о проектировании взаимодействия с пользователями»

    Ну а вообще вы — молодец. Если уж пошли учиться графике. Зачет.
      +4
      Я тоже не UI специалист. Читал с трудом, особенно первую половину. Мне показалось, там очень много «воды». Рекомендую «Психбольница в руках пациентов» от того же автора, там самая суть.
        +1
        Там чем дальше, тем меньше воды. Первая треть по сути просто вправляет мозг и показывает что есть проблема. Показывает на практически бытовых, разжеванных примерах. Потому и долго.
          +1
          Читал и то и то. ИМХО назначение у книг разное. Психбольница для менеджеров — чтобы принят решение о внедрении этапа проектирования интерфейсов в производственный цикл. Об Интерфейсе — непосредственно для проектировщиков, глубже и энциклопедичней. Каждому свое, как говориться, но мне понравились обе.
          0
          Вот ещё небольшая, но хорошая подборка литературы для проектировщиков веб-интерфейсов. Некоторые вышеназванные книги там присутствуют.
        • НЛО прилетело и опубликовало эту надпись здесь
            +1
            В этой статье нужны ссылки на книги, можно даже с рефом на амазоне.
              0
              Спасибо за статью. Хорошая подборка.

              Во всём этом многообразии не хватает С. Уэйншенк «100 главных принципов дизайна» (не смотрите на популистическое название — книга стоящая).
                +1
                А я бы еще посоветовал Async JavaScript by Trevor Burnham
                Книга не большая, но даёт неплохие идеи:
                • Объясняется сам принцип асинхронного выполнения в JavaScript
                • Поток выполнения и как в этот поток добавляется выполнение ивентов
                • Разбиение «тяжело-вычеслительных» функций на несколько итераций, чтобы не блокировать UI
                • Работа с воркерами
                • Деферред объект и библиотеки для работы с ним
                  +1
                  Со вздохом прихожу к выводу, что «The Art of Readable Code (Theory in Practice)» придётся прочесть мне.
                    0
                    Ага, смотрю он даже на рутрекере есть.
                      0
                      Прочитал. Действительно достойная.
                    +5
                    В этой статье слишком много воды и нет результирующей оценки по n-бальной шкале возле каждого названия.
                      +2
                      Расскажите человеку, далекому от фронт-энд разработки. Вот когда пытаешься освоить клиентский Java Script сразу возникает необходимость понимать CSS. Но его как-то уж очень сложно понять. Одно дело, когда все написано, но чуть что-то ты хочешь изменить — и все рушится. Я понимаю, что это дело верстальщика (наверное), но существует ли способ программисту быстро понять, как можно сделать что-то нормальное с использованием CSS? Книжку какую умную почитать (не про верстку) или еще что-то существует?
                    • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        У каждого свои хобби и развлечения.
                        Нельзя презирать ("гаденький") человека за то, что он не любит делать то, что любите вы.
                        +1
                        Книга — огонь! Возможно, её читали не все, но её определенно стоит прочесть. Авторы постепенно знакомят с асинхронной работой и трюками в старых браузерах.
                        А какой смысл читать трюки о старых браузерах сейчас? Сейчас аякс примитивен, и я удивляюсь, как его можно расписать на целую книгу.
                          –2
                          1. На собеседованиях в хорошие компании часто просят назвать способы загрузки информации на сервер (кроме xmlhttprequest)
                          2. Часто задают вопрос из серии: «А если это откажет, то как ещё?»
                          3. Из того что видел, очень часто тянут GET запрос через $.ajax( сразу делая не кроссдоменное, не масштабируемое решение. Это приводит к менее надежному коду (его уже нельзя просто так перенести куда угодно, чтобы он не сломался, а продолжил функционировать).

                          Книга о том как делать так, чтобы работало всегда и везде, даже при отказе всего.
                          +1
                          Спасибо, некоторые книги из вашего списка выглядят интересными.
                          Сам читал «Читаемый код или Программирование как искусство» — очень правильно, хотя для себя узнал не много нового. Но, в принципе, как сборник гайдлайнов и компиляция лучших практик тоже очень советую.

                          Из прочитанных мной за этот год книг могу отдельно выделить две следующие:

                          Роберт Седжвик и Кевин Уэйн «Алгоритмы на Java»:
                          Седжвик — ученый в области информатики, профессор Принстонского универа, член совета директоров Adobe. В книге много исходников, но они здесь нужны — это примеры реализации алгоритмов. Книга написана очень простым языком и, прочитав эту книгу и кратко ознакомившись с лекциями Седжвика на курсере, я понял чем «Принстон» отличается от типичного ВУЗа. Если вы до сих пор не понимаете что такое сложность алгоритма, как ее считать и зачем — книга обязательна к прочтению. Если вы хотите размяться в алгоритмах — вам сюда же.

                          Вторая книга — это «Идеальная Архитектура» от Диомидиса Спинеллиса и Георгиоса Гусиоса.
                          Авторы рассказывают об архитектуре приложений на примере таких монстров, как XEN, Facebook Platform, Emacs, виртуальной машины Jikes RVM. Объясняют почему было сделано так, а не иначе, чем был обысловлен выбор такого-то решения.
                          Просто прекрасно. Про уровень «читаемости» говорить ничего не буду — это вам не фентези романы как-никак. Но в сон не тянет:)
                            +7
                            Обзор книг от человека, который не любит читать.
                            Обзор ресторанов от человека, который не любит есть.
                            Экскурсия по городу от человека, который ненавидит этот город…
                              +5
                              <сарказм>
                              обзор врачей от человека, который не любит болеть
                              обзор автомехаников от человека, который не любит, когда его машина сломана
                              обзор гаишников от человека, который не любит платить штрафы
                              </сарказм>

                              Я же не их пьесы читаю, а техническую литературу. Соответственно аудитория другая и требования к ней другие. Каждая неудачная книга, воспринятая всерьез, может ухудшить мой код и привести к багам. И наоборот, чем быстрее будет усвоен некий критический уровень знаний, тем меньше багов будет в проектах.
                                0
                                А я бы послушал лекции от человека, который не любит свой предмет. Но знает.
                                Он не будет лить воду, а сразу расскажет о плохом.
                                ИМХО это лучше чем 3 часа рассказывать какое *что-то* замечательное, а в конце сказал «Но...».
                                +1
                                Количество кода. Чем больше кода в книге, тем она хуже. Это значит, что автор приводит бессмысленные листинги программ вместо того, чтобы описать словами алгоритм работы.

                                Очень спорный критерий на самом деле.
                                Во-первых это зависит от типа книги. Например, в книгах по дизайну код приводить практически бесполезно, а в книгах по языкам программирования или алгоритмам очень даже полезно. Думаю, что GoF или «Скользкие места C++» довольно-таки сложно воспринимать без большого объёма кода.
                                Во-вторых, это зависит от типа книги. Если это научный труд (например, "Элементарные шаблоны проектирования") или нечто похожее, то вероятно, что необходимо минимум кода. Хотя, опять же зависит от типа научной работы. Если же это обучающая книга, предназначенная для широкой аудитории, то без объёмных примеров кода просто не обойтись (например, "Шаблоны проектирования", хотя в этой книге хватает и иллюстраций).

                                Толщина книги. Чем толще книга, тем хуже. <...>

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

                                Автору советую обратить внимание на книги серии Head First. Очень близко к вашему идеалу хорошей книги, судя по статье.
                                  0
                                  Они толстые, дорогие и не несут полезной информации. Иллюстрации в них — опять же бессмысленны. Просто набор картинок.
                                  0
                                  Из последних прочитанных книг по JavaScript могу порекомендовать "Maintainable JavaScript".

                                  А вообще — можно подписаться на Safari Books и читать по 5 крутых новых книжек в месяц всего за 300 рублей. Советую.
                                    0
                                    Мне на вдумчивое прочтение 9 первых глав «JavaScript: Подробное руководство» пришлось потратить неделю на работе. Когда вы успевали всё это читать? Или вы «читали» по диагонали?
                                      0
                                      1. Время в метро. Каждый день я трачу 45 минут чтобы доехать до работы, а потом ещё 45, чтобы доехать домой.
                                      2. Время после работы. Иногда книга интересная и затягивает. Можно и после работы посмотреть.
                                      3. Видео яндекса и т.п. — зависит конечно от тематики, но часто можно фоном на работе пустить (конечно не все, т.к. иногда схемы нужно видеть)
                                      4. Методика быстрого чтения здорово экономит время. Можно пробегать участки с водой (хотя можно и важное пропустить, бывало некоторые главы по три раза перечитывал).

                                      > на вдумчивое прочтение 9 первых глав
                                      Поэтому не более 1 книги в месяц. Да и книга «JavaScript: Подробное руководство» не самая быстрая. Например «Графический дизайн от идеи до воплощения» читается в разы быстрее + сама по себе книга тонкая.
                                      5. Местами действительно только взглядом пробегал (например, «Веб дизайн» Якоба Нильсена), глянул по диагонали — вода, вода, берешь следующую страницу, когда автор тему сменит. Да, так можно пропустить важные моменты, а можно и не пропустить. Гораздо чаще пропускается вода. Да и у многих западных писателей есть стратегия «вдалбливания одной и той же мысли». Они говорят мысль, а потом ещё раза четыри-пять повторяют её на разных примерах.
                                      6. Книги о дизайне — содержат много картинок и очень быстро читаются
                                      7. Ну и конечно я задрот без жены и детей, редко убираюсь и не готовлю. Поэтому после работы и перед сном у меня есть лишние часа четыре :-)

                                      Вброшу «Тайм менеджмент» Глеба Архангельского. Очень четкая по жизни книга, реально помогает успевать, да и её можно в mp3 прослушать — это тоже радует.
                                      +1
                                      Толщина книги. Чем толще книга, тем хуже. Скорее всего, её будет трудно дочитать до конца. Почему она стала толстой? — читая эти строки подумала про Рихтера и про «Совершенный код». А так спасибо, очень познавательно.
                                        +1
                                        Вам плюс уже только за то что не просто перечислили книги, но и высказали своё мнение о них.

                                        Некоторые отметил для себя как обязательные к приобретению.
                                          0
                                          Книги, это, конечно, хорошо, но ведь как бывает — человек прочитает книгу, попишет примеры, выучит технологию, и вопрос — а что делать с ней дальше, как связать со стеком технологий, которые он знает и использует? В обучающих материалах часто не хватает именно таких, связующих все темы воедино, примеров. Зато вот видеокурсы такие бывают, например, pluralsight.com/training/Courses/TableOfContents/building-multi-client-end-to-end-service-oriented-applications.
                                            0
                                            Если подобные книги есть, кроме design guidelines, где рассматривается опыт реальных проектов, также просьба порекомендовать.
                                            0
                                            Раз уж затронули игры, то советую книгу от Сергея Галенкина!
                                            galyonkin.com/book/
                                              0
                                              Вот это, кстати, очень печалит. Не книга, а тенденция (конкретна эта книга, может быть очень даже хороша).
                                              Приходишь на игровую конференцию, а там все про маркетинг. Покупаешь книгу об играх, а там снова маркетинг. А вот про вектора, физику, AI трудно искать информацию. Не хватает именно тех литературы (хотя может и искать не умею, т.к. вроде на западе её полно).
                                                0
                                                вот вот, давно хотел книгу(или любой другой ресурс) в которой было описана вектора, физика в доступной форме
                                              0
                                              Ajax для профессионалов
                                              Книга — огонь! Возможно, её читали не все, но её определенно стоит прочесть.

                                              Купил ее уже много лет назад, но так и не прочитал, т.к. немного позже познакомился с jQuery. Мне кажется все алгоритмы, которые там наворочены, на jQuery вызываются одной строчкой. Может быть для понимания внутренностей работы еще как-то книга может пригодиться, но не для практики.
                                              сайты на Bootstrap, как правило, примитивны.

                                              Не знаю как 2-я версия, но на 3-ю можно натянуть любой дизайн, было бы желание.

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                              Самое читаемое