воскресенье, 26 декабря 2010 г.

Значение языка

Обсуждая в личном общении и в переписке с коллегами значимость нашего проекта, мы обнаружили, что многие программисты и администраторы, даже будучи специалистами высокого класса, недооценивают важность русского языка для профессионального общения. Нам говорили и писали, что в нашей работе профессионал не может не знать английского языка, и, более того, высокий уровень мастерства недостижим без отличного владения техническим английским. Что необходимость общаться на иностранном нужно воспринимать не как затруднение, а как вызов, как одну из ступеней совершенствования в профессии. А поэтому не стоит и стремиться общаться на русском по профессиональной тематике.

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

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

В процессе развития человеческого организма мозг ребенка, воспринимая язык окружения, необратимо меняется. Родной язык становится "машинным кодом", который уже более невозможно изменить. А изучение иностранного языка - это создание и оптимизация "эмулятора", который транслирует понятия из иностранного языка в родной. Как и в случае вычислительной машины, система иностранный язык - родной язык  работает с пониженным КПД. Поэтому человек, мыслящий на иностранном языке, всегда добьется меньшего, чем человек, мыслящий на родном языке. И это может быть оправдано тогда и только тогда, когда не мыслить на иностранном невозможно. И это понимаем не только мы: например, крупнейшая библиотека для разработчиков MSDN последовательно переводит все новую документацию на наиболее значимые языки, в числе которых есть и русский язык.

ХэшКод.

суббота, 25 декабря 2010 г.

Форум программистов

Мало создать хороший сайт, необходимо рассказать о нем заинтересованным посетителям. Если этого не сделать, то никто просто не узнает о том, что где-то в недрах сети есть замечательное место. Первая мысль, которая пришла нам на ум, - воспользоваться контекстной рекламой AdWords, благо Google при создании новой учетной записи предоставил нам подарочный купон. Было интересно попробовать и посмотреть, кто придет на ХэшКод по поисковым объявлениям.

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

Первый опыт. На момент подачи объявления на ХэшКоде был ряд вопросов по LINQ, REGEX и Windows API. Среди зарегистрированных участников форума были начинающие (они задавали вопросы) и опытные (они отвечали на вопросы) специалисты. Вероятно, программисты, набирающие выбранные поисковые запросы, начинают знакомиться со спецификой предмета, а при первоначальном изучении всегда возникают вопросы. Им может быть интересна возможность задать вопрос профессионалу. Статистика поисковых запросов показала, что объявление может увидеть 50 000 человек в месяц. Если хотя бы один процент увидевших объявление, перейдет по ссылке, на ХэшКод зайдет 500 заинтересованных посетителей в месяц.

Мы разместили ряд объявлений из расчета 20 - 30 переходов в день по словам "LINQ", "REGEX" и "WinAPI". Образец объявления "LINQ":

Задайте его на форуме ХэшКод.
Присоединяйтесь к профессионалам!
hashcode.ru

Прошло несколько дней и мы увидели... что объявление не замечено и по рекламной ссылке к нам никто не переходит. Разнообразные вариации объявлений не дали существенных улучшений: возможно у интересующихся LINQ, REGEXP и Windows API  и были вопросы, но они не стремились задать их на форуме. Эти объявления были сняты.

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

И мы разместили вторую серию объявлений из расчета 20 - 30 переходов в день по словосочетаниям "форум программистов" и "форум администраторов". Образец объявления "форум программистов":

C/C++, C#, Java, Python...
Присоединяйтесь к профессионалам!
hashcode.ru

Сразу после начала показов к нам пошли посетители. Процент кликов был очень высок - порядка 20% и стоимость перехода быстро снижалась. Это обнадеживало. Но скоро выяснилось, что все не совсем так, а точнее совсем не так, как нам виделось. Приходящими оказались студенты, которым просто нужно было решить учебные задачи по программированию (типичный пример): они находили через поиск все форумы программистов и всюду оставляли свои задания с просьбой решить их за них в расчете, что кто-нибудь и решит, - и где-то их действительно решали. Поскольку эти посетители не являлись нашей целевой аудиторией - ХэшКод создан для программистов и администраторов, любящих и ценящих свое дело - мы сняли и эти объявления.

На этом мы решили пока приостановить наши опыты с контекстной поисковой рекламой на Google.

воскресенье, 19 декабря 2010 г.

Наш ответ Керзону

Уважаемые программисты и администраторы.

Открывая этим сообщением наш дневник, мы бы хотели ответить на один важнейший вопрос: "Зачем все это нужно?". Нас часто спрашивают: "Ребята, то, что вы сделали, - отлично, но ведь есть англоязычная и русскоязычная копия. Зачем вы делаете то, что уже сделано до вас? Зачем вы изобретаете велосипед?"

Почему англоязычный ресурс, который является прототипом этого проекта, добился успеха? Потому что английский - это lingua franca программирования. Исторически так сложилось, что наибольших масштабов программирование как производство достигло в США. Поэтому множество документации по языкам и инструментам программирования существует на английском языке и программист, как и администратор, вынужден владеть английским языком, чтобы воспринимать эту документацию. Кроме того, чтобы общаться с множеством программистов и администраторов по всему миру, нужен один язык. Этим языком английский и является. И все множество программистов и администраторов со всего мира посещают и ценят этот ресурс. Тогда зачем нужен русский проект?

Человек, который с детства не вырос в среде, где окружающие его люди говорят на европейских языках (романо-германской группы), всегда будет с трудом воспринимать английский. Разница лишь в том, что русскому понимание английского дается легче, чем китайцу. Это значит, что при обсуждении сложных понятий (а к таковым относятся и многие проблемы программирования), нужно выполнить двойную работу: 1) работу собственно программиста, 2) работу переводчика. Нужно осознать проблему на русском, перевести проблему с русского на английский, перевести решение проблемы с английского на русский и осознать решение на русском. Вне зависимости от степени владения иностранным языком это дополнительный труд (хотя и не всегда осознаваемый), который нужно выполнить. Поэтому разумно этот дополнительный труд устранить, и это и есть наше призвание.

Мы не считаем, что нужно конкурировать с англоязычным проектом (это просто бессмысленно), но мы уверены, что нужно дополнить его русскоязычным проектом. Чтобы человек русского мира (а это вся Евразия), мог профессионально общаться и на русском - с русскоязычными коллегами, и на английском  - с англоязычными коллегами.

Если же говорить про уже существующие копии на русском языке, то здесь все просто: нам они нравятся, но мы рассчитываем и сделаем наш проект лучше.