Если вы живёте в постсоветском пространстве то, скорее всего, не сомневаетесь в истинности высказывания из заголовка. А, возможно, даже уверены, что так же считают по всему миру. Увы, это миф. Только в России думают, что заграницей считают русских программистов самыми лучшими. На самом деле, в других странах русских программистов оценивают не выше и не ниже, чем, например, венгерских, польских или испанских.
В Кремниевой долине, действительно, работает немало программистов из РФ; в России открывают офисы разработки некоторые известные фирмы. Но, к сожалению, причины этому кроются не в воспетой местными СМИ гениальности российских разработчиков, а в чисто меркантильном расчёте. В РФ программисту можно платить в разы меньше, чем такому же, по уровню, в США или Европе. Сами же программисты тоже часто бегут «за бугор», чтобы устроиться там работать на те позиции, куда местные не пойдут. Эдакое техно-рабство.
В рамках своих должностных обязанностей я общаюсь со множеством программистов, как, находящихся в штате нашей Компании, так и на собеседованиях. Так что, со способностями российских программистов я знаком, как говорят, не по неслышке. Большая часть собеседований вызывает у меня лишь чувство глубокого разочарования; после некоторых – хочется плакать. И только менее, чем каждому десятому кандидату, хочется сделать джоб-оффер.
Не поймите меня неправильно - среди русских программистов встречаются много прекрасных специалистов, которые вызывают у меня чувство глубокого уважения. Но, увы, основная масса – посредственны, зато с высоким самомнением (возможно из-за веры в миф об исключительности рф программистов).
Вот несколько причин, которые мешают стать русским программистам действительно лучшими в мире:
- Уже упомянутое самомнение и вызванная этим неспособность реально оценить свои возможности. В ситуации, когда можно взять готовое решение и немного его доработать, многие начинают «пилить» полностью своё. «Я сделаю лучше», «Не хочу разбираться в чужих багах», «Да что тут делать то? За два часа всё напишу!». В итоге, на задачу, которую можно решить за два дня уходит неделя, а после ещё несколько на отладку. И что хуже – код проекта превращается в «спагетти».
Один специалист даже с гордостью мне рассказывал, что он не прочитал ни одной книги про свой основной язык программирования. «Зачем, я сам во всё разобрался, к чему мне тратить время на всяких Виртов и Страуструпов?». Надо ли говорить, что он не ответил мне на простые вопросы вроде того, в чём опасность использования макросов – хотя во всех книгах об этом пишут; но не в мануалах – где есть только формальное описание синтаксиса подобных конструкций. - Не желание развиваться. Обычная ситуация – программист отработал приличное количество лет в одной организации. Он прекрасно разбирается в своих локальных задачах. Но, придя на собеседование, начинает спотыкаться на элементарных вопросах «шаг влево – шаг вправо». «Я забыл», «Давно не пользовался», «На нашем проекте такого не было». Если ты идёшь на собеседование на вакансию С++ программиста, почему бы не освежить в памяти, что такое наследование, виртуальная функция и т.д., даже если это не использовалось на твоей последней работе? Если человек, по резюме, позиционирует себя как С++ программист, я считаю, что он должен знать все возможности языка!
Но язык С++ настолько мощный, что любую задачу можно решить, использовав лишь малую толику возможностей. Поэтому в замкнутых коллективах разработчиков частенько наблюдается дрейф в сторону примивитизации – перестают использовать STL, шаблоны, лямбды и т.д. Начинают программировать на каком-то эрзац-С++. Ох и сложно же таким программистам после влиться в современный проект! - Низкий уровень трудовой дисциплины. Некоторые программисты всегда норовят сделать всё по-своему, а не так как их просят. Ощущение, что для них главное показать какие они умные, а не решить задачу. Сроки – тоже вторичны. У меня было несколько увольнений программистов после того, как я настаивал, что бы они переделали свой код в соответствии с корпоративными стандартами, используя наши библиотеки. «Зачем? Всё же работает!», «Мой код быстрее!». О том, как с их кодом будут работать другие специалисты, как этот код сопровождать – они не думают.
- Плохой английский. Знания английского языка весьма важно для современного IT, особенно если ориентироваться на работу в иностранных компаниях. Увы, наши программисты часто сильно преувеличивают свои знания. Недавно собеседовал человека, у которого в резюме было указано знание инглиша, как Upper-Intermediate. Думаю, проведу ка я собеседование на английском. По факту знания кандидата оказались на уровне первого класса…
PS: Слово русский я употребляю в смысле российский. Сам то я понимаю разницу между этими понятиями, но заграницей они используются как синонимы.
Коллеги! Подписывайтесь на канал, ставьте лайки. Я собираюсь продолжить писать интересный материал о работе руководителя, IT-индустрии, бизнесе, ну и просто о жизни офисного планктона