?

Log in

No account? Create an account
Andrei Ivanov
Mastery - не про программистов? 
24th-Jul-2010 11:03 pm
JetBrains
Размышлял тут над тем, почему глава про Mastery из книжки Drive не особо впечатлила меня. Пришёл к выводу, что не впечатлила она меня в том числе потому, что к профессии программиста понятие "мастерства" - в смысле постоянного улучшения умений и навыков в асимптотическом стремлении к недостижимому совершенству - не факт, что применимо. Если посмотреть на вакансии компаний, то можно сделать вывод, что не интересно оно никому. Редко увидишь в требованиях "опыт от 10 лет", например. Или вот книжку Джоэля почитать - smart and gets things done - про мастерство ничего. Или Google, в котором умение решать задачи про медведей на полюсе считается более важным, чем любой предыдущий опыт. Известная проблема сложности поиска работы после 35 лет - из этой же оперы. Можно было бы объяснить такое положение дел динамичностью развития индустрии. Но она не такая уж динамичная в последнее время. Все сегодняшние мейнстримовые языки старше 10 лет.

Так вот вопрос - как вы думаете, есть оно - мастерство в программировании? Если предположить, что профессиональный программист не "куски кода" клепал в компании "Всяксофт", а всю свою сознательную карьеру старался учиться, повышать уровень, работать на интересных проектах - есть что-то такое у него через, скажем, 25 лет карьеры, чего нет и не может быть у вчерашнего студента с 3 годами опыта? Или Mastery - это не про программистов?
Comments 
24th-Jul-2010 07:18 pm (UTC)
> Но она не такая уж динамичная в последнее время. Все сегодняшние мейнстримовые языки старше 10 лет.


1. Цирк уехал - клоуны остались. Культурный контекст сформировался гораздо раньше.

3. Языки, сохраняя название, довольно бурно развиваются. Даже такой ветеран как С++ сейчас вовсе не то, чем был лет 10 назад.

2. Знание языка - это довольно малая доля от языкоспецифичных знаний. Очень многое сейчас завязано на знание околоязыковых вещей - платформы, фреймворки, библиотеки, приёмы работы. Они куда более динамичны.
24th-Jul-2010 07:29 pm (UTC)
3. Языки, сохраняя название, довольно бурно развиваются. Даже такой ветеран как С++ сейчас вовсе не то, чем был лет 10 назад.

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


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

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


Edited at 2010-07-24 07:31 pm (UTC)
24th-Jul-2010 07:18 pm (UTC)
А есть в программировании мастера ? Например, есть ли проблемы с трудоустройством у создателя Linux ? :-)

Как мне кажется, мастерство - это не стаж 10 лет, а созданнные работы. Великих художников мы же не за стаж работы знаем, а как раз за результаты.
24th-Jul-2010 07:35 pm (UTC)
Стаж 10 лет - это, конечно, не достаточное условие достижения мастерства. Но - если рассматривать мастерство в классическом понимании - необходимое. Взять, например, врачей (мой любимый пример, да) - не думаю, что какую-нибуль операцию на открытом сердце дают самостоятельно делать хирургам со стажем работы 1 год.
24th-Jul-2010 07:21 pm (UTC)
Программист - слишком обширное понятие.

Если брать программиста как ремесленника - то да, имеет смысл говорить о Mastery. Если как рабочего на конвейере Форда - то это смешно.
24th-Jul-2010 07:36 pm (UTC)
Нет, речь, конечно, не о конвейере.
24th-Jul-2010 07:24 pm (UTC)
если предполагать, что все развивается по спирали, то после 25 лет карьеры программистом ничего нового для тебя не произойдет. останутся только нюансы.

но я очень редко видел программистов с опытом в 25 лет, которые всю осознанную жизнь учились. кажется, они куда-то сливаются к этому времени.
24th-Jul-2010 08:46 pm (UTC)
Ага, нового не произойдёт. Это очень смешная иллюзия.

У меня был один однокласник, довольно тупой.

Лет через 10 его работы на Ижорском заводе программистом, он, на встрече однокласников, изрёк такую мысль, что, мол, приходят молодые инженеры - ну ничего вообще не знают. Я был добрый, не спросил его, что же он-то такого знает, что стоило бы знать.

Что я хочу сказать: была такая эпоха, когда нового не происходило. Это было между 2000 и 2004-м. Потом в джаве появились типизированные параметры. И понеслась Да, через пять лет простой народ всё ещё ругается на дженерики. Да и хрен с ними.

Новое, для людей, которые его не видят, выглядит абсурдом и большим неудобством на производстве.
(Deleted comment)
24th-Jul-2010 07:29 pm (UTC)
Mastery оно, конечно, есть. Просто число лет, просиженных на стуле перед компьютером, конвертируется в mastery с очень разным коэффициентом, зависящим от многого.
24th-Jul-2010 07:40 pm (UTC)
Mastery нужно не работодателю (ему достаточно найти активного человека с парой лет опыта работы с искомой технологией), а самому человеку, чтобы продолжать быть опасным.

