Интервью с Сергеем Лопатиным
АрхивСменить профессию практически невозможно, все-таки она очень творческая, а для человека с реализовавшимся творческим потенциалом отказаться от нее почти невозможно (это сильнее наркотика, любой настоящий художник, писатель и т. п. подтвердит).
Сергей Лопатин (slop@bios.iuf.net) — начинающий «шароварщик» (как он сам о себе говорит), автор известного Advanced Viewer.
Почему народ идет в программисты?
— Как правило, все начинается со школьных занятий по информатике или покупки компьютера. У подростка много свободного времени, и компьютер быстро становится центром досуга, хобби. Если у человека есть творческая жилка, его сразу привлекает огромный креативный потенциал компьютера как инструмента. Например, в детстве я увлекался конструкторами, конструированием и т. п., но на такое хобби нужны инструменты и материалы, что требует денег. А компьютер требует только времени… Расходуя немного электричества и много свободного времени, можно воплотить в жизнь все свои замыслы — это зависит только от упорства и желания. В последнее время появилась возможность выложить любое свое творение на всеобщее обозрение в Интернете, некоторым это позволяет самоутвердиться. Но настоящие программеры занимаются своим делом скорее потому, что им интересно, а не из-за того, что им нужно самоутвердиться или мешают спать лавры Билла Гейтса.
Сменить профессию практически невозможно, все-таки она очень творческая, а для человека с реализовавшимся творческим потенциалом отказаться от нее почти невозможно (это сильнее наркотика, любой настоящий художник, писатель и т. п. подтвердит). Вот и приходится идти в вуз по соответствующей специальности, а там замечаешь, что программы обучения слабее твоих знаний. Хотя обретенная инженерная и фундаментальная подготовка потом все-таки помогает. Учась в вузе, получить сто,ящую квалификацию невозможно. Программы обучения компьютерным специальностям страшно устарели и далеки от реальности. Все приходится изучать самому. Поэтому нужно придирчиво выбирать специализацию, а их — тьма, и каждая в миниатюре — отдельная профессия со всеми вытекающими сложностями.
Программистом становишься как-то плавно и в начале незаметно для себя, а потом уже не выбраться… 99% знакомых так и стали программистами, а не тыкая наугад в список профессий, выбирая куда поступать.
Самое страшное начинается позже, когда диплом с отличием уже год как есть, а работы все нет. Иногда нужно сделать усилие и заниматься не тем, что тебе интересно, а тем, на что есть спрос. В общем, налево пойдешь… направо пойдешь… не все дороги ведут к заработку.
Какие нынче «наиболее живые» направления в программировании?
— Направления я условно разделил бы на:
- программирование несетевых приложений для персоналок;
- программирование сетевых приложений, баз данных, скриптов и т. п.;
- системное администрирование;
- веб-дизайн.
Сейчас спрос есть только на последние три пункта. Первый пункт могут себе позволить лишь крупные компании, разрабатывающие специализированный софт, или «шароварщики».
Что нужно изучить, чтобы стать программистом в том или ином направлении?
— Разные специализации практически являются разными профессиями и требуют разных знаний. Список того, что нужно изучить, постоянно растет. Учишь одно, а через полгода все это уже устарело, и, чтобы не отстать, приходится постоянно повышать квалификацию. Известны курьезные случаи, когда работодатель требует, скажем, трехлетнего опыта работы с некоторой технологией, а сама технология существует только полтора года. Разумеется, опыт очень важен. «Вычитанными» знаниями не обойтись, так как часто приходится разрешать конфликты между тем или иным ПО, протоколами и т. п. Для сисадминов опыт вообще имеет первостепенное значение.
«Классическим» программистам нужно знать рабочую среду (Visual Studo, Delphi и пр.), язык программирования, особенности работы операционной системы (Windows API). Тем, кто работает с базами данных, — особенности конкретных БД, их интерфейсов и протоколов. Тем, кто делает бизнес-приложения для Интернета, — скриптовые языки, протоколы, особенности работы и настройки серверного ПО. Веб-дизайнерам — графические редакторы типа Photoshop, язык HTML, скриптовые языки, среды разработки сайтов (Dreamvawer, FrontPage). Сисадминам нужно знать программное обеспечение, с которым они работают, и способы решения сопутствующих ему проблем.
Что изучать не стоит?
— Трудно сказать, актуален скорее правильный подбор инструментов. Бывает, например, нужно использовать Delphi, а человек выбирает слабенький Visual Basic и т. п. Ошибаются с выбором инсталляторов. Для небольших продуктов используют тяжеловесные инсталляторы, ориентированные на большие дистрибутивы. Очень важно правильно выбрать средства разработки при реализации баз данных. Часто существуют альтернативные конкурирующие пути решения (в таких случаях начинающим программистам обязательно нужно советоваться с более опытными):
- DirectX vs OpenGl;
- PHP vs Perl;
- Java Script vs VBA и т. д.
Где брать «задачки» для самостоятельных упражнений в программировании и какие это должны быть задачки, чтобы на них можно было бы ссылаться в резюме работодателю?
— Как правило, на этапе изучения средств разработки решаются самые элементарные задачи и разбираются примеры из документации к среде разработки. Затем начинаешь реализовывать то, чего не хватает в этих примерах, или делать проекты, которые хочешь научиться реализовывать. Зеленому новичку надо начинать с учебников, по мере повышения квалификации надобность в книгах отпадает, хватает документации к ПО, с которым работаешь.
Что показывать работодателю? Программистам — какой-нибудь реализованный проект, лишь бы он имел законченную форму. Неплохо, если он есть в Сети, хорошо посещается, имеет известность/награды софт-каталогов. Веб-дизайнерам — несколько реализованных сайтов. Сисадминам — главным образом, отзывы с предыдущих мест работы, иногда наборы «фирменных» скриптов.
Не подрывают ли «шароварное» программирование, условно бесплатные и вообще бесплатные продукты экономических основ индустрии программирования?
— «Шароварное» — ничего не подрывает. Это лучший способ что-нибудь заработать в одиночку. Иногда «шаровары» даже конкурируют с продуктами гигантов индустрии, но это идет лишь на пользу потребителю. Часто они заполняют никем не занятые ниши и реализуют оригинальные идеи — что опять же на пользу потребителю. Финансовый ущерб для гигантов, как правило, несущественный, да и обычно это разные весовые категории.
Бесплатные продукты иногда снижают доходы конкурирующих платных продуктов, но с ценовым демпингом можно бороться повышением качества.
В последнее время актуальной становится проблема клонирования, то есть один автор выпускает продукт Х, а вскоре другой автор выпускает продукт Y, откровенно реализующий идеи Х или просто дешевле. Широко распространился плагиат идей, ноу-хау, интерфейсов пользователя, дизайна, текстов документации, слоганов, названий продуктов, кибер-сквоттинг. Рынок становится все более тесным.
Индустрия, на мой взгляд, базируется на других принципах. Это серьезные организации, разрабатывающие пакеты, которые одиночкам не под силу. «Шароварные» продукты по сравнению с ними — малый бизнес, он «подъедает крохи», которые обронили или упустили из виду крупные корпорации.
Тяжелая ситуация с веб-дизайном — здесь ценовой демпинг разгулялся не на шутку. То, что солидная студия делает за две тысячи долларов, какой-нибудь студент согласится сделать за сотню.
Какие бытуют мифы в сообществе программистов?
— Околокомпьютерный юмор — это вообще разговор отдельный. В анекдотах в основном высмеиваются юзеры, «чайники», крупные компании и лично Билл Гейтс.
Юмор довольно специфичный, интеллектуальный, насыщенный терминологией. В целом большинство программеров не любят MS и Б.Г. за жадность и низкое качество ПО. Ведь постоянно приходится в своих проектах решать проблемы, связанные с ошибками и плохой совместимостью различных версий ОС.
Много баек из реальной жизни, в основном опять же про то, какие глупости делают «чайники».
Какие задачи поставлены, но еще не решены?
— Каждое утро просыпаюсь с одной мыслью — найти работу, хоть чуть-чуть подходящую мне по специальности. Решения нет и денег тоже.
Больно видеть, как специалисты, которые на Западе получали бы серьезные деньги, здесь иногда работают за полсотни баксов. При том, что наша профессия требует гигантских затрат времени и сил на освоение, на повышение квалификации и часто — ненормированного рабочего дня. Далекие от ИТ работодатели думают, что люди только и делают, что целый день сидят за компьютером и платить им фактически не за что. При наличии большого числа нетрудоустроенных работников ИТ работодатели часто творят беспредел.
Вообще, программеры могут расписать на пару лет вперед, что они хотели бы сделать/изучить, но в отличие от школьных и студенческих лет на реализацию этих планов нет ни времени, ни денег, поэтому приходится всячески сдерживать свои творческие порывы.
Как начинающему программисту «сделать себе имя»?
— Прежде всего нужно реализовать проект, который заинтересовал бы пользователей и «засветился» в компьютерной прессе. Чтобы сделать имя, нужно создать продукт, на который есть явный спрос. Кроме того, следует с уважением отнестись к желаниям и потребностям пользователя. Если продукт для массового потребителя, полезно вначале делать его бесплатным — это привлечет аудиторию и поможет раскрутиться. В нашей неплатежеспособной стране никого не заинтересует дорогое ПО, особенно на первых стадиях реализации.
На примере своего детища могу сказать, что приобрести некоторую известность таким образом можно, особенно «в части» цитируемости сайта и упоминаний программы в компьютерной прессе. Однако на работодателя статистика закачек твоей разработки или то, что она «засветилась» в журналах, обычно никакого впечатления не производит.
К примеру, на моем сайте уже год висит объявление о поиске работы, однако предложения можно пересчитать по пальцам одной руки. Хотя, может быть, это только мне так не везет.
Наверное, поэтому программеры и уходят в «шароварщики», а это довольно трудоемкое и нервное занятие. Обычно на программирование у «шароварщиков» уходит несколько дней в месяц (кроме начального этапа разработки), остальное время тратится на продвижение и маркетинг продукта. Гарантий заработка на начальном этапе фактически никаких, риск довольно высок. Начать с нуля теперь трудно.
В общем, считать мой путь эталоном нельзя. Кроме того, я пока только начинающий «шароварщик».