| 16. О работе | |
| Мне всегда нравились тестирования с вопросами и ответами, и никогда не нравились тестовые задания. И на это есть определенные основания. |  |
| Во-первых, тестирование это не только проверка ваших знаний работодателем, но и проверка знаний работодателя вами. Вопросы не всегда составлены правильно, среди вариантов ответа может и не быть полностью корректного варианта. Указать работодателю на неточность вопросов, тем самым показав свое некоторое превосходство, гораздо интереснее, нежели просто ответить правильно на все вопросы. | |
| Во-вторых, тестирование предполагает обсуждение результатов. Устная беседа — самый лучший способ оценить знания и возможности кандидата. Конечно же, это при условии того, что беседу проводит грамотный человек. Например, обсуждая любой тестовый вопрос (даже если вы ответили неправильно), можно прыгать с темы на тему, причем совершенно без каких-либо ограничений. Таким образом вы имеете возможность очень быстро продемонстрировать на сколько широки ваши познания, и на сколько богат опыт. И минус, полученный за неправильный ответ, обернется для вас десятью плюсами, возникшими во время обсуждения данного вопроса. Однако, опять же, это при условии, что собеседование проводит грамотный человек. Грамотный не только в техническим смысле. Однажды я проходил собеседование, и после часа общения мне был задан вопрос, который просто поставил меня в тупик. «Вы четко представляете себе разницу между статическим и динамическим полиморфизмом?». И это после обсуждения результатов тестов и дополнительного общения. | |
| Тестовое задание имеет целый ряд недостатков. Во-первых, тестовое задание обычно довольно мало, поэтому программист просто не в состоянии отразить в нем все свои навыки. Предлагать же тестовое задание большого объема не имеет никакого смысла — ни один здравомыслящий человек не будет сидеть две недели за тестовым заданием, не имея гарантий того, что его вообще возьмут на работу. Во-вторых, тестовое задание может вводить людей в ступор, особенно это касается людей, уже успевших сделать определенные шаги от простого системного программирования в сторону проектирования архитектуры. «Как это так, просто взять и вызвать CreateFile? Сначала ведь надо написать пару десятков системных библиотек для комфортной работы…». В итоге получится код, имеющий мало сходства с тем, как человек программирует в реальной жизни. В жизни его мозг уже привык работать на более высоком концептуальном уровне. Успешное выполнение тестового задания покажет только то, что человек в состоянии написать программу, которая работает. Умеет ли человек писать программы, удовлетворяющие остальным критериям качества — из одно-двух-трех часовой работы (именно столько в среднем уходит на тестовые задания) четко понять невозможно. Кроме того, вы всегда рискуете неугодить работодателю. Напишите слишком обобщенно и по всем канонам — скажет что решение переусложнено. Напишите слишком компактно — скажет что решение не масштабируемо или непереносимо. Ситуация напоминает один старый анекдот. | |
| | |
| Взаимодействие соискателя и работодателя через тестовое задание происходит весьма ограниченно и односторонне. Работодатель как бы заранее ставит себя на ступень выше, чем соискатель. Почему бы не давать тестовые задания в двустороннем порядке? Соискатель выполняет тестовое задание работодателя, а работодатель — соискателя. Понимаю, звучит смешно, однако соискатель сразу же сможет понять, с чем ему придется иметь дело. | |
| Точно также я рекомендую вам не занижать свою самооценку без каких-либо оснований. Действительно, человек, проводящий собеседование, такой же, как и все остальные. Его знания не безграничны, и поэтому не стоит заранее ставить себя ниже уровнем, чем он, и позволять ему заранее ставить себя выше уровнем, чем вы. | |
| На мой взгляд, существует только один вариант, когда тестовое задание будет иметь смысл — когда оно большое и оплачиваемое. | |
| Из собственного опыта могу сказать, что у меня никогда не складывались отношения с работодателями, предлагающими тестовое задание. С работодателями, предлагавшими тестирование или же просто собеседование, всегда все было хорошо (за исключением одного случая, когда я пришел на собеседование пьяный). | |
| Я рекомендую регулярно ходить на собеседования. Регулярно — это раз в один-два-три месяца. Во-первых, вы будете знать, сколько реально стоит ваш труд. Во-вторых, вы будете в курсе того, что именно востребовано в данный момент в компаниях. В третьих, это вас совершенно ни к чему не обязывает — не взяли так не взяли, продолжаете работать на прежнем месте, при этом, конечно же, сделав определенные выводы. Ну и, наконец, в четвертых, и главное — вы всегда будете иметь шанс сделать скачек в плане финансового роста. Поверьте, гораздо проще увеличить свою зарплату за счет смены работы, нежели за счет карьерного роста в одной и той же компании (бывают, конечно, исключения, но редко). Естественно, это верно, если вы еще не успели перепрыгнуть финансовый потолок в вашем городе. | |
| Единственный минус в смене работы заключается в том, что у программиста процесс вхождения в рабочий процесс на новом месте довольно мучителен. Во-первых, приходится разбираться с огромной системой, написанной до вас. Вероятность того, что вам дадут писать проект «с нуля», очень мала. Во-вторых, код, с которым вам придется работать, скорее всего будет полным [УБРАНО ЦЕНЗУРОЙ]. Вероятность того, что долго существующий проект написан по всем канонам, практически равна нулю. Именно поэтому понимание того, «как тут все работает», к вам придет не скоро. Поэтому, найдя более интересное предложение по работе, в 99% случаев вам придется выбирать между финансами и комфортом. По крайней мере на первых порах. | |
| [УБРАНО ЦЕНЗУРОЙ] | |
| [УБРАНО ЦЕНЗУРОЙ] | |
| [УБРАНО ЦЕНЗУРОЙ] | |