avva: (Default)
[personal profile] avva
В последнее время я несколько раз задумывался о разнице между продуктивными программистами и любителями языков программирования.

Эти две категории, конечно, пересекаются - но не совпадают. Изучение языков, весьма непохожих на C++ и Java, может помочь всем, и даже тем, кто после этого все равно будет продолжать писать на C++ и Java. Но можно перепробовать много языков, уметь интересно о них рассказать и сравнить, а использовать эти знания для серьезных, полезных проектов - не уметь.

(здесь я хотел привести несколько примеров, но в итоге не нашел подходящих слов. по-английски я написал что-то схожее здесь, но тоже неудачно)

Date: 2008-01-06 04:03 am (UTC)
From: [identity profile] enemyreader.livejournal.com
не есть ли это разница между академическим и прикладным знанием?

Date: 2008-01-06 04:38 am (UTC)
From: [identity profile] avva.livejournal.com
Необязательно. Увлечение языками необязательно имеет под собой академическую-теоретическую основу.

Date: 2008-01-06 04:07 am (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Производительность производительности рознь. Есть немало людей, которые предпочитают валять дешевые прототипы, а как только задачка посложнее, так у них начинается или зевота или понос.

Date: 2008-01-06 04:40 am (UTC)
From: [identity profile] avva.livejournal.com
Такое есть. Но бывает и потрясающая производительность нетривиального, сложного кода. Этому я очень завидую, потому что сам так обычно не могу.

Date: 2008-01-06 08:07 am (UTC)
From: [identity profile] os80.livejournal.com
>потрясающая производительность нетривиального, сложного кода
а понять в этом сложном коде потом что-то можно? А то у нас был такой, потом ушёл, (в том числе) мне-ламеру пришлось разбираться. И везде (подчёркиваю, ВЕЗДЕ, в любом куске кода) можно было сделать минимум в 2 раза проще. Но для этого пришлось бы подумать, то есть снизить производительность.

Date: 2008-01-07 12:04 pm (UTC)
netch: (Default)
From: [personal profile] netch
Сопровождаемость - ещё один критерий.
Но вот, например, мне достаточно тяжело "с нуля" написать законченный продукт - по крайней мере без платы:) За деньги - ещё можно, но чуть надо себя пересилить. А вот при уже готовом продукте сделать нормальный рефакторинг - задача значительно более простая для меня. Поэтому, я бы вполне согласился работать с таким коллегой, как в Вашем примере, если он не слишком уж ужасно пишет:))
И конечный результат при этом был бы вполне неплох. Программа-то у него работает? Работает. Глючит? Наверно, нет, иначе бы Вы про это явно упомянули:) А дальнейшее сопровождение и необходимая оптимизация - после того, как "оно" начнёт работать...

Date: 2008-01-07 02:17 pm (UTC)
From: [identity profile] os80.livejournal.com
Не глючит. Как она может глючить, если он её не дописал? Зачем, думаете, пришлось разбираться?
В общем, не советую... (если, конечно, мои советы Вам нужны :-)

Date: 2008-01-06 04:12 am (UTC)
From: [identity profile] msh.livejournal.com
А меня удивляет почему изучение языков программирования настолько популярнее всех остальных частей программистского ремесла. Выбор языка (если вообще бывает какой-то нетривиальный выбор) для проекта у программиста бывает раз в год, а выбор, например, средства для отладки - может и несколько раз в день. И ведь, обычно, в отличие от языка - никаких ограничений - ну и сколько программистов, изучивших несколько языков, которые никогда не будут применять, потратили хотя бы день на, скажем, изучение cachegrind? Да wireshark какой-нибудь тривиальный половина не умеет применять

А сколько, например, программистов смогут назвать хотя бы три стратегии бранчевания проектов и сравнить их? А тут ведь неправильный выбор и неправильное применение легко выливается в тысячи потерянных часов

Date: 2008-01-06 04:33 am (UTC)
From: [identity profile] sub0zero.livejournal.com
для проекта у программиста бывает раз в год,

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

