Нет дела до кода, валят. Завалил три интервью и систематизировал впечатления

37 комментариев
Нет дела до кода, валят. Завалил три интервью и систематизировал впечатления

 

Разработчик опубликовал на habr.com пост о том, как сходил на собеседования в три минских стартапа и в одну небольшую компанию, и что из этого вышло. «Это пост удивления», — предупреждает он. Приводим пост без изменений.

— Немного расскажу о себе. Не хвалы ради, а чтобы дать нужно представление. С детства увлекаюсь программированием. За уши не оторвать было от компа. В разработке 11 лет. Полсотни проектов разного уровня сложности: мобильные, кроссплатформенные, фронт, бек. Писал на 13 языках (без учета всяких html, css, bash, sql). На чем-то больше, на чем-то меньше, но все в реальных проектах. Пишу хороший чистый код, шарю в юзабилити. Немного open source, насколько позволяет время, майнтейню пару десятков пакетов для Arch Linux. Короче, развлекаюсь, как могу и в рабочее, и в свободное время. Последние лет 5 на фрилансе. Часто работаю над бизнес-кейсами заказчика от и до. ЧСВ не раздуто: когда видишь скилл, и как пашут некоторые ребята на GitHub… Ну вы поняли. И вообще я норм: носки меняю, дезодорантом пользуюсь, матом почти не ругаюсь :)

Так вот, я завалил три из четырех собеседований, и я хочу об этом поговорить.

Никому нет дела до твоего кода

​​Show me your code and I will say who you are

Самая удивительная на мой взгляд вещь. Тебя будут спрашивать про сортировку красно-черных деревьев, про методы стандартной библиотеки, которые используются раз в приблизительно никогда. Но код… В самом деле, зачем смотреть код человека, главная работа которого будет заключаться в том, чтобы его писать?

Но это же самое интересное! Можно посмотреть, как разработчик организует проект, как пишет, какие технологии и как использует. Это сразу закроет тучу вопросов. Ладно, когда github пустой, а весь рабочий код под NDA. Но и тут можно выкрутиться, дав небольшое тестовое на час-два (только не на месте: для многих собеседование это всё-таки стресс).

На моем github два десятка проектов на разных языках, PR’ы в репы Facebook, Microsoft, Mozilla, куча issue в другие проекты. Это же клондайк для оценки как hard, так и soft скиллов. И, похоже, только одна компания из четырех знала, что с этим делать (Akveo, вы молодцы). Мы очень классно обсудили, почему эти проекты появились, вместе посмотрели код. Глянули кое-что из рабочих проектов, как по коду, так и в релизе. От этих ребят я оффер в итоге и получил.

Торжество бесполезных знаний

«Невежество Холмса было так же поразительно, как и его знания. Чтобы цивилизованный человек, живущий в девятнадцатом веке, не знал, что Земля вертится вокруг Солнца, — этому я просто не мог поверить! — Вы, кажется, удивлены, — улыбнулся он, глядя на моё растерянное лицо. — Спасибо, что вы меня просветили, но теперь я постараюсь как можно скорее всё это забыть».

 

«Этюд в багровых тонах»

Как часто вы пишете сортировки? Я вот последний раз делал это в универе. А знаете, какие этапы в https-handshake? Я знал когда-то, забыл — не надо. Но мне хватило 5 минут, чтобы открыть гугл и вспомнить, когда настраивал A+ рейтинг в nginx пару лет назад. И знаете что? Сейчас я опять не помню. Этапы рендеринга интернет-страницы в браузере? Каждый день с этим встречаюсь, правда-правда. А то, что поиск по B-tree индексам в PostgreSQL имеет логарифмическую сложность? Я вчера узнал, вот теперь и вы. А сейчас постарайтесь забыть как можно скорее! До тех пор, пока вам это ДЕЙСТВИТЕЛЬНО не понадобится. Оставьте в голове только то, что индексы надо использовать и что они бывают разных типов.

Мы живем в мире, перегруженном информацией. И для разработчиков это особенно актуально. Каждую неделю появляются новые фреймворки, библиотеки или инструменты для разработки. Невозможно знать всё. Сейчас важна не столько информация в голове, сколько знание, что она есть, умение быстро её находить, разбираться и правильно использовать. А навык отдебажить и пофиксить чужую библиотеку в проекте важнее, чем помнить, как использовать стримы в nodejs. Со стримами хороший разработчик разберется по доке на раз-два.

