Archive for the ‘Мысли вслух’ Category

Кодер или программист?

Воскресенье, Март 30th, 2008

В куче разнообразных мест (замечу, именно русскоязычных) по разным IT темам натыкаюсь на очень похожую фраза: «Так то ж тупой кодер, а вот настоящий Программист …».

Такие фразы меня просто корежат.

Ну, начнем с понятия кодер. По идее, кодер – это человек, который умеет только кодировать (набивать код четко описанного алгоритма). Как я понимаю, вылезло это понятие из глубокого прошлого, когда алгоритмы в основном составляли математики, но например набить на перфокарты весь алгоритм и проверить, что набито все правильно мог делать вспомогательный персонал (кодировщик). Соответственно, первые выполняли интеллектуальную работу, вторые же выполняли рутинную работу.

Вот тут нашел ссылочку на слово кодер в Википедии.
Буду благодарен, если кто-то может кинуть более интересные ссылки на то, откуда же точно пошло это слово.

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

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

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

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

Так вот, напрягает меня нелинейность. Разница между обычный(средний) программист- хороший программист и отличный программист – вполне линейна. То есть они обладают одними и теме же знаниями и умениями, просто в разном количестве, имеют разный опыт. Но тем не менее, к отличному программисту выставляются те же требования, что и к обычному. Отличный программист не должен вдруг уметь играть на свирели, для того, чтобы быть отличным.

А как только первая буква становится заглавной, то сразу появляется какая-то мифичность и требования скачком становятся абсолютно другого уровня.

К чему это я…. Так, вот – это я к тому, что по большему счету программирование – это ремесло. Да, ремесло требующее интеллекта, выдумки и хорошего абстрактного мышления. И так же как в любом ремесле, есть средние, хорошие, отличные и даже гениальные ремесленники. Но, так как это ремесло, то требования к ремесленникам заранее известны, и не должно быть никакой нелинейности в том, что для самых лучших требования кардинально отличаются от требований к просто хорошим программистам.

Вероятнее всего, на этом месте куча людей начнет рвать рубаху и кричать, мы люди искусства, а не ремесла…. Скажите, когда вы включаете и смотрите телевизор, вы получаете эстетическое удовольствие от того как разведена плата в телевизоре или от телепередачи? То же самое, никто из конечных потребителей не получает эстетическое удовольствие от кода программы и алгоритмов, всех интересует просто конечный продукт.

Ну и возвращаясь к фразе про кодера и Программиста. Третье, чем мне чуждо это сравнение — это тем, что на программиста начинают навешивать знание кучу вещей, которые он не должен знать. Именно исходя из того, что программист – это ремесленник, он должен знать свое ремесло и не обязательно ему знать чужое ремесло. Замечу, хотя математики становятся хорошими программистами, это не обозначает что программист обязан должен знать математику. Это тоже самое, как скажем, люди с идеальным слухом часто становятся музыкантами, но не обязательно иметь идеальный слух, для того, чтобы им стать.

А что вы думаете насчет ремесла vs. искусство и кодер vs. Программист?

P.S. В процессе дискуссии, дополнилась одно важное замечание. Хотя, работа у программистов и является ремесленничеством, но тем не менее она может быть творческой.

P.P.S. Еще одна вещь, которая обнаружилась, что под словом кодер, люди зачастую понимаю — малоопытны программист или плохой программист. Именно это меня и беспокоит, что слишком много разнообразных значений навешены на одно слово. Причем на то слово, которое изначально имело другой смысл.

Все фриваршики – казлы?

Вторник, Март 25th, 2008

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

И как-то по ходу шутя, он мне подкинул название этой темы 😉 Ну, и я подумал-подумал и решил, а что мне слабо, что ли на такую тему написать? В общем, сам себя поймал на слабо 🙂

Итак, даю затравку, а вы, если хотите, попытайтесь меня забороть.

Я считаю, что те, кто выпускают бесплатный софт (замечу именно софт, а не библиотеки) губят весь IT рынок. И нас всех к чертовой матери поувольняют из-за них.

Возьмем несколько примеров рынков полуубитых фриварщиками и опенсорсниками:

почтовые клиенты

броузеры

медиа проигрыватели

мессанджеры (разные там Miranda, Trillian)

Ведь, если вдуматься, то эти рынки кормили гигантское количество программистов, которые писали разнообразные коммерческие продукты. А сейчас даже гиганты а-ля Microsoft гнутся под, например, Firefox’ом (между прочим 45% моих посетителей пользуют Firefox).

Ведь как получается, садиться себе студент в нерабочее время и давай подпедаливать код. Так сказать, бабушка – рубль, десятка бабушек – уже червончик. И вот, они и подтачивают IT рынок.

Если копнуться глубже. Ведь это все начали большие компании, которые просто боролись таким образом против друг друга и вложили такое количество денег, что раскрутили движение бесплатной раздачи программ до таких размеров, что так сказать огурец вылез из огорода и начал жевать садовника

