Гугл-программисты. Как идиот набрал на работу идиотов +182




В стародавние времена я, на постоянной основе, занимался техническими собеседованиями – отбирал кандидатов на должность программиста в компанию. У меня была простая, понятная, шикарная методика (не мной придуманная). Чувак сначала проходил длинное собеседование по куче разнообразных вопросов, потом решал несколько задач. На бумаге, как мы делали в ВУЗе.

Оглядываясь назад, понимаю – отбор действительно работал шикарно. Все, кого я тогда отобрал, стали уважаемыми в нашей деревне специалистами. Больше половины из них давно открыли собственный it-бизнес, в самых разных сферах – от 1С до разработки CRM-систем.

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

Изменения


Изменения я внёс очень простые – теперь люди писали код не на бумаге, а на компьютере. Чего, подумал я, они будут, как в древнем монастыре, сидеть каракули выписывать. Я и сам давно отучился обходиться без IDE, контекстных подсказок, отладки и прочих красотулек современной разработки.

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

Ну и набрал себе таких чуваков.

Первые месяцы


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

Понятно, что простые задачи они решали легко. Я стал давать более сложные задачи – те, что раньше выдавались после года службы. Эти чуваки справлялись, без посторонней помощи, и с такими! Я был в шоке. Радовался – какое замечательное поколение растёт!

Думал, что так будет всегда. В смысле рост продолжится линейно. Ага, щас.

Плато


Через 3-6 месяцев все чуваки до единого вышли на плато по продуктивности. К сожалению, в это же время все они перешли на удалёнку, в связи с коронавирусом. А я сидел дома и бесился.

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

Думал, дело в удаленке – там ведь не включишь харизму на полную мощность. Ну, наверное, мотивации людям не хватает, живого общения, а иногда – пинка под зад. Тут еще начальство медвежью услугу оказало – спрашивало типа «продуктивность из-за удалёнки не растёт?». Конечно да, отвечал я. Вот выйдем в офис, и попрёт!

Офис


Ну вышли мы в офис, в августе. Сидим, работаем, задач много – успевай делай (во время удалёнки случался дефицит задач). Смотрю на показатели – не растут, сволочи. Пришлось, блин, погружаться.

Сначала погрузился тупо в помощь людям. Не получается решить задачу? Зови меня. Я подойду, сгоню тебя с компа, сяду и доделаю. А ты, бездарь, сиди рядом и запоминай, как работать надо.

Но вас много, а я – один. Так не пойдёт. Надо понять глубинные проблемы. Решил вернуться к исходной стадии – техническому собеседованию.

Повторное собеседование


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

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

Один только осмелел и спросил – «а можно я в гугле посмотрю?». Тут до меня, идиота, и дошло.

Гугл-программисты


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

Они пишут код, не понимая базовых конструкций. Нет, они не пишут код – они его скачивают. Нет, опять не то… Скачать код – это типа «npm i», это нормально. Они списывают код. Не умея его писать.

Начал возмущаться – блин, да как так! Ладно там новую технологию раскурить с помощью интернета, или научиться пользоваться какой-нибудь редко встречающейся хренью, чтобы голову не забивать. Но базовые-то вещи! Как вы можете их из интернета списывать?!

Знаете, что они ответили? «А что такого?». Я чуть в монастырь не ушел с горя. Взял паузу, перестал с ними разговаривать, закрылся и думал. Естественно, понял, что проблема не в них, а во мне.

Они лишь следуют законам своего мира. А я, идиот, эти законы не увидел, не понял, не осознал их серьёзность. Серьёзность поверхностности.

Поверхностность


В первый день учёбы в институте нас собрали в аудитории на кафедре, и старый прокуренный дядька, зам. декана и доцент, сказал: «Институт не даёт знаний. Он учит добывать знания самостоятельно».

Мне повезло – я учился в начале нулевых, когда интернет был только на картинках. Хочешь разобраться в C++ — садись и разбирайся, вот тебе C++. Хочешь написать курсовую по измерению шероховатости – иди в библиотеку, читай книжки, пиши курсач. Хочешь сделать доклад по истории – иди читай журналы. Ага, все подряд, пока не найдёшь нужные статьи.

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

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

Правда, не весь код есть в открытом доступе в интернете. Поэтому возникает плато. Продуктивность гугл-программиста – это не мера написания кода, это мера его списывания из интернета. Это примерно как скорость скачивания. Лет 15 назад, чтобы посмотреть фильм, его надо было сначала скачать, теперь так делают только староверы.

Когда-то, наверное, гугл-программисты обгонят обычных. По крайней мере, в решении стандартных задач. А пока – будем мучительно формировать новые нейронные связи по использованию базовых объектов, типов и конструкций ЯП.

Надо ж мне было так облажаться, блин. Стыдно.

P.S. И это… Своих перепроверьте.




