Quantcast
Channel: Найцікавіше на DOU
Viewing all articles
Browse latest Browse all 8115

В поисках идеального программиста

$
0
0

Одной из проблем трудоустройства являются завышенные требования к новичкам. Например, если человек только «недавно» начал работать в IT, то отсев происходит уже с первого требования «3+ years of experience». Очевидно и то, что за последние годы объем технологий и фреймворков, в которых должен разбираться девелопер, увеличился, и растет дальше, как снежный ком. Сегодня для трудоустройства нужно знать побольше, чем 10-15лет назад. Если раньше на позицию джуна было достаточно средне-уверенных познаний в Core Java и скудных крох по SQL, то теперь с будущих девелоперов на собеседованиях сдирают по три шкуры, прежде чем не взять на работу.

При этом требования бывают не только завышенными, но и взаимоисключающими. Рассмотрим некоторые из них:

— Obsession with software architecture and quality.Вроде бы разумное требование, которое, тем не менее, входит в конфликт с не менее популярным пожеланием committed to meeting deadlines. То есть, с одной стороны, мы хотим перфекциониста, поведенного на качестве кода, с другой — чтобы всё выполнялось в срок. Тогда как на практике чем-нибудь точно придется пожертвовать — либо качеством, либо скоростью.

— You need to be a thinker and a doer.Напоминает поговорку «теория на практике мертва». Пока одни долго думают и перебирают все возможные пути, прежде чем приступить к реализации, другие, чуть пораскинув мозгами, тут же пробуют несколько вариантов и по месту решают задачу. Найти человека, который является одновременно и теоретиком, и практиком, можно, но баланс этих качеств — явление редкое. На одного моряка Магеллана нужен хотя бы один астроном Фалеру.

— You are a team player but can work alone. То есть, с одной стороны, подавай им командного игрока, который отдает хорошие передачи и принимает неточные пасы, но с другой стороны, это должна быть звезда уровня Зидана, который способен на одном дыхании пробежать всё поле и обвести восьмерых соперников. Сочетание в одном человеке этих двух качеств — редкость. Футбол — лишнее тому подтверждение: есть защитники и полузащитники, которые делают всю «грязную работу», но также есть и форварды, которые большую часть времени в гордом одиночестве «пасутся» у передней кромки, ожидая своего часа. Требование быть одновременно и командным игроком, и воином-одиночкой намекает на то, что процессы в компании налажены скверно. Или они еще сами не знают, куда вас приткнут.

— Outstanding English communication skills, both written and verbal.В более «земных» вариантах указывают требования поскромнее — вместо outstanding идет excellent или даже good (иногда intermediate). Теперь, положа руку на сердце, давайте вспомним, когда мы последний раз слышали отечественного разработчика, чье произношение не то что не режет слух, но хотя бы не пестрит грубыми школьными ошибками. Сложно сказать, почему у наших разработчиков плохо с английским — то ли нет практики, то ли программирование забирает всё свободное время, и на учебу уже не остается сил, но проблема эта остается актуальной. И несмотря на всю нереальность требования отлично владеть языком, его продолжают повторять почти в каждой вакансии. Тогда почему бы сразу не написать: требуется лингвист-программист? Или по-чесноку: требуется базовый уровень английского together-because.

— Work under pressure, and work with frequent interruptions. Работать под давлением — это ещё туда-сюда, потому как быть мазохистом — право каждого. Но работать с частыми прерываниями — это явный оксюморон. Такое требование ещё можно предъявить кассиру или полицейскому, но программисту, чья работа требует глубокого погружения на длительные отрезки времени, чтоб его при этом никто не отвлекал, такое предлагать как минимум некорректно.

На этот счет очень удачно высказался Jason Fried:

Does anyone here expect someone to sleep well if they’re interrupted all night?
I don’t think anyone would say yes.
Why do we expect people to work well if they’re being interrupted all day at the office?