Я сейчас немного преподаю в универе в качестве хобби. И знаете что? У текущего поколения нет таких заморочек насчет забивания головы знаниями. Хотя многие из них действительно толковые. Они выросли с постоянным онлайном, где информация всегда под рукой. Другой подход.

Конечно, хороший узкий специалист будет знать много разных нюансов. Просто за счет того, что скоуп меньше. Но забавно то, что большинство из этих компаний искало фуллстек разработчика. И хотели глубоких знаний во всем. Вот прямо сейчас. А ведь правильный фуллстек — это кругозор и умение углубиться, когда надо.

Тебя валят

Не везде это было, но встречалось. Интересно, это у нас менталитет такой? Задоминировать и показать свою крутость? Тебе ведь к ним не сильно-то и надо, хороших проектов у тебя на год вперед. Идешь с мыслью: «Ну классная же идея у стартапа! Правда ведь хорошо помочь могу». А тут вот это. И ребята вроде адекватные. Фиг пойми. А потом видишь, что вакансия полгода открытой висит. Ну-ну.

Было пару собесов в западные компании. И там акцент был на то, что ты знаешь и умеешь, а не попытках подловить на незнании. Или это мне так повезло/не повезло? Был бы рад услышать мнение более опытных в этом вопросе товарищей.

Будьте на равных. Вы нанимаете себе коллегу, а не сторожите будку.

Пофигу на прошлые проекты

​Дерево узнают по плодам, а человека — по делам

 

Русская пословица​

Тоже удивительно. Их полсотни под капотом: маленькие и большие; командные и те, где ты в одно лицо спроектировал UX, API, написал 2 моб. приложения, фронт и бек; те, которыми гордишься, и те, за которые до сих пор стыдно. Ну комон, это же важно, давайте поговорим про это. Я же все расскажу: где был супер-стар и всех спас, а где залажал по полной. Нет, глупые вопросы про CSS.

Проекты — то, откуда мы черпаем свой опыт. Это этапы развития разработчика. Как кольца на дереве. Всегда спрашивайте про проекты. Про самые сложные и интересные задачи, которые решал человек. Про то, чем он гордится. Это еще и поможет выстроить дружелюбную атмосферу. Помните же, что собеседование — это стресс? Людям нравится рассказывать о том, в чем они были хороши. Правда, с интровертами не сработает, но собес с ними — это вообще отдельная тема.

Опытные разрабы

Хорошего опытного разработчика не собеседуют как мидла на галеру. Он уже не про это. Он про то, как сразу сделать хорошо. Чтобы не пришлось потом героическими усилиями решать проблемы. Он про то, как выпустить продукт, а не судорожно фиксить затыки в производительности, хотя можно было с самого начала просто сделать по-другому. Все то, о чем вы спрашиваете, он уже где-то использовал в том или ином виде. OAuth? Да фиг знает, как он там работает. Пару лет назад делал, сейчас проект открою посмотрю. С того момента полсотни либ, SDK и протоколов подключал. Что, все помнить? Он не станет читать к собесу про ACID и CAP, как студент к экзамену.

Умейте понимать уровень человека, который перед вами, и задавайте правильные вопросы.

Ремоут

​Так вот лежит он на пляже и одной рукой набирает rm -rf на dev-сервере. Ну то есть это он так думал.

 

Подслушано в офисе GitLab

Полупункт на самом деле. Потому что не для всех важно. Многие просто не умеют. Другие не хотят. Хотя, блин, 2020 год на улице, хорошего разраба днем с огнем не сыщешь. А тут целый потенциальный мир, вместо одного города. Казалось бы.

С ремоутом как с сексом: в первый раз страшно и мало у кого хорошо получается. А потом с опытом все лучше и лучше. Не поверите: ремоут может быть продуктивнее работы в офисе. За счет того, что уходят все эти дерганья и отвлекания. А если еще и разные часовые пояса… Знаете админское правило 15 минут? Подожди, перед тем, как разбираться с проблемой пользователя. Часто она или решится сама, или станет неактуальной. Так и тут. Когда понимаешь, что не можешь дернуть человека — включается мозг, 1 шт. И да здравствует асинхронное взаимодействие!

Искренне надеюсь, что эта статья кому-то поможет лучше выстроить процесс собеседований в своей компании или стартапе. Всем hello world, open source и жвачка!

 

dev.by проводит новое исследование рынка труда в белорусском ИТ — заполните анонимную анкету, и скоро мы поделимся результатами.​​​​​​​​​​​​​​​​​

 
Работа в ИТ в Беларуси​.​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