Технологии меняются, предметные области меняются. Сегодня программировал embedded на C++, завтра уже GAE на Python, послезавтра telecom на Erlang.

В этой связи Mastery как бы подразумевает, что человек в какой-то момент прощается с монокультурностью и начинает смотреть по сторонам и искать другие подходы к программированию. Смысла точить один и тот же станок десять лет нет ровным счётом никакого, двух достаточно.
24th-Jul-2010 07:57 pm (UTC)
Ну кстати да, имеет смысл говорить о "мета-Mastery", о способности всё быстрее достигать мастерства в новых областях.
24th-Jul-2010 08:22 pm (UTC)
>Если предположить, что профессиональный программист
>не "куски кода" клепал в компании "Всяксофт", а всю свою
>сознательную карьеру старался учиться, повышать уровень,
>работать на интересных проектах - есть что-то такое у него
>через, скажем, 25 лет карьеры, чего нет и не может быть у
>вчерашнего студента с 3 годами опыта?

Близкая к 100 процентам вероятность получать больше своего непосредственного руководителя и близкая к 100 процентов вероятность держать этого руководителя в страхе ;-)
24th-Jul-2010 08:48 pm (UTC)
И близкая к 100% вероятность не быть принятым на работу с формулировкой "overqualified" - по этим самым причинам. Шутка.
24th-Jul-2010 08:31 pm (UTC) - как-то так
по-моему понятие мастерства все же есть :)

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

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

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

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

а другой вопрос, самый главный :) состоит в том, что находить таких людей достаточно сложно. наверно поэтому найм "по знакомству", фактически, внутрицеховой, себя оправдывает больше чем что-либо еще :)
25th-Jul-2010 09:31 pm (UTC)
Особенно тяжело искать таких людей, когда они особо не нужны.
24th-Jul-2010 08:31 pm (UTC)
есть такое мнение, что программист - состояние сознания. это из категории - да, я могу это делать. языки, платформы, и т.д. роли особой не играют. совершенно новые технологии, 1-2 месяца - все понятно.

прикол в том, что этот подход проецируется на другие области деятельности с такой же простотой. "я могу это делать" работает. неважно что это, (в моем случае) солнечная энергия или торговля опционами.
24th-Jul-2010 08:40 pm (UTC)
Сначала отвечу на последний вопрос.

Вообще говоря, нет.

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

И это ужасно: люди с 10-20 годами опыта, переставшие учиться новому, слетают с дорожки в течение нескольких лет. Ну конечно, они работы-то себе найдут, но это уже вторичный рынок - большие конторы, ejb, дотнет, всякий полусуппорт, полуконсультации; ну и также такая важная работа как бояться, что программисты что-то сломают.

Динамика же как раз имеется, просто она ещё не проявилсь сильно, и не поломала всю систему. ФП нынче, на вершине пирамиды, заменяет всю это устаревшую джавную параферналию. Конечно, немалое количество фигни лепится на коленке с пхп, но это, опять же, имхо, второразрядные стартапы. И это фп почти неподъёмно для предыдущего поколения, для объектных программистов. Как ООП было неподъёмным для "структурных", которые не уставали разъяснять неразумной молодёжи, что "на си быстрее".

(Со мной, разумеется, большинство не согласится - да и хрен с ним. Я вечно забегаю вперёд; аутсорсинг пытался организовать ещё в 90-м, когда мои же приятели из Нью Йорка смотрели меня как бараны на новые ворота, мол, что ещё за компьютерные специалисты в сраной рашке, у них же там нигерия со снегом.)

Edited at 2010-07-24 08:40 pm (UTC)
24th-Jul-2010 10:06 pm (UTC)
Хорошо, будем исходить из того, что динамика есть, революция на пороге и на знамени её написано "ФП". Не вижу оснований спорить на эту тему с практиками, да ещё и сразу с несколькими одновременно.

Но какая тогда должна быть мотивация у работодателей нанимать программистов за 35?
Если им, также как и их коллегам в "золотом" возрасте 25-28 лет придётся учиться жить в новом светлом мире ФП, но при этом - как там было написано выше - получают они больше своего непосредственного начальника и он их боится.

(Я в данном случае оставляю за скобками аргумент, что программистов, которых стоит нанимать, настолько мало, что если попался - неважно сколько ему лет - предположим у нас всё-таки есть выбор)
(Deleted comment)
(Deleted comment)
(Deleted comment)
(Deleted comment)
24th-Jul-2010 08:44 pm (UTC)
В программировании действительно мастерство ценится невысоко. Точнее, правильно будет сказать - ценится редко. Так и результат соответствует - вот вокруг нас много домов, некоторые хорошие, некоторые плохие, но чтобы совсем невозможно было жить или он сразу развалился - очень редко. Ездят машины, некоторые получше, некоторые похуже - но полных провалов - единицы.