Комментарии (588):

  1. Iqorek
    /#22119552 / +1

    1. Времязатраты увеличиваются с ростом проекта. Могу сказать про себя, когда начинаю новый проект, скорость разработки космическая, у меня ничем не связаны руки. Но со временем, вносить изменения и новые фичи, становится все трудней, нужно учитывать много факторов, связи и так далее. Иногда для новых фичей приходится рефакторить или даже менять архитектуру, но так чтобы ничего не поломать. Это все берет время.
    2. Орать, пинка под зад, плохая мотивация особенно для творческих видов работ.

    • vmoskalev
      /#22119712

      объём трудозатрат на сопровождение и развитие проекта растёт, а местами аж по экспоненте, если в проекте набран приличный объём архитектурного долга помимо технического (ваш кэп). связи? да, необходимо внимательно следить за разграничением ответственности между областями кода и не допускать укрепления связанности. если интересно подробнее почитать про архитектурные подходы, которые хоть и не такие шустрые на старте, но, если строго их придерживаться, то через 2-3 года добавить в проект пару экранов, или добавить что-то на существующие будет так-же просто как и в первые 2-3 месяца, то можно начать с Lotus MVC (https://matteomanferdini.com/ios-architecture-lotus-mvc-pattern/) а потом уже под свою платформу/язык скорректировать.

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

      • archimed7592
        /#22122000

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

        Вы хотели сказать так-же сложно, как и в первые 2-3 месяца? :)

    • amofon
      /#22121004 / +1

      Времязатраты увеличиваются с ростом проекта.


      Все правильно. Только вот статья не о трудозатратах.
      А о плато.

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

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

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

      Уникальную составляющую вашего проекта нагуглить нельзя.

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

      • unsignedchar
        /#22121268

        Опять нет кнопки «Сделать всё хорошо».

      • wladyspb
        /#22121584

        Помню свою боль, когда на определённые ошибки не мог найти объсяснения ни на SO, ни в документации, ни в телеграмм канале у автора инструмента)

      • DrPass
        /#22122026

        Уникальную составляющую вашего проекта нагуглить нельзя.

        Нельзя, но например мой опыт говорит о том, что в подавляющем большинстве проектов технической уникальной составляющей нет от слова «вообще». Бывает бизнесовая, но её понимание для программистов — приятный бонус, а не профессиональная обязанность. Поэтому StackOverflow-Driven Development, это вполне жизнеспособный подход, который в большинстве случаев позволяет реализовать проект «от и до». А тем, кому надо иметь в команде знающего гуру, те и наймут знающего гуру.

        • amofon
          /#22122270

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


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

          Никаких супер-оригинальных алгоритмов от программистов не требуется, как правило. Исключения редки.

          Однако тем удивительнее факт выхода программиста на плато «ничего не могу», когда готовые рецепты в Гугле закончились.

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

          • delhi_heir
            /#22125330

            удивительнее факт выхода программиста на плато «ничего не могу», когда готовые рецепты в Гугле закончились

            ХРюши потому и любят «софтскиллс», потому что навешать всем лапши на уши «это в принципе невозможно» звучит лучше, чем «я лично ничего не могу».

        • VolCh
          /#22122622 / +1

          Встречал "программистов", которые ошибки гуглили без малейших попыток абстрагировать их, вот прямо со своими личными путями и неймингами проектов типа /home/vasya/work5/super-project/src/Api/RogaAndKopytaApiClient

          • PendalFF
            /#22124006 / +1

            Приятно, чёрт возьми, что сисадмин-автомеханик уже чуть-чуть обогнал «программистов» (хотя бы некоторых), так как я все-таки стараюсь разобраться в причинах ошибки а не нагуглить решение. Кстати крайне бесит ситуация когда единственный ответ — это магия, сынок (плавающая ошибка)

            • Jecky
              /#22128794

              Ron Jeffries: «Code never lies, comments sometimes do.»

          • bogdanic2056
            /#22124756

            Значит это «Как слышим так и пишем». Нет творческого подхода вовсе.

          • usrsse2
            /#22137136

            Так гуглится же! Быстрее вставить и нажать Enter, чем редактировать запрос, ну а если уж не нагуглилось так, то тогда уже абстрагировать

      • Sergunka
        /#22123484 / +1

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

        • vics001
          /#22142616

          Самодокументируемый код.
          P.S. документация по методам математического моделирования есть, занимает 3 семестра обучения.

      • chapai22
        /#22133842

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

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


        Да он будет не уникален — но годен и быстро и удообно.
        С программированием пора строить задачу из типовых гугло-кусков. Как опенсорсные блочные дома.
        То есть надо менять подход — коий новое поколение мудро указало и выявило.
        так что две цитаты:


        Человек, который почувствовал ветер перемен, должен строить не щит от ветра, а ветряную мельницу. © китайская народная мудрость


        Надежные машины из ненадежных элементов! © Джон фон Нейман

        • PowerMetall
          /#22134166

          С программированием пора строить задачу из типовых гугло-кусков

          Ну так тут выше и написали, что StackOverflow-Driven Development, это вполне жизнеспособный подход ))

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

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

          • chapai22
            /#22134380

            Но речь то не об этом, а о том что уникальные вещи

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


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


            И сможет ли во всё это копипастокодер — вопрос

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

            • amofon
              /#22134768

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

              А если их всего три?

              • chapai22
                /#22135808

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

                • amofon
                  /#22136000

                  Это не компания а кружок. Но в русской культурной традиции для троих предусмотрены особые варианты.


                  Ну а если их 300 разработчиков всего?
                  Настоящих программеров все равно должно быть 3?
                  А остальные 297 — тупые просто приложения к клавиатуре?

                  P.S.:
                  Индустрия разработки ПО существует вот уже более полусотни лет, всё уже рассчитано до нас.

                  Например, один из классических трудов по организации разработки ПО «Мифический человеко-месяц» Ф. Брукса опубликован еще в 1975 году.

                  И старших разработчиков нужно довольно много. Типично, на каждые 2-5 человек обычных разработчиков — 1 старший.

                  А вовсе не:
                  Для этого нужно два, максимум три обученных программиста на всю компанию. Остальные должны быть индусами.


                  • chapai22
                    /#22136258

                    Настоящих программеров все равно должно быть 3?
                    А остальные 297 — тупые просто приложения к клавиатуре?

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


                    Индустрия разработки ПО существует вот уже более полусотни лет, всё уже рассчитано до нас.

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


                    И старших разработчиков нужно довольно много. Т

                    Дык все поделено на группы, а не все 300 скопом над одним проектом. Что нам и дает изолированные блоки внутри компании. И в таком, из нескольких команд над проектом — как раз единицы. Остальные пилят нишу.
                    Все равно при поставленной разработке за пределы ниши выходить не приходится.


                    Так кстати не только в китах рынка — но и в стартапах.

                    • amofon
                      /#22136732

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

                      А можно конкретику?

              • sophist
                /#22139640

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

  2. Matisumi
    /#22119560

    > Чувак сначала проходил длинное собеседование по куче разнообразных вопросов, потом решал несколько задач. На бумаге, как мы делали в ВУЗе.

    Всегда веселил подобный подход к собеседованиям в рандомных «ООО Рога и копыта». Как только на собеседовании заходит речь про бумагу и задачи — я сразу улыбаюсь, благодарю за собеседование и прощаюсь. Думаю, как и любой уважающий себя специалист.
    Да и в целом какой-то совковый подход. Я так понимаю, автор статьи застрял во времени, где-то в конце 90х-начале нулевых. Индустрия давно поменялась, искать решения в гугле — это нормально. Задача программиста в первую очередь закрывать задачи бизнеса, а не писать идеальный код из головы и знать все методы библиотечных классов. Удивительно что вы, как тимлид (или кто вы там?) этого не понимаете…

    • arozhankov
      /#22119578

      Без обид. Не поэтому ("… уважающий себя...", "… совковый...", "… закрывать задачи бизнеса..." и т.п.) ли у вас такая карма?
      Попахивает (очень) «эффективным» менеджментом.

      • Matisumi
        /#22119670 / -1

        Вот бы в 2020 за карму на хабре переживать, ну серьезно.

        • Acuna
          /#22123290

          Ограничение на комментирование же(

          • BlackSCORPION
            /#22124868

            Больше времени на работу останется )

            • Acuna
              /#22132186

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

          • Matisumi
            /#22125396

            Комментарии для тех, у кого вагон свободного времени

      • White_Scorpion
        /#22122582 / -2

        Я дико извиняюсь, но… Слить карму на Хабре — это как нефиг делать. Вот поднять — тяжко, если не считаешь для себя честным заполнять Хабр десятками иноземных переводов. А вот слить — очень легко. Достаточно "не понравиться" или "не сойтись во мнении" с парой-тройкой индивидуумов, плохо переносящих личные мнимые "обиды".
        Кривую систему кармы Хабра ругали уже столько раз, что снова начинать это уже даже неинтересно.

        • vvzvlad
          /#22122660 / +1

          Легко слить, если вы не писали статей, или написали две новости. Если у вас есть заработанная карма — то можно и не понравиться, и статьи идущие вразрез с политикой партии публиковать.

          • centralhardware
            /#22129086

            Слить то можно конечно но это ни на что не повлияет, ну ведут ограниченние на 1 комментарий в пять минут и все

        • sumanai
          /#22123216

          с парой-тройкой индивидуумов,

          Это пара-тройка минусов. Вроде повторно голосовать запрещено.

          • White_Scorpion
            /#22123308 / -2

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

            • mayorovp
              /#22123312

              Иными словами, если ты предпочитаешь Хабр в основном читать — то лучше его читать? Ну, пожалуй соглашусь, только не понимаю причём тут карма...

            • Alekseyz
              /#22123676

              Продать эту карму потом можно? Что с ней делают обычно, зачем она нужна?

              • Neikist
                /#22123694

                Можно одобрять/не одобрять плюсами и минусами статьи и комментарии, а так же другим карму менять. Таки влияние на сообщество.

    • Neikist
      /#22119586

      Насчет умения решать задачи вместо гуглежа не согласен, это надо уметь. Редкий случай когда немного согласен с nmivan, а вот с тем что нужно помнить стандартную библиотеку, а так же помнить сторонние подключенные библиотеки, (бсп, типовую конфу в случае 1с которые у автора) — это очень и очень сомнительно. Разве что очень верхнеуровнево. Это уже проблемы IDE и языка 1с которые ужасны и заставляют программистов это делать, вместо того чтобы помнить примерно и IDE уже бы подсказала на основе типов и полнотекстового поиска.

      • wladyspb
        /#22119890

        Я на текущей работе решал задачу на бумажке, и мне сказали использовать абстрактный язык. Т.е. если я не помню как называется нужная мне функция — не страшно, главное что я помню, что она есть. Важен был именно подход к решению. Сейчас проходил собеседование — и решал задачки уже в IDE, с расшаренным экраном — без гуглежа, периодически опечатываясь, но опять же — я показывал свои представления о том, как нужно организовывать код, а не знания синтаксиса конкретных функций — хотя тут уже IDE помогала, конечно.
        Не вижу ничего зазорного в том, чтобы обращаться в гугл за помощью в том, как работает тот или иной инструмент, главное — не копировать бездумно куски кода из SO в свой проект. Программирование — не знание на зубок всех языковых конструкций и стандартных библиотек. Программирование про умение думать, и правильно компоновать доступные инструменты для получения оптимального в данной ситуации решения.

        • Neikist
          /#22119934

          Может комментарием промахнулись? Я примерно об этом же и писал.

          • wladyspb
            /#22121462

            Скорее решил дополнить, я в целом согласен с вашей точкой зрения.

        • inkelyad
          /#22120038

          Т.е. если я не помню как называется нужная мне функция — не страшно, главное что я помню, что она есть.

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


          Влияние, конечно, не так чтобы сильное, но оно есть.

          • Neikist
            /#22120124 / +1

            Какие то тысячные доли процента времени разве что. Пишет код программист гораздо меньше чем читает. И большая часть времени написания это размышления, а не набор кода. Тем более обычно можешь вспомнить или прикинуть возможные ключевые слова в имени класса/метода, а умная IDE подскажет, если железо нормальное — то почти моментально.

            • inkelyad
              /#22120148

              Вообще, не совсем. Сравним с обычным, человеческим, но иностранным языком. Нужно на нем какую-нибудь статью написать на заданную тему. Там тоже подумать/прочитать — большая часть работы. Но скорость написания статьи будет довольно разной в случае 'знаю иностранный язык' и в случае 'знаю иностранный язык со словарем' (т.е. как раз вариант, когда знаю, что слово есть, могу его найти, но вот прямо сразу написать не могу).

              • Neikist
                /#22120172

                Ну опять же, или вам IDE подскажет за пару секунд, или вы сами напишете (я кстати обычно не дописываю а жду пока подсказка выскочит, так быстрее) — разница небольшой будет.

                • SadOcean
                  /#22121320

                  Да, но это работает если знаешь что писать.
                  А без знания нужно либо перерывать подсказки в поисках нужной — это работает в целом с методами разве что, но не с типами/интерфейсами

                  • Neikist
                    /#22121434

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

                    • SadOcean
                      /#22121546

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

                      • Neikist
                        /#22121938

                        Ну так автор статьи пишет

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

                        Мы это и обсуждаем. На кой черт помнить все это? Если примерно помнишь то разберешься.
                        Если быть точным мы даже скорее обсуждаем начальное сообщение в этой ветке
                        и знать все методы библиотечных классов

              • holydel
                /#22121380

                Зависит от статьи. Если это вывод сложной, исследовательской работы, то собственно написание занимает небольшой процент. И разница между наивным языком и другим, но со словарём — будет минимальной. И с другого конца — если это просто перевод, то вариант "со словарём" проигрывает кардинально. Работа программиста, на мой взгляд, ближе к исследовательской. Для ребят, что просто переводят с бизнес-логики на какой-нибудь питон, знать наизусть команды фреймворка, наверное, важно.

                • Neikist
                  /#22121428

                  Да и там разница не шибко большая. Говорю как бывший 1сник, с нормальной IDE и наличием ООП со статической типизацией в языке — не нужно было бы стандартную библиотеку и типовые решения в голове держать. По крайней мере в таком объеме и качестве.

              • Cryvage
                /#22133428

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

              • vedenin1980
                /#22134378

                разной в случае 'знаю иностранный язык' и в случае 'знаю иностранный язык со словарем'

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

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

                Вот далеко не гарантировано, что второй будет переводить быстрее или качественее.

                • VolCh
                  /#22134676

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

                  • vedenin1980
                    /#22134830

                    «знаю английский со словарём» подразумевает

                    Скорее подразумевает, что вы его толком не знаете.

                    Если вы знаете все граматические структры, обычно понимаете речь без сложных оборотов на слух и можете бегло объясниться простыми словами и оборотами в большинстве рабочих и бытовых ситуаций это уже B1-B2 (Upper Intermediate) уровень.

                    • VolCh
                      /#22135122

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

                      • vedenin1980
                        /#22135240

                        Это уже далеко не «знаю со словарём»

                        Ну так речь и про то, что программист хорошо знающий все аспекты своего языка и способный писать большинство типовых программ с подсказками Ide это намного выше уровня «знаю со словарём».

                        Многие проф.переводчики активно используют аналоги IDE для перевода и вполне успешно.

              • amofon
                /#22135118

                Вообще, не совсем. Сравним с обычным, человеческим, но иностранным языком.


                То что в названии и человеческого языка и языка программирования есть слово «язык» это не означает что это понятия одного поля, которые можно сравнивать вот так вот просто.

                Вам же не приходит в голову приравнивать часть тела, что находится у вас во рту и тоже называется «язык» к разговорному или компьютерному языку?

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

                Количество слов базового английского, придуманного чтобы представители Британской Империи могли общаться с туземными колонистами — 850 слов. И этого вам хватит разве чтобы сходить в магазин купить товары повседневной необходимости. Не более. И то, при условии, что вы на товар пальцем будете показывать, не зная как его назвать. И даже не всегда сможете объяснить продавцу что вам нужно, описывая свойства товара, кроме простейших свойств.

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

                С человеческим языком — совсем другие порядки:

                400–500 слов – активный словарный запас для владения языком на базовом (пороговом) уровне.
                800–1000 слов – активный словарный запас для того, чтобы объясниться; или пассивный словарный запас для чтения на базовом уровне.
                1500–2000 слов – активный словарный запас, которого вполне хватит для того, чтобы обеспечить повседневное общение в течение всего дня: или пассивный словарный запас, достаточный для уверенного чтения.
                3000–4000 слов – в общем, достаточно для практически свободного чтения газет или литературы по специальности.
                Около 8000 слов – обеспечивают полноценное общение для среднего европейца. Практически не нужно знать больше слов для того, чтобы свободно общаться как устно, так и письменно, а также читать литературу любого рода.


                Приравнивать десятки слов компьютерного языка, дающих полное понимание языка программирования, к 8000 слов человеческого языка и проводить аналогии — это как-то смело с вашей стороны.

                • VolCh
                  /#22135176

                  Ключевые слова и конструкции в ЯП больше соответствуют грамматическим конструкциям в естественных языках. Какое-нибудь "to be going to" или "to have been" не требует дословного понимания (оно даже вредить может), так же как if/then/else тоже его особо не требует. А "слова" ЯП — это как раз библиотеки.

                  • amofon
                    /#22135218

                    Ключевые слова и конструкции в ЯП больше соответствуют грамматическим конструкциям в естественных языках.


                    При этом знание языковых конструкций дает вам понимание всего языка программирования.

                    А знание всех языковых конструкций живого языка не дает вам ничего.

                    Ибо Вам нужно заучить тысячи слов.

                    И не только слов, а еще и выражений (потому что слова на другой язык далеко не всегда переводятся однозначно, исключение только в простейших словах, типа местоимений, те, да, переводятся просто).

                    • VolCh
                      /#22135242

                      Смотря что называть "всем языком программирования"

                      • amofon
                        /#22135360

                        Смотря что называть «всем языком программирования»


                        То, что в реальности нужно знать программисту помимо синтаксиса — алгоритмы, паттерны, концепции — это вовсе не слова зубрить.

                        Имхо, за уши притянуто сравнение человеческого языка и языка программирования.

                        • vedenin1980
                          /#22135574 / +1

                          притянуто сравнение человеческого языка и языка программирования

                          Просто, говоря о человеческом языке вы думаете об устном разговорном.

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

                          • amofon
                            /#22135582

                            А вот если сравнивать с письменным официальным (письма, жалобы, юридические документы, тех.документация), то неожиданно
                            там тоже есть алгоритмы, паттерны, концепции, код.стайлы


                            Code Style — да.

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

                            Но это не собственно знание самого языка.

                            А так то — да. Любая область человеческой деятельности использует язык как минимум как вспомогательный инструмент.

                • inkelyad
                  /#22135254 / +1

                  Приравнивать десятки слов компьютерного языка, дающих полное понимание языка программирования,

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

                  • amofon
                    /#22135366

                    Приравнивать десятки слов компьютерного языка, дающих полное понимание языка программирования,


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


                    Это как?
                    Вы приравниваете понимание работы алгоритма к изучению человеческого языка?

                    Понимаете человеческий язык и язык программирования — это о разном.

                    • inkelyad
                      /#22135430 / +1

                      Да, приравниваю.


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


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

                      • amofon
                        /#22135576

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


                        То есть программисты, если они действительно хорошие программисты, то они априори способны написать хорошее художественное произведение?

                        Это вы напрасно.

                        • inkelyad
                          /#22135594

                          Не художественное. А понятное произведение/документацию/статью итд итп. Просто обязаны по профессии.

                        • VolCh
                          /#22135606

                          Как только им дадут, с одной стороны, систему команд эмоционального интеллекта, а, с другой, ТЗ на то какие эмоции нужно вызвать :)

                        • vedenin1980
                          /#22135610

                          то они априори способны написать хорошее художественное произведение

                          Вас совсем не в ту степь понесло.

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

                    • vedenin1980
                      /#22135544

                      Понимаете человеческий язык и язык программирования — это о разном.

                      Да не особо, если говорить о письменном естественном языке для каких-то задач (обычно на ЯП мы устно все-таки не общаемся).
                      Условно написать официальное письмо в какую-то службу практически аналогично написать программу для комьютера, те же блоки, обороты и т.п,
                      даже код стайл есть. Документация легко конвертируется в программу и обратно, более того есть системы написания unit test'ов где пишешь
                      практически на ествественном языке условия.

            • 0xd34df00d
              /#22123464

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

          • Daddy_Cool
            /#22120600

            Респект. Чем больше инфы в голове — тем легче ей оперировать. Разбор кода из гугла тоже требует времени на переделку — ведь на 100% не подходит ничего и никогда.

            • BlackSCORPION
              /#22124944

              С головой «чем больше инфы» к сожалению не прокатывает ) новая инфа вытесняет старую в архив.

              Но чем больше информации познаешь, применяешь, мозг ее как то агрегирует и превращает в интуицию.

          • Wingtiger
            /#22120666

            … или гуглишь непонятно что, так как не знаешь что оно вообще есть.

            • Neikist
              /#22120720

              Не, то о чем вы пишете это о широте знаний, оно полезно. А вот знать какой именно метод в стандартной библиотеке объединяет в строку коллекцию — нафиг не нужно помнить. Ибо позавчера писал на 1с, вчера на java, сегодня на котлине, завтра на каком нибудь C#/dart/swift и т.п., а суть решаемых задач та же осталась.
              То что будет часто использоваться запомнится быстро, после нескольких нагугливаний, то что редко — один черт придется каждый раз вспоминать и лезть в гугл/доку. Главное знать что такая штука есть в принципе, а найти и применить проблема не большая.

          • wladyspb
            /#22121480

            Если я использую функцию регулярно — я помню как она называется и в каком порядке какие аргументы в неё передавать. А если я использую её крайне редко, эта информация вытесняется из памяти более важной — и тогда придётся либо внимательно вчитываться в подсказки IDE, или идти за более детальной информацией в документацию. Но в случае редкого использования — это не критично. Тем более, обычно основная масса времени уходит не на написание кода, а на его обдумывание.

          • AlexSky
            /#22123878

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

          • Angeld
            /#22125084

            часто используемые функции и так запомнятся
            а все функции зубрить смысла никакого нет. и не получится все запомнить, и времени больше потратишь, чем сэкономишь.

            • inkelyad
              /#22125130

              Смотрим снова аналогию с иностранным языком. Слова, когда учат язык, именно зубрят. Не все подряд, конечно, а по методикам, но именно зубрят. А не 'какие больше используешь, так и запомнятся'. И когда учат много языков — учат слова каждого.

              • Neikist
                /#22125164

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

                • inkelyad
                  /#22125198

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

                  • Neikist
                    /#22125216

                    Может и быстрее. Но один процесс требует целенаправленных усилий и времени, а другой процесс проходит естественно и в фоне. А усилия и время вместо этого можно было бы потратить на более важные вещи (изучение вопросов проектирования, архитектуры, алгоритмов, работы ОС и прочего)

              • /#22125212

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

                вас кто то очень сильно обманул

                • inkelyad
                  /#22125418

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


                  В любом случае с 'само выучится в процессе работы' даже близко не лежит.

                  • cudu
                    /#22125664

                    Мой словарный запас — на 99% состоит из того, что я где-то когда-то увидел\услышал\прочел и до сих пор пользуюсь этим лексическим запасом; и это не зависит от языка — родной он или иностранный. На 1% он состоит из того, что я зазубрил в школе.

                    Не уверен, что у вас иначе.

                    • inkelyad
                      /#22125842

                      Базовый активный словарный запас — 1500-2000 слов. Именно их обычно целенаправленно учат. Потом человек его подтягивает до десятков тысяч слов пассивного запаса.


                      Ни и сколько из нас наизусть помнит 1500-2000 классов стандартной библиотеки (может сразу пользоваться ими, не залезая в подсказки)?


                      А десятки тысяч пассивного наберется(т.е. пользоваться не умею, но понимаю, что делает, не залезая в тот же хелп)?

                      • cudu
                        /#22125896

                        Может быть вы не в курсе, но ребенок в 7 лет в словарном запасе имеет 2000-3000 тысячи слов.

                        В любом случае, при изучении языка программирования, я лично(может быть вы делаете иначе?) начинаю с синтаксиса+базового набора встроенных языковых конструкций. Далее, понимание общей архитектуры языка, назначение крупных библиотек. И никогда я не учу: где в каком пакете что находится — для этого у меня есть IDE, которая заботливо импортирует, я лишь, руководствуясь правилами расположения пакетов(родные-сторонние) проверю, что импорт был правильным. Может быть вы делаете иначе и зубрите все методы+все аргументы+что-где располагается, ну что ж — у каждого свой путь, но это делает вас максимально непродуктивным.

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

                      • vedenin1980
                        /#22125938

                        1500-2000 классов стандартной библиотеки

                        Только класс это не аналог слова, у класса может быть сотня публичных методов с разными аргументами.
                        «Словом» в программировании это максимум название функции без аргументов, вроде в классе Math есть функция sin вычисляющая синус, либо базовые конструкции языка (циклы, определение переменных, массивов и т.п.). Думаю, если посчитать — то 2 тыс. наберется даже у джуна.

        • drdim
          /#22125476

          Кстати, да стал замечать, что память подкачивает, и я за публичными методами иду в гугл, вместо справки в ИДЕ или исходники, мозг считает это проще. И прям иногда себя одергиваешь или идешь вспоминать в код… И этот способ, корректнее и полезнее.

        • ASGAlex
          /#22138314

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

    • MKMatriX
      /#22119996 / +1

      Могу написать на бумаге, хоть и часто пользуюсь гуглом. Просто на бумаге будет медленней и будут ошибки, которые правятся гуглом или идеешкой. Например: не помню я правильный порядок аргументов в array_column, или есть ли нижнее подчеркивание в str_replace и strlen. Впрочем если попросят с минимумом ошибок могу написать и без этих функций.

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

      • Neikist
        /#22120016 / +1

        На бумажке вообще дико неудобно писать. Даже на псевдокоде.

        • Daddy_Cool
          /#22120612

          Кому как. У меня был проект, я брал лист бумаги, ручку, ложился на диван и думал, набрасывая структуру программы на неком своем псевдокоде. Потом уже за комп — где и IDE и Гугл, и т.п…

          • Neikist
            /#22120656

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

          • tmin10
            /#22122954

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

            • expromt
              /#22129444

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

              • EGlaz
                /#22141238

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

        • trixy
          /#22122674

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

          • Neikist
            /#22122772

            Это в том числе. Я даже когда активно писал конспекты и прочее в вузе потом лекции по чужим конспектам учил, свои прочесть не мог. А уж спустя 6 лет после окончания вуза при том что все это время максимум писал всякие там заявления (о приеме на работу, об увольнении, и еще по мелочам) — вообще кошмар.

            • akryukov
              /#22122934

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

              • BlackSCORPION
                /#22125004

                Будто от этого легче станет писать. У меня после пары предложений пальцы устают, писать от руки это как есть рис китайскими палочками в наше время.

                Проще скачать рукописный шрифт и брать с собой принтер на собеседование )

                • /#22125030

                  > это как есть рис китайскими палочками в наше время

                  дык вот же ж едят рис палочками 124 миллиона японцев и 1.5 миллиарда китайцев и не жужжажт же

                  • VolCh
                    /#22126372

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

                  • BlackSCORPION
                    /#22127018

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


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


                    Когда пишешь от руки раз в год что то длинее чем роспись, происходит тоже самое.

                    • /#22129014

                      > съесть комплексный обед палочками

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

                      • delhi_heir
                        /#22134474

                        мучаются японцы пытаясь есть палочками борщ

                        Супы вполне едят палочками из чашки: сначала выловить палочками и съесть всё, что ловится палочками, затем выпить оставшийся бульон их из чашки.

                • akryukov
                  /#22125132

                  Если вам непривычно писать от руки, то вам не важно как именно писать: печатными или "как в школе учили" — в любом случае будет трудно.
                  Однако читать потом удобнее именно печатные буквы.

      • UncleJey
        /#22121692

        Будучи студентом в конце 90х любую лабораторную писал на бумажке. На паскале и на бейсике. На чистовую. Сразу определяя все необходимые переменные. И что примечательно работало всегда и сразу.

        • Max-812
          /#22123804

          Я в начале 90-х анимацию для игры писал в тетрадке, в поезде едучи. А потом по возвращению на комп переносил. И чуть позже в талмудах толщиной сантиметров по 7-10 постоянно рылся в поисках функций и синтаксиса.

          Но это было нормально ТОГДА, а не сейчас. Сейчас мне достаточно знать базовые алгоритмы и общее представление иметь, а благодаря гуглу я все нужные функции найду за секунду. И код напишу быстрее, не потому что откуда-то передеру, а потому что время поиска в разы сократилось.

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

          • Dr_Sigmund
            /#22124582

            Хех, я на бумаге реверс-инжинирингом занимался. ИдыПро у меня тогда не было (да и вообще её ещё не было), распечатывал дизассемблерный листинг, и потом сидел на диване с пачкой листов в папке, разбирая и комментируя команда за командой, что там происходит.

            • Max-812
              /#22126300

              Я совмещал turbo debugger с частичной распечаткой. Монитор и комп тогда был один, на экран все не влезало в текстовом режиме.

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

      • mafia8
        /#22128012

        Если это PHP, то можно сделать html-страницу: список ссылок на файлы помощи с названиями файлов в тексте.

    • dartod
      /#22120166

      Несколько раз на собеседованиях предлагали такое — расшарьте экран, мы будем смотреть, как вы делаете тестовое задание. Разумеется, такие рога и копыта посылались сразу и навсегда

      • Andrey_Epifantsev
        /#22120298 / +1

        А в чём проблема показать свою работу? Тем более на собеседовании.
        Мне кажется отличный способ показать свою крутость. Пусть смотрят открыв рот и удивляются как профессионалы работают.
        Есть даже такая методика работы — парное программирование.

        • dartod
          /#22120336 / -1

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

          • Andrey_Epifantsev
            /#22120370 / +1

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

            • dartod
              /#22120452

              Одно дело смотреть, как ты пишешь код в 2-3 строчки, чтобы показать понимание заданного вопроса.
              И совсем другое дело писать тестовое задание под надзором.

              • 1c80
                /#22121870

                И совсем другое дело писать тестовое задание под надзором.

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

                • dartod
                  /#22121880

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

                  • VolCh
                    /#22122682

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

                    • dartod
                      /#22125102

                      Ок, пинайте на здоровье.

              • VolCh
                /#22122664

                Особой разницы не вижу. Более того, такое тествое исключает дальнейшие конфликты уже на работе "а чего ты гуглишь постоянно всё, что, ты и тествоое так писал?1"

                • dartod
                  /#22125100

                  Если на работе докапываются «а чо ты гуглишь» — то тем более там работать не надо.

                  • VolCh
                    /#22126390

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

                    • dartod
                      /#22127956

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

                      • VolCh
                        /#22128130 / +1

                        Да какое давление? Давление это когда ствол на тебя направляют и говорят "если за ночь не заработает, то может тебя в Финском заливе найдут, но вряд ли!

                        • dartod
                          /#22128132 / +1

                          Я и с таким сталкивался.
                          После чего очень не люблю начальствующих мудаков

                        • trixy
                          /#22131362

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

        • 0xd34df00d
          /#22123474

          Некомфортно.


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

          • dartod
            /#22125104

            Делать проект с коллегой, используя шаринг и писать тестовое задание с шарингом — две большие разницы

            • 0xd34df00d
              /#22127368

              Именно. Тестовое с шарингом (и с незнакомым человеком) ещё сложнее.

      • tmin10
        /#22122972

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

        • dartod
          /#22125112

          Будете смеяться, но я однажды столкнулся и со вторым вариантам. Там еще вклад в проект оценивали по тому, сколько пушей сделал в день

    • alehabr
      /#22120300

      согласен списывать надо тоже уметь

    • Wingtiger
      /#22120658

      я против бумаги и за нормальную иде (типа визуал студии, что б во всём мс так тормозило!), где есть подсказки.
      Насчёт встроенной справки — хорошая она была в делфи 7, больше нормального нигде никогда не видел. А! Ещё по авр доки в принципе норм (в отличие от стм, где доки и софт напоминают китайское "продать железку, сляпать х… ый софт и доки". Кстати, синовойп для банана пи м3 и то кое-как, но собирают дистрибутивы на "отъе… сь, пожалуйста", а не как стм — без уважения. Извините, наболело)
      А на собеседованиях нужно было выдавать комп без инета, это 100%. Затем по желанию/возможности всё-таки сидеть рядом (напротив) для контроля смартфонов и просто очередной психологический тест на работу в коллективе.

      • mihmig
        /#22122028

        See also, блин, see also. Именно такой раздел мне запомнился в мануалах от MS (причём в формате CHM). Ты можешь не помнить название функции по извлечению подстроки, но знаешь, что она упоминается внизу справки (see also) к Trim!

    • Maksclub
      /#22123574

      целом какой-то совковый подход

      Это все, что вы увидели в статье?

    • Dolios
      /#22124486

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

      Собеседования в гугл, фейсбук, амазон, майкрософт и т.д. именно такие.

      • anticyclope
        /#22124694

        непонятно только, доказывает ли это что-то, просто совпадение, или вообще никакой связи нет.

        • Dolios
          /#22125110

          Это просто информация. Вдруг кто-то там работать захочет, чтобы сюрпризом не было.

    • rashid-m
      /#22124758

      Вы неправы. Решать задачи бизнеса должен бизнесмен, product owner, немножко аналитик. От разработчика ждут, что он будет писать хороший код, создавать законченное ПО в разумное время. Для этого надо быть не оператором поисковика, а разработчиком.

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

      • VolCh
        /#22124806

        В разных компаниях, даже в разных командах одной компании от разработчиков ждут разного.

    • dom1n1k
      /#22126972 / +1

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

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

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

    • NiPh
      /#22127078 / +2

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


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


      P.S. Ручка и бумага подразумевают, по моему опыту, не знание синтаксиса, а проверку хода мышления, хоть метакод набрасывай, хоть диаграммы рисуй, лишь бы понятно было куда мысль идет.

      • Kanut79
        /#22127262

        Тут дело в том что тестовое задание это потраченное время. И скажем если у меня намечается пяток потенциальных фирм и две из них хотят тестовые, то при прочих равных я не буду тратить время на две эти фирмы. Ну то есть сами посудите зачем мне это?

        Другое дело если есть какие-то причины почему я хочу именно к вам на фирму и/или если время потраченное на тестовое задание как-то возмещается.

        • NiPh
          /#22127470 / +1

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


          Я про крайние случаи, когда программист не показал вообще никакого кода, только софт скилы. Если есть репозиторий в гитхабе например, и там хоть немного релевантного кода, да даже тестовые задачи для другого собеседования — всё замечательно, будем их обсуждать, зачем писать что-то ещё.


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


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

          • Kanut79
            /#22127664

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

            • NiPh
              /#22127680

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

              • VolCh
                /#22128140

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

                • NiPh
                  /#22128738

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

                  • VolCh
                    /#22129216

                    Разве в контексте статьи есть намеки, что это не про сеньоров?

                    • NiPh
                      /#22129752

                      Сам процесс собеседования, стиль общения тимлида, и обороты вроде "застыли на уровне стажёра", в моей практике сеньоры как то сразу проходят мимо этого уровня. Если статья про сеньоров то мои комментарии совсем не в кассу. nmivan, подскажите пожалуйста, какие вакансии должны были закрыть специалисты описанные в статье?

                      • nmivan
                        /#22129802 / +1

                        В первой части («как было раньше») статьи речь про всех подряд, т.к. все эту процедуру проходили.
                        Во второй части («как сейчас стало») речь про стажёров. На вашем языке это, наверное, джуны.

        • dominigato
          /#22128158 / +2

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

          • Kanut79
            /#22128164 / +1

            А кто-то не хочет делать ни то, ни другое :)

    • Bromles
      /#22129106

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

      • DMGarikk
        /#22131906 / +1

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


        Ну уж прямо. я например из головы ооочень много чего знаю но при этом синтаксис зачастую не помню, например, ситуация из жизни. Коллега программист несколько дней пытался понять почему у него фризы в сервисе… а мне было достаточно взглянуть на логи чтобы понять что это dns недоступен на одном из серверов балансировщиков nginx и сервис подвисает до таймаута обратного запроса к dns при этом ни слова не пишет в логах что ему плохо.
        При этом он может на бумажке огромные программы писать по памяти, а я гуглю синтаксис как питоновский враппер сделать (в работе это не часто встречается у меня).
        «решать бизнес задачи лучше» — это не знать наизусть язык программирования, а вообще иметь кругозор чуть шире своей узкой области. а все остальное можно нагуглить.

        Я довольно часто вижу программистов которые не знают ничего глубже своего языка вообще, SQL — как ни странно редкость (вообще свидетели-ORM сейчас плодятся и это печально), понимания хотябы основ devops — тоже нечастое явление…

        • Bromles
          /#22143602

          мне кажется, вы скорее про разные сферы деятельности и подобное. И вы, и ваш коллега в чем-то уже разбираетесь самостоятельно. Я же пытался сказать, что не обладать знаниями, не разбираться, а гуглить готовые решения — так себе идея в глобальном плане. Потому что нет при этом развития, потому что шаг в сторону от имеющегося в гугле — и полномочия разработчика всё. Написание кода на бумажке — один из вариантов проверки знания. Вряд ли кто-то будет отказывать из-за пропущенной точки с запятой, но если человек не знает, как работать, например, с указателями в с++ (нанимаясь на должность разработчика с++), то это повод крепко задуматься

    • PokimonZerg
      /#22129108

      А в чем проблема написать код на бумажке?
      Тем более обычно просят совсем примитивные вещи вроде перевернуть строку или обойти дерево.

    • shasoft
      /#22131084

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

    • sergyalosovetsky
      /#22133552

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

      • VolCh
        /#22134688

        Есть разница между "решить задачу алгоритмически в общем виде" и "решить задачу чтоб работало без ошибок". Некоторые требуют второго на бумажке. Прощаемся.

  3. alfaslash
    /#22119566

    Из текста публикации сложилось ощущение, что команда занимается решением задач на Codewars (к примеру), а не работает над проектом/проектами.
    Разве на собеседовании не возникло ни одного вопроса, ни желания обсудить реализацию с кандидатом, предоставившим решение (хоть и идеальное), что сразу позволило бы определить, что человек не сам писал код. Разве за 3-6 месяцев не возникло ни одного обсуждения рабочих вопросов, обсуждения пулл реквестов, позволяющих понять, что человек совсем не в теме того, что пишет?

    • LborV
      /#22119590

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

      • Neikist
        /#22119600 / +1

        Не, тут проблема еще более другого рода описана. Это особенность 1с что нужно много мусора в голове держать так как IDE очень слабая, мягко говоря, я когда с 1с работал тоже был вынужден почти всю стандартную библиотеку держать в голове.
        Ну еще нюанс что по 1с в сети готовых решений нет почти, ни просто в текстовом виде на SO, ни готовых библиотек и приходится из головы многое писать. Плюс проблема с переиспользованием кода по разным причинам (сложившиеся практики, сам язык мешает это делать).

        • dponyatov
          /#22119690 / -1

          В смысле IDE? Эта дрянь даже в 2020 еще не научилась работать через language server с любой современной IDE хотя бы с VSCode?

          • Neikist
            /#22119716 / +1

            Ну, VSCode все таки редактор, а не IDE. Но не суть важно. Сообщество language server пилит насколько я в курсе, но решения от вендора нет, что на качестве само собой сказывается ибо в свободное время энтузиастами — это не то. Плюс использовать это довольно проблематично, так как работает через выгрузку/загрузку файлов, что создает еще некоторые проблемы.
            От вендора есть решение в виде перепиленного эклипса, но работает не сказать что идеально, да и им почти никто не пользуется насколько знаю, ибо выстроенные процессы ломать не хотят, да и железо там нужно дикое чтобы хорошо работало.
            Очень рад что теперь пишу на котлине с использованием нормальных инструментов. В 1с даже гит распространения не получил пока.

          • amofon
            /#22122874

            В смысле IDE? Эта дрянь даже в 2020 еще не научилась работать через language server с любой современной IDE хотя бы с VSCode?


            «Спорить о вкусе устриц с тем, кто их пробовал… До хрипоты, до драки». © Михаил Жванецкий

            Всё там нормально с подсказками в 1С. Не так здорово, как в языках со статической типизацией, но получше, чем в языках с динамической типизацией.

            Получше за счет того, что в 1С вы пишете не просто голый код, а код, привязанный в метаданным предметной области. И IDE 1С умеет вам давать подсказки не только по голому языку, а прямо по структуре базы данных, которая используется в конкретной задаче.

            • Neikist
              /#22122904

              Угу, очень «нормально». В сравнении с современными IDE для java и прочих — в просто земля и небо. Естественно не в пользу 1с. Говорю как человек проработавший 4.5 года с конфигуратором и пощупавший немного EDT и почти 2 года проработавший с Android Studio.

              • amofon
                /#22123366

                Говорю как человек проработавший 4.5 года с конфигуратором и пощупавший немного EDT и почти 2 года проработавший с Android Studio.


                Тогда можете и конкретику?

                P.S.:
                Довольно странно сравнивать те возможности, что может дать IDE для языка со статической типизацией Java. Честнее будет сравнивать с JS, Python.

                Не стоит забывать, что 1C это интегрированная система, где интерфейс, БД и код связаны воедино и обновление новой версии накатываются одной кнопкой ровно под одну конкретную версию прикладного решения. И универсализм Android Studio просто не нужен.

                Впрочем, если речь идет об разработке оконченного решения на 1С, когда работает множество программистов, нужно множество веток (как в git) и работа над проектом по частям — да, IDE 1C не лучше Android Studio.

                Однако когда речь идет о поддержке у конечного пользователя, а не об разработке готового продукта — как раз удобнее идеология 1С IDE, где БД+GUI+код оставляют единое целое в дереве метаданных.

                EDT и сейчас еще в активной разработке. А то, с чем вы могли работать несколько лет назад — это какая-то пред-альфа, зачем на неё ссылаться?

                • Neikist
                  /#22123560

                  Конкретика? Даже простой поиск по имени куда хуже. И дело не только в статической/динамической типизации. Идея переваривает и опечатки, и ввод на другом языке, и ввод только заглавных букв, и ввод только части имени метода/класса. Плюс даже для динамически типизированных языков разные эвристики есть по выводу типов аргументов и результатов вызова функций, но, само собой не в 1с.
                  Что касается остального сообщения — спор начинать не хочу, уже не раз в него встревал, но мы сейчас обсуждаем именно конкретные проблемы, заставляющие кучу лишнего в голове держать, так что аргументы о доработке у клиентов, запуске одной кнопкой и прочему мимо, они эту проблему никак не решают.
                  Ну а EDT уже лет 5 в разработке и все никак. Да и уступает эклипс идее.

                  • amofon
                    /#22123614

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

                    Неправда ваша. В некоторых случаях в 1С подставляет с использованием типов. В тех случаях, когда речь идет о метаданных из БД, например.

                    Ну а EDT уже лет 5 в разработке и все никак. Да и уступает эклипс идее.

                    IDEA уже лет 20. И это лучшее, что есть в мире.
                    Экслипс тоже помнится пока взлетал — люди матерились годами и удивлялись как же можно такой долгострой делать. Более менее юзабелен он стал версии к 3-й, но уступал IDEA всегда.

                    • Neikist
                      /#22123636

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

                      • amofon
                        /#22123716

                        Угу. Именно что в некоторых. С эвристиками нормальных IDE не сравнить, они и в вызываемую функцию сходят посмотрят что она возвращает, а если она чего то вызывает — то и туда сходить могут.


                        Не выдумывайте ерунды.

                        Вы работали в этих «нормальных» IDE только с языками со статической типизацией, полагаю?

                        Качество подсказок для того же JS в той же IDEA по сравнению с Java — просто небо и земля.

                      • dponyatov
                        /#22124816

                        только должна ходить не IDE а language server, в частности для динамических языков самый правильный LS — сам запущенный интерпретатор, который в любой момент способен отдать состояние среды, пропатчить байт-код добавив отладочные заглушки в нужные места (условные брыкпоинты), отдать IDE метаданные, и метки типов собранные в рантайме, и т.п.

      • NiPh
        /#22127540

        Вообще обалдели, от php-разработчиков знания типов требуют.

        • int03e
          /#22128612

          так в любом языке есть типы, что не так?

          • sumanai
            /#22128642 / +1

            Думаю, это типа сарказм такой. АЛСО, я знаю все типы переменных в своём коде и прописываю их максимально строго, если не средствами языка, то хоть phpDoc.

            • NiPh
              /#22128724

              Всё верно, сарказм-сарказм.

          • VolCh
            /#22129218

            В асм (x86) разве уже завезли типы?

            • Akon32
              /#22130042

              Типы-то завезли, а вот проверку типов не завезли.

              • VolCh
                /#22130516

                Где там типы? Пускай и без проверки. Какая-нибудь ADD AX, BX понятия не имеет, что в регистрах написано — числа, адреса, смещения, строки...

                • Akon32
                  /#22130958

                  Почти любая инструкция ассемблера ожидает данных в определённом формате.
                  fadd m32/m64 ожидает данные формате с плавающей точкой, fiadd m32/m64 — в целочисленном формате. И плюс в обоих случаях есть разница, 32 или 64 бита. Нельзя путать эти инструкции, хотя все они — сложение ST(0) с операндом в памяти. Если перепутать, результат будет неверным (почти всегда, за исключением разве что случая побитового совпадения "нуля" в этих форматах, если числа одинаковой длины).

                  • VolCh
                    /#22131778

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

    • vladshulkevich
      /#22121962

      Вот так и бывает, когда описание предметной области и проектирование относят к неважным/ненужным задачам. Архитекты архитектуру тоже гуглят, наверное.

  4. Jogger
    /#22119580 / +1

    Изменения я внёс очень простые – теперь люди писали код не на бумаге, а на компьютере.

    Первая мысль была — «интернет-то отключили?». Нет, не отключили. И судя по тому, что до конца статьи эта идея так и не была озвучена — даже в голову не пришла. Это же значит — опять будете собеседовать на бумажке. Воистину идиот.

    • playerro
      /#22121654

      Телефоны тоже отбирать?

      • nuclight
        /#22123750

        Зачем отбирать? Положить в уголок на зарядку.

        • sumanai
          /#22124104

          Я могу придти со 100% заряда, и они будут держаться полдня.

    • catBasilio
      /#22122544 / -1

      И параметры всех функций и все методы всех классов нужно знать наизусть. Если не помнишь — идешь лесом

      • Angmarets
        /#22122922

        Так IDE это и без интернета умеет. И параметры покажет и доки и даже сорцы, если исходники открыты.

        • Neikist
          /#22122994

          Не, то речь о бумажке как я понял.

        • catBasilio
          /#22125090

          1)Ну например в с++ начиная с какого-то стандарта добавили генераторы случайных чисел с заданным распределением. Наизусть я не помню какие там классы и параметры шаблонов. Мне это никогда не нужно было. Как мне IDE поможет их найти? даже если PDF стандарта выложить — это не сильно поможет. Так как стандарт — это не справка. Он для разработчиков компиляторов и библиотек написан. И быстро понять как какая-то фича работает не всегда можно.

          2) IDE — это понятие растяжимое. Для меня — это vim, многие emacs используют, некоторые vscode, sublime, eclipse и даже Kdevelop.
          На каком из IDE должно проверяться тестовое задание?

  5. i360u
    /#22119608 / +1

    Фейспалм. Не знаю, что там у вас за галера (подозрения рождаются при рассказе о бывших коллегах с собственным 1С бизнесом), но нормальные люди не захотят с вами работать. Фейспалм.

  6. HerrDirektor
    /#22119636

    Когда я начинал учиться программированию (в самом начале 90х), у меня из инструментов для обучения была только книжка K&R, а чуть позже появился NG с кратким (и кривым) справочником по K&R Си.
    И таки да, если сравнивать этот период с периодом, когда у меня появился интернет (вторая половина 90х), то он был просто ужасен. Как по скорости обучения, так и по качеству выдаваемого кода (и количеству велосипедов тоже).
    Еще кто-то из старых (по-моему Джон Соча) сказал: «Если вы хотите научиться программировать, посмотрите, как это делают другие».

    ИМХО, автор не разделяет тех, кто кроме как содрать сэмпл со стековерфлоу, воткнуть его себе в код и посмотреть, что в итоге получится, не могут ничего. Отличить их от «настоящих» на собеседовании не составит особого труда — достаточно поставить нетривиальную задачу (или просто хорошо изменить/замаскировать любую популярную).

    И другой тип людей (программистов), которые используют пресловутый гугл (стековерфлоу, гитхаб и т.п.) для того, чтобы получить новую информацию — КАК это делают другие, сравнить со своим кодом, возможно что-то поменять в нём в лучшую сторону, применить приёмы о которых они ЕЩЁ не знали, поделиться своими наработками с сообществом.

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

    • anatoly314
      /#22122162

      Хех, я делал курс по C в открытом университете Израиля, первый экзамен я завалил, так как он был составлен так, что если ты от корки до корки не прочитал книгу и не знаешь где искать ответы на специфические вопросы (на экзамен можно было приносить эту книгу) то ты его не сдашь.

    • Vindicar
      /#22127304

      Так по моему автор прямым текстом говорит, что речь о первой категории, и противопоставляет её второй.

  7. Furriest
    /#22119640 / +4

    Сначала автор «гуглит» методику собеседования, которую в дальнейшем использует (сам сознается, что методика не им придуманная), а потом удивляется, что программисты гуглят решение задач.

    Если вам нужно, чтобы программисты на собеседовании решали задачи — то не надо ставить им задачи, решение которых можно нагуглить. Но да, это означает, что к собеседованию нужно готовиться. Удивительно, правда?

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

    • catBasilio
      /#22122342

      Но да, это означает, что к собеседованию нужно готовиться. Удивительно, правда?


      К каждому?
      И как вы предлагаете интервьюверу готовиться к собеседованию? придумывать на каждое собеседование задачки которых нет на сайтах олимпиадного программирования?

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

      • Furriest
        /#22122364

        Да, к каждому.
        И да, придумывать задачи, которых нет на сайтах.
        Автору же нужны негуглящие программисты (что, по-моему, глупость, но у каждого свои заморочки. Кто-то любит боль, кто-то двойное проникновение, кто-то негуглящих программистов — имеет право), для этого ему и нужно готовиться к собеседованию своеобразным образом.

        А вопросы по резюме — это не техническое собеседование.

        • catBasilio
          /#22122510 / +1

          Ну удачи вам с таким подходом.

          я на когда собеседования проводил — вообще тестовые задания не давал. Максимум на поразмышлять на тему прикольных кейсов с которыми столкнулись в проекте.
          например.
          «Как бы вы заимплементили errno. Почему так?»

        • billyevans
          /#22124038

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

      • dominigato
        /#22122578

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

        • cudu
          /#22122594

          Я так понимаю, смотря как проходит собеседование или кто собеседует. Было б неплохо за 30-40 минут, чтобы побеседовали люди, которые проверят технически навыки, а потом уже(если технически кандидат способен) — чтобы беседовал какой-то менеджер, который понимает, что кроме отличных технических навыков, человеку бы еще человеком быть и работать в команде как-то надо.

          • dominigato
            /#22122624

            30-40 минут, хех, я уже забыл когда меньше двух часов одно интервью было. В фейсбуке так вообще после 3-4 интервью делают еще целый день интервью, с утра до вечера. Там и интервью на эмпатию и чего еще только нет.

            • cudu
              /#22122642

              У крупных компаний из списка особо-крутых-компаний-куда-100500-оверкрутыхсеньоров-на-место — свое видение этого процесса. Это отдельные планеты с отдельными правилами. У меня почему-то подозрение, что так проверяют тех, кто уж прямо-сильно-очень хочет+имеет навыки. Если не прямо-сильно-очень хочешь, то не будешь проходить весь этот адЪ.

              • 0xd34df00d
                /#22123478

                Это на самом деле норма для Штатов — тут много где 5-6 раундов интервью в один день.


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

          • VolCh
            /#22122730

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

        • VolCh
          /#22122718

          Если на сеньора и выше, то наверное не стоит спрашивать про красно-черные деревья.

          А то ни одного кандидата не останется )))

        • imanushin
          /#22122942

          Зависит от компетенции кандидата. Если на сеньора и выше, то наверное не стоит спрашивать про красно-черные деревья. Если же на интерна, то вполне можно порасспрашивать по теории. А что еще их спрашивать…

          А вот это, кстати, интересно. А почему? Мне казалось, что наоборот — джуна можно не спрашивать про глубокие вещи, а просто можно убедиться, что хоть как-то код пишет.


          А вот если сеньор не может оперировать понятиями типа "сложность алгоритма", то это автоматом нивелирует всю сеньорность (как мне казалось).


          Говоря другими словами: в этом и суть разделения уровней: кто-то знает и умеет мало, а потому уровень X (что означает ответственность и пр), а кто-то знает и умеет много, а значит уровень Y.

          • Neikist
            /#22123010

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

          • Milein
            /#22123032

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

            Впрочем это холиварная тема.

            • wataru
              /#22123870

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

          • dominigato
            /#22123142

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

            • Neikist
              /#22123240

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

              • mayorovp
                /#22123334

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

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

                • imanushin
                  /#22123452

                  вы бы эту книжку давным-давно прочли и к настоящему моменту уже забыли

                  Если прочитать и забыть, то чем это отличается про "не читать"? Я вот забыл номер телефона своего знакомого, для меня это слабо отличается от "не знаю номер телефона этого знакомого".


                  Если сеньор запомнил определенные пункты из этой книги, то ничего больше на собеседовании и не потребуют. Например, если на вопрос про B*-дерево кандидат ответит что-то в стиле "я не помню, но это, вроде, такое дерево, где глубина у всех нижних элементов одинакова. Оно, вроде, еще очень ветвистое. И, как я помню, они применяются в файловых системах и базах данных", то это будет абсолютно корректный ответ (точнее, по моему опыту нахождения с обоих сторон интервью).


                  Если же "сеньор" на вопрос выше про деревья (не В, а просто деревья) ответит "я бизнесу помогать пришел, а этой вашей * заниматься" или "я не знаю, читал, но забыл", то лично у меня было бы сильное подозрение, что вряд ли вообще знал (и я запросто смогу ошибиться).

                  • 0xd34df00d
                    /#22123486

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


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

                    • wataru
                      /#22123902

                      Очень интересная тема, а как оно вообще работает в идрисе, если там все иммутабельное? Типа как персистное сбалансированное дерево в императивщене, когда разные "версии" дерева ссылаются на одни и те же вершины?

                      • 0xd34df00d
                        /#22124080

                        Да, именно так.


                        Собственно, Окасаки, пусть и на примере ML'а, который допускает мутабельность, но в типа-чистом сеттинге и рассматривает все эти деревья в районе 24-й страницы.


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

                  • mayorovp
                    /#22123498

                    Если прочитать и забыть, то чем это отличается про "не читать"?

                    Ничем. Среднему программисту на самом деле нет необходимости знать ни числа Фибоначчи, ни B* деревья, на работе он не будет писать ни то, ни другое. Это всё — не более чем учебные примеры.


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

                    • Neikist
                      /#22123604

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

                    • imanushin
                      /#22125752

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

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


                      Для вопроса про "процессор и спекулятивное выполнение" я бы ожидал от джуна даже просто не совсем корректной теории, вроде "пытается угадать результат if'а". Тогда как от сеньора я бы ожидал вдобавок еще примеры из жизни, например "это помогает в оптимизации условий assert'ов, а еще Java/.Net расставляют подсказки на основе своих замеров, чтобы все ускорить типичное выполнение кода; как следствие — не всегда стоит переконфигурировать систему после старта, если говорить о сверкритичных по скорости вещах". Хотя, этот вопрос я бы тоже не задавал ни джуну, ни сеньору.


                      Скорее всего, я бы задал вопрос про деревья, в стиле "как может помочь структура 'дерево' решению задач". И от джуна я бы удовлетворился ответом в стиле "у них скорость поиска log N", тогда как от сеньора я бы ожидал "скорость поиска log N, причем основание этого логарифма зависит от типа дерева, например, для файловых систем часто используют большие основания, то есть деревья ветвистые, но для поиска в памяти они работают зачастую менее эффективно, так поиск на каждом ярусе занимает M, а не log M в общем случае, а значит логично использовать бинарные. А еще есть всякие цифровые деревья, которые можно использовать для матчинга url с роутом (маршрутом) в web приложении, хотя тот же Spring Flux (который самый новый) использует тупое сравнение с общей сложностью min(M*N)^2, где M — средняя длина маршрута в приложении, а N — длина URL'а от пользователя".


                      Повторю тезис: если от джуна ожидать теории, то от сеньора надо ожидать теории и практики. Если от сеньора не ожидают теории, то от джуна её тоже не надо требовать.

                      • mayorovp
                        /#22127874

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

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

                        • imanushin
                          /#22128128 / -1

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

                          Сеньор не сможет рассказать идею B дерева? Это сейчас шутка или сарказм такой?
                          Сразу оговорюсь — если из всех деревьев программист не слышал именно об этом, то такое случается, тут нечему стыдиться. Если же "сеньор" не сможет вообще ничего рассказать ни о каких видах деревьев, то вот вешать на него эту лычку я бы не стал в общем случае. Да, бывают редкие-редкие исключения, наверное, когда человек идеально разбирается в IT системах, но вот конкретно этот пункт не знаком. Я такого не встречал, к сожалению.


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


                          На хабре тут уже приводили пример, как рендеринг React приложения можно сделать случайно за O(N^2) (самый простой случай — перерисовка полного состояния при бесконечной верстке). И вот "сеньор" должен видеть такое сразу (и в более сложных сценариях тоже), в моем понимании. И из-за этого и вырастает требование по алгоритмам и пр.

                          • mayorovp
                            /#22128324 / +2

                            По моим заметкам, кроме всяких там реактов и растов, человек должен еще обладать достаточным кругозором в IT

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

                          • int03e
                            /#22128618 / +2

                            Зачем в стандартном веб-девелопменте (а это круды и развесистая бизнес-логика, в основном) знание деревьев? Ну да, они используются для индексов в базах данных (по дефолту, я не говорю про всякие другие индексы). В бизнес логике стандартных веб проектов деревья нужны чуть чаще чем никогда. И, если человек хоть примерно понимает, что такое О(n), и чем оно отличается от O(n^2), и что такое проблема N+1 SQL query — то это уже достаточно для работы. Не будьте так категоричны.

                            • sumanai
                              /#22128648

                              И, если человек хоть примерно понимает… — то это уже достаточно для работы.

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

                              • VolCh
                                /#22129226

                                Зачем, если достаточно для работы сеньором? )

                            • VolCh
                              /#22129224

                              Очень частое применение деревьев в стандартном веб-девелопменте — меню и каталоги товаров. А также другие иерархические справочники а-ля страны/города. Про DOM я уж молчу.

                              • cudu
                                /#22130854 / -1

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

                              • nugut
                                /#22133554 / +1

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

                  • ladle
                    /#22124382

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

                    Макс фон Лауэ

                    • imanushin
                      /#22125596

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

                      Для тех кто не знал — это цитата физика XIX-XX веков, нобелевского лауреата.


                      Я правильно понимаю, что она является истиной (с Вашей точки зрения) и в доказательстве не нуждается? Ну то есть Вы советуете dominigato не спрашивать не только синьоров про красно черные деревья, но и джуниоров, так как главное — это сообразительность, верно?


                      Можно спросить dominigato — Вы прислушаетесь к мудрости предков и перестанете спрашивать людей про алгоритмы и технологии, верно?

                      • Neikist
                        /#22125628

                        Меня на первую работу кстати именно по соображалке принимали. Я об алгоритмах не знал ничего тогда (образование непрофильное, комп только года 3 как появился в собственности), программировать тоже почти не умел, но дали несколько задачек на сообразительность и после них взяли. Судя по всему разочарован работодатель не был по итогу моей работы у них.
                        А вот сеньер как по мне знать должен. А если не знать — то уметь вывести из того что знает.

                        • imanushin
                          /#22125838

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


                          Вы привели отличный пример — на старте карьеры (если я Вас правильно понял) требования были ниже, чем в будущем. И тут все корректно, вопросов нет.

                          • Neikist
                            /#22125848

                            Ну да, с выделенным жирным я согласен.

                          • VolCh
                            /#22126446

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

                            • imanushin
                              /#22126834

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

                              Ну если сеньор скажет что-то "для TreeMap надо переопределить hashCode" или "для HashSet надо определить компаратор", то я вот поспрашиваю теорию еще. Так как меня будут терзать смутные сомнения.


                              Я повторюсь — для сеньора требования будут более глубокими. Например, если человек с 10 годами опыта написал "работал с большими базами данных", я спрошу "зачем нужна статистика". И этим вопросом заранее подразумевается, что человек ответит еще и про сложность структур данных, которые может использовать SQL.
                              Если же на вопрос выше будет ответ "нууу типа работать должно правильнее со статистикой", то это скорее будет означать, что знания у человека крайне поверхностные, а под фразой "работал с технологией Х" скорее стоит понимать "работал в проекте, где была технология Х".


                              Другой пример — спросить про "когда в Java/.Net наивная реализация toString/ToString выдаст O(N^2) по памяти, где N — это результирующая строка". Наивная реализация в моем описании — это функция вида return StringUtils.join(field1, field2, field3, ...). Ну и, конечно, у каждого field одинаковая ненулевая длина toString (для простоты вопроса). От сеньора знания по сложности требуются по-умолчанию.


                              Еще пример — спросить, как в React приложении можно получить сложность отрисовки O(N^2) (N — число элементов в результирующем dom дереве).

                      • ladle
                        /#22125830

                        Спрашивать-то можно о чём угодно, только надо уважать и ценить великую способность человека — забывать.
                        Например большинство людей, имеющих водительское удостоверение, имеют смутное представление о многих правилах дорожного движения, скажем правила разъезда с трамваем (если каждый день не ездят по трамвайным путям) или жесты регулировщика (это учтено в правилах — «Регулировщик может подавать и другие понятные участникам движения сигналы ...»), тем не менее аварий происходит удивительно мало (правила проезда перекрестков знают практически все). При приёме водителя на работу ему экзамен не устраивают — интересует наличие категории и опыта работы.
                        А ценность учёбы (в той или иной форме) я не отрицаю — именно при этом происходит развитие и приобретаются необходимые знания, навыки и опыт.

                        • imanushin
                          /#22126714

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

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


                          Если мы спрашиваем про Х у джуниора, и надеемся, что он все помнит, то значит можно спрашивать про Х у сеньора. Более того, я скорее поверю, что 20летний будет стрессовать, чем 30летний.


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


                          Например большинство людей, имеющих водительское удостоверение, имеют смутное представление о многих правилах дорожного движения

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

                        • amofon
                          /#22126786 / +1

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


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

                          Но в свободном разговоре на темы архитектуры ИТ-систем будет всё равно видно сеньор вы или нет.

                      • dominigato
                        /#22125940

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

                        • imanushin
                          /#22126792 / +1

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

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


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


                          Условно, от опытного врача я ожидаю бОльших знаний по предмету, а не меньших.

                          • dominigato
                            /#22127466

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

                            • imanushin
                              /#22127768

                              Если вы сейчас с ходу под стрессом за время интервью (не больше часа) напишете реализацию алгоритмов, которые вы учили 10 лет назад и не использовали — поздравляю. То ли у вас суперпамять, то ли вы с тех пор ничего нового не выучили.

                              А у вас джунов просят написать по памяти реализацию дерева на собеседовании за час? Если да, то уже собеседование какое-то дикое.


                              Обычно, на собеседовании максимум просят написать класс "хеш таблица" и определить метод Add (ну или максимум — еще и Delete) с корректной асимптотикой (константа не важна, естественно). С этим сеньоры прекрасно справляются.


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


                              На самом деле хорошо ответил Amomum в соседнем топике:


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

                              • dominigato
                                /#22128148 / +3

                                А у вас джунов просят написать по памяти реализацию дерева на собеседовании за час?
                                Это у вас у сеньоров просят такое. А я прошу такое у сеньоров не спрашивать и не просить их писать имплементацию этих алгоритмов на доске. Неужели до сих пор непонятно?

                • Neikist
                  /#22123580

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

              • akryukov
                /#22123374 / +1

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

                • Neikist
                  /#22123594

                  Сеньер как по мне не обязан помнить детали реализации, но обязан понимать подходы лежащие в основе этих алгоритмов, уметь распознавать соответствующие задачи где эти подходы применимы, и соответственно применять. Грубо говоря не знать что сортировка слиянием основана на подходе «разделяй и влавствуй», а уметь применять сам этот подход. Мочь разглядеть в задаче что она сводится к решению одним из известных ему способов/алгоритмов, хотя исходная задача сформулирована в других терминах, и т.п.
                  А вот джуну и мидлу да, обычно достаточно для стандартных вещей помнить/уметь прикинуть временную и сложность по памяти.

                  • imanushin
                    /#22125612

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

                    Еще раз: разговор зашел с того, что о некоторых вещах джуну знать обязательно, а сеньору — нет. Именно с этого.


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

                    • Neikist
                      /#22125634

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

            • imanushin
              /#22123398

              Потому что если сеньор занимается красно-черными деревьями он делает что-то не то.

              А если джуниор будет кодить красно-черное дерево, это он будет "делать то"? У меня вопрос-то хитрее: почему от джуниора требуют тех знаний, которых не требуют от сеньора?


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


              Или я бы понял ремарку "у сеньора мы все равно спросим, что лучше — TreeMap или HashMap", так как для их сравнения надо знать про красно-черное дерево (хотя бы в общих чертах). Однако, тут так же мы от сеньора требуем надмножество знаний джуна.


              Я уж не говорю, что есть старая схема (не ручаюсь за её корректность) — "если не можешь написать простой алгоритм, то зачем нам тебе доверять написание системы?" Как мне казалось ранее, все алгоритмы спрашивают ровно по этому — прежде чем комбинировать программу из кусков, продемонстрируй, что хоть немного разбираешься в этих кусках. Повторюсь — не ручаюсь за корректность, но, по моим наблюдениям, из этой фразы строятся гугловые собеседования.

              • mayorovp
                /#22123512

                почему от джуниора требуют тех знаний, которых не требуют от сеньора

                Потому что проверять кроме этих знаний нечего.

      • vladshulkevich
        /#22123598

        накуя вообще олимпиадное программирование на джоб-интервью? всех испортила книжка «карьера программиста»

  8. Kroid
    /#22119646 / +5

    Вам просто нужно отличать гуглеж незнающего человека от гуглежа непомнящего человека :)


    Когда пишешь на 4-5 языках практически одновременно (на чем-то по работе, на чем-то в качестве хобби, а что-то просто изучаешь), и у всех одна и та же стандартная функция из библиотеки называется по-разному, то легче бывает нагуглить, чем вспоминать.


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

    • Wingtiger
      /#22120704

      Вам просто нужно отличать гуглеж незнающего человека от гуглежа непомнящего человека :)
      Когда пишешь на 4-5 языках..., и у всех одна и та же стандартная функция из библиотеки называется по-разному, то легче бывает нагуглить, чем вспоминать.

      -инет, +иде, как я недавно написал выше.

      • Fedorkov
        /#22124568

        Лучше текстовый редактор без автодополнения или даже бумага с ручкой. Чтобы не отвлекаться на синтаксис и писать с устными пояснениями типа «не помню название метода, вроде .push()».

    • Mirn
      /#22123150

      «Когда пишешь на 4-5 языках практически одновременно»
      один раз пришлось разрабатывать проект под четыре платформы: веб, десктоп, микроконтроллер и fpga вместе с их схемотехникой, вот там такая каша в голове стояла… И даже не помогло то что я смог чтобы всё генирилось из одного си исходника, всё равно вылезло столько нюансов и мелочей, что я стал сомневаться в самых популярных функциях стандартной библиотеки. И реально если бы не гуглил и не сверял с доками любое казалось бы тривиальное поведение, то утонул бы в отладке.
      И к сожалению нередко собеседованиях встречал фирмы, которые спрашивали именно знание наизусть этих мелких нюансов и имён функций при рядовом фулстеке: веб, десктоп, микроконтроллер.

    • Stas911
      /#22124712

      Меня тоже удивляют люди, которые пишут на одном языке и такие «а че бы и не запомнить». Работаю в консалтинге и использование 2-3 языков одновременно — наша суровая реальность. Так я не то что методы — синтаксис языка гуглю периодически.

  9. rator
    /#22119654

    Вдохновляет.

    • Fenzales
      /#22120176

      Чем? Что в этой истории должно вдохновлять?

      • rator
        /#22120374

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

        • imurd
          /#22120790

          В одном комментарии эти слова не поместились?

    • rator
      /#22136228

      Ого, сколько обиженных товарищей тут… Диву даешься!

  10. /#22119658

    А нельзя было просто делать тестовое задание соответствующее тому, чем в основном надо будет заниматься? Какая при этом разница — в гугле они подсматривают или нет?

    • /#22120556

      Проблема в том, что из того, чем занимаемся, не получается задача на 30 минут.

      • /#22120760

        А кто заставляет делать тестовое не более чем на 30 минут? Поставьте полноценное тестовое задание в хвост процесса приёмки и с условием, что если его сделал за оговоренное время — получил вот такой оффер. Я вот буквально неделю назад тестовое давал — 8ч. Человек его сделал и принят на испытательный срок.

        • /#22120844

          Потому что тестовое задание на пол-часа кандидат может сделать в офисе, под присмотром, не ища ответ на stackoverflow. А задание на 8 часов, даже если он на него согласится, он будет делать дома. И тут уже вопрос — сам он его сделал, нагуглил или его приятель Вася помог.

          • sumanai
            /#22121136

            Думаю, тут намёк на то, что если соискатель сможет это сделать пусть с гуглом и Васей, то и на работе сможет это делать.
            Но 8 часов это дичь конечно же, такие компании сразу идут нафиг.

            • /#22121432

              Ну кто-то компанию нафиг посылает, а кто-то оффер получает с итоговой целью по оплате в +20% к запрошенной в резюме, тут уж кому повезет и кто чего стоит.

              • sumanai
                /#22121624

                За время 8-ми часового тестового можно пройти собеседование в нескольких других компаниях.

                • /#22123468

                  Вы вольны выбирать свою стратегию поиска работы. Хотите её строить по принципу «на каждую компанию не больше 2ч»? Да пожалуйста. Однако, как математик, могу сказать, что задачи на оптимизацию обычно не решают таким образом.

                  И да, я просто поделился своим опытом свежим.

                  • sumanai
                    /#22124132

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

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

                    • /#22124752

                      Если вы делаете тестовое задание не зная вообще никаких переменных и не имея даже оценочного суждения, насколько вам интересно конкретное место работы, то, на мой взгляд, это несколько неоптимально. Но это, повторюсь, безусловно, ваше право. И в такой ситуации (когда ничего не известно), вы правы, остаётся только максимизировать кол-во собеседований, так сказать «стрелять по площадям».

          • /#22121448

            Какой смысл ему привлекать Васю, если дальше будет испытательный срок, где всё равно будет ясна его эффективность на таких задачах?

            • /#22121466

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

              • /#22121504

                Такое ощущение, что вы придумали проблему и пытаетесь её решить. Ну даже если вы этого боитесь — ну обсудите вместе написанный им код. Если он легко ориентируется в том, что ему Вася помог, то скорее всего и при обычной работе он будет ориентироваться и быстро научится.

              • p_fox
                /#22124998

                Так испытательный срок на то и испытательный, чтобы убедиться, что человек может делать работу.
                Или не может.
                " тут уже вопрос — сам он его сделал, нагуглил или его приятель Вася помог"
                А какая разница КАК была сделана работа, если она сделана и есть результат?


                Если я не умею программировать, например, это не мешает мне купить микроконтроллер, погуглить и подсмотреть у кого-то код прошивки, погуглить как этот код поправить под свои задачи (или просто почитать комментарии), и что-нибудь этим микроконтроллером у себя автоматизировать. И оно будет работать, будет результат, будет решенная задача.


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

                • amofon
                  /#22125562

                  " тут уже вопрос — сам он его сделал, нагуглил или его приятель Вася помог"
                  А какая разница КАК была сделана работа, если она сделана и есть результат?


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

          • speshuric
            /#22121834

            В контексте 1С экзамен на 1С: Специалиста идёт 5 (если ничего не изменилось) часов и там 4 или 5 (не помню) задачи. Причём, не 1С-ника если спросить о времени разработки этих задач — будет оценка 1-2 недели (это если объяснить, что именно надо разработать). Если топикстартер будет давать задание в 1,5 такого экзамена — у него будет примерно 0 сотрудников. 80% не сдадут, 20% откажутся сдавать.

            • Neikist
              /#22121966

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

              • speshuric
                /#22122502

                В современных сертификациях (1С тут не одинока) почти всегда всё уныло, узкие срезы знаний и не вполне релевантно. Я бы даже сказал, что 1С-ный экзамен релевантнее многих. Но это задание по объёму точно вылетает за рамки того, что большинство соискателей готовы были бы сделать для тестирования.

                • Neikist
                  /#22122612

                  Вот я после 1с и понял что на сертификаты и прочие корочки смотреть смысла нет. Как и стремиться их получить. Понял это еще до сдачи спеца, но у франчей особые отношения с ними, так как вендор требует, потому они таки меня уломали за прибавку в, кажется, 25 или 30 % к зп (+10к). Очень мучался с подготовкой, просто засыпал за ковырянием этих задачек от скуки и их нудности.

                  • Xobotun
                    /#22123324 / +1

                    Смысла в них мало, согласен. Но временами так и хочется, чтобы на собеседовании посмотрели наличие сертификата, а то недавно было так:
                    — Назовите модификаторы видимости полей в Java?
                    — private, protected, public и package-private. Он же default. Ребята, у меня есть базовый сертификат OCA и четыре года опыта, давайте более сложные вопросы.
                    — О, сертификат? Оракловский, по восьмой джаве?
                    — Ага. Так что азы точно знаю.
                    — А, тогда переходим к вопросам посложнее. Какие методы есть у класса Object? (это тоже входит в список вопросов на подготовку)
                    — ...


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

            • /#22123492

              Вот смотрите:

              1. 80% не сдадут — так если на вакансию нужны люди, которые это должны уметь делать за положенное время — значит это просто волшебная экономия времени и ресурсов, позволяющая не платить этим людям з/п на испытательном сроке и не тратить на них своё время (а поскольку такое тестовое стоит в конце процесса приёмки на работу — значит без тестового мы бы 80% эти собрали себе в «пассив» и промучались бы с ними)

              2. 20% откажутся сдавать — с чего бы вдруг, если вы предложите интересные условия на своей вакансии? А уж как вы это обеспечите — это ваша задача, как работодателя. Я вас уверяю, хорошие спецы работу ищут не по принципу «лишь бы устроиться за 2-3 дня».

              PS: А еще сэкономленные на п.1 ресурсы надо потратить на интересные условия в п.2

              PPS: Есть еще вариант оплачивать такое тестовое, чтобы снизить количество тех, кто «откажутся сдавать», это тоже намного экономически более целесообразно, чем потом с 80% неудачных вариантов тратить время и бюджет на испытательном сроке.

  11. ColdTech65
    /#22119660

    Скорее stack overflow программисты)

  12. vrytov
    /#22119662 / +3

    Сначала погрузился тупо в помощь людям. Не получается решить задачу? Зови меня. Я подойду, сгоню тебя с компа, сяду и доделаю. А ты, бездарь, сиди рядом и запоминай, как работать надо.

    Это не помощь, а медвежья услуга, оказанная в надменно-высокомерном тоне.

  13. Druu
    /#22119708

    Я отслеживал все показатели их продуктивности и эффективности

    Это какие?

    • sumanai
      /#22121146 / +1

      Судя по статье, это число строк и закрытых тасков.

      • Druu
        /#22121198

        Ну тут все очевидно — плохо задачи распределяли, в итоге ребята начали простаивать.

  14. justhabrauser
    /#22119740

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

  15. gennayo
    /#22119782 / +1

    Ладно они у вас хоть гуглить умеют, уже хорошо :((

  16. AlexWoodblock
    /#22119784 / +1

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

    • vladshulkevich
      /#22123624

      не, ну если бы эту бумажку принимали бы на перфоманс ревью, тогда ок, можно и на бумажке

  17. JordanoBruno
    /#22119802 / +5

    Единственный, кто занимает не свое место в команде автора, это, очевидно, он сам. Люди, которых он набрал вполне себе способны решать те задачи, которые были пройдены на собеседовании. А если автор поленился задать дополнительные вопросы или расспросить про сами задания, то кто тут виноват, кроме автора?

  18. pnovikov
    /#22119846 / +1

    Почему бы кстати не предоставлять на собеседовании для решения задач самый быстрый компьютер с самой лучшей IDE но без интернета?


    Сам делю разработчиков на "авторов своего" и "сборщиков из готового". Последних недолюбливаю.

    • pnovikov
      /#22120008 / +1

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


      Но если речь идёт о несложных задачках на алгоритмы или системный дизайн — то вполне норм. Ну или как вариант можно давать заранее заготовленный проект с открытыми местами для дописывания логики/фикса бага или что вас там интересует.

    • Nihiroz
      /#22121112 / +1

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

      • pnovikov
        /#22122936

        Как я вас понимаю…
        (я не шучу, поглядите в мои публикации).

        • Nihiroz
          /#22124964

          У Вас по большей части архитектурные вопросы подняты. В моем же случае это не так критично, т.к. в Android сообществе вопрос архитектуры в данный исторический момент почти всегда решается в пользу Clean Architecture, а в маленьких пет проектах архитектура не так важна.
          В одной из Ваших статей столкнулся с близкой для меня проблемой строгой типизации и попыткой максимально полно отловить все ошибки ещё на этапе компиляции (одну из своих идей, связанных с этим вопросом описал в комментарии). В Android приложениях много что традиционно описывается через xml (верстка экранов, различные параметры, векторные изображения и многое другое), что часто приводит к падениям уже в Runtime. Использование xml было более-менее оправданно во времена многословной Java, в нынешние же Kotlin'овские времена плюсов в xml для этих целей вообще не вижу, т.к. Kotlin и более краток и типизирован и подсказки лучше работают.

          • Neikist
            /#22125078

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

            • Nihiroz
              /#22125118

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

              • Neikist
                /#22125178

                О, за идею спасибо. Надо бы по собеседованиям походить, а то за 6 лет всего на двух был, и то первое в 1с сферу, а второе при уходе в андроид, там вообще почти не копали знания. Хоть узнаю что подтянуть стоит, да может и попадется чего интересного.

      • JordanoBruno
        /#22123758

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

        • Nihiroz
          /#22124814

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

          • JordanoBruno
            /#22125144

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

            • Nihiroz
              /#22125152

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

              • JordanoBruno
                /#22125170

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

                • Nihiroz
                  /#22125218

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

      • nuclight
        /#22123786

        вместо простого JSON

        Вместо минного поля, а не простого. Бинарных действительно имеет смысл. Но в 2013 году, к счастью, CBOR уже стандартизировали в RFC, можно не велосипедить уже.

        • Nihiroz
          /#22124846

          Не в быстродействии (это не критично для пет проекта) и не в минности (не сталкивался с нестабильностью JSON) дело. А в том, что в Java использование рефлексии ограничено тем, что во время компиляции типы всех дженериков чистятся, и нет возможности без плясок с бубном раскодировать JSON в List<User>. Соответственно использование JSON'a накладывает определенные ограничения на передаваемые по сети данные.
          Проблема обострилась ещё тем, что я решил использовать для валидации данных и наглядности кода обертки вокруг значений. То есть вместо того, что бы использовать в коде String в качестве логина пользователя, я решил сделать класс-обертку Login, который во-первых проверяет в конструкторе корректность строки логина и дает возможность в дальнейшем уже не переживать по этому поводу, а во-вторых позволяет писать более выразительный код (user: Login выглядит куда понятнее, чем user: String, ведь в этом случае можно подумать, что в поле user хранится не логин, а какой нибудь другой идентификатор пользователя). Такую же обертку я сделал и для пароля. А потом оказалось, что для параметра серверного метода login совершенно не нужно писать свой класс (Обычно такие POJO классы называются LoginParam и содержат два поля: login: String и password: String), а можно просто использовать Pair из Kotlin'а: Pair<Login, Password>. Но такая конструкция совсем уже была неудобна для JSON сериализации через рефлексию. А компактность Kotlin кода позволяет весьма аккуратно сделать бинарную сериализацию.

  19. SergeyDeryabin
    /#22119936

    Видимо из-за таких опасений сейчас соискатели через одного просят сделать тестовое задание на полноценных 2 дня — неделю. Или на собеседовании просят написать за 20 минут функцию:

    echo calc(12)(4)(1)(fn($x, $y) => $x + $y); // 17
    echo calc(2)(3)(fn($x, $y) => $x * $y); // 6
    echo calc(5)(2)(fn($x, $y) => $x / $y); // 2.5
    


    или

    // чем заполнить переменную $i, чтобы код заработал верно
    var_dump(!is_bool($i) && $i == '1' && $i == '3' && $i == '5'); 
    // bool(true)
    


    или по телефону придумать реализацию связанную с оптимизацией и хранением в высоконагруженной части проекта. Задача практическая, как было сказано «попила не мало крови в свое время». Т. е. чуваки с тестовыми данными, пробовали разные запросы, «эксплейнили» их в доль и поперек не один месяц, а тут по телефону за 30 минут )))

    • MKMatriX
      /#22120050 / +1

      С bool(true) справился менее чем за 20 минут. Хотя понятия не имею зачем это проверять. С каррированием справился бы быстрее, но это было бы совсем не честно, где-то до сих пор в закладках статья про него.

    • Kwisatz
      /#22122422 / +1

      Ваш код нечитаем, спасибо, вы мне не подходите.

      • sumanai
        /#22123238

        Я бы всё таки спросил, для теста они такое написали, или у них в проде такое крутиться. И фразу выдал бы только во втором случае.

        • Kwisatz
          /#22124388 / +1

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

    • SerJook
      /#22123536

      Я бы сделал первую задачу через возвращающую саму себя лямбду + array_reduce (либо через функциональный объект),
      Вторую через магический метод __toString().
      За 20 минут, если не сильно нервничать, успеть можно.

      • DarkGenius
        /#22129272

        А как __toString() сможет учитывать, с чем будет сравниваться возвращаемое значение? Или он просто будет выдавать различные значения для разных вызовов?

        • sumanai
          /#22129758

          Ну да, массив и pop() какой-нибудь.

  20. 3263927
    /#22119982

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

    • IntActment
      /#22124696

      Соглашусь и добавлю: умение правильно составить вопрос так, чтобы гугл тебе выдал ссылку именно на то, что ты хотел найти — в наше время тоже навык. Создается впечатление, что гугл ищет по принципу «перемешать все слова из запроса и составить список самых популярных совпадений». Вот ищешь ты запрос в стиле «как на С++ из А сделать Б», а гугл выдает тебе страницу исключительно с ответами «Как из Б сделать А», при этом выкинув «с++» даже порою взятый в кавычки, как что-то ненужное. Ему же виднее, что ты хотел найти…

      • 3263927
        /#22125146

        я пользуюсь персонифицированным поиском уже давно, тоесть Гугл запоминает что я ищу и какие ссылки открываю и на каких задерживаюсь. и я заметил, что когда ищу на своём компьютере или телефоне (со своего аккаунта), то поиск оказывается намного более релевантным, чем с компьютеров моих учеников. но потом их аккаунты тоже обучаются и первым выходят сайт stackoverflow, потом Microsoft и так далее

  21. dominigato
    /#22120002 / +6

    Перевожу статью менеджера на русский с совкового:
    1) Интервью делать не умею, поэтому буду кидать дебильные задачи которые нашел в интернете. Кто решит, тот и прошел, больше ничего делать не умею и не хочу.
    2) KPI вдруг просели, виноваты конечно программисты, менеджер тут ни при чем.
    3) Все расселись по домам, мне теперь трудно заниматься микроменеджментом. Ор и ругательства в чате не помогают так как в реале. Мне страшно, не могу унижать людей как раньше.
    4) После возвращение в офис KPI не взорвались продуктивностью, виноваты конечно программисты, они плохие. Не брать же ответственность на себя. Ну и что, что теперь надо махать веслом в два раза больше чем раньше.
    5) Так как раньше было вроде неплохо, надо придумать почему программисты вдруг стали плохими. О! Надо сказать что они всегда были плохими, только хорошо скрывали это! Ну и что, что задачи остались такими же. Только теперь их гадкая натура проявилась.
    6) Надо придумать как они так прятались и почему я такой хороший менеджер их раньше не раскусил. О! Они меня все время обманывали! Искали код в интернете, так и скажем. А теперь не ищут почему-то, но это мы не скажем.
    7) Надо еще чем-то заполировать из «олд-скул», «раньше было лучше», «эх, пошла молодежжж» и т.д.
    профит?

    • dartod
      /#22120186 / +1

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

      • ivanovdev
        /#22120468

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

        • dartod
          /#22120476

          И такое может быть, но «не пойман — не вор»

        • Calc
          /#22127932

          или любимое перетекание MVC в MVP и так далее по цепочке без учета желания бизнеса по времени разработки

    • eshirshov
      /#22120802

      вроде уже как 30 лет прошло а людей всё ещё садовый инвентарь беспокоит.:(

  22. Matisumi
    /#22120036 / +4

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

    • dartod
      /#22120378

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

    • VolCh
      /#22122778

      Как вариант: повторное было негласное, под видом помощи в текущей задачи. Второй вариант: аттестация на повышение

  23. DenisTrunin
    /#22120130

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

    • Neikist
      /#22120182

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

      • DenisTrunin
        /#22121098

        Что значит не пошли бы работать. Большинство таких людей как раз и ищут работу и клиентов(для этого они занимаются своими рейтингами, конференциями и прочими гитхабами). И они как раз и специализируются на «трудных» клиентах. Другое дело что рейты там будут соответствующие

        • Neikist
          /#22121190 / +1

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

    • Andrey_Epifantsev
      /#22120340

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

      • vedenin1980
        /#22120740 / +1

        У меня высокий рейтинг на StackOverflow

        Ну это смотря, что вы считаете высоким рейтингом. :) У меня на английском SO рейтинг приближается к 50k, но я не считаю его прямо особо высоким (это лишь 3k место в глобальном списке).
        Ну, в смысле, что я понимаю, что я опытный разработчик в своем стэке, но не суперзвезда, которая может открывать двери HR гугла ногой и требовать принять её без собеседований.

      • Big-Bag
        /#22144388

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

    • apro
      /#22122232

      звезды довольно трудно накрутить

      А в чем сложность? Зарегистрировал 100500 пользователей и от их имени поставил звездочки.
      По-моему причина отсутсвия накрутки просто в том что это никому ненужно.

      • vedenin1980
        /#22122804

        Ну на SO таких хитрых вычисляют и удаляют накрученные голоса (их очень легко обнаружить), а при рецедивах — банят.

        • apro
          /#22122836

          Так мы про github говорим, причем здесь SO?

          • vedenin1980
            /#22122984

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

    • onlinehead
      /#22123090

      Хехех. Вот кстати про рейтинги на SO достаточно любопытно.
      Я там, допустим, в топ 3% глобальном сейчас, в прошлом году был в топ 1% или даже 0.5%, и на 30 месте по весьма хайповому тегу kubernetes (если интересно, вот тут можно свое место по тегу посмотреть — data.stackexchange.com/stackoverflow/query/52750/tag-rankings-fun). Был сильно выше, последний год очень редко отвечаю. Рейтинг набран исключительно ответами в скоупе Kubernetes и сопутствующих технологий.
      Так вот, нужна эта информация примерно никому. Никто туда не смотрит, не смотря на ссылку на профиль в СV.
      Ни разу еще такого небыло, чтобы кто-то сказал «да, мы не будем задавать вам тупых вопросов по K8s, потому что видели на SO что вы очевидно знаете на них ответ и даже отвечали там на точно такой же». Выборка — порядка 15-20 собесов за последние два года. И это учитывая, что все собеседования были в рамках европейского\американского рынка труда, в англоязычных компаниях и там уж точно нет проблем с тем, чтобы пройти по ссылке на англоязычный портал и что-то там понять.

      • dominigato
        /#22123160

        То же самое, все эти SO и Github и профили там и профили сям — абсолютно никому не нужны и никто на это не обращает внимания, кроме может парочки хипстерских стартапов, которые ну максимум откроют линк. Но скорее все просто галочку поставят.
        Мой профиль на гитхабе можно на выставку посылать, но за последние лет 8 интервью никто туда даже не заглянул. Предпочитали спрашивать идиотские вопросы, нагугленные в интернете.

        • solver
          /#22124194

          Говорить за всех — моветон.
          Если кандидат в CV даёт ссылку на гитхаб, всегда смотрю что за проекты делает кандидат и в каких участвует.
          Это просто кладезь для собеседования. Куча предметных вопросов, а почему ты тут вот так сделал, а здесь вот так, а как можно по другому это решить?
          Не надо задавать тупых вопросов, ответы на которые в гугле пачками висят.
          И не надо выдумывать нестандартные вопросы, они сами из кода проистекают)


          Как пример что там можно найти)
          В одном из недавних интервью, кандидат с несколькими годами опыта в Java + Spring дал ссылку на гитхаб, а там на сервисах висят одновременно 3 аннотации: Component, Service, Repository. Было забавно слушать фантазии на тему того как спринг обработает эту ситуацию)


          P.S. Проблема только в том, что на пару-тройку десятков последних соискателей гитхаб был только у одного.

          • Maksclub
            /#22124204

            а зачем слушать и звать в таком случае?

            • DrPass
              /#22124354

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

            • solver
              /#22124476

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


              В данном конкретном случае кандидат не понимал, что делает. Просто "так привык" и "всегда так делали", т.е. он банально не понимал, что этот код значит.


              Но меня вполне устроило бы объяснение в духе: "А, лол, это копипаста, очевидная хрень написана, потому что… и объяснение что там написано и почему не имеет смысл так писать".

          • DarkGenius
            /#22129296

            А что если кандидат в теме своих проектов разбирается намного лучше вас и у вас не будет хватать экспертизы, чтобы оценить правильно ли он сделал и насколько правильно?

            • VolCh
              /#22129334

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

            • solver
              /#22130918

              Если бы вы внимательно читали, что я написал, то могли увидеть, что я не решаю "правильно" ли решена тема проекта.
              Мы же не бизнес развиваем, а техническое собеседование проводим)
              И меня интересует в первую очередь техническое решение и его объяснение почему именно так сделано. Это тема для обсуждения решения, а не далеко идущие выводы по паре строк кода.
              Когда разовьетесь как инженер, вам станет понятно, что единственного "правильного" решения просто не существует. Всё можно сделать разными способами. А собеседование на примере проекта это всего лишь способ пообсуждать эти решения, чтобы понять как человек мыслит и принимает решения.

      • akryukov
        /#22123198

        Дело в том, что в CV можно вставить ссылку на любой произвольный профиль SO.
        Как убедиться, что тот крутой чувак с SO это действительно вы?

        • onlinehead
          /#22123250

          Лично у меня в профиле на SO написаны имя и фамилия, он не анонимный.
          Вряд ли есть еще один человек с таким же именем и фамилией, который занимается примерно тем же чем я, учитывая что я не «Джон Смитт».

          • Neikist
            /#22123270

            Я как то спустя пару лет как свой первый ПК получил зашел в IRC что то в #linux канале спросить, ибо линукс впервые поставил, а на башорге ирк чатики часто упоминали. В итоге совершенно случайно за пару часов нахождения в этом чате наткнулся на своего тезку по имени и фамилии (Кирилл Власов, не сказать что прям частое сочетание) который именно в тот момент их чату спалил. Точнее спалил он фамилию, но я увидев однофамильца имя тоже уточнил. Он правда занимался тогда веб разработкой а я только начинающим интересоваться айти студентом был, но как бы совпадения случаются. Даже сейчас список друзей в ВК свой проверил, он до сих пор там висит, значит не ложные воспоминания)

          • akryukov
            /#22123358

            Ок. Тогда следующий уровень.
            Как убедиться, что тот крутой чувак отвечал на SO самостоятельно, а не нанимал китайцев для прокачки аккаунта?

            • onlinehead
              /#22123554

              А зачем нанимать китайца для прокачки профиля SO? Это же не биржа какая, заказы там не раздают,
              Вы мне кажется придумываете какую-то проблему, которая могла бы объяснить «почему не стоить верить человеку». В таком случае можно много заговоров подкинуть, к примеру — интервью за меня может проходить тоже другой человек. Ремоут же.

              • akryukov
                /#22124872

                А зачем нанимать китайца для прокачки профиля SO?

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


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

                • onlinehead
                  /#22125868

                  Но ведь в таком случае и CV можно подделать. У меня 12 лет опыта, из них бОльшая часть в российских компаниях, где толком концов не найдешь. В трудовую никто не смотрит, потому что не знает, что она существует. По сути — все на словах.
                  Я же не говорю о пропуске собеседования в этой части вообще, я говорю о весьма тупом опросе, вместо перехода к сути дела. Какой смысл долбить человека тупыми базовыми вопросами, чтобы вызвать у него скуку и ненависть вместо того, чтобы обсудить что-то действительно интересное и важное — архитектуру там, тонкости использования, малоизвестные, но важный грабли, паттерны и т.д. Понятно, что для того, чтобы поднять эту серьезную тему, надо убедиться что человек хотя бы основы знает, но если понятно что человек основый знает, то можно немного сохранить ценное время и пройти по более полезным вещам. Я сам собеседую периодически, недостаток живой информации о кандидатах весьма острый, любая доп. информация кроме резюме на самом деле большая ценность, но то ли я такой замороченый, то ли у большинства в голове скрипт засел, то ли просто большинство не особо заморачивается.
                  Кстати про «голос изменится» — большинство отборов сейчас — это раунды с совершенно разными людьми на разные темы. Чисто теоретически один человек может проходить одно собеседование, другой — другое и то, что это были разные люди никто не узнает.
                  Даже потом, т.к. кандидатов обычно много и вряд ли кто-то запомнит голос какого-то конкретного человека и потом свяжет его с тем, кого увидит через какое-то время лично.

        • dominigato
          /#22123364

          Там есть Jobs, где можно свое резюме разместить со своими данными и т.д.

        • 0xd34df00d
          /#22123518

          Ну если у меня один и тот же ник в почте, с которой я отправляю письмо, в гитхабе и в доменном имени блога, то, наверное, это я?

      • 0xd34df00d
        /#22123510

        Ну мне в FAANG-компании скипнули phone screening из-за гитхаба (хотя там по звездочкам не оч), и в другой компании вообще скипнули почти все техническое резюме.

      • DenisTrunin
        /#22124630

        Хм. А вы в резюме это указывали(что входили в топ1%)? Ну т.е. чем руководствовались люди задающие вопросы в таком случае

        • onlinehead
          /#22125874

          Тем, что они туда не смотрели:)
          А указывать текущую позицию в CV рисковано, она регулярно пересчитывается и сегодня ты топ 0.5%, завтра топ 1%, послезавтра топ 3%, а потом еще куда-то съедет. Возможное несоответствие несет больше рисков, чем возможное игнорирование этого пункта вообще.

    • event1
      /#22124760

      А что делать, если у кандидата нет аккаунта на github или SO?

      • DenisTrunin
        /#22124988

        Ну тут также как с другими работами и зависит от вашей позиции.
        Если вы наемный работник, работаете за зарплату, то вам важно чтобы если кандидат все зафекапит, вас не обвинили. В этом случае нормальной выглядит стратегия гугления типичных вопросов для собеседования и спрашивания их.
        Если вам хоть немного важно качество работы, то поступаете так же как с другими работниками. Я вот недавно нанимал дизайнеров, у них у каждого инстаграм(что в нашем случае равно github или SO), смотрите, выбираете. Ну т.е. я допускаю что может быть есть отличные дизайнеры которые не ведут инстаграм, но я бы побоялся их нанимать

        • event1
          /#22125860

          Всё-таки, в инстаграм дизайнеры выкладывают примеры готовых работ. Соучастие в проектах на github или SO отнимает куда больше времени и, что ещё важнее, творческих сил. По-этому, ожидать что разработчики будут поголовно в чём-то таком участвовать — странно.

          • Neikist
            /#22125950

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

          • DenisTrunin
            /#22127084

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

            • event1
              /#22127170

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

              • DenisTrunin
                /#22127336

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

              • dominigato
                /#22127476

                Какие личные качества мешают выложить проект в гитхаб и написать блог в каком-нибудь медиуме? Здесь же пишете.

                • event1
                  /#22127614 / +1

                  Если есть проект, то обычно ничего не мешает его выложить на гитхаб. Но, у многих хороших специалистов нет проекта. Например, если человек работает на работе с полной отдачей, потом дома «отдыхает» по хозяйству/с детьми, потом читает десяток страниц книг, потом спит, то времени на проект, очевидно, не хватит. Делает ли это его плохим программистом? Кроме того, чтобы пилить свой проект его надо придумать. Не все наделены достаточной фантазией, чтобы придумать что-то достойное. Кроме того, человек может быть излишне самокритичным и считать свой достойные идеи ерундой. И это тоже не делает его плохим разработчиком.
                  По поводу блога, я вот хабр читаю лет десять, а писать начал две недели назад. Если же более глобально, то в России на 1-2 миллиона работников ИТ сферы (не считая русских из других стран) приходиться столько активных блогов на хабре? 1000? 10000?
                  Какие личные качества мешают писать в блог? Перфекционизм (не хочется писать плохо или ерунду) и стеснительность

                  • dominigato
                    /#22128172

                    Делает ли это его плохим программистом?
                    Нет, не делает конечно. Но он явно не очень мотивирован и программирования у него это чисто работа. Что вполне нормально, конечно.

                    • amofon
                      /#22128816

                      Делает ли это его плохим программистом?


                      Нет, не делает конечно. Но он явно не очень мотивирован и программирования у него это чисто работа. Что вполне нормально, конечно.


                      Обожаю категоричные мнения!

                      Я вот уже много лет как превосходно мотивирован в программировании.
                      Но на ГитХабе у меня нет пет-проектов. У меня их вообще нет.
                      Мой любимый «пет-проект» на сегодня — это тот проект над которым я сейчас работаю, за который мне и платят деньги.

                      • dominigato
                        /#22128930 / +1

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

                        • amofon
                          /#22129832

                          Если вам никогда не приходила мысль в голову делать что-то еще, помимо того за что вам платят


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

                          И что то, за что платят деньги — приносит удовольствие? Просто потому что он так выбрал.

                  • Stas911
                    /#22128228 / +1

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

  24. iamVitalya
    /#22120168

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

    • dfgwer
      /#22122710

      Но тут вмешиваются галерные метрики, ты должен писать, а не осмыслять. На это слишком много времени уходит.

  25. lisalavo
    /#22120170

    Хочется выступить скромным адвокатом дьявола, позорного поколения G(oogle-программистов).

    В первый день учёбы в институте нас собрали в аудитории на кафедре, и старый прокуренный дядька, зам. декана и доцент, сказал: «Институт не даёт знаний. Он учит добывать знания самостоятельно».

    В первый день учебы на каждом учебном курсе, будь то «Основы программирования», «Сетевые технологии», «Тестирования ПО», «Операционные системы» преподаватели честно признавались «инфы — гора, раньше я этот курс читал 2-3 семестра, сейчас — один, а рассказать нужно то же самое + современные реалии, готовьтесь». Тут простонет времени посидеть в библиотеке и поизучать «все подряд», физически нет этого времени, потому чтоизучать нужно слишком много. А студенты всё те же самые люди, с теми же самыми нейросвязями в мозгу, двумя руками и двумя ногами, как было в начале 2000х, конце 1970х и пр.
    Потом вот с этой кашей в голове ты выпускаешься. Уходишь из общаги, надо где-то жить. Просить родителей оплачивать жилье или жить с ними — уже стыдно, тебе 24 (магистратуру же закончил, умничка), большой человек. Идешь на собеседование по специальности, а там тебя валят сразу всем (на всякий случай): основы ООП, историю Java, что такое MVC, опишите алгоритм Дейкстры, найдите Аленький цветочек, расскажите про Java Beans, перечислите все методы библиотеки String, опишите пару аннотаций, «а что вы нервничаете? мы же с вами так хорошо беседуем», «ну а теперь решите задачу». Неужели кто-то упустит возможность найти красивое решение, чтобы попасть на желанную должность?

    • HerrDirektor
      /#22120354 / +1

      Да всё правильно вы пишете. Если бы лично у меня не было гугла, то я бы так и писал однотипный код на K&R Си, ибо начинал с него (когда этих ваших интернетов еще не было).
      Да, в 95м меня можно было ночью дёрнуть за пятку и спросить как решить на Си какую-нибудь там задачу о рюкзаке (например), я бы скорее всего написал бы ее и без ПК (и возможно даже без ошибок).

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

      И только с появлением возможности смотреть на большое количество ЧУЖОГО кода (интернет+поисковики), возможности делиться знаниями, все сразу круто пошло в гору.

      Именно условный «гугл» (источников конечно же больше — это и SO и гитхаб и прочие ресурсы) позволяет мне сейчас довольно свободно и более-менее результативно на 5-7 языках и разбираться на среднем уровне в десятках технологий. Именно возможность получить мнение по моему коду от более продвинутого камрада, который может предложить более быстрое/элегантное/простое/красивое/итп решение моей проблеме — вот это решает. А не возможность «писать код без ПК».
      И меня не смущает факт того, что если меня прямо вот сейчас просить про упомянутую «задачу о рюкзаке», я не то, чтобы не решу ее на бумаге, я даже вряд ли сходу вспомню сам алгоритм решения. Зато я знаю, где за 5 секунд про это в мельчайших подробностях почитать, а уже после я без проблем решу ее на любом доступном мне языке. И если сильно будет нужно — на неизвестном на текущий момент мне.
      Гугл решает, да.

  26. Zangasta
    /#22120352 / +1

    Я — хороший специалист. Уж поверьте на слово.


    Не программист, экономист — но не суть. Несколько лет назад, когда я устраивался на работу, энчар выдала мне лист бумаги и калькулятор: "Составьте бюджет".


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

    • podde
      /#22122644

      Чем закончилось собеседование?

      • Zangasta
        /#22123434

        Решил что надо мной издеваются и ушел.

  27. Akavi
    /#22120426

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

    • maar
      /#22120596

      А какого рода были показатели?
      loc?

      • Akavi
        /#22124730

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

    • Daddy_Cool
      /#22120664

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

      • Andrey_Dolg
        /#22121074

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

    • Femistoklov
      /#22121314

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

      • Akavi
        /#22124734

        Понаблюдал. Ищет решение аналогичной задачи, потом пытается ее перетащить к себе путем копипаста, на простых задачах получается хорошо, а чуть с другими условиями — все, начинается гадание. Нет понимания сути кода (что он делает и почему так).
        Сейчас вернулись к основам (базовым курсам), которые уже «прошли» и начали снова вдумчиво изучать.

        • Femistoklov
          /#22127548

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

          • Akavi
            /#22129192

            Например делала ВПФ (внешнюю печатную форму) и внешний отчет, получилось. Потом нужно сделать еще одну ВПФ, но сложнее, чтобы был диалог для указания дополнительных параметров (по сути надо скомбинировать первых две работы), все, готовый пример не нашла и больше недели возилась.
            Да, речь идет об 1С.

            • Femistoklov
              /#22129406

              Всё понятно.
              Надо было сделать два стандартных компонента для обработки своих данных со стандартными интерфейсами. А вот потом надо было обеспечить взаимодействие двух подобных компонентов, но для этого нет удобных стандартных интерфейсов, интеграция в разных ситуациях строится по-разному и есть какие-то нюансы. Это всё судя по ссылкам из гугла:
              forum.infostart.ru/forum9/topic206847
              infostart.ru/1c/articles/694647
              Тут уже явно требуется не только хорошее знание платформы, но и опыт реализации таких штук. Неудивительно, что стажёр на чём-то споткнулась, удивительно, что сидела целую неделю и билась об стену, вместо того чтобы подойти и сказать «я тут застряла, не получается вот то-то». Вот об этом бы я на вашем месте задумался и поискал причины, а не о показателях.

              • MaximChistov
                /#22135372 / +1

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

        • Jecky
          /#22128978 / -1

          Да, гуманитарии, часто делают только так и по-другому не могу.

    • JordanoBruno
      /#22123828

      не запоминает даже что было неделю назад и не понимает суть кода

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

      • nuclight
        /#22123908

        Вы пойдёте оперироваться к хирургу, который зазубрил, сдал и забыл, потому что желания разбираться нет?

        • JordanoBruno
          /#22124014

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

      • inkelyad
        /#22124034

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

  28. /#22120574

    С одной стороны да. С другой стороны, звучит как «эх молодёжь, когда пишут на своём этом новомодном Си, не понимают, какой код генерирует компилятор, не умеют читать в машинных кодах, не знают чем D-триггер от RS-триггера отличается, не умеют с помощью осцилографа найти поломку в менфрейме, ну разве это дело!»

    • nuclight
      /#22123826

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

      • 0xd34df00d
        /#22124142

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


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

  29. HellWalk
    /#22120824

    Автор, а в чем проблема?

    Хотите спецов, которые отлично решают задачи на бумажке, без интернета — так ищите. Ну будет у вас конверсия 0.1% от приглашенных — в чем проблема? За капризы надо платить.

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

    • VolCh
      /#22122802

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

  30. Wizard_of_light
    /#22120828

    Только к заданиям на бумажке не возвращайтесь, умоляю. Дичь же — всё равно что экскаваторщику на собеседовании предложить тестовый кубометр лопатой выкопать или водителю тестовые десять километров пробежать.

    • nuclight
      /#22123832

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

      • Neikist
        /#22123872

        За все 6 лет ни разу не видел чтобы кто то писал псевдокод на доске или бумажке. Максимум схемы рисовали.

        • nuclight
          /#22123914

          Не видел — не значит "не бывает". А псевдокод на доске обычно проще, чем блок-схему.

  31. DX168B
    /#22120892

    Я раньше тоже был гугл-программистом, но обычно только один раз. То есть, списав код со StackOverflow, я старался вникнуть в суть кода и наматывал себе на ус. Сейчас Гугл требуется только для поиска документации к библиотеке и примеров быстрого старта. Всё остальное уже не нужно, так как базовые вещи уже на уровне рефлексов.

    • Sly_tom_cat
      /#22121096

      Если вникать — то это не гуглопрограммист (в понимании автора).

  32. igornem
    /#22121006 / +1

    Что-то мне мало верится, что в гугле можно так быстро найти решение на отдельную задачу, прям чтоб и код красивый и структуры и оптимизация. Либо задания были не сложнее 2*2=4, но тогда непонятно, откуда вводы про хороший код.
    Я сам программист и не раз проходил интервью с компьютером, скорость потска кода в гугле намного меньше чем написание его самому.
    В-общем, так и зочется воскликнуть: "поздравляю вас, автор, соврамши"

  33. f000
    /#22121008 / -1

    Сам не программист, учился не на программера, но в курсе были и ЯВУ и ООП и SQL и ассемблер (начало 2000х). И да, нам давали базу и больше учили учиться (самообразование, поиск нужной информации). Работаю не программистом, но в работе и для интереса использую программирование на разных языках. Ни в одном из них не являюсь крутым специалистом, знания на уровне наверное джуна (msSQL знаю лучше других, занимался около 10 лет, знаний хватало для поставленных задач). И т.к. это происходит набегами для реализации каких-то конкретных прикладных задач, не заморачиваюсь по поводу нагугливания решений как полностью, так и кусков кода и отдельных методов. Дальше стараюсь вникнуть что какой кусок делает и что мне нужно переписать под себя для внедрения в свой код. Плохо? С точки зрения саморазвития? — не совсем хорошо. Но с точки зрения экономии времени — отлично.

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

    Полное нагугливание всего и всегда, без осмысления — это зло. Типа, зачем самому думать если «весь» код давно написан (по аналогии, все географические/физические/химические/любые другие открытия уже сделаны, на самом деле нет). Но совмещение одного с другим, на мой взгляд, должно давать неплохие результаты. Абстракции на бумажке + конкретика в IDE.

    • f000
      /#22121334

      минусаторы — аргументируйте

    • Xobotun
      /#22123410

      Дальше стараюсь вникнуть что какой кусок делает и что мне нужно переписать под себя для внедрения в свой код.

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


      набросать карандашом на бумаге будет быстрее и куда нагляднее

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


      минусаторы — аргументируйте

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

      • f000
        /#22123986

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

        Ровно об этом я и писал :)

        Несовременную бумагу можно заменить на модную доску и фломастеры или интерактивную eBord. Естественно, есть смысл в таких вещах писать укрупненные алгоритмы, схемы и т.д. Допускаю использование некоторых коротких элементов кода, например, сложных условий и т.п. для лучшей наглядности. Писать чистый код, тем более без ошибок в такой ситуации неуместно и не показательно, ИМХО.

        Полагаю, кто-то среагировал на «Сам не программист, учился не на программера» и не стал читать дальше, кто-то был несогласен, а третий — эффект толпы. Два минуса у комментария — значит автор явно не прав, надо минуснуть за компанию. :)

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

  34. SysWoW
    /#22121010 / +2

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

    Звучит, конечно, что гугл у вас в роле козла отпущения просадки KPI, хотя возможно дело в самом KPI?

    Я продолжал беситься и орать в чатах.

    Но на самом деле непонятно зачем им работать с вами.

    • nuclight
      /#22123840

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

      Да, с вероятностью, превышающей половину. Кому как, но по мне, этого достаточно для отсева на собеседовании.

    • amofon
      /#22123882

      Можно ли утвердить, что если человек копипастит из гугла участки кода, то он не будет развиваться? Я уверен что нет, особенно в начале карьеры, проходится искать и адаптировать решения, но в итоге это же заставляет разобраться со всеми сложностями, копать глубже, читать книги.


      Зависит от конкретного человека.

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

      Мне тоже попадался чел, который на полном серьезе рассказывал, что «всё есть в Гугле и этого достаточно».

  35. MysteryDragon
    /#22121012

    На мой взгляд, если по существу "претензий", то везде есть правда (и в мнении автора, и в совокупном мнении комментаторов).


    Я очень благодарен тому, что, поступив на ВМК (МГУ) в 2010-ом, всё ещё попал на проверочные работы и экзамены по программированию, когда код надо писать на бумаге. Это дало мне ценнейший опыт "прорабатывания кода в голове", "думать как интерпретатор/компилятор" и т.д. Не знаю, практикуют ли они сейчас по-прежнему такой формат — но "пожалуйста, да".


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


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


    И немного больше про мой взгляд на собеседования...

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


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

    • 0xd34df00d
      /#22123532

      Я очень благодарен тому, что, поступив на ВМК (МГУ) в 2010-ом, всё ещё попал на проверочные работы и экзамены по программированию, когда код надо писать на бумаге. Это дало мне ценнейший опыт "прорабатывания кода в голове", "думать как интерпретатор/компилятор" и т.д. Не знаю, практикуют ли они сейчас по-прежнему такой формат — но "пожалуйста, да".

      Фиг знает, у меня никогда не было таких работ по программированию (да и вообще я примат, а не какой-там-аналог-ВМК-на-физтехе), но умение прорабатывать код в голове и думать как компилятор все равно есть. Может, бумажка необязательна?

      • MysteryDragon
        /#22125438

        Конечно, бумажка не обязательна. Да и универ не обязателен. Вообще, обязательного в нашем мире не так много, как кажется. Просто всё имеет свои последствия, приятные или не очень.


        Я говорю о том, что это может помочь настроить своё мышление определённым образом.
        Один из способов / инструментов достичь определённого понимания, при условии наличия хоть какой-то мотивации (но про мотивацию — это само собой разумеющееся).


        Прелесть наличия подобной практики в университете для меня как раз в том, что человек сам собой таким редко занимается, это требует определённой толики мазохизма, а "в универ ходить вроде как надо" (если присутствует соответствующее воспитание), и — особенно про ВМК — это вроде как "место престижное", и вам сквозь некоторый дискомфорт приходится этим заниматься.
        (Конечно, тут исключается человек абсолютно сознательный, коих процентно существенно меньше, кто уже в свои 17-18 понимает чётко, чем он хочет заниматься, как он хочет этим заниматься, какой университет/институт ему нужен, или что ему это вообще не нужно, и потом ни разу не жалеет о своём выборе. Такие ребята сами всеми силами пробьются к своей цели, потому никакие доп.стимулы им не нужны.)


        Потом уже можно осознать определённую пользу от этого подхода. Да, кому-то, вроде вас, это не требуется, кому-то, вроде меня, это оказалось очень полезным.
        Но если спросить и меня, и вас во время экзамена, хотите ли вы на бумаге писать, или нет — оба ответят "нет" :)

  36. FagMan
    /#22121014 / -1

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


    Я сам не являюсь человеком из айти, но с 10 лет(сейчас мне 23) практически ежедневно с помощью Гугла пишу для себя полезные программы и решения. Я совершенно не понимаю что нужно бизнесу, но вполне могу для себя реализовать человеческий Майнкрафт лаунчер на c++ или Авито парсер с кучей фильтров на go. Просто подобные мне люди бывают более решительны, чтобы пойти с этим багажом куда-то работать)

  37. SamSmitenQ
    /#22121178

    Начал возмущаться – блин, да как так! Ладно там новую технологию раскурить с помощью интернета, или научиться пользоваться какой-нибудь редко встречающейся хренью, чтобы голову не забивать. Но базовые-то вещи! Как вы можете их из интернета списывать?!
    На себе даже почувствовал весь жар негодования

  38. GDXRepo
    /#22121236 / +1

    Если вы «продолжаете беситься и орать в чатах» — то вам нужно попить успокоительных и пересмотреть взгляд на методику управления. Нервный менеджмент — первый признак того, что в плане управления что-то пошло не так. Никогда еще метод силы и криков не повышал производительность (если мы не говорим про рабов на галерах под прицелом плеток и пистолетов), особенно в творческих профессиях. И незачем орать на нанятых рабочих — вы сами их наняли, сами провели такой отбор. Это все равно что пойти в магазин, купить себе мороженое, а потом орать на продавца, что оно холодное. Меняйте методику отбора, нанимайте тех, кто будет отвечать вашим требованиям. Кроме того, как уже правильно писали, метод «уйди с компа, я сам все сделаю, смотри и учись» — это путь в никуда.

    ЗЫ. А успокоительных попейте. Помогает.

    • dartod
      /#22121352 / +1

      Заметил, что руководитель часто орет не потому, что он собой на владеет, а чтобы чисто биологически «застолбить» за собой место в стае. Сейчас правда такое редко встречается (и уж тем более в больших конторах), а вот раньше на каждом шагу.

      • RaGe22
        /#22121732

        кто не умеет управлять людьми, спускается на уровень «главного бабуина» стаи

        • dartod
          /#22121934

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

  39. Paskin
    /#22121496 / -1

    Гугло-программисты — это не совсем зло, «изобретатели велосипедов» гораздо вреднее. Но все равно, для интервью нужно иметь вопросы вроде «как работает Task» — чтобы иметь представление о том, насколько кандидат вообще понимает что происходит в системе.

  40. cudu
    /#22121558

    1. Я пишу на нескольких языках, например: java, go, c++, vb, и, не редко, когда перехожу с одного языка на другой — могу путать даже базовые конструкции. Но вместо того, чтобы в голове держать, какие же методы у интерфейсa Bifunction, я держу, для чего этот интерфейс используется и в каких случаях может пригодиться. IDE же мне подскажет, какие-там методы, какие там типы и все такое. Я совершенно не хочу помнить, в каком пакете находится интерфейс Map или его реализация — HashMap, но вместо этого помню, принцип работы HashMap.

    В итоге я получаю возможность смотреть на язык как на совокупность «концептов». Предположим: есть дженерики и пишу нечто в стиле ООП, значит я знаю, что у меня будут дженерные сервисы и методы, я знаю, для чего я буду их использовать, и если в legacy коде я не вижу их, я в первую очередь задаюсь вопросом, а что пошло не так?

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

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

    p.s.Добро пожаловать в реальность: Со слов Сассмана, «Программирование сегодня больше напоминает науку: вы берете часть библиотеки и «тыкаете» в нее — смотрите на то, что она делает. Затем вы спрашиваете себя, «Могу ли я настроить это так, чтобы оно делало то, что мне нужно?». — это ведь правда.

    • Neikist
      /#22121994

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

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

      • 0xd34df00d
        /#22123556

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

    • nuclight
      /#22123850

      при написании кода на листке(если требуется до буквы использовать методы из конкретного языка с нужными аргументамИ) — сомневаюсь, что смогу написать код длиннее пары десятков строк без ошибок

      А на бумажке на собеседовании больше и не нужно — это вполне достаточно, чтобы оценить мышление кандидата.


      Со слов Сассмана, «Программирование сегодня больше напоминает науку: вы берете часть библиотеки и «тыкаете» в нее — смотрите на то, что она делает. Затем вы спрашиваете себя, «Могу ли я настроить это так, чтобы оно делало то, что мне нужно?». — это ведь правда.

      Знаете, описан совершенно не научный подход.

  41. vlad_egrv
    /#22121640 / +1

    а вы ни в каком КБ случайно не работали главным технологом? я такой маразм только на производстве видел

  42. Kwisatz
    /#22121932 / +1

    Институт не даёт знаний. Он учит добывать знания самостоятельно

    Боже какая чушь. Как раз лекторы нужны за тем, чтобы от них получать знания. Самостоятельно можно знания добыть БЕЗ вуза. Кстати я вот с очень большим количеством людей говорил, которые повторяют эту мантру, и просил объяснить мне как их научили вот этому всему? И знаете что? А ничего, никто вообще не смог после размышлений подтвердить эту фразу, ну а поскольку бремя доказательства утверждения лежит на высказывающем, считаем эту фразу антинаучной.

    • cudu
      /#22121986

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

      По-моему, как раз базовые вещи, которым учат в ВУЗе. Для примера, я привык конспектировать в mindmap`е, архивировать в закладках по папкам, нужной вложенности, дополняя тэгами их. А у вас как?

      • Kwisatz
        /#22122280

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

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

        В общем и целом поиск знаний как правило начинает с осознания проблемы, посему самым важным скиллом для разработчика является способность использовать свой продукт и видеть его недостатки. Кстати, простой пример: попапов для вебстраничек с отображением по наведение — миллион и почти все любят пропадать если мышка ползет не строго над ними. Разработчики этого не видели? Они не в курсе как это бесит? Быть такого не может. (кстати, фраза для гугление «Dropdown Menus with More Forgiving Mouse Movement Paths»)

        • cudu
          /#22122344

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

          • Kwisatz
            /#22122362

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

            • podde
              /#22123796

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

              • Neikist
                /#22123816

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

                • podde
                  /#22123836

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

                  • nuclight
                    /#22123866

                    Когда я конспектировал лекции, на большинстве предметов как-то получалось и то и другое одновременно.

              • Kwisatz
                /#22124406

                Я же написал, что он долго мучался и страдал еще со школы, а потом выяснил, что у меня отличная память, если я не записываю. Записал — все. Сейчас я записываю все, что относится к датам, и ставлю напоминалки.

            • V1RuS
              /#22123818

              Интересный эффект. А если не записывать, запоминается лучше?

              • Kwisatz
                /#22124446

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

                ЗЫ ну вот сейчас пока писал вспомнилась встреча 6 месяцев назад, когда обсуждали проект и мною высказывались проблемы, которые скорее всего возникнут (и возникли, в формате «с размаху в пень»), помню время суток, обстановку, уровень освещения, участников, их положение за столом/у доски, позы, тон, что демонстрировалось на экране, все обсуждаемые темы, в какой последовательности обсуждались и принятые решения.

            • nuclight
              /#22123858

              Неврологическое что-то?

              • Kwisatz
                /#22124462

                Не в курсе, а что, стоит боятся? Способность построчно помнить свой код тоже достаточно редка: да я пишу подробные сообщения при коммите, но детальные комменты мне не нужны, я помню детали реализации. Думаю при этом мало смысла жаловаться на память. А даты, адреса, формулы, правила, теоремы, номера домов я практически не способен запомнить, только если их по принципу дворца памяти обвязывать. И это с детства: еще в младших классах выяснил, что я не помню номер своего дома, который написан большими цифрами на углу, мимо которого я каждый день ходил в школу. Со временем классифицировал примерно категорию информации которую я не могу запомнить, если кратко — «бесполезная». Да, все записанное тоже в этот разряд, потому что я всегда могу найти и прочитать.

                • tundrawolf_kiba
                  /#22128696

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

                • S-e-n
                  /#22129240

                  а что, стоит боятся?
                  Не думаю. Это не то, чтобы очень распространённый образ мышления, но таких людей достаточно.

                  Это мои личные выводы, но видимо просто сознание заточено на «понимать», а не на «запоминать», а понимать — это дорого, потому что на это тратится время и энергия. Поэтому тривиальная ерунда и фильтруется на входе.

                  В «Программистском камне» подобное хорошо описано.

      • Gazitdin
        /#22122424

        Лично у меня персональная вики в Zim на минималках

    • JordanoBruno
      /#22123848

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

    • nuclight
      /#22123856

      А что там доказывать? Даже элементарное написание реферата по источникам в библиотеке (да, в бумажной) уже прокачивает этот скилл.

    • Vinchi
      /#22124626

      Вообще то лектор прав. Знания могут и не пригодиться но скилл обучаться он должен прокачивать.

      • Kwisatz
        /#22125766

        Его задача — подать материал, подать хорошо, грамотно, интересно. Материал по теме, со всеми нюансами с высоты его знаний. Я за это ему плачу.

  43. Akon32
    /#22122020

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

    • Sonnenwendekind
      /#22123082

      Не являются ли их заказчики и начальники китайской комнатой?

  44. nirom
    /#22122250

    Причина лишь в том, что вы сами скачали задание из интернета для первого собеседования!
    Неча на зеркало пенять коли рожа крива. (с)

  45. Serjaru
    /#22122332

    Еще проблема, написать-то напишут, а вот за собой тестить не умеют!

  46. RepinTech
    /#22122500 / -2

    Господи, как же знакомо!!!
    «Программисты», скачивают код из сети продают его за зарплату. И при этом делают вид, что что-то понимают. Еще дизайнеры часто такие же.
    Больше я на это не ведусь. Только по рекомендациям, а лучше по знакомым и родственникам знакомых. Хоть «фи» высказать можно потом будет.

  47. Reposlav
    /#22122600

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

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

  48. FForth
    /#22122650

    Августовские ГОСТы :)
    ГОСТ Р 43.0.21-2020
    Сознание и самосознание (Информационное обеспечение техники и операторской деятельности)

    • Xobotun
      /#22123462

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

  49. vvzvlad
    /#22122688

    Как людей-то бомбит, заглядение.

  50. nApoBo3
    /#22122700

    Для админов я использую термин, может где подсмотрел, а может и сам выдумал, monkey админ.
    Это человек который что-то может, но совершенно не понимает, что и как работает.
    Как результат, если он не может найти решение в гугле, то даже самая казалось бы элементарная задача полностью его парализует.
    Часто нужно всего лишь поменять один параметре в решении из гугла, но он не может.
    Он начинает перебирать решения хоть как-то похожие на его задачу. И если не одно не решает проблему, то все припыли, и даже скомпилировать из готовых вариантов готовое, он не может. Он просто не понимает, что все эти буковки значат.
    Еще часто у них встречается синдром тыкателя, тыкать по кнопкам пока не заработает.
    Спрашиваешь, а зачем ты вот здесь такой параметр поставил, отвечает, а вдруг поможет.
    Фэйс палм, не понимая, что за параметр, зачем он, просто а вдруг подойдет.
    Ингода их можно даже починить. На каждую возникшую проблему, бьешь по рукам и стоя над душой, заставляешь думать( это для них очень мучительный процесс ), по каждому параметру, по каждому пункту, чтобы объяснил зачем он нужен и за что отвечает, потом пусть построит взаимосвязи и так постепенно выйдет на правильный ответ.

    Для разработчиков где-то видел, stackoverflow developer.

    • nuclight
      /#22123880

      Точнее это называлось SDD — Stackoverflow-driven development.

    • tundrawolf_kiba
      /#22128708

      Для админов я использую термин, может где подсмотрел, а может и сам выдумал, monkey админ.

      Я чаще всего встречал — эникейщик.

      • mayorovp
        /#22144444

        Ну нет, эникейщик — это должность. А в комментарии выше описана квалификация, это разные вещи.

        • tundrawolf_kiba
          /#22145054

          Эникейщик — это тоже квалификация, должность то обычно у таких людей тоже «Системный администратор»

          • mayorovp
            /#22145334

            Называться-то должность может как угодно, вопрос в фактических должностных обязанностях. "Эникейщик" — это, по определению, человек, который бегает от одного пользователя к другому и нажимает им на клавиатуре "Any key" (более современный вариант — нажимает на кнопку "ОК" в модальном диалоге).


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

            • vedenin1980
              /#22145476

              что такие «должностные обязанности» коррелируют с низкой квалификацией, но прямой зависимости тут нет

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

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

              • mayorovp
                /#22145490

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

                • vedenin1980
                  /#22145666

                  Ну назовите тогда хотя бы одну квалификацию, а не должность.

                  • mayorovp
                    /#22146198

                    Загляните в начало этой ветки...

  51. SquareRootOfZero
    /#22122702

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

    сносно работают со встроенной справкой...

    Зачем?! Я ещё помню то время, когда вместе со средой разработки ставил все хэлпы (MSDN, справку по Python и т. п.) и активно ими пользовался — давно перестал, в современных реалиях это нафиг не нужно. Тот же MSDN весь есть в интернетах, и другие всякие справочные сайты, на которых, зачастую объяснено подробней и доходчивей.

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

    • Neikist
      /#22122798

      сносно работают со встроенной справкой...
      Зачем?!

      Автор в сфере 1с работает. Там документацию только недавно частично открыли в бесплатный доступ.
      И гуглить готовые чужие решения — очень полезная привычка, зачастую узнаёшь что-то новое: библиотека какая-то новая появилась, новая фишка в языке, старая фишка в языке, которая почему-то прошла мимо тебя, или ты всю жизнь делал что-то одним способом, а тут — сурпрайз! — есть, оказывается, способ лучше.

      В 1с чаще всего если чего и нагугливается, то за редкими исключениями платные (пусть часто и копеечные) решения на сайте 1сного коммьюнити. Иногда что то бесплатное. На гитхабе не уверен что хотя бы пара сотен проектов вообще наскребется.
      Впрочем автора статьи я все таки в большей мере не понимаю чем понимаю.

      • Nalivai
        /#22123906

        Это на одинэсном, нам не понять

    • nuclight
      /#22123890

      Увы, MSDN давно уже не торт — попробовал в этом году пользоваться на сайте, вскоре заностальгировал по временам шести дисков Visual Studio (404 на какие-то ссылки, недописанное в статьях, и прочее, и прочее).

      • debagger
        /#22124632

        К сожалению да. А в свое время его было достаточно, чтобы полностью изучить дотнет вообще без интернета. Примеры кода, подробные объяснения на каждый сих… Эх, ностальжи

  52. webaib1
    /#22122764

    Наши кандидаты код всегда пишут дома и спокойно. Задачи как правило с REST, DB и параллельное программирование. После мы делаем ревью на этот код, где все папки коментят интересные моменты для очной беседы ну и редка флеймы бывают по спорным моментам.

    Потом кандидат все интересные моменты поясняет, что, как, почему. Не возможно, что бы человек загуглил решение петшопа на левел 2 или 3 REST API и потом не смог объяснить, как он пришел к этому решению, в каких случаях рест оправдан, когда и как контракты и т.д.
    Если на собесе папка, то и это сразу видно. Разговор плавно уходит на архитектуры, реализации различных консистенций и комуникаций.
    Автор здесь какую то ересь толкает. Либо с людьми потом общались о небесных пирожках и сразу контракт.
    З.Ы. И да, я запросто путаю на sql sort вместо order by и гуглю все, что мне незачем держать в голове

    • dartod
      /#22125134

      Вот в такой компании как Ваша работать можно. Сразу видно, что не потогонка с чайкой на троне.

  53. AleksandrB
    /#22122824

    Мда, ни в жизнь бы мне такого начальника. Мало того что неадекват, который орет на подчиненных, не имея опыта и мозгов на то что бы решать проблемы спокойно, так еще и требует безостановочного роста. Для справочки: все новички по началу списывают. Дизайнеры повторяют работы других, строители делают скворечники по готовым зарисовкам, у людей посто нет еще опыта для того что бы научиться делать что-то свое ПЛЮС сюда прибавляется невероятное количество свойств и методов, которые тебе не нужно помнить. Иногда ты используешь метод несколько раз в жизни, но нет, супер крутой начальник хочет что бы ты помнил все наизусть. 80% работы программиста — находить готовый код и подгонять его под проект потому что все давно решено за тебя, а если ты тратишь на задачу 8 часов потому что ты такой классный и можешь написать все сам, а другой тратит 40 минут на то что бы скопировать код и допилить его, то я выберу последнего, потому что мне, как бизнесу, будет плевать на то скопирован ли этот код или написан, мне важно то сколько я заплатил за него.

    • BiBiSlon
      /#22124762

      Как мне показалось, что для бизнеса ценны варианты «за 40 минут сам». В текущее время ищу работу и надеялся что можно вот «как-то найти и втянуться в процесс»… нет, прилетают тестовые в формате «5 задач на 90 минут». Гугл тут уже явно не поможет — дольше искать. Понимание и «сам за 8 часов» тоже не подходят — долго.

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

  54. amarao
    /#22122834

    Тестовое задание должно быть:
    1) разумным по времени и сложности, чтобы кандидату не было ощущения необъятного фронта работ.
    2) сохранять пользу (выяснение компетенции) даже при активном использовании гугла.
    3) требовать разумного объёма нажатых кнопок (это немаловажно, потому что задание может быть лёгким, но требовать много бойлерплейта — такое лучше избегать).
    4) Не быть гуглябельным (т.е. кандидат должен решить какую-то задачу в голове, и код на экране — всего лишь выражение этого решения, а не решение).
    5) Не напоминать рандомную таску из джиры компании (потому что это будет подозрительно напоминать "программирование халявными программистами").
    6) Должно быть сделано хотя бы двумя-тремя действующими программистами в режиме тест-драйва.


    Вот последний пункт часто забывают.

  55. Aushilfskraft
    /#22122902

    Добрый вечер, не помню какой час без сна, поэтому умная мысля:
    1990-ые воспитали в нашей стране поколение IT-гениев.
    Связываю это с золотым поколением футбола в Бразилии, на фоне ужасного кризиса.
    Нужда мотивирует сильнее всего.

    Дискас? Или ну его?

    • Aushilfskraft
      /#22123346

      Провожу аналогию, пардон!
      Тогда футбол был единственным способом выбраться из нищеты.
      В 1990 же айти была более-менее уверенной сферой в нашей стране.

    • Nalivai
      /#22123886

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

  56. panteleymonov
    /#22123018

    Сам офигевал – неужели современное поколение настолько прониклось технологиями, что пишут код, как дышат?

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

  57. gennayo
    /#22123214

    А ещё мне интересно, а что на самом деле подумали те, про кого эта статья? И что они должны были подумать, по мнению автора?

  58. theaklair
    /#22123332

    сажал за комп и оставлял на полчаса-час

    Зачем оставлял? Не важно было посмотреть и проанализировать то, как именно человек решает задачи?
    Ну, получил в итоге то, что получил :)

  59. BRAINKIT
    /#22123628

    Как я вижу, автор хотел поделиться своим удивлением о новом поколении программистов или даже людей, у которых навык поиска информации использовался чаще, чем навык создания собственных алгоритмов. Так как, скорее всего, для автора написать свою архитектуру привычнее, чем «нагуглить» готовую.

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

    А если в проекте есть свои архитектурные решения, то и собеседование должно проверять навыки построения архитектуры.

    На мой взгляд, не нужно пытаться оправдать своё нежелание (лень и т.п. причины) составить задачи для собеседования, подходящие под проект, и просто спросить: «а почему именно такое решение?» и будет понятно понимает человек архитектуру, которая будет в проекте или нет, тем что появились «гугл-программисты» и виноваты они. Иначе получается перекладывание ответственности — я бы не хотел иметь дело с такими руководителями.

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

  60. gregoryawesoman
    /#22123664

    сейчас не мало людей, которые не хотят или не могут вникать в суть.
    немало встречал людей на интервью с 5+ летним опытом и знаниями уровня джуна.
    даже нередко в различных статьях таким людям дают определение — «вечный джун» =)
    не думаю что они заменят нормальных специалистов, просто такие люди будут занимать линейные позиции как кассир в пятерочке и получать соответсвующий оклад.
    а тот кто захочет стать настоящим профессионалом — будет развиваться

    • Stas911
      /#22124728

      Сейчас часто меняют область работы, а не сидят 20 лет на одной технологии, изучая наизусть стандартную библиотеку. Я сейчас зарабатываю на жизнь технологиями, которые я впервые увидел три года назад. И совсем не уверен, что еще через 5 лет это будут они же.

  61. sergarcada
    /#22123698

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

    • amofon
      /#22123748

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


      А почему идиота нельзя назвать идиотом? Или можно только хвалить? Пусть всю жизнь проходит в заблуждении?

      Ну он или обиделся и не признает себя идиотом или понял, что нужно браться за ум.
      Если первое — то он идиот на самом деле.

      • sergarcada
        /#22123876

        Да почему ж нельзя, можно. Я бы тоже себя идентифицировал с «гугл-программистом», но гугл не решает 90% моих задач поскольку предметная область весьма специфичная. Тоже пришел понимая, что ничего не знаю о предстоящей работе. Только и тимлид знал о том, что я «идиот» в силу редкости требуемых знаний. Может быть поэтому в компании и развито наставничество, когда новичка ведут сразу несколько специалистов обучая тонкостям работы.
        Но если бы меня назвали идиотом, то я бы все равно обиделся. Тому, что оказывается я идиот, работаю рядом с идиотами, и начальник тоже идиот по его же словам. Как-то сразу лишает мотивации и перспектив развития. Тем более если можно надеяться только на помощь гугла.

        • dartod
          /#22125124

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

  62. Amikko
    /#22123726

    Идентифицировал себя как Гугл-программиста, печалька :-(

  63. lovermann
    /#22124000

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

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

    Почему-то никто не вспоминает о миллиарде простых задач, которые каждый день закрываются именно копи-пастом кода из SO, тем кодом, который не касается архитектуры проекта, а является именно тем самым «забей гвоздь, чтобы повесить картину». Конечно, идеалистический подход к коду имеет своё место (потом легче будет меинтененсить, будут меньше расходы на развитие и поддержку), но тогда придёшь к тому, чтобы для простых вещей нанимать профиков, а это уже переплата за мелочи.

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

    • ToSHiC
      /#22124426

      Проблема SO-программистов в том, что они будут забивать гвозди в стенку из гипсокартона, потому что не будут понимать, что такое гвоздь, и что такое гипсокартон. Да что уж там, они даже не задумаются, что стена может быть сделана не из дерева. Стена из кирпича составит очевидные проблемы, но преодолимые. А вот бетонная поставит в тупик.

      • lovermann
        /#22126778

        Ой, ну, ладно вам. Вы же видите: человек год радовался, какие у него суперпрограммисты. Значит, делали своё дело и делали неплохо в итоге :)

  64. UnknownHero
    /#22124016

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

  65. rowdyro
    /#22124588

    Был опыт, пару лет назад искали пыхаря на усиление команды, тяжко шло, то нам не нравится, то мы — вообщем стандарт.
    Однажды тех дир сказал, вы все олени, сейчас я быстро найду. В программировании он был около 0, но все же… нашёл где то вопросы по пхп с ответами, и давал их всем кому не глядя. Но не спрашивал их лично, а просто давал листочки и уходил по своим важным делам. Приходил где то через часик, спрашивал «кем вы видите себя через 5 лет» и отпускал кандидата.
    В итоге, один такой персонаж успешно вышел на работу, как раз когда тех дир был в отпуске. На мою голову. После 3х дневных попыток поставить докер на убунту, и вопросы типа «какой порт фтп у гитлаба» человечек был уволен — тех дир больше не собеседовал никого)


    Никогда не дают компьютер на собеседовании. Только ручка, бумажка и голова. Всегда задаю вопросы в том числе и по базовым моментам(даже у сеньоров и Лидов): структуры данных, алгоритмы, понимание работы ОС на уровне переключение контекста, шедулера и фрагментации памяти и тд и тп


    Команда важнее всего, даже времени руководителя

  66. Pavel1114
    /#22124590

    Такое снова в Топе. Ясно понятно

  67. an88ton
    /#22124764

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

  68. aaw20904
    /#22124766

    Если программист изучал глубоко (вел конспекты для лучшего запоминания) имел практику — то и к google/yandex/yahoo обращается редко или к примеру уточняет имя метода/свойства обьекта. Если же нет — то гуглит помногу а это ведет к большим затратам рабочего времени и как следствие затягиванию сроков. Другой момент — в сложных программных продуктах/системах желательно (по моему скромному мнению) применение диаграмм UML: код стает мало-мальски поддерживаемым и будет менее остро стоять проблема "-а что здесь происходит?".

  69. Dglkdpodg
    /#22124768

    nmivan Да, ваша проблема очень распространена, загуглите к ней решение

  70. cosmolev
    /#22124770

    correlation does not imply causation

  71. yury_m
    /#22124772

    Был на нашей фирме начальник, который считал строчки кода у подчиненных для оценки производительности. Это было еще до эпохи IDE. Чем-то Вы мне его напоминаете своими подходами с Вашими «Плато» по продуктивности,«продуктивность застыла».
    Согнать с компа и сделать за подчиненного — верх непрофессионализма. Вот даже не верю что так бывает, что какой-то начальник может себе это позволить — так втаптывать в грязь подчиненных. Представляю, какая у вас там атмосфера.

    • dartod
      /#22125116

      В одном месте вклад в проект измерялся пушами

  72. altrua
    /#22124774

    красиво написано, с юмором, но это не столько про программистов, сколько вообще, про современное поколение специалистов без фундаментальных знаний. Например, мои проекты связаны с инсталляцией звука, расчетом и настройкой линейных массивов. Приезжают специалисты-инженеры одного из ведущих дистрибьюторов, согласовываем все технические нюансы, они все знают по своей системе из методички от А до Я, но тут маленькая проблемка — нам требуется нестандартная конфигурация звуковой системы… и тут я обнаруживаю, что между их знаниями по одной их конфигурации динамиков и другой… пустота. Ответы, которые следуют из ШКОЛЬНЫХ (пусть немного углубленных) знаний по физике — они родить не могут. А между тем они — успешные, востребованные специалисты в рамках моделей систем представленных дистрибьютором. Я тогда тоже прозрел.

  73. Yoskaldyr
    /#22124776

    Как ни печально, но гугл-программисты и стековерфлоу-программисты в данный момент составляют большую часть джунов (а иногда и мидлов)

    • /#22124942

      подтвердите ваше утверждение статистическими выкладками?

  74. sunki
    /#22124778

    Взять код с SO и грамотно его применить – это еще постараться надо. Бездумный копипаст видно либо сразу, либо почти сразу. Полгода не замечать неграмотный копипаст довольно-таки удивительно.

    • sunki
      /#22125188

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

  75. lev_seliverstov
    /#22124780

    В вашем тексте слово «чувак» встречается семь раз. Это не язык делового общения и не язык дружеского общения, это слово — ПРОСТО ТАБУ. Я очень сомневаюсь в вашем профессионализме как руководителя.

    • 0xd34df00d
      /#22127096 / +1

      А для меня капс — табу, а «чувак» — не табу (что в этом слове такого, в конце концов?).

  76. Dewey
    /#22124782

    Недавно мне случайно попалась на глаза заметка с интригующим названием
    Конец эпохи: в Индии массово увольняют программистов
    Я не программист, поэтому до сего дня не вполне осознавал истинные причину и масштаб происходящего. Только прочитав эту статью на «Хабре», я понял, почему настолько медленно и неповортливо развиваются, в общем-то немногочисленные, программы и операционные системы, которыми пользуются сотни миллионов людей. Почему зачастую программистам проще похоронить отличный проект (пример — Opera на движке Presto), чем решать неизбежно возникающие в процессе его развития проблемы.
    С помощью копипасты и бездумного конструирования мы, конечно, далеко не уедем.

    • Brenwen
      /#22126722

      Статья 2017 года. Прошло 3 года, но код по-прежнему пишут люди, а не ИИ.

      • Dewey
        /#22143856

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

        habr.com/ru/post/303486
        habr.com/ru/post/274987

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

        Впрочем, вот свежая статья на ту же тему:
        mediavektor.org/14391-gerd-leonhard-cherez-10-let-vse-programmisty-stanut-bezrabotnymi.html

  77. dn842
    /#22124826

    А вот нефиг было бумажки отменять на собесах и кроме «сделай» должно быть еще и «объясни почему так, а не иначе». :)

  78. neurocore
    /#22125002

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

  79. Malduan
    /#22125038

    Сейчас на проекте активно используется 3 ЯП + 1 еще иногда проскакивает, конечно же это не считая всяких языков разметок/стилей, разумеется, везде изпользуются фреймворки, ну и сверху конечно всякие YAMLы AWS, doker-ов etc. И на каждом проекте языки и фрейворки меняются. Это — будни, и, подозреваю, большинства людей тут.
    Так что да, выкину интернет я, возьму по три книжки на каждый фреймворк, ямль etc и буду писать код, сверяясь только с ними, наконец преодолею своё Плато! Спасибо автору за совет! А то ведь я думал-гадал, почему я так путаюсь во всём и не могу запомнить ничего, не то что в универе, когда писал на голой Java диссер.

  80. InterceptorTSK
    /#22125086

    Странный автор)))) Как будто с Луны свалился, или с Титана.
    99.9% так называемых программистов — программистами не являются вовсе. Это было сказано хз когда и хз сколько раз уже.

    При этом, сея «статья» выглядит логически противоречивой.
    Джентльмены, ну сами посудите, если автор является «программистом» [всмысле реальным], то он никак не мог не заметить, причём давно, что его окружение из так называемых программистов ими никак не являются, причём сие не заметит только что слепой-глухой-инимножычкатупой. Ессно автор всё это и так видел, причём давно. Однако же почему то только сейчас для него сие стало «открытием». Что и приводит к фундаментальным противоречиям, и это в свою очередь позволяет отправить сей чюдный авторский рассказ в раздел «фентези».

    п.с.: Имеется тривиальная дыра, однако же т.к. она тривиальная, то и смысла нет про неё говорить конечно. Можно предположить, что автор вообще не программист, ни реальный ни липовый [«Рогозин»]. Но это совсем из разряда сюра.

  81. R000M
    /#22125294

    Мне вот интересна судьба этих гугл-программистов в вашей Компании, которых вы набрали. Вы их уволили?

  82. /#22125346

    Ещё во времена большой популярности Delphi была притча про ленивых программистов, которая заканчивается примерно так: "… и только очень ленивый программист Delphi пишет всё сам, потому что ему лень искать готовое решение".

  83. DMGarikk
    /#22125660 / +1

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

    Я вот без гугла не могу, наизусть оч много чего не помню (у меня не фотографическая память), помню даже завалил собеседование где мне сунули бумажку А4 со словами, а теперь напиши программу… я завис с синтаксисом языка… который всегда IDE подсказывает...wtf мы в каком веке чтобы синтаксис помнить наизусть? я конечно работал с программистами на emacs и vi, но я не такой всёже.
    Я вообще не понимаю как можно копипастить код и он будет работать, 90% кода на SO или кривой или очень привязан к контексту или вообще лишь маленький кусок.
    imho с точки зрения автора я наверное гугл-программист, но я там максимум буду гуглить официальную документацию и в крайнем случае бойлерплейт какойнить редкой штуки

    • mayorovp
      /#22125702

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

      https://gkoberger.github.io/stacksort/


      Раньше эта штука в среднем скорее работала чем нет, но сейчас что-то поломалась...

  84. plastilin
    /#22125778

    Не пробовали гугл-програмистам отключить интернет при сдаче тестов?

  85. vvbob
    /#22125952

    Чувак сначала проходил длинное собеседование по куче разнообразных вопросов, потом решал несколько задач. На бумаге, как мы делали в ВУЗе.

    ИМХО, на подобного рода собеседованиях больше проверяется стрессоустойчивость, чем собственно знания.
    Человека загоняют в очень некомфортную ситуацию, когда у него отбирают привычные инструменты разработки, и при этом оценивают его знания, да еще и с жестким лимитом времени зачастую. Кто-то с такими ситуациями справляется легко, а многих людей просто «клинит» и они не могут решить простейшую задачу, вовсе не оттого что уровень знаний у них низок или опыта недостаточно.

    • DMGarikk
      /#22126078

      ИМХО, на подобного рода собеседованиях больше проверяется стрессоустойчивость, чем собственно знания.

      к сожалению сами интервьюеры зачастую не догадываются об этом

  86. TheJudge
    /#22126252

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

    В некоторых задачах на работе по срочному прикручиванию какой-нибудь новой «фишки» гуглом закрывается 90%, пусть не полной копипастой, но условным заимствованием с подгонкой под наши стандарты. Если разбираться подробно в «чудесной мега-супер архитектуре» очередного фреймворка или библиотеки, можно просто тупо потратить полгода времени, а за это время уже новую мажорную версию выкатят, со своими фишками и багами.

    И когда я наблюдаю как какой-нибудь очередной джун у нас на работе изучает усиленно, очередной модный фреймворк в надежде «научиться кодить годноту», вместо того чтобы идти и писать код (пусть и при помощи гугла), я делаю себе заметочку — посмотреть через год,. А через год это оборачивается либо тем что он все эти свои теории бросает, и начинает просто клепать продакшен, либо начинает изучать еще один фреймворк (тот уже устарел) и его увольняют, потому-что он вроде получается в теме, но работать ему некогда.

    Гуглом можно не пользоваться, если ты работаешь несколько лет в одном окружении, и ничего там не меняется, ты все выучил, и всю систему можешь отлаживать в уме. Я хоть и работаю уже в веб-разработке около 15 лет, далеко не в курсе всех модных новинок. На PHP и JQuery могу что угодно написать, занимаю хорошую позицию в нашей компании, если что-то нужно «эдакое», то всегда ко мне идут. А вот по новым модным фишкам JS я бы наверное на джуна собесдование не прошел, и случись на нем писать, я бы наверное тоже неслабо копипастил.

    И вообще главное не код, а архитектура. Вот ей нужно людей и обучать в первую очередь, а как они уже пишут свой код, дело десятое.

  87. monte1977
    /#22126254

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