1. Заполните анонимную форму — 5 минут.
2. Укажите зарплатные (и другие) ожидания.
3. Выберите желаемую индустрию или область деятельности.
4. Получайте релевантные предложения​​.​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

 

Хотите сообщить важную новость?

Пишите в наш Телеграм

Читайте также

Гендиректор hoster.by: «ИT-страна откатывается назад минимум на 5 лет»
Гендиректор hoster.by: «ИT-страна откатывается назад минимум на 5 лет»
Гендиректор hoster.by: «ИT-страна откатывается назад минимум на 5 лет»
4 комментария
Выпускники физфака БГУ обратились к Нацсобранию. Среди них Румянцев, Чалый и Шушкевич
Выпускники физфака БГУ обратились к Нацсобранию. Среди них Румянцев, Чалый и Шушкевич
Выпускники физфака БГУ обратились к Нацсобранию. Среди них Румянцев, Чалый и Шушкевич
7 комментариев
Белорусский сервис Eightydays.me поможет путешествовать внутри стран
Белорусский сервис Eightydays.me поможет путешествовать внутри стран
Белорусский сервис Eightydays.me поможет путешествовать внутри стран
«Это информационная война». Основатель Nexta дал интервью Юрию Дудю
«Это информационная война». Основатель Nexta дал интервью Юрию Дудю
«Это информационная война». Основатель Nexta дал интервью Юрию Дудю
4 комментария

Обсуждение

-14

Чтобы быть востребованным, кмк, надо разбираться очень круто в чем-то одном, а не написать 2 мобильных приложения, бекенд, фронтенд, и кучу всего остального, после ничего в памяти не откладывается и снова нужно гуглить)

3

Язык\платформа мало что значат. А если для вас они значит, вы на галере)

7

Ага, вы еще скажите что с легкостью перейдете с Java на С++ и будете одинаково качественный код писать на последнем, без глубокого изучения и практики.

3

Обычно кто так говорит переходил с хтмл на цсс и потом джабаскрипт.

2

Я бы сказал, что если для вас мало значит платформа, язык и т.п., то скорее всего вы просто в айти ни в чём не разбираетесь, а везде по вершкам "слышал звон".

Это абсолютно нормально для зеленого студента или недавно закончившего вуз. И таких всякие гуглы будут оценивать по глубине базовых знаний computer science.

Я хотел сначал сделать исключение для архитекторов умудрённых сединой, но даже у них видел очень сильные осечки при попытках что-то спроектировать не в своей привычной нише.

3

Это противостояние узкой глубокой специализации против широкой. В разных ситуациях нужно разное.

Андрей Колубов
Андрей Колубов Senior Android Developer в Itransition
14

Вообще, подход, когда спрашивают кучу технологических деталей, как мне казалось, более свойственен для типичного аутсорса, где просто ищут способ тебя перепродать. Сам стараюсь кандидатам задавать именно вопросы про опыт, про самые интересные решения. И 90% с 3+ годами опытом отвечают "ничего".

10

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

0

Судя по стилю этого текста, есть у меня предположение, что юзер @john_doe таки сдержал свое обещание, которое он дал в комментах под статьей https://dev.by/news/necoder-zp
Я угадал?

-2

Там в комментариях john_doe позицию архитектора искал. А тут встречается
"OAuth? Да фиг знает, как он там работает" и
"А то, что поиск по B-tree индексам в PostgreSQL имеет логарифмическую сложность? Я вчера узнал, вот теперь и вы."
И это многое объясняет.

4

Я бы на самом деле тоже удивился если бы матерый специалист в общих словах не рассказал про OAuth и не понимал что дерево это логарифмическая сложность. Но дьявол кроется в мелочах, что там спрашивали конкретно, не раскрыто.

8

Прикручивал OAuth не один раз, помню что там было не бог весть как сложно, помню как оно работает архитектурно. Все остальные детали выкинул. Потому что... нужно прикручивать кучу других штук.

При этом будь я непосредственно разработчиком OAuth - конечно же я помнил бы всё.

Точно так же как и с проектом: пока ты "внутри", ты помнишь всю (касающуюся тебя) бизнес-логику и детали. Вышел из проекта - до свидания!

Может быть в 20-25 лет это кажется странным и "крутость" = помнить все детали. Ну, помните на здоровье, если делать больше нечего.

2

