Идеальный веб-программист

06.06.2010

Давно хотел написать свои мысли про качества современного веб-программиста. Но все никак не мог сформулировать. Сейчас после утоления кадрового голода нашей студией все как-то встало на свои места. Я сделал для себя 2 вывода:

  1. Хороших сотрудников нужно искать постоянно.
  2. Хорошие сотрудники есть и они обязательно найдутся, если следовать п.1.

Ну а теперь про качества этого самого идеального программиста.

Личные качества

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

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

Чувство юмора. Уныние — грех. Все унылые люди должны работать в сберкассах и в отделениях связи. К этому я уже привык при оплате ЖКХ. Делать сайты нужно весело. Мы работаем в современной, динамичной сфере. По интернету бродят Медведы, Упячки, Онотоле, Трололо и прочие замечательные мемы. Несколько раз в день есть повод для бугага. Если во время работы сотрудник не может со всеми тупо поржать — это не значит, что он серьезный спец. У него просто проблемы с социализацией, а такие не могут работать в команде.

Адекватное ЧСВ. Часто у программистов с этим проблемы. Ведь в этом непонятном коде мало кто че понимает. Вот и возникает ощущение что ты шаман и делаешь всегда все правильно. А тут эти неорганизованные менеджеры лезут с доработками. Хотя щас становится все лучше. Технологии так быстро развиваются, что даже сисадмины уже не могут годами пить пиво, глядя на настроенный сервер. Перемены делают айтишников постоянными студенами, а значит постоянными недоучками. Вот такой нам и нужен — вечный ученик.

Профессиональные навыки

PHP/MySQL. Если вы не родились со знанием PHP — его просто нужно выучить. На это нужно время. Мне на это понадобилось года 2. Одаренная молодежь я думаю за годик управится. Мы не можем учить PHP программиста в офисе. Нет, я не КО, я реально получил много резюме от людей на должность PHP программиста, не знающих PHP. Знать язык — это не значит досконально знать синтаксис. Нужно уметь решить любую задачу с использованием языка. Неважно на сколько грамотно, главное быстро и прозрачно.

Фреймворки, сервисы, новинки. Программист должен быть в курсе происходящего вокруг него. Он должен просто пожирать все новую и новую информацию. Не читаете IT блоги, не следите за развтием Гугла, не знаете тенденции стартапов — во просто IT мусор, милый старый Wall-E, не более. Быть в курсе очень трудно. Это тоже работа. Нужно следить за развитием PHP, JS, CSS фреймворков, всякими API, появлением новых технологий, долей IE6, кармой Boomburuma.

HTML/CSS. Веб-программист должен уметь верстать. Да, вот прям взять PSD макет и сварганить HTML, CSS и кучу картинок. Если человек работает в этой сфере и не верстает или просто «читает» HTML — он профнепригоден. Конечно такие слова могут обидеть серьезных спецов, считающих, что верстка — это удел дизайнеров или низкоквалифицированных верстальщиков. Но правда состоит в том, что верстка HTML страницы — это программирование на языке HTML и CSS. Это часть вашего кода, которая должна работать вместе с серверными скриптами как оркестр. Современный сайт невозможен без тесной интеграции сервера и клиента. И все чаще функционал переползает на клиента.

Javascript. Не знаете javascript? Наверное вы пишете парсеры и серверные API. Если это не так — вы профнепригодны. Для веб-программиста должен быть открыт  мир jquery, mootools и других замечательных фреймворков. Веб-приложения прекрасно стилизуются с помощью jqueryui. А ведь веб-приложения — это будущее. Эт тенденция. Сайты постепенно превращаются в агрегаторы различных API. Еще пара лет и вы забудете что такое аплоад файлов на сервер. Вместо этого будут сервисы хранения, сервисы обработки и сервисы отдачи данных. И этому учиться нужно уже сегодня.

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

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