Ты провалил на собесе один теоретический вопрос, и на тебе поставили крест. Это нормально? // Мы обречены #3



    Павел Новиков до 30 лет жил в Новосибирске и работал удаленно, собирая на Upwork заказы со всего мира. Один заказчик остался надолго — Паша строил для него систему почти с нуля, и маленький стартап превращался в огромную фирму. Основатели обещали большую должность, но потом передумали и просто некрасиво уволили.

    Снова браться за мелкие заказы с апворка Паша не стал и впервые задумался о релокации. Так он оказался в Минске — там он собирает команду, чтобы открыть локальный офис израильской компании.

    Паша пришёл к нам на подкаст, обсудил с нами найм и индустрию и даже устроил что-то вроде показательного собеса (которое пошло не совсем хорошо).





    Мы выбрали из выпуска несколько цитат.

    Зачем было переезжать в Минск, когда для тебя открыт весь мир


    Москва и Питер по тем временам было просто дороги. Я не готов отдавать 800 баксов аренды. В Минске можно свободно получать московскую зарплату — при этом за аренду и все остальное отдавать на порядок меньше. Для меня это хороший вариант перевалочного пункта на пути, например, в Канаду.

    Для переезда нужно иметь запас, а у меня сейчас просто нет лишних денег. За полгода, которые я просидел без работы после расставания с удаленным заказчиком, я проел всю финансовую подушку. Сейчас мне нужно просто заработать денег, чтобы иметь свободных 20-30 тысяч долларов, купить билет и никогда не возвращаться.

    Про удаленку на Upwork


    С удаленкой произошла какая-то жесть. С Россией после одного случая я работать не хочу. Обычно я старался искать работу на апворке у иностранных заказчиков — я работал со многими странами, но в 2019 удаленка внезапно кончилась. Ты заходишь на апворк — а там ничего. Какие-то проекты за двести долларов с непонятными требованиями то ли от индусов, то ли от арабов. Скроллишь экрана четыре этой чепухи, отправляешь несколько откликов — выбираешь самых адекватных — и тебе тупо не отвечают. И так день за днем.

    О собесах, где программистов гоняют по теоретическим вопросам


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

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

    Слова ничего не стоят — покажите мне код. Если у человека есть github репозиторий — это интересно. Таких кандидатов я люблю, сразу же понятно, как проводить собеседование. Ты открываешь код проекта и говоришь, “давай разгребать, что ты тут написал”. Если это сложный проект, и кандидат может грамотно обосновать все технологические компромиссы, которые он сделал, пока разрабатывал — я его сразу возьму, без всяких теоретических вопросов.

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

    Можно заниматься веселыми разговорами, но только на основе кода.

    О стрессе во время интервью


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

    Так вести себя на интервью ни в коем случае нельзя. Ты вгоняешь человека в состояние астении, и он не может ничего делать, сколько бы ты не пытался от него чего-то добиться. Очень важен психологический комфорт, и большинство компаний тупо этого не понимают. Может у людей беда с рефлексией, может они сами никогда в такой ситуации не бывали?

    О проблеме софт скиллов


    Вокруг софт скиллов сейчас огромный ажиотаж — мне кажется, он вообще направлен не в ту сторону. Люди говорят о всякой фигне, которая к софт скиллам не имеет никакого отношения. Что-то там про уметь слушать, уметь договариваться… Ребята, есть два главных софт скилла — это честность и обязательность.

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

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

    Роль эйчара — быть медиатором. Просто усадить разрабов в кружок и сказать: “ребята, давайте я буду модерировать вашу дискуссию, чтобы вы не сорвались друг на друга”. Два-три сеанса такой семейной психотерапии для разработчиков — и конфликты рассасываются.

    О работе над опенсорсом и пет-проектами


    У меня в разработке три вещи:

    Первая — Reinforced.Typings, крайне простая штука, которая экспортит шарповые классы в Тайпскрипт. Очень полезно, когда ты делаешь веб-приложение с бэкендом на шарпе, взял, поставил библиотечку, и все контролеры, все вью-модели, которые у тебя есть, она тебе взяла, и в течение билда экспортнула в TypeScript.

    Второй проект не опенсорсный. Это решение старой извечной проблемы индустрии — дата гриды. Я решил закрыть его исходники, потому что на него у меня уходит очень много сил.

    Дата гриды — это п…. везде, в любых компонентах. Тот, кто просто пытался сделать табличку с кнопкой “редактировать”, “добавить”, “сортировать”, знает сколько это занимает времени если делать с нуля. Если брать готовые компоненты, то они все поголовно ужасны. Я сделал хороший. Это подтвердилось уже в нескольких компаниях — ребята поиспользовали, говорят круто.

    Третий проект — это Tecture. Архитектурный каркас для бизнес приложений. Все разработчики утыкаются в проблему, когда начинают писать приложения для бизнеса, начиная от авторизации до какой-то сложный логики. Как вообще такие приложения организовывать? Есть официальный гайд про unit of work и про репозитории. Но я считаю, что он говно, и на больших проектах скатывается в ад.

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

    О синдроме самозванца, который не лечится


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

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

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

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

    Я смотрю на свои проекты и думаю — ну и нафига я это начал? Зачем оно? А не мудак ли я?



    Токсичный телеграм-чат подкаста

    Средняя зарплата в IT

    113 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 5 065 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 29

      +5
      Какие-то проекты за двести долларов с непонятными требованиями то ли от индусов, то ли от арабов. Скроллишь экрана четыре этой чепухи, отправляешь несколько откликов — выбираешь самых адекватных — и тебе тупо не отвечают. И так день за днем

      О да. Как это знакомо. Сначала думал что проблема во мне. Потом посмотрел. 90% проектов на которые я откликался в итоге никого не взяли.
        +6
        Слова ничего не стоят — покажите мне код. Если у человека есть github репозиторий — это интересно. Таких кандидатов я люблю, сразу же понятно, как проводить собеседование.

        Интересно, а насколько велика доля таких программистов? Среди моих коллег на работе было не больше 10% тех, кто имел пет-проекты пригодные для показа на собеседовании.

        Опять же ради собеседований можно сделать образцово-показательный вылизанный проект и придумать к нему грамотные обоснования. Получается та же ситуация — домашняя заготовка сделанная заранее ничего не стоит. Из-неё непонятно, как ты реально будешь работать.
          +2
          У меня на github семь OpenSource репозитариев, таких как React компоненты, валидатор, DI, Connect итд. В большинстве эти проекты я использую у себя в проектах. Когда отправляю CV то добавляю линки на эти репозитории. И обязательно добавляю, что на техническое интервью я иду, после того, как ревьюверы посмотрят код.

          Это позволяет не тратить лишнее время.

          PS если интересно, могу скинуть ссылки, вдруг что-то понравится.
            0
            кидай конечно и если не сложн пример CV. Интересно как эта просьба у тебя оформлена
            +2

            У меня под сотню реп (правда, не все из них публичные), от мелких экспериментов и шуток типа физзбазза, а также текущего хобби-проекта и всяких мелких библиотек до проекта, который я начал 14 лет назад, и за который мне уже стыдно.


            В резюме под именем-фамилией ссылка на гитхаб и блог. Никакие проекты не вылизывал, но их наличие и содержание очень помогает.

              +10
              если человек сумел сделать вылизанный проект — спросите, за сколько он сможет сделать такой же для ваших задач.

              Это как подозревать студентов в том, что они специально учатся лишь для того, чтобы устроиться на работу
              +2
              <зануда-mode>
              при этом за аренду и все остальное отдавать на порядок меньше

              На порядок — это в 10 раз. Неужели правда в Минске что-то может стоить в 10(!) раз меньше?
              </зануда-mode>
                +11
                А кто сказал, что речь о десятичной, а не двоичной системе?
                  0
                  Это 5 :-)
                    0

                    Беларусы сверхлюди, считают в троичной :) Потому что б-гоугодно

                      0

                      Сам автор сказал, иначе было бы не 800 а 1100100000 баксов.

                        0
                        А почему не девятеричная?
                    +10
                    Дата гриды — это п…. везде, в любых компонентах. Тот, кто просто пытался сделать табличку с кнопкой “редактировать”, “добавить”, “сортировать”, знает сколько это занимает времени если делать с нуля. Если брать готовые компоненты, то они все поголовно ужасны. Я сделал хороший. Это подтвердилось уже в нескольких компаниях — ребята поиспользовали, говорят круто.

                    Каждый человек, выложивший публично ужасный датагрид — твёрдо верит в то, что он хороший. И у каждого есть «ребята», которые его пользуют и им всё норм. А ты смотришь и плюёшься.

                    А разгадка одна: обобщенный датагрид для абсолютно всего — это попытка впихнуть невпихуемое в один компонент. И вот один пишет датагрид для своих, гораздо более узких вещей, чем «отображать всё, что угодно», чуть обобщает, и выдаёт за датагрид для всего. Второй пишет, уже для другого. Пятый, десятый, и так далее. И ты потом приходишь и видишь 50 датагридов, выдающих себя за обобщенные, но на деле таковыми не являющиеся.
                      +5

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

                        +1
                        Круче чем это я еще не видел www.ag-grid.com/example.php интересно что там у автора поста
                          0
                          Да, я с этой штукой один раз работал — она крутая (но только когда платная, в коммьюнити-версии ничего сильно крутого нет), но ОЧЕНЬ тяжелая. Там под 200 кб пожатого кода — только под грид это вообще безумно много.
                        +2
                        но в 2019 удаленка внезапно кончилась

                        Уже в 2019 были предвестники кризиса? IT-пузырь достиг пика? Или с чем связанно то, что закончились заказы для фриланса?
                          +1
                          С 2008 по 2011 года нашел несколько крутых проектов на фрилансе.
                          Примерно с 2013 просто перестал заходить на биржы вообще, ощущение что там остались только очень посредственные заказчики. Может быть ложное ощущение, не знаю. Зато стало очень много компаний, которые готовы брать на удаленку на проекты, которые раньше на фриланс биржах висели.
                          В принципе может это и нормально, на фрилансе остались «запилите мне страничку в этом вашем интернете», а все кто имеет мало мальски большой проект — организовывают компанию и делают всё нормально.
                            +2
                            Речь конкретно об Upwork'е. И то что с ними сейчас происходит — результат их политики за несколько последних лет.
                            +1
                            А не мудак ли я?


                            В случае с автором двух мнений быть не может.
                              0

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

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

                                Не называя имен и не раскрывая подробностей расскажете? Просто на $ кинули?
                                  0
                                  О pet-project. Бывает прилетает pull/merge request — ваши действия? Заметил, что такие проекты «моё» — не суйся, по итогу — игнор; в то же время живые проекты активно режектят/акцептят изменения.
                                    0

                                    Не, почему. Я мержу по мере наличия времени. Просто рук на всё не хватает.

                                    +1
                                    но в 2019 удаленка внезапно кончилась

                                    Когда-то давно (года до 2015) я находил норм заказчиков на тогда еще Elance. И всё было прекрасно. Был еще аккаунт на Одеске, но как-то там не сложилось. Потом платформы объединили (как раз в 2015-м году), изменили условия. Интерфейс по сравнению с Elance'ом стал глючнее, тормознее. И я как-то забил на них, оставшись с уже имевшимися клиентами (найденными, к слову, не через Elance), а потом и вовсе в офис на какое-то время ушел. С полгода назад зашел на Upwork и был поражен количеству реально мусорных проектов и заказчиков. А немусорные были завалены предложениями от исполнителей. Ну и понятное дело мне с моим теперь уже пустым профилем там ничего не светило. Старался найти какие-то нестандартные задачи, за которые далеко не каждый возьмется. Но все это были разовые и неприбыльные штуки. Последним был какой-то чувак, который хотел от меня выполнения трехчасового (!) тестового задания. Я ему скидывал разные штуки, которые делал (на гитхабе валялись и кое-что из "неопубликованного"), но он даже не смотрел их. В общем, послал, и больше на Апворк не заходил.


                                    Другая история была с исполнителем на golang + elasticsearch (переписать с Ruby). Увы, было всего 3 реальных предложения, а получивший задачу испарился на полпути, получив денежку за первый этап (который сам по себе никак не использовать). До 2015-го года искать исполнителей было куда проще.


                                    Но я не верю, что с удаленкой всё плохо стало. ИМХО, это Upwork, который всё убил. А достойные конкуренты мне лично не известны. Есть еще LinkedIn, но там как правило на FullTime нужды. Там, кстати, меня и нашли на мой текущий проект на удаленке.

                                      0
                                      А где-то можно посмотреть, что это за Tecture? Хотя бы общие идеи.
                                        0
                                        Не только прочитал, но и посмотрел.
                                        Собеседование на сеньера не оставило шансов пройти мимо. Как вопросы, так и ответы.
                                        Я еще помню времена, когда на собесах с серьезным видом загадывали загадки про люки. Потом на какое-то время Рихтер стал пособием по собеседованиям. И всё это одинаково ни о чем не говорило. Ну а прозвучавшие вопросы (кроме первого) скорее для зачета по информатике. Впрочем, сами беседующие пришли к выводу, что эти вопросы ничего не покажут. От себя добавлю «ничего, кроме»: если хорошо ответит — то человек с собесов не вылазит или только что на отлично закончил двух недельные курсы программирования.

                                        PS Я понимаю, что живая речь неточна, но что же имел ввиду Павел Новиков, когда говорил про бесконечное несчетное множество объектов? Кстати, наверное, хороший вопрос для собеседования: «Какое максимальное количество объектов в приложении .NET. Важно не число, попробуйте прикинуть-порассуждать вслух.» И на этом тему теоретических вопросов на собесе закрыть.
                                          0
                                          Я понимаю, что живая речь неточна, но что же имел ввиду Павел Новиков, когда говорил про бесконечное несчетное множество объектов?


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

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

                                        Самое читаемое