пятница, 25 декабря 2009 г.

[life] Пять операций в день в 70 лет и персональная фотовыставка в 92 года. Завидую белой завистью

Программирование – это достаточно специфическая профессия. 18-ти летний пацан, только что освоивший азы Ruby (PHP или C#) может программировать гораздо лучше 40-летнего дядьки с 20-летним стажем. Плюс специфика профессии такова, что постоянно приходится держать “нос по ветру” и осваивать “новые” технологии. Плюс время от времени возникают разговоры о том, что после 30 (35, 40, 45…) в программировании жизни уже нет – либо толковый разработчик уходит в менеджеры, либо он из толкового программиста превращается в старого пердуна. Достоверность подобных утверждений находится сильно ниже плинтуса, но периодичность таких разговоров на мозги все-таки капает.

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

Во-первых, Джеймс Кэмерон, которому 55 лет, и который через 12 лет после “Титаника” (самого успешного фильма всех времен и народов) выпустил “Аватара”. В принципе, для художника (режиссера) 55 – это не много. Но меня другое восхищает: отношение Кэмерона к фантастике. Очевидно, что она ему нравится. Тогда как я сам, чем старше становлюсь, тем равнодушнее воспринимаю фантастическую литературу – уже не торкает. А вот Кэмерона до сих пор торкает. Да так, что он создает такое ошеломляющее творение, как “Аватар”!

Во-вторых, 22-го декабря исполнилось 70 лет кардиохирургу Лео Бокерия. Человек проводит в день по 3-5 операций! В своем интервью АиФ академик Бокерия привел пример других кардиохирургов:

Выдающиеся хирурги Майкл Дебейки и Фёдор Григорьевич Углов оперировали до последних лет жизни, хотя Майкл ушёл, не дожив двух месяцев до своего столетнего юбилея, а Фёдор Григорьевич — в возрасте 105 лет.

Блин, если вдуматься в это: человеку 70 лет, а он проводит по 5 операций в день, в каждой из которых нужны и точность рук, и опыт, и чутье, и большое желание заниматься этим делом!

В-третьих, на этой неделе я узнал о персональной выставке Вадима Гиппенрейтера «Заповедная Россия». А ведь ему уже, вдумайтесь, 92 года! И ведь он продолжает снимать! (Фотографии Вадима Евгеньевича можно посмотреть на его сайте или на PhotoSight.ru – посмотреть есть на что.)

Такие вот дела. В завершение хочу процитировать фразу Лео Бокерия:

«Уходить в запас» раньше времени обидно — американские кардиохирурги только начинают самостоятельную работу в 37 лет.

Оно как! ;) Остается надеяться, что со временем 40-50-60-70 летние программисты будут котироваться так же, как и кардиохирурги ;)