Date: 2008-01-06 05:41 am (UTC)
From: [identity profile] spamsink.livejournal.com
Выбор языка для проекта у программиста бывает раз в год

Проекты бывают и развитием существующих продуктов, когда выбор языка вообще отсутствует.

Date: 2008-01-06 09:44 am (UTC)
From: [identity profile] dimrub.livejournal.com
Большинство, полагаю, бранчеванием и профайлингом занимаются, скорее, по необходимости, чем по велению сердца. Изучение же языков дает людям определенного склада ума instant gratification.

Date: 2008-01-06 01:50 pm (UTC)
From: (Anonymous)
Видимо, в этом-то и вопрос. Почему от всякого там конфигурационного менеджемента, профайлинга или траблшутинга кайфа нету, а от изучение языка -- есть. Я вот не могу сформулировать.

Date: 2008-01-06 04:14 pm (UTC)
From: [identity profile] msh.livejournal.com
Да, но почему? Вот, например, освоил профайлинг, применил к софту, ускорил его значительно (обычный результат от первого применения профайлера) - gratification в тот же день! Или, например, сидишь на митинге, третий час обсуждают из какого бранча релизить. Встаешь и говоришь "А я же вас предупреждал!" и все грустно повторяют "а ведь да, предупреждал". Опять gratification!

А с языками? Прочитал три книги, написал триста строчек, даже в резюме стыдно упомянуть. Максимум - напишешь на нем когда-нибудь одноразовый скрипт на три часа работы. Где радость-то

Date: 2008-01-06 04:16 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Этот gratification - он не в практической пользе, а в каких-то интеллектуальных эндорфинах, вещь в себе, даже не знаю, как это описать.

Date: 2008-01-07 03:14 am (UTC)
From: (Anonymous)
Позвольте подсказать слово: Мастурбация.
From: [identity profile] pingva.livejournal.com
one of them is: "tao of pooh is teh suxx0rz!" While "the tao of programming" is merely imbecilic, the tao of pooh is also self-righteous (kinda like this comment), and does a great injustice to all the books it is trying to be a tribute to.
From: [identity profile] avva.livejournal.com
I haven't actually read The Tao of Pooh, but the quotes I've seen strewn about made me think it was light-hearted and didn't take itself very seriously. It's entirely possible that I'm mistaken about this.

Anyway, aren't you going to berate me for hating on _why? :)

From: [identity profile] pingva.livejournal.com
> Anyway, aren't you going to berate me for hating on _why? :)

Now, that goes without saying, but them reddit ppl already spent all my ammo! (hpricot, shoes, markaby, tryruby, ...)

Reluctantly, I must agree with your remark on _why's poignant guide. Although I find it hilarious (местами =), I will never (again) recommend it to someone who doesn't know ruby yet ;)

А по теме у меня возражений нет =)

From: [identity profile] pechkin.livejournal.com
Agreed. Empty book, waste of paper.

Date: 2008-01-06 04:31 am (UTC)
From: [identity profile] sub0zero.livejournal.com
Мне кажется категорию любителей языков можно отнести к тому, что называют "дилетанты" в лучшем понимании это слова (в смысле dilettante, котороый переводят обычно как amateur, но это слово имеет несколько негативный оттенок и подчеркивает отсутствие формальной тренировки или получения оплаты, в то время как французское слово подчеркивает увлеченность -- насколько я понимаю)

Date: 2008-01-06 05:00 am (UTC)
From: [identity profile] slobin.livejournal.com
Мне кажется, тут два разных вопроса: (1) разница между продуктивными программистами и любителями (не важно, в плохом или хорошем смысле этого слова), и (2) почему любителям нравятся именно языки, а не, скажем, отладчики.

... ku'i lo mi'a mlatu cu se tolvajni la'e di'u ...

Date: 2008-01-06 06:38 am (UTC)
From: (Anonymous)
.. а объяснить разницу между тем довольно легко на известном примере. Эти программисты как фотографы, увлекающиеся оборудованием и фотографы.

