Support us

Веб-разработчики — тоже программисты?

Оставить комментарий
Веб-разработчики — тоже программисты?

Николас Закас (Nicholas C. Zakas) — известный front-end-консультант, автор многочисленных книг и статей, почетный гость конференций и, разумеется, блоггер. Почти 5 лет проработал в Yahoo, где был руководителем технического отдела разработки внешнего интерфейса главной страницы, а также внес вклад в библиотеку YUI. Специализируется на JavaScript, HTML5 и CSS3, повсеместно ратует за большую производительность, масштабируемость, доступность и удобство сопровождения окружающего нас «веба». Сегодня мы знакомимся с его мнением по вопросу, который актуален и в белорусском ИТ-сообществе, — что такое веб-разработчик и почему он тоже программист? Когда я поступил в колледж, мне очень хотелось работать с компьютерами, но я не мог сказать точно, чем именно собираюсь заниматься. Я с первого взгляда влюбился в «мультимедийный» (так это тогда называлось) компьютер Packard Bell, оснащенный процессором Pentium и (просто невероятно!) CD-дисководом. Днями сидел за этим компьютером, не делая ничего конкретного, просто неустанно мастерил разные мелкие программки и отлаживал систему. Вот и все, чем я хотел бы заниматься, но я был уверен, что именно это мне и нужно. В колледже я записался на обязательные курсы. В первом и втором семестре у нас был предмет «Информатика», где преподавали Pascal. Затем UNIX вместе с C. Затем — C++, Smalltalk, Prolog, ассемблер. Структура данных, алгоритмы. Базы данных. Все эти предметы изучаются так: сидишь перед терминалом и бешено стучишь по клавиатуре, лишь бы хоть что-нибудь получилось. Мне такой труд быстро наскучил. Я по натуре визуал, и, просиживая долгие занятия, в ходе которых видел только потоки текстовой информации, просто на стенку лез. Именно тогда я и начал экспериментировать с «вебом». С этого момента и начинается моя история, а точнее — с 1996 года, когда я написал свою первую веб-страницу, которая находилась на сервере AOL. Сделал я ее, в основном, для того, чтобы оставаться на связи с однокашниками — но через некоторое время с удивлением обнаружил, что все дольше задерживаюсь на моем маленьком сайте, постоянно его обновляю, чего-то там настраиваю, добавляю еще функциональности. Позанимавшись этим несколько месяцев, я придумал, как превратить это хобби в работу. Но в расписании моего колледжа, к сожалению, не нашлось ни единого курса по веб-разработке. Слишком молода была эта область. Поэтому я постигал это искусство в основном самостоятельно. Наконец, мои искания привели меня на практику в один стартап, где занимались веб-разработкой. С тех пор прошло уже более 15 лет. Бизнес постепенно осваивал «всемирную паутину», поэтому потребность в веб-разработчиках постоянно возрастала. Но меня удивляет то, что одно обстоятельство с тех пор совершенно не изменилось — я имею в виду отношение ко всей касте веб-разработчиков. В большинстве компаний, больших и малых, веб-разработка часто трактуется как некая адская смесь дизайна и инженерии. Нередко видишь, как веб-разработчики оказываются в довольно своеобразном рабочем окружении. Иногда они сидят в отделе дизайна, порой — в продакт-менеджменте, случается, что их как бы и вовсе нет. Я не раз беседовал с веб-разработчиками, которых просто убивало такое отношение. Представьте себе, как они сами относятся к фирмам, которые заставляют их работать в таком режиме. А ведь проблема начинается уже с организации как таковой. Моим последним местом работы в Массачусетсе была компания VistaPrint. Признаться честно, я ходил туда на работу с радостью, поскольку команда там была просто волшебная. Там у меня появилось несколько по-настоящему хороших друзей, так что я всегда старался не отрываться от коллектива. Но вот что мне в этой организации не нравилось — так это факт, что меня там считали обычным «программистом». А слово «программист» автоматически означало «многостаночник». То есть мне приходилось писать и запросы для базы данных, и код для серверных приложений, и работать с HTML, CSS и JavaScript. Никого не интересовало, как вы справляетесь с этими задачами — так или иначе, вы занимались всем подряд. Я несколько раз пытался подчеркнуть, что программист программисту — рознь, что есть и такие программисты, которым неплохо бы сосредоточиться на проблемах там, где их видит клиент, — но все напрасно. Вот так я и сидел, вынужденный наблюдать, как создаются и идут в работу уродливые шаблоны — а сам был вечно занят написанием SQL-скриптов и всякими сопутствующими делами. На самом деле мне совершенно не нравится такой подход, поскольку это насаждает определенную ментальность: утка, как известно, и плавает, и летает, и ходит… и все это делает плохо. Одна из причин, по которым я попал в Yahoo, заключалась в том, что здесь мне могли предложить работу, связанную исключительно с HTML, CSS и JavaScript. Мне хотелось оставить всю серверную работу тем, кого она привлекает, а самому сосредоточиться на любимом деле. Действительно, Yahoo была одной из первых компаний, которая стала взращивать искусство веб-разработки. Именно у них впервые обозначилась новая профессия «веб-разработчик», и на появившиеся вакансии пришла блестящая плеяда специалистов, которые очень скоро повели приютившую их компанию в славное будущее. Среди этих первопроходцев были Томас Ша, Эрик Миралья, Нейт Кэшли, Майк Ли и многие другие., Это была настоящая команда-мечта, целиком и полностью, и именно она окончательно и бесповоротно убедила Yahoo всерьез заняться веб-разработкой. Вскоре после этого компания Yahoo, движимая этим первым коллективом веб-разработчиков, пришла к выводу, что все эти талантливые личности, в сущности, являются программистами. Сегодня человек был «веб-мастером», а завтра становился «инженером внешних интерфейсов». Они заняли свое законное место среди программистов — место, которое заслужили уже очень давно. За этим последовало развитие величайшего front-end-сообщества — на мой взгляд, совершенно неповторимого. Это было еще до зарождения Google и задолго до того, как в умах программистов возникли Facebook и Twitter. Многие незаменимые методы, которыми мы пользуемся сегодня — особенно такие, которые связаны с быстродействием, прогрессивным улучшением (progressive enhancement), открытыми API и обеспечением доступности — являются плодом той работы, которой занялась компания Yahoo в те незапамятные времена. Когда я поступил на работу в Yahoo — а было это в 2006 году — сообщество front-end-разработчиков было полным жизни и активным, эти люди неустанно превращали Yahoo в ту самую компанию, которая затем сформировала неповторимый пользовательский опыт в интернете и заслуженно гордилась этим. Мне выпала честь стать частью этого сообщества и поработать со всеми упомянутыми выше людьми. Некоторые великолепные мастера, вышедшие из первого поколения веб-разработчиков, достигли выдающихся новых высот. Томас Ша создал фреймворк YUI и заручился поддержкой, благодаря которой этот проект смог достичь зрелости. Эрик Миралья стал вице-президентом по продукции в компании Meebo, которая только что была приобретена Google. Нейт Кэшли снискал международный авторитет в CSS и front-end-разработке. Майк Ли продолжил творить и основал еще несколько стартапов. Дуглас Крокфорд формализовал нотацию JSON и стал всемирно признанным авторитетом по JavaScript, а также весьма успешным писателем. Стив Содерс стал экспертом мирового класса в области производительности, опубликовал первые данные о производительности в большой компании, создал YSlow, написал две книги и стал сооснователем конференции Velocity. Благодаря Биллу Скотту, занимавшему посты вице-президента по UI-разработке в Netflix и старшего директора по UI-разработке в PayPal, в этих компаниях также появились свои сообщества front-end-разработчиков. Николь Салливан получила всемирное признание в области CSS благодаря предложенному ей подходу OOCSS, а также стала крайне востребованным консультантом по повышению производительности систем. Стоян Стефанов продолжил дело Стива по разработке YSlow, стал признанным авторитетом в области производительности и написал несколько книг. Исаак Шлютер создал npm и возглавил Node.js. Крис Хайлманн стал всемирно известным разработчиком-евангелистом. Скотт Шиллер зарекомендовал себя как специалист мирового уровня в области сетевого аудио, реализовав свой проект SoundManager 2. Я мог бы продолжить этот список — рассказ обо всех разработчиках, вышедших из Yahoo и сделавших важнейший вклад в дело веб-разработки, занял бы несколько страниц. Достаточно сказать, что такое большое front-end-сообщество не могло не привлечь выдающихся людей. Многие разработчики внешних интерфейсов, вышедшие из Yahoo, обосновались в больших и малых компаниях по всему миру, задав там планку профессионализма. Но на свете по-прежнему немало компаний, в которых веб-разработка не пользуется должным уважением. Часто веб-разработчиков даже не считают программистами, а иные «настоящие программеры» их просто чураются. Но я уверен — и это убеждение сформировалось у меня в ходе работы в Yahoo — что мы занимаемся важным делом. Я окончательно в этом убедился, пройдя обязательный курс Нейта Кэшли «Как стать front-end-разработчиком в компании Yahoo» — эти занятия я посещал, когда начинал там работать. Возможно, наши знания и навыки не идентичны знаниям и умениям классических программистов, но мы, тем не менее, — самые настоящие программисты. Если вы пишете код — значит, вы программируете. И это действительно значит, что вы — программист. Суть этой профессии именно в том, что программист создает код, который потом используют заказчики. Если ваш код написан не на Java или С++ — вы не становитесь от этого «менее программистом», чем ваши коллеги, использующие эти языки каждый день. (Примечание: я намеренно игнорирую кажущееся очевидным различие между «разработчиком» и «инженером». Я убежден, что эти слова означают одно и то же). Да, мы можем не знать всех алгоритмов сортировки и не всегда умеем программировать связный список, но это и не требуется нам в нашем повседневном труде. На собеседованиях я всегда предупреждаю потенциального работодателя, что, если он ищет специалиста по алгоритмам — то я не тот человек, который ему нужен. Я человек, который умеет писать по-настоящему красивые, работоспособные, доступные веб-интерфейсы, с которыми создаваемый продукт будет более удобен и приятен в работе. Я — программист, моя специализация — веб-интерфейсы. Другие программисты специализируются на базах данных и серверном программировании. Но они и я — просто разные программисты. Ключевой аспект, из-за которого к веб-разработчикам сохраняется такое отношение, заключается в стиле нашей деятельности. Не допускайте даже намека на то, что вы — не программист. Как это сделать? А нужно всего лишь конкретнее называть то, чем вы занимаетесь. Мне хотелось бы, чтобы в интернете становилось меньше вакансий «Требуется веб-мастер», а им на смену приходили вакансии «Ищем front-end-разработчика» или «Разыскивается разработчик пользовательских интерфейсов». И, пожалуйста, избегайте таких выражений, как «веб-звезда» или «веб-ниндзя». Из такой формулировки вовсе не следует, чем именно вы можете быть полезны, да и выглядит она глупо. О титулах можно спорить, поскольку для кого-то они просто ничего не значат. Важно назвать себя таким образом, чтобы из этого следовала ваша ценность для работодателя. Второй момент немного сложнее. Front-end-разработчики должны вписываться в состав всего ИТ-отдела — точка. Все мы программисты, мы работаем вместе с другими программистами и совершенствуем наше мастерство, как и все прочие. Все программисты заслуживают того, чтобы к ним относились одинаково, и их место должно соответствовать их навыкам. Тот факт, что программисты специализируются в разных областях, не означает, что кто-то — хуже, а кто-то лучше. Если в компании есть архитектор баз данных или сетевой архитектор, то почему бы не быть и архитектору внешних интерфейсов? Такая характеристика означает определенный уровень профессионализма, надежность и наличие каких-то достижений. Эти качества достаточно равномерно распределяются среди представителей любой специализации. Вот как обычно трактуются уровни профессионализма программистов. Младший разработчик (junior engineer) — начинающий, возможно, недавний выпускник. Нуждается в обучении и помощи наставника. Ему можно доверять небольшие задачи под надзором старшего коллеги Разработчик среднего уровня (mid-level engineer) — несколько лет опыта. Может работать без контроля, способен самостоятельно решать задачи среднего объема и сложности. Скорее всего, с большинством задач он справится хорошо. Старший разработчик (senior engineer) — опытный специалист, демонстрирующий лидерские качества в командной работе. Может целиком брать на себя крупные задачи и отлично справляется с ними самостоятельно. Готов за все отвечать, а другие члены команды могут обращаться к нему за советом и критикой. Главный инженер (principal engineer) — очень опытный специалист, чья способность руководить превосходит масштабы одной команды. Способен браться за выполнение сложных задач, а также распределять обязанности и управлять людьми. Обладает непоколебимыми навыками общения, благодаря чему может определять развитие работы как внутри своей команды, так и за ее пределами. Архитектор (architect) — исключительно опытный специалист, способный руководить множеством команд. Организован, умеет общаться, хорошо разбирается в системах. Может и сам решать любые задачи, но большую часть времени тратит на проектирование и постановку задач для других, контроль над их выполнением в командах, а также на консультирование коллег. Незаменимый человек для решения непростых вопросов. Как видите, все эти должности определяются личностными качествами, а не техническими навыками. Все эти условия должны выполняться независимо от специализации программиста и области его интересов. Старший инженер по разработке пользовательских интерфейсов обладает тем же уровнем профессионализма, что и старший инженер по серверным приложениям или по базам данных. Такие вещи, как соглашения при написании кода, оптимальные методы работы и строение систем, изучаются на практике, а не в университете, и в них в равной мере должны разбираться любые инженеры. При справедливой иерархии становится очевидным равноправие front-end-разработчиков и других программистов, которые работают в компании. Если в вашей компании все по-другому, вам следует серьезно задуматься. Веб-разработчики не менее важны, чем любые другие разработччики. Ошеломительный успех в области разработки внешних интерфейсов, достигнутый в Yahoo, следует взять на заметку всем компаниям: работая правильно, можно привлечь невообразимое количество талантливых людей и добиться выдающихся успехов. Недавние пертурбации Yahoo никак не связаны с front-end-сообществом; кроме того, как упоминалось выше, многие специалисты, успевшие поработать в Yahoo, сейчас выстраивают хорошие front-end-отделы в других компаниях. Практически все «топовые» компании, которые можно приспомнить навскидку, обязаны своим процветанием именно front-end-разработчикам. И по-прежнему не утихает «гонка вооружений», которую ведут Google, Facebook и Twitter, стремящиеся завербовать в свои ряды все больше и больше разработчиков интерфейсов. , Это наша эпоха — даже не сомневайтесь. Поэтому, когда в следующий раз вас кто-нибудь спросит: «Кем вы работаете?» — просто отвечайте: «Я программист». А потом уже можете добавить, что специализируетесь на разработке веб-приложений. Источник

