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

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

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

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

    Изменения


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

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

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

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


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

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

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

    Плато


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

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

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

    Офис


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

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

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

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


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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

          Автор пишет, что гуглопрограммисты прекращают быть полезными, когда от универсальных общих присутствующих во всех проектах вещах — они переходят собственно к тому что составляет суть проекта.
            +10
            Опять нет кнопки «Сделать всё хорошо».
              +3
              Помню свою боль, когда на определённые ошибки не мог найти объсяснения ни на SO, ни в документации, ни в телеграмм канале у автора инструмента)
                +24
                Уникальную составляющую вашего проекта нагуглить нельзя.

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


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

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

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

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

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

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

                      +3
                      Приятно, чёрт возьми, что сисадмин-автомеханик уже чуть-чуть обогнал «программистов» (хотя бы некоторых), так как я все-таки стараюсь разобраться в причинах ошибки а не нагуглить решение. Кстати крайне бесит ситуация когда единственный ответ — это магия, сынок (плавающая ошибка)
                        +2
                        Ron Jeffries: «Code never lies, comments sometimes do.»
                        0
                        Значит это «Как слышим так и пишем». Нет творческого подхода вовсе.
                          0

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

                        +24
                        Обычно вся уникальность проекта заключается в банальном отсутствии документации на проект.
                          0
                          Самодокументируемый код.
                          P.S. документация по методам математического моделирования есть, занимает 3 семестра обучения.
                          0
                          что гуглопрограммисты прекращают быть полезными, когда от универсальных общих присутствующих во всех проектах вещах — они переходят собственно к тому

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


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


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


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

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

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

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

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

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


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


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

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

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

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

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

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


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

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

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

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

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


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

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


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

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


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

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


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

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

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

                          Всегда веселил подобный подход к собеседованиям в рандомных «ООО Рога и копыта». Как только на собеседовании заходит речь про бумагу и задачи — я сразу улыбаюсь, благодарю за собеседование и прощаюсь. Думаю, как и любой уважающий себя специалист.
                          Да и в целом какой-то совковый подход. Я так понимаю, автор статьи застрял во времени, где-то в конце 90х-начале нулевых. Индустрия давно поменялась, искать решения в гугле — это нормально. Задача программиста в первую очередь закрывать задачи бизнеса, а не писать идеальный код из головы и знать все методы библиотечных классов. Удивительно что вы, как тимлид (или кто вы там?) этого не понимаете…
                            +10
                            Без обид. Не поэтому ("… уважающий себя...", "… совковый...", "… закрывать задачи бизнеса..." и т.п.) ли у вас такая карма?
                            Попахивает (очень) «эффективным» менеджментом.
                              +41
                              Вот бы в 2020 за карму на хабре переживать, ну серьезно.
                                +1
                                Ограничение на комментирование же(
                                  +3
                                  Больше времени на работу останется )
                                    +1
                                    Ахах, это да, я и сам могу человеку неделю отвечать, просто по закону подлости часто бывает что если ты в минусе — то хочется прямо все статьи подряд комментить)
                                    –3
                                    Комментарии для тех, у кого вагон свободного времени
                                  +17

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

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

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

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

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

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

                                          +7

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

                                            0

                                            Что непонятного?
                                            Можно писать статьи, а можно писать комменты (это тоже как ни странно — писать). Карма получается за первое, а сливается — за второе (и почти никогда за второе карма — не начисляется). И второе же и ограничивает.
                                            Я бы понял если бы за ценные комменты (за +10 +50 +100 и т.д.) — она начислялась бы как за статьи автоматически, но нет. В комментах всё зависит только от критиков, которые, повторюсь, сливают — с удовольствием, а начисляют чуть чаще чем никогда.

                                            +2
                                            Продать эту карму потом можно? Что с ней делают обычно, зачем она нужна?
                                              +2
                                              Можно одобрять/не одобрять плюсами и минусами статьи и комментарии, а так же другим карму менять. Таки влияние на сообщество.
                                      +15
                                      Насчет умения решать задачи вместо гуглежа не согласен, это надо уметь. Редкий случай когда немного согласен с nmivan, а вот с тем что нужно помнить стандартную библиотеку, а так же помнить сторонние подключенные библиотеки, (бсп, типовую конфу в случае 1с которые у автора) — это очень и очень сомнительно. Разве что очень верхнеуровнево. Это уже проблемы IDE и языка 1с которые ужасны и заставляют программистов это делать, вместо того чтобы помнить примерно и IDE уже бы подсказала на основе типов и полнотекстового поиска.
                                        +36
                                        Я на текущей работе решал задачу на бумажке, и мне сказали использовать абстрактный язык. Т.е. если я не помню как называется нужная мне функция — не страшно, главное что я помню, что она есть. Важен был именно подход к решению. Сейчас проходил собеседование — и решал задачки уже в IDE, с расшаренным экраном — без гуглежа, периодически опечатываясь, но опять же — я показывал свои представления о том, как нужно организовывать код, а не знания синтаксиса конкретных функций — хотя тут уже IDE помогала, конечно.
                                        Не вижу ничего зазорного в том, чтобы обращаться в гугл за помощью в том, как работает тот или иной инструмент, главное — не копировать бездумно куски кода из SO в свой проект. Программирование — не знание на зубок всех языковых конструкций и стандартных библиотек. Программирование про умение думать, и правильно компоновать доступные инструменты для получения оптимального в данной ситуации решения.
                                          0
                                          Может комментарием промахнулись? Я примерно об этом же и писал.
                                            +1
                                            Скорее решил дополнить, я в целом согласен с вашей точкой зрения.
                                            +1
                                            Т.е. если я не помню как называется нужная мне функция — не страшно, главное что я помню, что она есть.

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                                                Многие проф.переводчики активно используют аналоги IDE для перевода и вполне успешно.
                                                          0
                                                          Вообще, не совсем. Сравним с обычным, человеческим, но иностранным языком.


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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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


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

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

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

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


                                                                      Code Style — да.

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

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

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

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

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


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


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

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

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


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


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

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


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

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

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

                                                                        0

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

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

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

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

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

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

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

                                                                    +4
                                                                    Респект. Чем больше инфы в голове — тем легче ей оперировать. Разбор кода из гугла тоже требует времени на переделку — ведь на 100% не подходит ничего и никогда.
                                                                      0
                                                                      del, мимо
                                                                        +1
                                                                        С головой «чем больше инфы» к сожалению не прокатывает ) новая инфа вытесняет старую в архив.

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

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

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

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

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

                                                                                0

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

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

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

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

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

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


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

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

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

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


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


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

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

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

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

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

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

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

                                                                                  Другое дело, что мне и моему начальству в голову не придет писать код для прода, без гугла любых спорных моментов.
                                                                                    +4
                                                                                    На бумажке вообще дико неудобно писать. Даже на псевдокоде.
                                                                                      +6
                                                                                      Кому как. У меня был проект, я брал лист бумаги, ручку, ложился на диван и думал, набрасывая структуру программы на неком своем псевдокоде. Потом уже за комп — где и IDE и Гугл, и т.п…
                                                                                        +1
                                                                                        Вообще так у меня не работает. Даже схемы если они нужны я чаще в цифре набрасываю. Майндмапы там какие, или еще чего. Изредка только на бумаге чего нарисую или стилусом на планшете, когда уж совсем хочется что то странное нарисовать чего софт не поддерживает.
                                                                                          +1
                                                                                          на бумажке не вставить строку выше написанной) Иногда такое надо бы сделать, когда что-то забыл заранее написать.
                                                                                            0
                                                                                            Так стрелка же. Пишешь где-нибудь рядом и стрелкой указываешь куда вставить или как местами поменять.
                                                                                              0
                                                                                              Да, только потом, когда на это смотришь — понимательность этой мешанины резко падает, по сравнению с правильно отредактированной электронной версией.
                                                                                              Хотя рукой рисовать может быть полезнее в плане заучивания материала — механическая память помогает зрительной.
                                                                                              Истина где-то по середине — что-то похожее на рисование на планшете стилусом и с последующим упорядочиванием блоков.
                                                                                          +4
                                                                                          мне просто некомфортно ибо я очень редко пишу ручкой и едва могу разобрать собственные каракули, это тупо дополнительный стресс на собесе и все
                                                                                            0
                                                                                            Это в том числе. Я даже когда активно писал конспекты и прочее в вузе потом лекции по чужим конспектам учил, свои прочесть не мог. А уж спустя 6 лет после окончания вуза при том что все это время максимум писал всякие там заявления (о приеме на работу, об увольнении, и еще по мелочам) — вообще кошмар.
                                                                                              +1

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

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

                                                                                                Проще скачать рукописный шрифт и брать с собой принтер на собеседование )
                                                                                                  0
                                                                                                  > это как есть рис китайскими палочками в наше время

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

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

                                                                                                      0

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


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


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

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

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

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

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

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

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

                                                                                                И при этом я прогер старой школы, самоучка по сути, ибо с начала 90-х развлекаюсь. Но — целиком за гугл, да. Хотя на бумажках схемы и связи по быстрому для себя рисую в процессе придумывания, но не более того.
                                                                                                  +1
                                                                                                  Хех, я на бумаге реверс-инжинирингом занимался. ИдыПро у меня тогда не было (да и вообще её ещё не было), распечатывал дизассемблерный листинг, и потом сидел на диване с пачкой листов в папке, разбирая и комментируя команда за командой, что там происходит.
                                                                                                    0
                                                                                                    Я совмещал turbo debugger с частичной распечаткой. Монитор и комп тогда был один, на экран все не влезало в текстовом режиме.

                                                                                                    Потом перешел на два компа, это было заметно удобнее. А сейчас у меня четыре монитора в графике с одним компом, и я могу все распихать как удобно. :) Прогресс — страшная сила.
                                                                                                0
                                                                                                Если это PHP, то можно сделать html-страницу: список ссылок на файлы помощи с названиями файлов в тексте.
                                                                                                –13
                                                                                                Несколько раз на собеседованиях предлагали такое — расшарьте экран, мы будем смотреть, как вы делаете тестовое задание. Разумеется, такие рога и копыта посылались сразу и навсегда
                                                                                                  +20
                                                                                                  А в чём проблема показать свою работу? Тем более на собеседовании.
                                                                                                  Мне кажется отличный способ показать свою крутость. Пусть смотрят открыв рот и удивляются как профессионалы работают.
                                                                                                  Есть даже такая методика работы — парное программирование.
                                                                                                    –9
                                                                                                    Проблема в том, что в этой компании будут стоять на душой и контролировать каждый чих. Вам нравится работать в таком месте? Мне нет.
                                                                                                      +20
                                                                                                      Не думаю, что тут есть связь. На собеседованиях довольно распространено, когда собеседующий сидит рядом и смотрит как ты решаешь задачи. Следит так сказать за ходом мысли. Наверное можно так оценить, насколько эффективно человек будет решать реальные задачи. Но при этом я не разу не сталкивался с микроменеджментом. Для выявления наличия микроменеджмента по поведению на собеседовании наверное есть какие-то другие признаки, но точно не этот.
                                                                                                        –2
                                                                                                        Одно дело смотреть, как ты пишешь код в 2-3 строчки, чтобы показать понимание заданного вопроса.
                                                                                                        И совсем другое дело писать тестовое задание под надзором.
                                                                                                          +1
                                                                                                          И совсем другое дело писать тестовое задание под надзором.

                                                                                                          Это вообще бред, от таких конторок надо держаться по дальше, если надзор организован не с целью помощи кандидату. А кто сомневается может попробовать встать за спиной у любого человека, который занят каким то делом, пристально на него пялиться и посмотреть чем такое кончится.
                                                                                                          Если конечно это не в тюрьме, концлагере или типа того происходит.
                                                                                                          =========
                                                                                                          По статье тоже не особо понятно, если задача такова, что для ее решения существует надежный ответ в гугле или готовая нормальная либа, то именно это и нужно использовать, подправив под себя если необходимо.
                                                                                                          Что там за задачи такие были, что полгода всё в гугле было, а потом пропало, код с гугла или СО очень редко подходит полностью, все равно обычно надо менять добавлять что-то.
                                                                                                            –6
                                                                                                            Ну судя по голосованию, тут таких надзирал очень много.
                                                                                                            Представляю, с каким наслаждением они пинают своих несчастных джунов за малейшие нарушения например codestyle
                                                                                                              +6

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

                                                                                                                    0
                                                                                                                    Я еще с юных времен привык пользоваться как англоязычным хелпом, так и англоязычной студией, потому на русском открываю только очень редкие статьи. А от термина «Решение» у меня до сих пор ступор в мозгу. И это даже при том, что сам английский я выучил лишь много лет позже.:)
                                                                                                                    PS. Вроде раньше там плашка висела, что на русский перевод машинный. Убрали?
                                                                                                                +2
                                                                                                                целом какой-то совковый подход

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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


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


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


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

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

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

                                                                                                                                  0

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

                                                                                                                                    0

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

                                                                                                                                      0

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

                                                                                                                                        0

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

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

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

                                                                                                                                  0
                                                                                                                                  И ведь не делают!
                                                                                                                            –1

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

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


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

                                                                                                                              Я довольно часто вижу программистов которые не знают ничего глубже своего языка вообще, SQL — как ни странно редкость (вообще свидетели-ORM сейчас плодятся и это печально), понимания хотябы основ devops — тоже нечастое явление…
                                                                                                                                +1
                                                                                                                                мне кажется, вы скорее про разные сферы деятельности и подобное. И вы, и ваш коллега в чем-то уже разбираетесь самостоятельно. Я же пытался сказать, что не обладать знаниями, не разбираться, а гуглить готовые решения — так себе идея в глобальном плане. Потому что нет при этом развития, потому что шаг в сторону от имеющегося в гугле — и полномочия разработчика всё. Написание кода на бумажке — один из вариантов проверки знания. Вряд ли кто-то будет отказывать из-за пропущенной точки с запятой, но если человек не знает, как работать, например, с указателями в с++ (нанимаясь на должность разработчика с++), то это повод крепко задуматься
                                                                                                                              0
                                                                                                                              А в чем проблема написать код на бумажке?
                                                                                                                              Тем более обычно просят совсем примитивные вещи вроде перевернуть строку или обойти дерево.
                                                                                                                                +1
                                                                                                                                Само по себе гугление — весьма полезный навык. Автор скорее о том, что такие программисты могут найти типовое решение, но не могут это типовое решение расширить в случае необходимости.
                                                                                                                                Типа отсортировать массив строк — легко.
                                                                                                                                Отсортировать массив структур по двум полям, одно по возрастанию, второе по убыванию — гугление в течении дня и ступор от такой трудной задачи.
                                                                                                                                  0
                                                                                                                                  ИМХО, если чувак не может решить на бумажке какую-то простую задачу без постоянных подглядываний и копипаст, то грош ему цена как специалисту
                                                                                                                                    +1

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

                                                                                                                                  +55
                                                                                                                                  Из текста публикации сложилось ощущение, что команда занимается решением задач на Codewars (к примеру), а не работает над проектом/проектами.
                                                                                                                                  Разве на собеседовании не возникло ни одного вопроса, ни желания обсудить реализацию с кандидатом, предоставившим решение (хоть и идеальное), что сразу позволило бы определить, что человек не сам писал код. Разве за 3-6 месяцев не возникло ни одного обсуждения рабочих вопросов, обсуждения пулл реквестов, позволяющих понять, что человек совсем не в теме того, что пишет?
                                                                                                                                    –39
                                                                                                                                    Тут скорее проблема другого рода описанна. Не то что эти ребята не умеют в код, а то что они не знают барадатых постулатов. Они могут быть первоклассными спецами на пихе допустим, а потом придёт такой дед и начнёт орать, как это они не знают типы, сборщиков мусора и прочей сишной хероборы
                                                                                                                                      +1
                                                                                                                                      Не, тут проблема еще более другого рода описана. Это особенность 1с что нужно много мусора в голове держать так как IDE очень слабая, мягко говоря, я когда с 1с работал тоже был вынужден почти всю стандартную библиотеку держать в голове.
                                                                                                                                      Ну еще нюанс что по 1с в сети готовых решений нет почти, ни просто в текстовом виде на SO, ни готовых библиотек и приходится из головы многое писать. Плюс проблема с переиспользованием кода по разным причинам (сложившиеся практики, сам язык мешает это делать).
                                                                                                                                        +1
                                                                                                                                        В смысле IDE? Эта дрянь даже в 2020 еще не научилась работать через language server с любой современной IDE хотя бы с VSCode?
                                                                                                                                          +1
                                                                                                                                          Ну, VSCode все таки редактор, а не IDE. Но не суть важно. Сообщество language server пилит насколько я в курсе, но решения от вендора нет, что на качестве само собой сказывается ибо в свободное время энтузиастами — это не то. Плюс использовать это довольно проблематично, так как работает через выгрузку/загрузку файлов, что создает еще некоторые проблемы.
                                                                                                                                          От вендора есть решение в виде перепиленного эклипса, но работает не сказать что идеально, да и им почти никто не пользуется насколько знаю, ибо выстроенные процессы ломать не хотят, да и железо там нужно дикое чтобы хорошо работало.
                                                                                                                                          Очень рад что теперь пишу на котлине с использованием нормальных инструментов. В 1с даже гит распространения не получил пока.
                                                                                                                                          +1
                                                                                                                                          В смысле IDE? Эта дрянь даже в 2020 еще не научилась работать через language server с любой современной IDE хотя бы с VSCode?


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

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

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

                                                                                                                                            +1
                                                                                                                                            Угу, очень «нормально». В сравнении с современными IDE для java и прочих — в просто земля и небо. Естественно не в пользу 1с. Говорю как человек проработавший 4.5 года с конфигуратором и пощупавший немного EDT и почти 2 года проработавший с Android Studio.
                                                                                                                                              0
                                                                                                                                              Говорю как человек проработавший 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 и сейчас еще в активной разработке. А то, с чем вы могли работать несколько лет назад — это какая-то пред-альфа, зачем на неё ссылаться?
                                                                                                                                                • <span class="icon_comment-branch js-comment_tree" data-id="22123560" data-parent_id="22123366" title