Они также знают, где на таковых охотиться бесполезно -- это в первую очередь хорошо всем известные мэйнстримовские job-сайты с огромной посещаемостью. Какой бы эффектной вывеской они не прикрывались, и как бы не убеждали, что именно у них водится айтишная элита, увы. Опыт показывает, что найти идеального программиста на таких ресурсах по ряду причин нереально.
[spoiler]Сейчас, сужу по нескольким знакомым, поиск активно перемещается в тематические блоги. Минус этого подхода в плавном уходе множества тематических площадок в даун (об этой тенденции ). Поэтому, самое интересное, поиск таковых спецов наиболее эффективно происходит, как и в доинтернетовскую эпоху -- через знакомых, и на различных реальных тусовках-семинарах-конференциях.
А помните семинары Бунича? Гугль выдает только одну ссылку
Единственное место, где в советское время московские программисты могли пообщаться, а работодатели активно приглашали к себе (я в 88-м так работу сменил). Кстати, крепкого здоровья Леониду! вот его ЖЖ.
Обобщу взгляд командиров программного производства на идеального программиста. Пойдем от обратного -- программиста неидеального, или, точнее, программиста, неясновидящего проект. У такого программиста может быть достаточно объемный опыт участия в относительно успешных проектах, неплохие навыки реализации техзадания по схеме "водопада". Собственно, любой более-менее сообразительный выпускник профильной вузовской специальности, знающий С++, за разумное время без проблем напишет кусок кода объемом 3-5, ну до 10 тысяч строк кода.
Самое интересное начинается далее. По мере роста объема проекта, его усложнения, изменения требований на лету, и начинает проявляться проектное неясновидение. Оно характеризуется двумя особенностями:
- поток мелких, но достаточно принципиальных багов нескончаемо растет, и время на их исправление и отладку превышает все разумные пределы;
- система работает медленно, заторможенно и неэффективно.
Неясновидящего программиста кстати можно выявить очень быстро и просто: сколь сложным бы не были требования к проекту, он рвется поскорее сесть за компьютер и начать программировать -- вместо того, чтобы потратить достаточно много времени (дни, недели...) на проектирование.
Соответственно, идеальный программист -- программист, ясно видящий проект во всех деталях, и способный менять его архитектуру на лету (что не порождает очередной поток багов). Он достаточно точно оценивает трудоемкость работ, число ошибок не выходит за небольшой разумный предел, а система всегда работает шустро. Мне известны два подхода к этому: agile-методологии проектирования и мета-программирование.
Вот таких ясновидящих разработчиков многие работотадели и жаждут. Но при этом не могут избавиться от чисто российской ментальности -- например, описав свое видение идеального программиста, тут же пугаются собственных запросов (как бы не переплатить!), и добавляют: ну и конечно, такому разработчику деньги не важны! Он готов чуть ли не за интерес работать! И потом удивляются, почему же идеальные программисты к ним так и не идут.
Для западной айтишной культуры подобные заявления абсурдны. Та же Microsoft пример -- если ее программист способен сделать в 10 раз больше кодировщика с окладом 100 тыс долл / год, то он и получит оклад в миллион.
Впрочем, примерно такие мнения, пожелания и оценки высказывались и 25 лет назад. Ничего не меняется.
А это утверждение ведь вообще противоречит agile, который говорит - не надо тратить время на проектирование - все равно все поменяется. Лучше скорее сделайте прототип (и тесты)