16 лет dev.by — «дефолтный» источник информации о беларусском ИТ

Вы можете...

Читайте также
8 курсов по API, чтобы разобраться в теме (май, 2023)
8 курсов по API, чтобы разобраться в теме (май, 2023)
8 курсов по API, чтобы разобраться в теме (май, 2023)
API — application programming interface, или «интерфейс прикладного программирования» — служит интерфейсом между программами и облегчает их взаимодействие. Мы собрали список курсов, которые помогут вам разобраться в API и внедрить их в вашу работу.
1 комментарий
Как менялся облик Mac OS — с рождения в 1984-м по 2022-й
Как менялся облик Mac OS — с рождения в 1984-м по 2022-й
Как менялся облик Mac OS — с рождения в 1984-м по 2022-й
На FructCode масшатбная распродажа — пакеты курсов со скидкой 60% до конца дня
На FructCode масшатбная распродажа — пакеты курсов со скидкой 60% до конца дня
На FructCode масшатбная распродажа — пакеты курсов со скидкой 60% до конца дня
FructCode — интерактивные онлайн-курсы по разработке и программированию веб-сайтов с использованием HTML, CSS, Bootstrap, PHP, MySQL, JavaScript, Jquery, Linux, GIT, Codeigniter.  До конца дня платформа предлагает приобрести пакеты курсов по подписке от 7.60$ в месяц.
Системный инженер, разработчик веб-приложений: лучшие точки входа в айти
Системный инженер, разработчик веб-приложений: лучшие точки входа в айти
Системный инженер, разработчик веб-приложений: лучшие точки входа в айти

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.