Дальше больше, собственно, что мы видим сейчас, это комодизация (черт, ну, что за слово дурацкое) рынка популярных программ. Но, как вы понимаете, потихоньку самые популярные программы уже довели до ума. И следующее – это когда из наиболее популярных программ оно перейдет на специализированные – бесплатные замены PhotoShop’у, математическим пакетам и всяческим другим программ.

В конечном итоге, лет скажем через 20-30 мы получаем, что 99% процентов софта станут бесплатны для пользователя. Как следствие, на них уже толком нельзя заработать. Да остается support, но это на порядок меньший рынок, чем написание новых программ. Соответственно количество программистов, которые нужны, станет в десяток раз меньше.

И, кстати, вместо программистов, опять вернется спрос на железячников, так как железо то, в цене не падает, и соответственно нужны будут те, кто его будут обновлять и паковать в новые ноутбуки.

В общем, грядет конец света, и программисты станут не нужны. Предлагаю всем добровольно

— побрить голову налысо и уйти в шаолинский монастырь

— не писать ни одной строки кода бесплатно

— найти тех, кто пишет эти строки бесплатно и нанять их на работу, чтобы остановить конец света

Выбор за вами. Хотите вы быть счастливыми пользователя, которые получают все бесплатно или счастливыми программистами, получающими деньги.

Бизнес риторика (часть 2).

Понедельник, Март 24th, 2008

В первой статье на эту тему я слегка прошелся по тому, как стоит и как не стоит аргументировать в спорах и обсуждения. Так что, в этой статье просто закончу эту список.

— Пытайтесь вынырнуть на уровень выше в обсуждениях.

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

Это действительно важный пункт, так как зачастую все спорят о деталях, не понимая большей задачи.

И, кстати, зачастую переформулировка задач (как я писал в статье Решаем нерешаемые проблемы) помогает принять гораздо более правильные решения и останавливает споры.

— Соглашайтесь с тем, что станет неактуально

Зачастую вы знаете заранее, что, например задача, которую вы обсуждаете, никогда не будет сделана или отложится на сроки, после которого ваше обсуждение будет уже не актуальным (скажем на год).

Зачем вам тратить свои и чужие нервы и время споря о вещах, которые не будут сделаны. Просто согласитесь, да и все.

— Пытайтесь стать на место оппонента

Попытайтесь «влезть в чужие туфли» (черт, не смог вспомнить русского эквивалента). Это близко к идее «Не пытайтесь забить идею оппонента до конца». Чаще всего, когда вы поставите себе на его место, то вы обнаружите, что его точка зрения не так уж плоха и вполне обоснована.

Ну и в конце концов

— Пытайтесь кооперировать, а не убивать.

С чего я, собственно, начинал, с того, что при любом аргументировании, пытайтесь кооперировать, а не убить и съесть вашего оппонента.

Рекомендую практиковать вне бизнеса 🙂 Когда я был в институте, я очень любил спорить до потери пульса, не соглашаясь на мельчайшие сдвижки. Как вы понимаете, я быстренько это перенес в рабочую обстановку, что явно не улучшило настроение ни мне ни другим. И, дай бог, если у меня занело года 3-4 для того, чтобы отучиться от этой дурацкой привычки.

И на закуску, результаты опросника, который я проводил тут.

Во первых вы можете поглядеть результаты тут (забавный такой отчет).

Ну и немножко выводов:

Что меня очень порадовало, что 75% процентам нравиться мой блог.

Большинство людей которые читают мой блог работают в IT от 3 до 7 лет (40%) и от 7 до 15 лет (30%). Это касательно того, что у нас было обсуждение, читают ли меня студенты или нет. И как показала практика, процент зеленых студентов читающих блог достаточно мал.

Нравиться мой блог вам за то, что я знаю о чем пишу и о том, что говорю много умных мыслей. Правда не нравиться за то, что пишу то, что и так все знают. Немножко необычно получилось. Попытаюсь писать более необычные мысли, хотя боюсь в IT очень тяжело что-то написать такое, что без меня еще не было придумано.

Кстати, оказалось, что моя низкая грамотность , хотя и беспокоит людей, но не намного больше чем то, что я подлец, лицемер и конокрад.

С громадным отрывом лидируют читатели, которые не владеют бизнесом, но активно его хотят. В общем-то я так и предполагал, что это окажется основная аудитория. И опять же лидируют, но с небольшим отрывом люди, у которых есть кто-то в подчинении.

Что меня позабавило, это то, что нос в нос идут два типа людей – одни которые хотели бы стать супер умелыми бизнесменами, а другие, которые хотели бы стать супер умелыми технарями.

Ну, и несколько ответов на то, что вы написали в комментариях к тесту:

