За девять лет работы в Интервэйл раза четыре доводилось собеседовать программистов намного (больше чем на 10, а иногда и на 30 лет) старше меня. В одном случае сам соискатель решил с нами не связываться, а в остальных отрицательные ответы давал я. Старался быть объективным.
Конечно, от возраста абстрагироваться невозможно совсем, поскольку есть такое дело, как “глаза горят”. У молодых горят чаще и ярче. Молодого проще увлечь идеей, которая выстрелит разве что лет через пять-шесть. Меня и самого пятнадцать лет назад так заарканили. С опытными людьми такие вещи практически не проходят. Вот предложи мне сейчас броситься с головой в какой-нибудь прожект (вроде SObjectizer-а, только совсем в другой области) и я буду мало того, что сильно думать, так еще и изначально скептически этой затее относиться. Так мне еще 37, а не 47 и уж тем более не 57.
В общем, фактор возраста в моих отказах, наверняка присутствовал. Но я очень надеюсь, что он был весьма незначительным. Главной составляющей все-таки была техническая часть. А она оказывалась далеко не на высоте. Моя команда на C++, не на Java программирует. C++ технических ошибок не прощает. Поэтому лучше перестраховаться и не взять человека, чем потом пытаться заставить хоть как-то задышать C++ный говнокод (опыт, опять же, собственный).
Тем не менее… Осадочек-то остается. Лет через 10-15 на собеседованиях и я буду выглядеть так же. И какой-нибудь молодой орел (возможно даже гораздо более толковый, чем я в его годы) будет смотреть на меня и думать: “Ну и что мне с тобой делать, дядька?”
Почему-то вспомнилось (это эпитафия на одной из могил Александро-Невской Лавры):
Прохожий, бодрыми ногами
И я ходил здесь меж гробами,
Читая надписи вокруг,
Как ты сейчас мою читаешь.
Намек мой понимаешь?
Прощай же, до свиданья, друг.
PS. Решения об увольнении или об отказе хорошим людям в приеме на работу не проходят без последствий. Как-то сразу чувствуется, что еще пять минут ты был одним человеком, а сейчас, после произнесенного “нет” уже изменился. Слегка, но сам-то ты это чувствуешь.
18 комментариев:
Недавно разговаривал с зам. начальника XXX. Да. Выходец из НИИ с закалкой Фортом и Ассемблером.
Дело не в том, какая закалка. Дело в том, насколько человек способен адаптироваться к современным реалиям.
Я боюсь того, что я буду более-менее адаптирован к реалиям лет через 10-15, но меня будут отфутболивать за то, что кому-то покажется, что это не так.
От того, что не знаешь что такое Glassfish, Tomcat, .NET WCF, Silverlight, все паттерны проектирования со всё появляющимися новыми, Enterprise Network Connector (в 90-х просто сокет - для сильно умных - BSD сокет), Flexible App Collaboration Environment (в простонародии - IPC). ))
Если я правильно понял твою мысль - то я с нею согласен.
и что? вот мне тоже 37, и только в последние годы я почувствовал в себе кое-какие сил
99; не просто адаптироваться к реалиям, а изменить их
(впрочем, знаний еще стоит подгрести)
дальше -- эмоциональный braindump с вкраплениями логики
я и тебе это предлагаю -- есть куча опыта, которую можно осмыслить и выдать результат -- а именно те места с++, что надо улучшить; наборчик таких юз кейсов (ну или просто кейсов) помог бы сделать *хороший* язык поверх с++
вот, например, емнип в SObjectizer-е принято решение идентифицировать агентов строками -- емнип это имеет серьезные отрицательные стороны по проверке во время компиляции, но вероятно полноценное запихивание через название класса привело бы к синтаксической избыточности -- какой именно?
Как можно было бы изменить с++, чтобы таковой избыточности не было?
Как можно было бы изменить с++, чтобы компилятор мог статически проверять полезные вещи несмотря на то, что в SObjectizer-е принято решение идентифицировать агентов строками?
Какие полезные вещи надо портировать из других языков (не просто их названия, а четкое описание в переложении к с++, можно с обильной копипастой из источников, это разрешающих)?
Как сделать так, чтобы хотя бы мелкие задачи (типа чего-то о РОРЗ что ты описывал в блоге) решались за то время, что кажется необходимым на их решение (мне кажется, тут надо опять улучшить язык)?
Каковы реально досаждающие проблемы с++, каковы воркараунды и в чем их недостатки?
Это консолидация опыта во что-то полезное -- т.е. что-то упакованное и автоматизируемое.
А теперь про "закалку асмом и фортом". Опыт сам по себе имеет тенденцию обесцениваться -- допустим, на современных процах, не зная про conditional move, хорошоий асм не написать, да и вообще компиляторы получше человека научились асму (ну не всему, ладно). А был бы у этого чувака хитрый макроассемблер с оптимизацией (или хитрый форт с оптимизацией), "знающий" его приемы -- вполне возможно щас бы он управлял коллективчиком, который писал бы на нем.
Теперь насчет реализации. "Кто будет реализовывать и насколько это будет сложно реально юзабельно". Тут большая тема, как-нить изложу, но вкратце
1. я обязательно буду реализовывать (возможно как кривоватую, так и обязетельно полноценную версию), но *никаких* обещаний по объему и срокам не даю
2. с++ его тьюринг-полными шаблонами позволяет тупому макропроцессору "заюзать" систему типов с++; несмотря на жутко сложную грамматику с++ много чего (возможно неточно) можно выцепить (с о
95;ень редкими ошибками) опять довольно простыми способами типа рег. выражений
3. ну и полноценная версия -- это приятный язычок поверх с++, умеющий подцеплять любой плюсовый код, в т.ч. шаблоны. Без такого язычка имхо с++ и дальше будут загибаться.
Я конечно понимаю, что я полный стоматолог в микрохирургии глаза, но всё-таки не могу не высказать одну индуцированную предыдущим постом и моими долгими аналитическими изысканиями идею:
А почему бы не возвратиться к идеи SCADA Objectizer. Написать свой DSL с возможностью >>двухстороннего<< интерфейса с другими языками (C , C++) посредством каких-нибудь стандартных библиотек (libffi). На мой взгляд годная бы вещь получилась.
Извините, конечно, за полный отрыв от изначальной темы. Но мне поскорее захотелось вылить накопившееся одному из разработчиков SObjectizer.
> Написать свой DSL с возможностью >>двухстороннего<< интерфейса с другими языками (C , C++)
По-моему, DSL сам по себе лишен смысла, смысл есть только в embeddedDSL. То есть строить DSL внутри какого-то удобного языка.
Насчет двустороннего интерефейса -- это однозначно хорошо и необходимо, но будут ли по этому интерфейсу "проходить" шаблонные классы например?
хотя моя реакция даже на "DSL персонально только для SObjectizer" все равно была бы положительная -- был бы интересный объект для изучения и рассмотрения сильных и слабых сторон
@buffovich:
>Если я правильно понял твою мысль - то я с нею согласен.
Скорее дело не в незнании, что такое Glassfish. А в том, что с возрастом не будет в голосе пиетета перед каким-нибудь очередным Ultra-Mega-Super-Puper-Glassfish.
@имя:
> и только в последние годы я почувствовал в себе кое-какие сил
99; не просто адаптироваться к реалиям, а изменить их
А вот у меня наоборот -- чем старше становлюсь, тем меньше желания изменять реалии вокруг. Сообственно поэтому у более взрослых разработчиков глаза блестят не так часто и не так сильно. Запас пороха на изменения мира вокруг, имхо, довольно быстро заканчивается.
@buffovich:
>А почему бы не возвратиться к идеи SCADA Objectizer. Написать свой DSL с возможностью >>двухстороннего<< интерфейса с другими языками (C , C++) посредством каких-нибудь стандартных библиотек (libffi). На мой взгляд годная бы вещь получилась.
Этот разговор в данной теме уже оффтопик. Мы продолжим его как-нибудь позже.
Это первые признаки того что психологи называют "кризис среднего возраста", говорят самый страшный у мужиков :)
@Rustam: думаю, что у меня первый яркий принак обнаружился, когда я сильно увлекся дартсом. Для меня самого это было удивительно, пока я не понял, что это тот самый кризис подобрался -- захотелось самому себе доказать, что я еще чего-то могу добиться. Пусть в дартсе, а не с новой женой на 15 лет моложе меня :)))
Дартс и даже новая жена понятно, тут людей вот как http://www.rsdn.ru/forum/job/3942934.flat.aspx#3942934 колбасит :)
>тут людей вот как http://www.rsdn.ru/forum/job/3942934.flat.aspx#3942934 колбасит :)
Был у меня знакомый, который долго ремонтами занимался (классно, кстати говоря, делал). Потом плюнул на все и ушел в торговую сеть по дистрибьюции кофе и чая.
Ну в 90-ые резкие смены работы практически нормой были, я и сам например каменщиком и штукатуром немало поработал :)
Нет, дело было всего пару лет назад. Сказал, что задолбало все, перспектив не видит, а годков-то уже за 40, нужно что-то менять пока не поздно. Вот и поменял.
А в 90-е да, было мрачно временами.
Отправить комментарий