Понял что вы со мной согласны - хотя бы в общем об OAuth рассказать можно.) Но автор не уточнил что конкретно спрашивали.
Если просили рассказать зачем нужно и общие принципы работы, т.е. без детализации, я не вижу проблемы. Тем более человек с ним работал.
Лично мне встречались коллеги которые считали что OAuth это основной протокол для авторизации, а не то для чего он задумывался.
Некоторые думают что эксперты, а когда начинаешь разговаривать понимаешь что в голове каша. Потом на проекте он будет работать так же как последние 10 лет - плодить неподдерживаемый, непонятный код. Ужасно написанных проектов очень много и руководят процессом там именно те самые опытные специалисты.
p.s.
Так что вопрос в деталях, что спрашивали. Если по верхам проверить общие знания это одно, если детали то другое.

1

нет, это не я.
я пока "в процессе". будет про мои заблуждения, статистику и немного историй.

Анонимный пользователь
Анонимный пользователь
24

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

1

это пять, братэлло )

7

Все просто - люди оценивают других исходя из своих собственных знаний.
Поэтому либо нужно искать собственников или топ менеджеров и конкретно с ними договариваться объясняя свой бизнес ориентированный подход.
Либо искать команды которые будут вас понимать :)
p.s.
Действительно на многих собеседованиях такую херню спрашивают... 1,5 часа по вопросам из методички что делает этот метод, что тот или мое любимое по фреймворку который исспользует конкретно собеседующий с выпучиванием глаз когда ты не отвечаешь о работе фичи которую он когда то вычитал и решил что это очень важно знать :)

4

Что бы человека отсобесадовать грамотно тоже нужны знания и опыт в этом вопросе. Очевидно, что мало какой стартап может себе позволить держать специального человека на эти цели.
Опять же, конкретные вопросы определяются позицией на которую собеседуют человека, как упоминул уже автор: синьеру - синьерское. Сложно судить не видя конкретных вопросов, но может просто не совпали ожидания, ведь уже не раз писали, что нет единого трактования уровня скилов синьера/мидла/джуна.

7

Я сам столкнулся с такой же бедой, проходя недавно собеседование.
Требуется фронт: ES6, Angular7, Typescript...
Спрашивают: GPU в Css, Java, Jquery ...
На середине интервью тебя начинает подташнивать от бреда 'собеседующих'.
Хотя прекрасно понимаю, что знаю ответы, но про себя думаю - нет, ребята вы мне не подходите.

0

.

2

Надо прекращать репостить впечатления/флейм/комменты с Хабра.

12

это как дедовщина в армии ) их спрашивали на собеседовании и они спрашивают

14

Через собес многие заглаживают перед самим собой вину "я плохой специалист".

Мотивы те же, что и в соцсетях: там я буду постить фотки своей счастливой жизни и писать правильные посты. В жизни: пойду полежу на диване, я же живой человек!

Вчера сам впервые прочитал в книжке, сегодня сам буду спрашивать на собеседовании. Нужно как можно быстрее исправляться! Теперь я не такой, теперь я это знаю, СРОЧНО транслируем наружу этот факт.

Плюс к этому: в проде гуанокод, никто никого не слушает, все идёт как идёт, но при проведении собеса (как и во сне) мы лучшие.

3

Когда ты идешь брать кредит нужно (типа) там всех убедить, что эти деньги тебе не особенно то нужны. Тогда исход будет удачным.
А когда идешь на собес, то наоборот нужно убедить там всех, что без них ты не проживешь, а не как у тебя (ремоут, 10 проектов и все такое)
Все просто. Независимость тут минус а не плюс. Еще можно я так понял сказать что уважаешь ценности их компании (если они есть)

2

А как же сымитировать горящие глаза и энтузиазм???

11

Говорю, как человек, который провёл много сотен интервью - исход от кандидата зависит мало, там много переменных и сам человек - это только одна из них. Не надо подключать логику и смысл - особенно людям, которые знают, что востребованны и с опытом. И кандидат не видит 90% процесса, поэтому не может логически понять почему его не наняли. Тут процесс один - подаваться, ходить и интервьюироваться и не сдаваться - знаю, это на самом деле очень трудно для обычного человека не упасть духом и не начать копаться в себе и потом соглашаться на любые деньги в любое место, чтобы потом опять искать работу.

Примеры:

Вакансия одна, но на неё будут вести трёх кандидатов до конца - ибо один может соскочить, другой ни с того ни с сего потребовать +X% в последний день, и т.п. Чтобы сэкономить время компании все 3 кандидата будут вестись до самого конца. Когда возьмут одного, двое других будут переживать абсолютно безосновательно.

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

Кандидат заранее не подходит по зарплате, но всё равно интервьюируется.

Все присланные кандидаты очень слабые по резюме - всё равно проводим интервью, чтобы отрапортовать, что работа идёт.