>Очень иногда встречаются идеи из книг Брукса и Листера с ДеМарко. Хоть и написанные своим >языком, но все же, хотелось бы больше видеть своих идей.

Похоже, что мысли у меня с этими авторами просто сходятся. 😉 Так как Брукса я читал, а вот Листера и ДеМарко – нет.

>Жаль, что блог нельзя зафрендить в ЖЖ

Я кроспостю блог в ЖЖ сюда (vronin.livejournal.com), так что можно и нужно френдить.

Кстати, напишите, если вы хотели бы как-то еще получать себе этот блог. На сейчас поддерживается RSS, подписка email’ом и ЖЖ.

Вот такие вот пироги. Оставайтесь на нашей волне до следующей телепередачи.

Бизнес риторика (часть первая).

Воскресенье, Март 23rd, 2008

Статья, на самом деле будет чуть больше, чем только о риторике в бизнесе, но как обычно я буду давать привязки к реальным бизнес ситуациям.

Начну с фразы «представьте себе». Так вот, представьте себе, должно пройти бизнес совещание между двумя крупными фирмами — потенциальными партнерами, но еще не встречавшимися раньше. Вся переписка шла через email. И вот представители одной фирмы заходят в зал совещаний и видят там троих подростков (как оказалось, представляющих вторую партнерскую фирму). И кто-то из фирмы номер один выдает фразу «Вы что, шутите? Да у вас молоко еще на губах не просохло. Мы с вами никаких дел иметь не будем и вообще пшли вон». Как вы считаете, с бизнес точки зрения, хорош такой ход?

Ряд плохих ходов легко дополнить любыми комментариями насчет пола, расы, вероисповедания, физической неполноценности, да и просто резкой критикой.

Однако, взглянем под чуть другим углом. Почему вообще людям приходит в голову говорить такие фразы (даже вне бизнеса)? Ведь, чего уж там , все мы в пылу спора обычно не примянем полить оппонента грязью.

Так уж сложилось, что в течении сотни тысяч лет, лучший метод доказательства своей правоты и доминантности был убить и съесть оппонента, ну или в лучшем случае серьезно его покусать. Когда, питекантроп видел другого питекантропа с дубиной, то выбор был простым – либо ты его съешь, либо он тебя.

В общем, за последние тысячу лет из разряда съесть все перешло в разряд морально затоптать, но базовая стратегия осталась той же самой – кто нападает первым и бьет сильнее, тот загоняет своего противника в заранее проигрышную ситуацию (по крайней мере, с его точки зрения). Кстати, отлично просматривается в политических игрищах.

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

Итак, вернемся к тому, как по моему мнению разумно, спорить/обсуждать/аргуметировать. Вот те методы, которых лучше всего придерживаться:

— Не переходите никогда на личности.

Любое обсуждение (или спор) должен идти о теме спора, а не о вашем оппоненте. Даже, если оппонент исчадия зла, он может предложить хорошую идею.

— Аргументируйте фактами, а не мнениями

Сейчас на земле живут больше 6 миллиардов людей, это значит, что есть больше 6 миллиардов мнений, не имеет смысл пытаться что-то решать именно на уровне мнений, так как совпадения в них крайне редки.

Если ваши факты и факты вашего оппонента не сходятся, постарайтесь предложить метод определения, какие факты точнее. Замечу, сначала договаривайтесь о тем, как проверять факты, а потом проверяйте их. Так как метод проверки фактов тоже субъективен.

— Не пытайтесь забить идею оппонента до конца.

Редко ваш оппонент, настолько глуп, чтобы пороть абсолютную 100% чушь. Чаще всего в его словах есть хотя бы часть истины или по крайней мене субъективной истины. Попытайтесь найти те точки, в которых вы сходитесь и подчеркнуть их. И продолжайте работать над местами, где вы не согласны.

— Отдайте малое, возьмите большое

Если есть мелочи в которых вы не согласны, то не стоит спорить о каждой мелочи или обсуждать ее. Работайте над обсуждением только серьезных деталей.

Не только не придирайтесь к чужим мелочам, с которыми не согласны, но и «сдайте» свои позиции по тем вопросам, которые не критичны.

— Пытайтесь не дробить чужую идею на мелкие части, пытаясь спорить с каждой из них

Не всегда доказательство того, что одна или несколько частей идеи неправильны, говорят то, что вся идея неправильная. Лучше сначала пытайтесь обсудить идею целиком и высказать, ваше мнение.

А то бывает, что вроде вы и с идеей согласен, но по привычке начинаете критиковать детали. (я  этим серьезно болею).

Кстати, это в крови у многих exUSSR’шиков. Мы считаем, что если мы все раскритиковали (да еще с применением терминологии), то показали свою компетентность в этом вопросе. Будьте очень аккуратны с этой методикой вне USSR, она вызывает только раздражение у всех остальных наций.

Продолжение следует.