— You need to be ambitious.«Амбициозность» — ещё одно интригующее словечко, которое, тем не менее, оставляет странное послевкусие. Как после объявления «Требуются амбициозные негры на плантацию». Одно дело — искать такого человека для работы в Intel, Google или, на худой конец, для стартапа. Но другое — ждать амбициозности от человека, задача которого — ни больше ни меньше как выполнять задания. Может, это качество должно проявляться в выборе фреймворков? Или в написанном коде?

— Ипполит, как тебе мой солюшн?
— Джо, это определенно очень амбициозный код.

— Хлопцы, нам сегодня нужно сделать амбициозный деливери. Справимся?
— Конечно, босс! Мы уже просто заждались шанса проявить себя.

Очевидно, что высшая точка амбициозности любого разработчика — создание прибыльного проекта, который перерастет в бизнес-империю. Разве такого сотрудника ищет рядовая IT-контора?

— Ability to manage multiple tasks simultaneously.То есть нужен Юлий Цезарь. Нет, с этим требованием всё по-честному. Вот только оно будет конфликтовать с Result oriented и Problem solver. Потому что, как известно, от многозадачной работы падает IQи результативность труда. Фактически это требование значит вот что: требуется навык многозадачного отупения.

— Responsible and loyal. С первым все понятно — от работника требуется ответственность. Но что здесь делает loyal? Преданность (или верность) компании чем-то напоминает патриотизм. И ладно бы ещё речь шла о верности конкретному человеку, но мы говорим о компании, которая, как и страна, является чем-то абстрактным — собирательным образом идей, людей, процессов и целей. И вот от вас требуют верности, от слова «вера». То есть просят отключить мозги и бить себя в грудь, защищая интересы компании во что бы то ни стало, даже в ущерб себе. Не будет ли здесь конфликтов с амбициями сотрудника? Например, если ему нужно больше денег, тогда как лояльность компании подразумевает не только меньше денег, но и больше овертаймов. И если в отношении страны такой подход может иметь смысл (чтоб защитить своё племя), то в отношении компании — далеко не факт, потому как это не ваше племя. Вы эту компанию не создавали, и с её директором не в дружеских отношениях, чтобы быть преданным. Как говорится, business only.

— Having sense of duty.Исполнительность — важное качество сотрудника, которое ценится как коллегами, так и работодателем. Но феодалу всё мало — ему нужно, чтоб человек был ещё и self-starter who takes initiative. Эдакий послушный предприниматель, инициативный исполнитель.

Так и представляешь себе ситуацию:
— Шеф, предлагаю уволить Джо и нанять нового сотрудника, а проект закрыть.
— Молчать!
— Так точно.

— Proven analytical and problem-solving abilities.А вот это уже смахивает либо на спам, либо на пощечину разработчику. Всё равно что выставить требование преподавателю английского: proven written and spoken English abilities. Или требование студенту: Proven ability to study. Самым унизительным здесь является слово proven.У тебя 5+ лет опыта разработки на Java и C++ в enterprise и на распределенных серверных системах? Чушь. Докажи, что у тебя аналитический склад ума и что ты умеешь решать задачи.

Пожалуй, единственная польза перечисления подобных требований в вакансии заключается в отпугивании соображающих претендентов. Где требуется multi-tasking и ability to work under pressure — там будут выжимать все соки; где нужно быть амбициозным и инициативным — будет много ответственности, ну, а где нужно быть loyal, потребуется собачья верность в виде овертаймов и согласия на скудную зарплату.

В остальном подобные требования больше похожи на бюрократический пережиток прошлого, который некоторые работодатели продолжают по традиции пихать в каждую свою вакансию. К счастью, более прогрессивные компании уже начинают уходить от этих атавизмов и сразу переходят к делу, как, например 37signals, где в вакансиях уже не пишутвычурного бреда, но сразу дают тестовое задание. В таких компаниях понимают, что ложь (или глупость) порождает саму себя, и на каждое бредовое требование в вакансии придется минимум один лихой заворот в резюме соискателя, с которым без бутылки не разобраться.

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

Кто-нибудь узнал себя? Нет? Срочно пишите рапорт об отставке.


Viewing all articles
Browse latest Browse all 8115

Trending Articles