- PVSM.RU - https://www.pvsm.ru -
Привет ! Когда я только начинал заниматься веб-разработкой, то даже не мог представить, сколько литературы нужно прочесть и какой объем знаний получить, чтобы стать нормальным специалистом. Кроме того, сфера постоянно меняется, и знания устаревают.
Для меня проблема заключалась в том, что я не люблю читать и чтение расцениваю исключительно как неизбежную работу, которую необходимо проделать, чтобы добыть материал из печатного вида. Но так получилось, что для повышения своей квалификации читать приходится. Я установил для себя норму — одна книга в месяц. С одной стороны, это мало, с другой, — много (если действительно придерживаться плана). Ну и раз уж мне приходится читать в принудительном порядке, это должно давать какую-либо выгоду. Каждая книга — это мучение, и я не вижу смысла тратить время на литературу, которая мне ничего не даст после. Поэтому каждый раз, попадая в книжный и держа в руках очередную книгу, я задаю себе вопрос: «А зачем?! Какой толк от этих кусков бумаги?! Что я вообще тут делаю?!». Чтобы вы не тратили время на книги, которые мне кажутся бесполезными, я решил написать небольшой обзор прочитанной за два года литературы и прочих найденных источников знаний. Весь материал ниже так или иначе связан с веб-разработкой и различными её аспектами. Ниже описаны только те книги, которые я прочитал. Те книги, которые «не осилил»/не дочитал (например, про NodeJS и пару фреймворков) не привожу.
Начнем с основных представителей жанра.
(JavaScript: Definitive Guide. David Flanagan)
Итого: 982 страниц / средний дизайн
Очень толстая книга, в которой описано что, как и почему работает. Читать её, возможно, нет смысла, т.к. появилась альтернатива от Ильи Кантора.
Сайт: JavaScript.ru
Собственно, альтернатива Девиду Фланагану. Написано все и обо всем. Читается в два/три этапа — первый раз ты понимаешь основы JavaScript, а второй раз осознаешь все его тонкости. Честно говоря, так часто обращаюсь к справочной информации на этом сайте, что даже не представляю интернет до него.
Далее ряд книг, которые читали все JavaScript-разработчики. Книги нужно читать не потому, что в них конкретные мысли, а потому, что они учат, как надо писать на JavaScript`е. В них рассмотрены паттерны проектирования и объясняется суть различных библиотек. Именно эти книги учат думать, как веб-разработчик. Я не могу сказать, что это отличные книги, в основном они скорее хорошие, но все они обязательны к прочтению.
(JavaScript Web Applications. Alex MacCaw)
Основные мысли:
Итого: 1000 руб. / 300 страниц / средний дизайн / нормальная книга
Повсюду в содержании написано слово MVC, хотя книга скорее о модулях и модульном подходе. Много написано про события, но скорее справочной информации. Много отсылок к jQuery, да и вообще автор поверхностно пробегает по разным библиотекам, объясняя, как они появились и зачем были нужны. В конце книги идет приложение, в котором, например, есть справочник по CSS3. Складывается ощущение, что автор стремился добить книгу текстом до нужного объема.
(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/ [1]) не появлялись бы. Одним из самых запоминающихся для меня примеров из книги, был пример сокращения вложенности:
function(name, age) {
if(!name || !age) return false;
...
}
Вместо:
function(name, age) {
if(name && age) {
...
}
}
Уж очень часто у любителей jQuery вложенность сильно возрастает. Да и факт появления библиотеки «Q» для NodeJS (https://github.com/kriskowal/q [2]) для меня является скорее отрицательным показателем. Почему? Если у вас одна функция выполняет одну задачу, факт появления многократной вложенности маловероятен.
(JavaScript: The Good Parts. Douglas Crockford)
Итого: 250 руб. / 250 страниц / средний дизайн / отличный справочник
Многие ведутся на название книги «сильные стороны», хотя в самой книге этих самых сильных сторон нет.
По сути это некий справочник, в котором более-менее коротко описаны большинство объектов JavaScript`а.
Такой справочник хорошо пролистать перед собеседованием или чтобы вспомнить редко используемые методы. А так, Илья Кантор вам в помощь.
(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).
Основные мысли:
Итого: 170 руб. / 200 страниц / дешевый дизайн / отличная книга
С первого взгляда книга не внушала доверия, но я остался очень доволен. Нет воды. На каждый совет по три-четыре хороших и плохих примера. Все примеры со скриншотами и коротким описанием. Основная мысль — «безопасный дизайн». Учит предупреждать ошибки пользователей. Можно использовать как чеклист перед сдачей сайта. Даже не смотря на то, что все советы довольно избиты, тем не менее, большинство программистов им не следует. В книге чувствуется взгляд не со стороны программиста, а со стороны специалиста по решению конфликтных ситуаций.
(Designing Web Usability: The Practice of Simplicity. Jakob Nielsen)
Итого: цену не знаю / 500 страниц / средний дизайн / бессмысленно
С одной стороны, содержание книги в целом уже не актуально, с другой — в тексте в основном вода. Возможно, совсем зеленым студентам следует бегло пробежаться по разделам. Как и в любой «книге про web» расписаны интуитивно понятные вещи:
Даже не смотря на то, что это сам Якоб Нильсен, — рекомендовать не буду.
На работе мне постоянно делали замечания об отсутствии «чувства прекрасного», поэтому решил пройтись по дизайну:
(Universal Principles of Design. W. Lidwell, K. Holden and J. Butler)
Основные мысли:
Итого: 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
Что узнал:
При чем тут дизайн? Не знаю. Преподаватели просто показывают, как нажимать на кнопки. Хотя были и положительные моменты. На курсе Corel разобрали цвета и предпечатную подготовку. Это гораздо шире статей в интернете, которые читал до этого. На курсе Photoshop было много чего, но в памяти осталось разложение цветов по каналам (RGBA) и польза от цветокоррекции. Показали, как добавить «+20% тепла и уюта» и «+17% к объему и глубине снимка». В целом — оно того стоило. Да и на собеседованиях часто встречаются вопросы про PNG, которые требуют знаний чуть больше, чем «нарезать макет».
Что узнал:
Фотошоп фотошопом, а рисовать надо учиться. Поэтому посчитал, что курсы рисования прокачают это умение. А по факту оно того не стоило. Минус 9 000 руб. и время. Мне кажется, тут была проблема в преподавателе. Курсы были очень похожи на школьное ИЗО. Ты приходишь, рисуешь куб два часа, и в голове остается только один вопрос: «И чё?!». Никаких методик и техник, никаких объяснений, только постоянное рисование квадратов, кружков и натюрмортов. Остаточных знаний — ноль. Поэтому, если пойдете на рисунок карандашом, спросите про учебный план и какие остаточные знания у вас будут.
Но вернемся к программированию.
Когда начинал писать игры на JavaScript, спросил у коллег, что они могут посоветовать. Посоветовали следующую книгу:
(Flash MX 2004 Game Design. Jobe Makar)
Итого: 250 руб. / 600 страниц / плохой дизайн / одна из лучших прочитанных мною книг
Сначала отпугивала фраза macromedia Flash MX в названии книги, но я ошибся. Основные мысли выделить не могу, т.к. книга построена скорее как учебник. Вся книга является одной сплошной мыслью. Автор рассказывает о различных игровых жанрах, объясняет, зачем нужна тригонометрия и как обсчитывается физика столкновений. Пробегает по методам оптимизации, показывает, как использовать «сетку» для упрощения физических расчетов, перечисляет виды AI и рассказывает об алгоритме поиска пути. Автор также описывает этапы проектирования игры, улучшения графики, принципы создания изометрических миров, наложения и роли звука в играх. В общем, книга расширяет сознание и заставляет смотреть на игры по-другому. В отличие от других авторов (например, Рафаэло Чекко), Джоб Макар практически не пишет код в книге. Иногда, конечно, пишет, но мало. Джоб объясняет, как и зачем, смотрит в суть, а как вы это реализуете в коде — выходит за рамки книги. Секреты разработки игр — это одна из тех книг, которые больше по алгоритмам и идеям, чем по коду.
Когда искал информацию о книге, наткнулся на такую статью http://www.8bitrocket.com/tag/electrotank/ [3]. Поэтому перед покупкой проверьте, перевели на русский следующие его шедевры или нет. Возможно, лучше купить их, т.к. сам автор пишет, что у него было мало времени для работы над книгой «Секреты разработки игр на macromedia Flash MX» и он не очень доволен её качеством.
После прочтение шедевра выше, стал искать информацию по разработке игр и случайно наткнулся на русского парня по имени Андрей Коротков. У Андрея есть канал на YouTube, где он поэтапно читает курс лекций на тему, как писать игры и создавать игровые движки http://www.youtube.com/user/megadrone86/videos [4]. Да, это не JavaScript, это C++. Но это не имеет значения, т.к. суть лекции — идеи и алгоритмы.
Основные мысли:
Но, как и у Джоба Макара, тут основные мысли размазаны. Лекции нужно воспринимать полностью, т.к. в каждой лекции рассказывают о конкретных проблемах и о том, как их надо решать.
Собственно, после ознакомления с этими двумя авторами я и стал писать свой игровой движок. Когда движок был доведен до какой-то стадии, когда уже был виден результат, всплыла неожиданная проблема. Все уровни, которые я пытался создать, были, мягко говоря, не играбельными. Стал искать информацию об архитектуре уровней в интернете и наткнулся на ещё одного замечательного русского автора.
Михаил Кадиков
Миша пишет серию статей, которые постепенно формируются в книгу. Все коротко, ясно и хорошо структурировано, каждая статья подкреплена кучей примеров. Познакомиться с книгой можно тут (http://pro.level-design.ru/ [5]). Читал взахлеб.
После предыдущих примеров резко возросло доверие и уважение к Flash-разработчикам. Стало очевидно, что они много знают, у них большой опыт и пора его перенять. Да, сейчас многие стонут то тут, то там в интернете, что Flash умирает, Flash — отстой и т.д., но! Сообщество Flash-разработчиков имеет очень большой опыт казуальных игр. Нельзя этим пренебрегать. С этими мыслями я купил следующую книгу о Flash.
(Flash Advertising: Flash Platform Development of Microsites, Advergames and Branded Applications. Jason Fincanon)
Основная мысль — хм… не уловил.
Итого: 800 руб. / 300 страниц / отличный дизайн / вода, но красиво
Довольно странная книга. Вроде и написано много, но остаточных знаний мало. Все, в принципе, довольно банально. Очередная подборка советов о том, как делать сайты правильно и красиво. Возможно, кому-то будет интересно, но мне не было. Большая часть книги легко перекрывается опытом работы в каком-либо рекламном агентстве, которое штампует одноразовые сайты и продвигает их. В защиту автора могу разве что привести раздел «Рекламные игры и приложения». Автор рассказывает, как с помощью игры вдалбливать в
(Supercharged JavaScript Graphics: with HTML5 canvas, jQuery, and More. Raffaele Cecco)
В первой главе описано разворачивание циклов и приведены графики скорости работы до и после в различных браузерах. Далее автор объясняет, как работать с CSS спрайтами (пишет функцию, которая постепенно меняет background-size). Рассказывает о погрешности таймеров. Ну а дальше начинается работа с плиткой и вода на тему написания игры. Если работу с плиткой в принципе можно осилить, т.к. вроде все верно, то пример игры (расписанный на полкниги) — это ужас. После книги Джоба Макара и лекций Андрей Короткова прямо таки хочется кричать: «Стой Рафаэль! Не делай так! Это немасштабируемо! Рафик, мамой клянусь, ты не прав!»
Итого: 800 руб. / 250 страниц / средний дизайн / вода
Это очередная книга из серии «должен прочитать» для веб-разработчиков. Стандартное животное на обложке, стандартное повествование. Но на фоне предыдущих авторов после прочтения книги хочется сказать: «И чё?! Рафаэлло, где алгоритмы?» С одной стороны, книга пробегает по новому API HTML5, с другой стороны, по нему пробегают все дешевые копирайтные книги. Беда с остаточными знаниями и выводами. Автор приводит полотна кода, которые не нужны, но раздувают толщину книги, обильно заливая все пастой на тему «есть такая библиотека». В защиту же автора можно привести главу «Использование векторов в играх и компьютерных моделях». Почему-то никто не удосуживается разобрать её в стиле «для чайников». Но опять же — где проекции векторов?
Это интернет ресурс, в отличие от предыдущих книг об игрострое, наконец, покрыл тему обсчета столкновений (коллизий). Вот тут http://noregret.org/tutor/n/collision/ [7] авторы (Raigan Burns, Mare Sheppard) написали то, чего не осилил Raffaele Cecco в своей книге. Суть: сторона многоугольника — это вектор. Делаете проекцию этого и другого вектора на плоскости координат. Если проекции пересеклись — у нас есть столкновение. Если векторы под углом — делаете их проекции на нормали друг на друга.
(HTML5 for Masterminds. J.D. Gauchat)
Итого:710 руб. / 500 страниц / плохой дизайн / покупать не советую
Это очень толстый справочник API HTML5. Как справочник — так себе, просто подборка воды и копирайта. Толщина книги тут явно не соответствует качеству. Найдите что-нибудь потоньше.
(Professional Ajax. Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett)
Итого:1000 руб. / 500 страниц / плохой дизайн / отличная книга
Книга — огонь! Возможно, её читали не все, но её определенно стоит прочесть. Авторы постепенно знакомят с асинхронной работой и трюками в старых браузерах. Я не могу выделить ключевые мысли, т.к. книгу нужно воспринимать целиком. Один из примеров, о котором говорятся в книге, это принцип работы подсказок при вводе в строку поиска.
(Designing Web Interfaces. Bill Scott, Theresa Neil)
Основные мысли:
Итого: 950 руб. / 350 страниц / средний дизайн / среднее качество, мало информации
Много воды, постоянное вдалбливание одних и тех же мыслей. Хотя, с другой стороны, это сейчас мысли кажутся очевидными, а на момент написания книги они таковыми не являлись. Книга может показаться устаревшей, т.к. сейчас вроде web 2.0 и все советы, описанные в книге, и так применяются на практике. Но не соглашусь. Каждый день в интернете я вижу огромное количество сайтов, которые этим советам не следуют.
Вообще по тексту очень много переплетений с книгами «Ошибки веб-дизайна» и «Универсальные принципы дизайна»
Как уже писал выше, веб-разработчик должен знать много и в разных областях. Вот ещё две области, которые помогут сделать сайт для людей, а не для программистов: типографика и связи с общественностью.
Иннокентий Келейников
О чем книга:
Основные мысли:
Итого: 800 руб. / 300 страниц / отличный дизайн / отличная книга
Купил практически сразу, т.к. при пролистывании попался следующий текст:
Отбивка пробелами:
Не отбиваются пробелом:
Мне показалось это идеальным. Все коротко, четко, понятно и по пунктам. После прочтения книги остался доволен результатом. Много переплетений с «Ководством» Тёмы Лебедева. Ещё одним толчком к покупке данной книги стала предыдущая работа в рекламном агентстве. Там постоянно пинали за косяки в тексте на сайтах, за « вместо ", за +79112223344 вместо +7 (911) 222-33-44, за N вместо №, за — вместо -.
После прочтения этой книги чувство и понимание типографики стало лучше.
Артемий Лебедев
Итого: 2300 руб. / 450 страниц / отличный дизайн / отличная книга
Честно говоря, не купил, а читал в интернете. Воды в тексте нет. Оно того стоит, т.к. там мысли, выводы и авторский взгляд. Все эти вещи не стареют. Даже если сама персона Лебедева вас раздражает, это ничего не значит. Вот пример статьи про фото http://www.artlebedev.ru/kovodstvo/sections/169/ [8], вполне логичный вывод. Каждый раз, когда мне попадается дизайн на Bootstrap,
Кочеткова А.В., Филиппов В.Н., Скворцов Я.Л., Тарасов А.С.
Итого: 300 руб. / 350 страниц / средний дизайн / отличная книга
Одна из тех книг, прочитав которую, можно понять суть профессии PR. Наверное, многие сейчас скажут: «Что за ересь для гуманитариев ты советуешь?!» На самом деле книга четко излагает суть профессии PR и тесно связана с книгой «Читаемый код или Программирование как искусство» (Dustin Boswell, Trevor Foucher). В последней был совет: «лучший код тот, которого нет». Как раз этот учебник помогает понять, что очень часто вашим клиентам сайт вообще не нужен. А значит, нет смысла его делать. Более того, вы начинаете обращать внимание на способы выхода программного продукта на рынок и осознаете, что у него все очень плохо с PR продвижением, а значит он не пойдет и денег за него вы не получите, а значит и писать его нет смысла.
Лекции Яндекса помогают взглянуть на многие вещи по-другому. Но опять же, все зависит от докладчиков. В любом случае, почерпнул для себя много нового. Самое значимое для меня видео на данный момент — Миши Давыдова о паттерне медиатора (http://tech.yandex.ru/events/yasubbotnik/chlb-feb-2012/talks/154/ [13]). Также радуют выступления Вадима Макеева, самое любое на данный момент, пожалуй, о CSS фреймворках (http://pepelsbey.net/2008/04/css-frameworks/ [14]).
Почему я не привожу в пример западные аналоги видео-лекций, которые до этого постились на хабре:
Цифра или бумага.
Все книги по возможности покупаю в бумажном виде. В электронном почему-то не могу читать. Да и когда они стоят на полке и постоянно попадаются на глаза, их можно просто взять и пролистать. А ещё когда приходят знакомые разработчики, можно достать книгу с полки и дать им в руки со словами: «Вот эта збсь!»
Почему книги надо перечитывать:
Объем информации довольно большой. Все принципы и советы постепенно забываются. Время от времени нужно освежать воспоминания простым пролистыванием уже прочитанных книг. Прочитать и использовать по умолчанию — разные вещи. Многие читали про русские кавычки «, но часто продолжают использовать стандартные ". Многие читали про модульность, но продолжают писать «лапшу» и т.д.
P.S.: Жду вброса книги Алана Купера «Об интерфейсе» от UI специалистов. Ещё не читал её, поэтому описания нет. А также вброса знаменитого в узких кругах Огилви «О рекламе» на тему затронутую в книге «Flash реклама»
Автор: bakhirev
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/51029
Ссылки в тексте:
[1] http://habrahabr.ru/post/205616/: http://habrahabr.ru/post/205616/
[2] https://github.com/kriskowal/q: https://github.com/kriskowal/q
[3] http://www.8bitrocket.com/tag/electrotank/: http://www.8bitrocket.com/tag/electrotank/
[4] http://www.youtube.com/user/megadrone86/videos: http://www.youtube.com/user/megadrone86/videos
[5] http://pro.level-design.ru/: http://pro.level-design.ru/
[6] мозг: http://www.braintools.ru
[7] http://noregret.org/tutor/n/collision/: http://noregret.org/tutor/n/collision/
[8] http://www.artlebedev.ru/kovodstvo/sections/169/: http://www.artlebedev.ru/kovodstvo/sections/169/
[9] http://www.artlebedev.ru/kovodstvo/sections/147/: http://www.artlebedev.ru/kovodstvo/sections/147/
[10] http://tech.yandex.ru/education/): http://tech.yandex.ru/education/)
[11] http://web-standards.ru/): http://web-standards.ru/)
[12] http://pepelsbey.net/): http://pepelsbey.net/)
[13] http://tech.yandex.ru/events/yasubbotnik/chlb-feb-2012/talks/154/: http://tech.yandex.ru/events/yasubbotnik/chlb-feb-2012/talks/154/
[14] http://pepelsbey.net/2008/04/css-frameworks/: http://pepelsbey.net/2008/04/css-frameworks/
[15] Источник: http://habrahabr.ru/post/206436/
Нажмите здесь для печати.