Вот например один из самых полезных сайтов если вы хотите купить цифровую камеру: www.dpreview.com
Владелец сайта тщательно оттестировал сотни камер, сделав десятки тысяч пробных снимков. НИ ОДИН ИЗ НИХ не оправдывает художественно хотя бы процента этих усилий (see samples in his camera reviews)
http://www.dpreview.com/reviews/panasonicdmcl10/page31.asp

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

Другой категории - почти наплевать чем снимать и как. Хоть спичечным коробком с дыркой (популярный дизайн камеры обскуры), хоть пласстиковой Хольгой, копеечная смена или лейка за тысячи - им все равно, потому что интересны им результаты и композиции, а главное - увидеть. Камера лишь позовляет увиденное оставить на пленке или в памяти машинки.
Эти, конечно, понимают, что коробка А позволит сделать качественнее и вытянет снимок в темноте, а коробка Б применима лишь в солнечный день. Но функциональность всегда подчинена главному интересу - увидеть.
http://remetalk.livejournal.com/

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

Образование - довольно-таки роков`ая обуза в том смысле, что если думание запустилось в детстве, эта нужда изобретать, перебирать мысли и играть с ними остается как наркотик на всю жизнь. Отрежь возможность (например, отрезав от информации - поставь интеллигента в тайге ветки рубить) - и он впадет в самоубийственную депрессию

касательно dpreview

Date: 2008-01-06 11:15 am (UTC)
From: [identity profile] egorfine.livejournal.com
Над выпуском в мир фотокамеры работают десятки а то и сотни людей, инженеров. Из них абсолютно никто не обязан уметь красиво снимать, чтобы создать камеру, с помощью которой другие будут делать шедевры. Другая аналогия: не нужно быть талантливым художником, чтобы наладить производство кистей и красок. Просто авторы dpreview - технари, у них другая задача.

Date: 2008-01-07 08:54 am (UTC)
From: [identity profile] vitaly-il.livejournal.com
насчет тестовых снимков - ИМХО, в этом случае задача выбрать сюжет так, чтобы он демонстрировал сильные/слабые технические стороны ф/а и объектива.

Date: 2008-01-06 06:52 am (UTC)
From: [identity profile] sub0zero.livejournal.com
спасибо за рекомендацию портала
примерно 20 уровней после ужина
просто великолепно проведен вечер, пора смотреть кино )

Date: 2008-01-06 12:34 pm (UTC)
From: [identity profile] avva.livejournal.com
:) всегда пожалуйста.

Date: 2008-01-07 01:07 am (UTC)
From: [identity profile] sub0zero.livejournal.com
Сегодня продолжаю
Уровень оказался всего 17 (смотрю на стенку)
Посвящу сегоднящний вечер

Date: 2008-01-07 10:41 am (UTC)
From: [identity profile] sub0zero.livejournal.com
все
круто
очень понравилось когда надо делать порталы находясь непрерывно в полете (18 или 19)
Выход из корпорации показался несколько однообразным с точки зрения трюков, там больше надо не сообразить, а разглядеть куда надо приткнуть портал

Физику с поведением в полете надо бы доделать, повороты совершено неестественные, вращательный момент теряется
Хотя может с нормальными интерфейсами такая физика лучший вариант, но кажется можно было бы сделать более естественно

Date: 2008-01-06 06:56 am (UTC)
From: [identity profile] flaass.livejournal.com
Бабушка меня в детстве научила вязать на спицах.
Я выискивал разные красивые узоры, и каждым узором вязал образец: прямоугольничек такой, на котором узор хорошо виден.
Но даже пригодный шарф ни разу не связал, не говоря о свитерах. Слава богу, есть сестры, они и свитера умеют. С узорчиками, и про каждый узорчик я знаю, как его связать :)

Date: 2008-01-06 07:03 am (UTC)
From: (Anonymous)
т.е. идея важнее исполнения. Такие любят решать задачи, но придумав ход решения ненавидят его аккуратно расписывать - это уже очевидно, а делать рутину нужно пересиливать свою натуру. Или, когда расписывают, сажают ляпы и ошибки "от невнимательности".
Поэтому они сдают экзамены, где надо поговорить с преподавателем часто на отлично, но там, где нужна кропотливость, будут переправлять, зачеркивать и сбиваться в "непринципиальных" местах.

Таких система образования наказывает "твердыми четверками" и разговорами с родителями об усидчивости.

Date: 2008-01-06 09:35 am (UTC)
From: [identity profile] beldmit.livejournal.com
Угу... Но неужели для нас нет профессиональной ниши? В конце концов, общие соображения - если придумать идею требует одной квалификации, а закодировать алгоритм - другой, и, как правило, меньшей - то почему тут разделения до сих пор не произошло?

Date: 2008-01-06 07:58 pm (UTC)
From: [identity profile] avva.livejournal.com
Почему же нет? Во многих местах есть разделение. Есть алгоритмисты, которых именно с таким ожиданием ищут; есть более или менее стандартная позиция "архитектора", от которого ожидают именно придумывать и продумывать идеи и алгоритмы, а не воплощать.

Date: 2008-01-07 08:06 pm (UTC)
From: [identity profile] beldmit.livejournal.com
Не довелось мне пока попасть в такое место. В общем-то большая часть моих карьерных поползновений сводится к тому, что я не хочу писать, скажем, и на 25-й подряд работе парсер конфига, например.

Date: 2008-01-06 07:15 am (UTC)
From: [identity profile] ex-decil.livejournal.com
Анатолий, тут две проблемы возникают, для продуктивных это Yet Another Programming Language, а для тех, кто знает и умеет применять десяток разнообразных языков программирования не всегда есть подобная возможность. Понятное дело, что, допустим, Cobol, или там Lisp (или Python, что уже ближе к реалиям) для некоторого класса задач подходит лучше, другой вопрос, что решение на таком языке программирования большинству заказчиков не интересно. Да и банально, для небольших проектов под веб куда сложнее найти хостинг под Python или Ruby, чем под PHP. Вот и приходится маяться с этим недоразумением.

Хотя мои коллеги, допустим, вполне эффективно используют свои знания о рельсах и руби в работе на PHP. Хотя ворчания на эту тему тоже достаточно :)

Date: 2008-01-06 07:43 am (UTC)
From: [identity profile] make4um.livejournal.com
Анатолий, мне кажется, что тут спутались две большие разницы. Одна - противопоставление процедурно-ориентированных языков и объектно-ориентированных. Всё-таки у них философия разная. Второй вопрос - это разница между программистом, в смысле кодировщиком и архитектором, дизайнером. Тем, кто конструирует проект. Когда-то, лет 20-15 назад, этих разниц почти не было. Сейчас же всё настолько индустриализировалось, что разницы не только есть, но и "правят бал". имхо.

Date: 2008-01-06 10:36 am (UTC)
From: [identity profile] http://users.livejournal.com/malfet_/
IMHO, тут нужно ставить вопрос более обще - где должна проходить грань между естественной любознательностью и беспорядочным энциклопедизмом? Когда поиск ради достижения заданных целей/приобретения навыков превращается в коллекционирование слабо связанных между собой фактов..
Ведь вместо изучения языков программирования, можно посвящать себя освоению различных IDE или графических toolkitов - и иногда это очень осмысленная деятельность,а иногда - нет.

Date: 2008-01-06 11:17 am (UTC)
From: [identity profile] egorfine.livejournal.com
Практики vs теоретики. Я в своем бизнесе старался и стараюсь использовать лучшее от обоих фронтов. Практики, например, слишком сильно увлечены, собственно, практикой, чтобы откинуться в кресле и придумать принципиально новый алгоритм рассчета чаевых, например. Теоретика не заставишь написать интерфейс просмотра списка платежек - он скиснет, не начав.

Сочетать в себе и то и другое (пускай даже в режиме переключения контекста) очень немногим удается.

Я утрирую, конечно.

Date: 2008-01-06 12:39 pm (UTC)
nine_k: A stream of colors expanding from brain (Default)
From: [personal profile] nine_k
Просто есть люди, которым интересно писать программы, а есть те, кому нравится изучать языки. Каждый преуспевает в своём :)

Date: 2008-01-06 04:00 pm (UTC)
From: [identity profile] neatfires.livejournal.com
> Изучение языков, весьма непохожих на C++ и Java, может помочь всем, и даже тем, кто после этого все равно будет продолжать писать на C++ и Java.
Не уверен. У меня сейчас ощущение, что функциональные языки, которыми я занимался последний год, как раз ухудшили мою производительность на Java. Стал постоянно ловить себя на том, что отыскиваю пути выразить на ней что-нибудь из области FP, обычно безрезультатно, и злюсь. Типичные явовские решения кажутся чурбанными и отметаются автоматически, из-за чего много сил и времени уходит на борьбу с внутренним пуританином. А ведь раньше он играл в моей команде. Хотя, может быть, дело лишь в тренировке.

Интересно, как долго длится увлечение языками. В конце концов, языков (или, скорее, видов), действительно непохожих друг на друга, не так уж много. Мне трудно себе представить, что через 5 лет в этой области останется для меня еще хоть что-то неоткрытое. Скорее всего, интерес перекинется дальше - может быть, на изучение устройства систем типов, компиляторов, горизонтов развития области. А что будет еще дальше, даже представить не могу. Выходит, "любитель языков" - это не определение и не диагноз, а только одна из стадий развития. Но как называется такая форма жизни?
Edited Date: 2008-01-06 04:01 pm (UTC)

Date: 2008-01-06 07:14 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
Почитал комменты по ссылке, забавно получилось.
У вас есть красивая теория, многое объясняющая™ и вызывающая приятные ощущения.
Вы её применили к чуваку не озаботившись предварительной проверкой.
Потом выясняется, что чувак-то как раз вполне продуктивный программист.
Мицгол или Огурцова в таком случае сказали бы, что чувак на самом деле вовсе не продуктивный программист, потому что продуктивные программисты не увлекаются языками ради красивостей (см. пункт 1).
Объявить чувака исключительным случаем посерединке, конечно, лучше с точки зрения сохранности разума, но ещё лучше заранее проверять теории, а если и anecdotal evidence их вдруг случайно опровергает, то и вообще держать при себе, подвергая непрерывным глубоким сомнениям. Йа Кассандро! =)

Хотя действительно в этом что-то есть, да! Мне давно интересно, утверждение о том, что форт-систем написано больше, чем приложений, соответствует истине?

Date: 2008-01-06 07:56 pm (UTC)
From: [identity profile] avva.livejournal.com
Да какой он продуктивный программист? HTML-parser и несколько игрушечных библиотек, ни одна из которых, судя по всему, не доведена до ума. Это конечно не ноль, но под продуктивным программистом я все же несколько другой уровень продуктивности подразумевал. Да любой программист, который написал, скажем, не вполне тривиальный редактор (всего лишь не вполне тривиальный, не размера vim или emacs) написал на два порядка больше действенного и нетривиального кода, чем все, что там у _why перечислено. Это просто пример наугад.

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

Date: 2008-01-06 08:03 pm (UTC)
From: [identity profile] avva.livejournal.com
Скажем так, я знаю в Гугле людей, для которых все, что я вижу перечисленного в repository _why вместе (в функциональном эквиваленте, необязательно на Ruby, это грубая прикидка, исключая книгу про Ruby, итд. итд.) - недели на 2-3 работы, с результатом очень высокого качества. Сам я не такой человек, конечно, но именно наблюдение за весьма продуктивными программистами (причем пишущими качественный, нетривиальный код) vs наблюдение за некоторыми типичными паттернами записей/обсуждений в reddit легло в основу этой записи.

Date: 2008-01-08 12:50 am (UTC)
From: [identity profile] pingva.livejournal.com
ну, тут ты не прав, думаю. Во-первых код why-я написан им в свободное время, а во вторых -- это полезнейший код, возможно уникально-полезный, т.е. дело совершенно не в объеме.

Т.е. его продуктивность мерить (если уж взялись =) таким образом -- видимо не верно.

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

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 05:04 am
Powered by Dreamwidth Studios