15 комментариев:

  1. спасибо за новость о выставке Вадима Гиппенрейтера. Обязательно схожу на новогодние каникулы.

    ОтветитьУдалить
  2. Думаю они и сейчас котируються.
    У меня много знакомых программистов которым за 40 и за 50. Большинство сидят менеджерами и ПМ-ми , но есть и программисты.
    Да сейчас тяжело получить работу программистом когда, тебе за 50, но это всё зависит от менеджеров высшего звена. Такая психология сложилась у нашего руководства, если тебе столько лет значит нужно или начальником работать, или в науке сидеть или к пенсии готовиться.
    Я сам больше 20 лет программирую и всё нормально, да тяжело конкурировать с молодыми, сам учусь постоянно, и у молодых тоже, и их учу. Всё знать не возможно.
    Со временем всё изменится и в лучшую сторону.

    ОтветитьУдалить
  3. 2SAnty:

    >Со временем всё изменится и в лучшую сторону.

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

    ОтветитьУдалить
  4. Добавлю что требуемые навыки в профессии нашей изменились.
    Если раньше, тех самых 20 лет тому, нужно было писать много, то сейчас - нужно много разбираться с технологиями, либами, фреймворками, протоколами, ..., и писать - мало.
    Острота ума с годами притупляется, но для освоения нужна уже не столько она, а опыт, чутье. Начинающий программист как откроет всего лишь справку по DataGridView в C# WinForms - так и впадает в панический ступор. У него нет опыта отделять главные методы от фич и настроек-рюшечек.

    Второе отличие, связанное с упомянутым - специализация. Универсальность программистов уходит в прошлое. А специализация - также приобретается опытным путем. Причем специализация уже появляется даже не в технологиях, а в конкретных их реализациях. Когда смеялись, о западных программистах, которые говорили о себе - "Программист на Paradox" вместо "Программист БД". Но теперь и до нас добрались эти реалии.

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

    Конкуренция с молодыми поэтому возможна в 2ух случаях - 1. развивающееся, сырое направление, не накопившее еще развитого инструментария. 2. по уровню зарплат.

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

    ОтветитьУдалить
  5. P.S.
    Да, еще фактор - поддержка старого кода. Он явно становится все более долгоживущим, чем 20 лет тому. И здесь молодой программист - также проигрывает. Реальный код, за года превращается в нетривиальное месиво заплаток, разных подходов, и т.д. Разобраться без опыта, и без наставников - чтобы дописать свое или найти ошибку - малореально.

    ОтветитьУдалить
  6. Мне 26, в настоящее время пишу диссертацию, так что объективно не могу судить, есть ли программирование после 30. Однако позволю немного не согласиться и привести пример долгожительства в программировании - Дональд Кнут. Его "Искусство программирования" и сейчас не утратило свою актуальность, TeX тоже используется, более того, он и сейчас пишет новые тома.
    А "быдлопрограммирование", связанное с "новыми" "технологиями" (которые на самом деле являются переизобретением старого), NIH синдромом и прочими "радостями" пусть остается уделом школьников/студентов.

    ОтветитьУдалить
  7. 2Skynin: по поводу изучения -- начинающие, те да, впадут в ступор. Но если не начинающий, но молодой, то осваивать те же самые WinForms он будет быстрее и легче, чем "дедушка" с опытом TurboVision, Zinc, MFC, Awt, SWing и пр. :)

    А вот специализация и старые наработки -- это да, это очень мощный фактор. Причем, чем стабильнее становятся технологии (например, C++ уже очень давно не меняется, Java уже имеет вполне почтенный опыт), тем большую важность будут иметь написанные 5-8-10-15 лет назад фрагменты.

    ОтветитьУдалить
  8. 2Quaker:

    >Однако позволю немного не согласиться и привести пример долгожительства в программировании - Дональд Кнут.

    На Западе, имхо, ситуация несколько иная. Там не было перестройки и того сурового кризиса, в который попало отечественное софтостроение на рубеже 90-х. Когда программистские коллективы просто-напросто разбегались кто куда. И оставались в программировании только самые увлеченные. Им тогда было по 35-45-50 лет. Сейчас им на пятнадцать лет больше. И на фоне молодежи, которая пришла в индустрию после середины девяностых они выглядят просто дедушками. Но их мало. Может быть поэтому в русскоязычных форумах так часто заходят разговоры об отсутствии программирования после 35-ти.

    ОтветитьУдалить
  9. то осваивать те же самые WinForms он будет быстрее и легче, чем "дедушка" с опытом TurboVision, Zinc, MFC, Awt, SWing и пр. :)
    Проверено на себе - у меня при изучении тьма вопросов, которыми завалены форумы - не возникло. Не потому что успел прочесть доку, а потому что опыт TurboVision, FoxPro, 1С и т.д. помогал.

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

    Буду и я в таком качестве когда-то. Но пока мой опыт мне помогает, с тезисом не согласен.

    ОтветитьУдалить
  10. >Но пока мой опыт мне помогает, с тезисом не согласен.

    Ну тогда так и запишем: "Валенок не выдавать!" :)))

    Помню, под OS/2 было очень сложно программировать после Windows. Поскольку в Windows начало координат было в верхнем левом углу экрана, а в OS/2 -- в нижнем левом.

    ОтветитьУдалить
  11. Поскольку в Windows начало координат было в верхнем левом углу экрана, а в OS/2 -- в нижнем левом.
    Мдя, если это - уже сложно, то что говорить о Swing'е, где вообще нет координат, а элементы GUI распределяются с помощью невидимых "резиновых" вставок и лаойт менеджер компонует эти гирлянды в зависимости от заложенного в него алгоритма.
    У меня такой подход вызвал - удивление от новизны, с таким способом построения GUI я не сталкивался.

    Кстати, кроме пора на пенсию есть еще вариант, когда молодые программисты освоив дельфи путаются в WinForms (не говоря о Swing). Отсутствие опыта приводит к зазубриванию. Нет обобщенного понимания. И малейшее изменение в частностях - приводит в полное замешательство и "ох как трудно".

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

    Кстати косность, это неосознанный, неперевареный опыт. Запор ума от обилия хранимой в нем информации потому что - неструктурированной. Такой программист не станет ни ПМ, ни ментором.
    Как отмечал Буч в своем "ООП проектировании"(сойдет вместо философско-психологической литературы) - гениальность это не какие-то сверх качества ума - а умение находить адекватные закономерности. Умение выстраивать свои знания и умения - иерархично.
    Вот об этом опыте я говорил. Такой опыт - ценен для других.

    А не о набитой руке на определенном ЯП, под определенный API, в определенной предметной области.
    Это конечно тоже опыт. Но опыт ремесленника, а не инженера. Первый - неформализуем, а "делай я как я, почему? а фик его знает". Второй - "делай так, потому что ..."

    ОтветитьУдалить
  12. 2Skynin:

    >Мдя, если это - уже сложно, то что говорить о Swing'е, где вообще нет координат, а элементы GUI распределяются с помощью невидимых "резиновых" вставок и лаойт менеджер компонует эти гирлянды в зависимости от заложенного в него алгоритма.

    А мы о разных вещах говорим. Как с технической, как и с общей точек зрения.

    Технически, начало координат в левом нижнем углу усложняет отрисовку текста (типа RTF, с разными шрифтами и картинками). Поскольку текст рисуется сверху вниз и в алгоритме отрисовки естественнее координату y просто увеличиваеть на высоту символа. Тогда как в OS/2 этот алгоритм превращается в головную боль, т.к. где-то нужно прибавлять dy, где-то отнимать.

    А в общем, есть такая наприятная штука, как переход с удобной технологии на неудобную. Например, перенос рисования текста из под Windows в OS/2. Или переход от Qt (где есть spacer-ы) в Awt или MFC, где их нет. В таких случаях прошлый опыт все время задает вопросы "Какого хера?", когда в новой среде сталкиваешься с каким-то маразмом. Вот это непонимание "почему нельзя было сделать почеловечески?" и привычка использовать нормальные инструменты как раз вызывает серьезный дискомфорт (а то и стремление написать маленький велосипедик, для того, чтобы от самых маразматических ляпов избавиться).

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

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

    ОтветитьУдалить
  14. 2Rustam:

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

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

    Может и у программистов есть некий возрастной рубеж. Если не у всех, то у многих? ;)

    ОтветитьУдалить
  15. Угу, а научные парадигмы меняются только путем естественного вымирания (от возраста) сторонников старой теории :)

    Хотя и у них полно исключений.

    ОтветитьУдалить