А в программировании же - большинство проектов - провал. Или вообще не работает, или никто не хочет пользоваться.

Я вот подумал - есть еще одна похожая область. Это мода. Там тоже множество "талантливых молодых модельеров", а в результате - огромные магазины, забитые плодами их трудов уцененными в пять раз.
24th-Jul-2010 11:43 pm (UTC)
Шоу-бизнес ещё.
24th-Jul-2010 09:41 pm (UTC)
Имхо, мастерство в данном конкретном контексте - это посмотреть на задачу, потянуться к полке и не глядя взять с нее инструмент, который в подавляющем большинстве случаев сделает задачу вообще сам, пока мастер бухает. Ну, или два инструмента и стравить их друг с другом :-)
24th-Jul-2010 10:35 pm (UTC)
Боюсь, что многое съедает перевод и отсутствие нативного понимания - поднимаем словарики через google.com - define:autonomy etc.
> autonomy, mastery и purpose
autonomy - is ability to make independent judgments; open to initiate, terminate, or alter smth ...
mastery - acquisition or the process of acquiring proficiency ( proficiency == the quality of having great facility and competence / оно же skillfulness ) ...
purpose - an anticipated outcome that is intended or that guides your planned actions

и того:
самостоятельность - возможность выносить свои суждения, начинать, прекращать или изменять что-то
"мастерство" - получение или процесс получения competence (да я тут всё лучше всех знаю - прям до каждой заклепки!)
смысл - понимание ожидаемого выхлопа или того, что заставляет вас делать то, что вы делаете.
==
Я несколько не согласен, что тут, в контексте самостоятельности и осмысленности, либо вообще в районе мотивации, mastery идет к асимптоте "Мастер", оно тут скорее идет к "Знаток" ... Мастер в "достижении мастерства" не видит мотивации. Думаю, что "процесс получения компетентности в какой либо области" для Мастера - это совсем не цель, он на такое не отвлекается, это побочный продукт достижения интересных Мастеру целей, причем он об этом не задумывается. Рядом с Мастером надо искать не mastery, а passion :).

При постановке "Знаток" - да, mastery есть (как skillfulness) - как у токарей 6-го разряда. Только оно сильно привязано к конкретике, а конкретика отмирает за ненадобностью и, с какого-то момента, скорее тянет ко дну, чем помогает. Надо включать способность обобщать и переходить на другой уровень (пример с шоферами от "на чем и как" к "куда и зачем"), а если этого не случается за первые 10-15-20 лет, то увы - мастерство - не пропьешь. Хотя и тут не надо отчаиваться - токари 6-го разряда тоже нужны - по одному на 10 токарей 3-го разряда.

При постановке "Мастер" - слово mastery тоже есть, имхо, только встречается оно в нашей обыденной жизни редко ... Если не Мастером, то как называть Дейкстру и других (http://en.wikipedia.org/wiki/List_of_programmers)?

Кстати, Дейкстра из моего детства - это задачка про паровозик и переставить вагоны местами при помощи железнодорожного тупика с кольцом на конце - а это уже как раз мишки на полюсе. Люди такого склада ума и сейчас не считают, что "динамичность индустрии в последние 10 лет" уже не та. Для современных будущих Мастеров - она столь же динамична, как была индустрия динамична для Дейкстры 50 лет назад.

Так что имхо тут mastery - это не про Мастеров ... Извините за многабукоф.
24th-Jul-2010 11:54 pm (UTC)
У Вас повышение мастерства оказывается каким-то строго количественным, что ПМСМ антинаучно )

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

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

Поясните плиз фрилансеру, что значит "куски кода" и что значит "неинтересные проекты"?
25th-Jul-2010 06:24 am (UTC)
Строго говоря, не у меня, а у Дена Пинка - я как-то для себя удовлетворительного понятия мастерства пока не ввел, в приложении к программированию, вот пытаюсь привлечь коллективный разум -)

Про неинтересные задачи - вообще эта штука относительная - что одному интересно, за тем другой засыпает. Но давайте скажем так - неинтересная задача - это задача, которая в существенной степени повторяет ранее решённую (и много раз), и в ходе решения которой решающий не учится ничему новому.
25th-Jul-2010 06:41 am (UTC)
Насколько я понимаю (а я тут мало чего понимаю), развитие программиста, может быть, и безгранично, но уровень задач, которые могут перед ним поставить, ограничен. Соответственно, "мега-гуру", наверное, отличается от просто "гуру", но эту разницу никто не сможет уловить в реальном деле.

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

Хотя я, опять же, мало чего понимаю и, скорее всего, всё извращаю. :)
Page 1 of 2
<<[1] [2] >>
This page was loaded Nov 24th 2017, 2:53 pm GMT.