И это не исключение - это порядок вещей.

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

И вообще, по правде говоря, процесс найма, поломан везде. Даже юникорны типа гугля признают это, но имеют непрекращающийся поток резюме, что даёт им возможность делать ошибки и отсеять 99%, чтобы найти свой 1% именно тех, кто им подходит (заметьте, не ЛУЧШИХ из ЛУЧШИХ), а самых подходящих из тех, кто подался к ним на вакансию.

2

Не знаю где вы работаете, что у вас аж по три кандидата можно вести на вакансию.

Я вижу на собеседованиях тонкую ниточку, наполненную людьми, которые часто по резюме сеньоры с опытом 5-10 лет. Но на собеседованиях оказывается, что по основным знаниям, по кругозору и его глубине тянут они максимум на мидла, да и то такого паршивенького, что брать не станем.

И очень мне плач автора напоминает тех псевдо сеньоров.
А если он ещё на позицию архитектора шёл как пишут тут в комментариях, то судя по статье, я бы его тоже не брал. И код мне его не нужен. Особенно на позиции архитектора.

Максим Мнацаканов
Максим Мнацаканов JavaScript Front end Developer в Timvero
0

//Не поверите: ремоут может быть продуктивнее работы в офисе. За счет того, что уходят все эти дерганья и отвлекания.

это как вообще? Наоборот дома никто не даст сосредоточиться и будут дёргать и отвлекать, ну только если не один живёшь.

2

Собирал как то детский конструктор на скорость - проверка стрессоустойчивости.
Когда же пришел на проект, то выяснилось, что там 3 менеджера в разных весовых котегориях, а код на самообеспечении.
Стало понятно, зачем стрессоустойчивость нужна была.

vndovr
vndovr Software Architect в IBA Group
0

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

1

Вы мыслите как продуктовый разработчик. Герой же статьи - жертва аутсорса.
Разница в ментальности существенная. Продукт должен быть лучшим. Аутсорс чаще наоборот - нужно дешевле и что бы работало. Вы говорите о проекте, в реальности речь может идти о нескольких проектах и хорошо если в одном бизнес скоупе.

0

Все правильно написал. Плюсанул на хабре.
Половина комментаторов тут статью не читало.

Anonymous
Anonymous
0

Сомнительный пассажир, если не знает, что деревья работают за логарифмическую сложность.

1

К сожалению, в айти сейчас таких пруд пруди.

Такие сеньоры, которые не знают является ли int в их основном языке объектом и какие примерно значения может принимать (вот миллион в него влезет?).
Или спрашиваешь вообще основы (бэкенд) про отличие потока и процесса в его любимой ОС, а в ответ полная ересь и непонимание о чём речь.

Причём небось считают, что для работы сеньёра это ненужные вещи, что они нагуглят это за 5 минут...

А потом спросишь такого "вот вы перешли на асинхронный фреймворк на прошлой работе, и насколько выросла скорость работы?", а из ответа очевидно, что он не знает зачем вообще это было нужно.

Базовая неграмотность, поверхностные знания, отсутствие кругозора, а главное - нежелание это всё развивать - вот бич современного айти.

1

Эпоха шальных инвестиционных денег и моды на стартапы породила смузихлёбов, считающих "софт скиллз" и способность копипастить достаточной для оприходования инвестиций.

1

Хорошего опытного разработчика не собеседуют как мидла на галеру. Он уже не про это. Он про то, как сразу сделать хорошо.

Если кандидат не задумывается над алгоритмической сложностью операций используемых им структур данных - его нельзя подпускать к production коду, он априори не может "сразу сделать хорошо".

Все этапы в https-handshake можно не знать, но думаю, что достаточно было продемонстрировать наличие представления об ассиметричном шифровании. Как обеспечить безопасность продукта, не понимая, на чём она основана?

Без понимания ACID кандидат не сможет эффективно работать с реляционной БД. Копировать запросы из интернета сможет, а, например, написать грамотное списание денег с баланса пользователя - нет.

CAP обычно спрашивают в качестве затравки к теме горизонтального масштабирования. На некоторых проектах без этого никак.

Короче, вывод статьи таков - даже если ты говнокодер, каждая четвертая контора в Минске сделает тебе офер.

0

Я вот до сих пор не понимаю что значит С в ACID.
И смысл CAP не понимаю.

Записываться сразу на 4 собеса?

Спасибо! 

Получать рассылки dev.by про белорусское ИТ

Что-то пошло не так. Попробуйте позже