Эти токсичные, токсичные собеседования



    Всё началось, когда автор Ruby on Rails признался миру:

    К нему присоединились и другие разработчики:

    Один из самых старших инженеров Google сказал, что ни черта не помнит как работает квиксорт:

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

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

    Как появилась эта статья


    Для меня, как и для многих других, собеседования регулярно были болью. (А когда-то мне ещё и страшно было на них ходить.)

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

    О каких именно собеседованиях речь


    • викторины («Какая функция библиотеки X обладает особенностью Y?»)
    • головоломки («Вас уменьшили до размеров 5-центовой монеты и бросили в блендер. Ваш вес уменьшился так, что плотность вашего тела осталась прежней. Лезвия начнут вращаться через 60 секунд. Ваши действия?»)
    • вайтбоардинг («whiteboarding» — когда код требуется писать на маркерной доске)
    • алгоритмические («Разверните бинарное дерево на бумажке»)


    Чем вредны подобные собеседования


    Проверяют в условиях стресса людей, специальность которых не предполагает работать в условиях стресса


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

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

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

    Не коррелируют с разработкой


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


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


    Предположим, вы очень неплохо знаете некоторую тему, и вдруг по ней всплывает какой-то викторинный вопрос. Ответа вы не знаете. Люди замечают это, и, как правило, предполагают, что вы не знаете ничего по всей теме. (Много хуже, если вы поймали не один неудачный викторинный вопрос, а сразу несколько.)


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

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

    Порождают ненужные элитизм и дедовщину


    Айти как сфера деятельности по своей природе невероятно подвержена ряду дуростей:

    • культ сложности (Если решение недостаточно сложное или мне было недостаточно тяжело, то что-то не так)
    • элитизм (Я лучше них, я лучше них, я прошёл все искусственные барьеры!)
    • дедовщина (Меня гнобили, и я буду)

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

    Основные аргументы сторонников Google-style собеседований


    «Ведь нужно проверять фундаментальные знания»


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

    Способность разворачивать деревья на бумажке никак не поможет ни в одной из этих вещей (даже, собственно, может помешать: уведёт фокус с продукта на «божечки-кошечки, мы потратили неделю и сделали кастомный JSON-парсер, он на 7% быстрее». Я работал с такими людьми.).


    «Вообще-то это требуется на практике»



    Неа, не требуется. Более того: если я как тимлид увижу в репозитории мёрдж-реквест с наколеночным обходом графа или кастомной реализацией квиксорта, я с вероятностью 95% отклоню такой реквест с пометкой чувак, найди готовую библиотеку. Не говоря уже об истовом стремлении написать свою СУБД.

    Что же касается каких-то особенностей языка или фреймворка, документация всегда к вашим услугам. (Для поездок на Кубу давно придумали Zeal/Dash).

    Далее должна следовать обязательная ремарка про людей, пишущих поисковое ядро Google / Yandex. Но ваши разработчики в их число не входят (You Are Not Google), и прекрасно смогут прочитать про сложный алгоритм в момент, когда он действительно потребуется. Всё даже ещё интересней: в подобных хардкорных командах часто есть такой специальный парень с PhD по математике, который помогает разработчикам с алгоритмами.

    «Если разработчик чего-то стоит, он это умеет»


    Это вообще не аргумент в контексте проблемы, а скорее попытка утвердить себя во мнении, что вы хороший разработчик (и человек). Оставьте эту попытку, вы хороший разработчик! (Просто, скорее всего, страдаете от синдрома самозванца.) Идите сюда, я обниму вас ^_^

    В минуту уныния рекомендую вспомнить Дэна Абрамова, который в своё время не прошёл во Вконтакте:

    и сотни других подобных примеров (флешмоб #меняневзяли в фейcбуке).

    Что важнее, все ваши суждения правильный разработчик должен знать XYZ, скорее всего, являются иллюстрацией ошибки выжившего:



    «Нам тут не тупо кнопки по вьюшке двигать»


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

    «В нашей компании всё часто меняется, поэтому проверяем универсально»


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

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

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

    «У нас такой поток желающих на трудоустройство, что нужны серьёзные фильтры»


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

    «Ты же сеешь невежество! Наверное, это из-за того, что ты не осилил алгоритмы!»


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

    «Но так было всегда»


    … и это ещё вовсе не означает, что существующий порядок вещей правилен.

    «Я влёт считаю O(f(n)) и с удовольствием рисую графы на доске. Что же, всё это зря?»


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

    «Но ведь в Google/Facebook/Zalando продолжают так собеседовать, как же туда пройти?»


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

    «А что же тогда спрашивать?»


    Now we're talkin'! Всё просто: спрашивайте те вещи, которые кандидату придётся у вас делать. Попросите разработчика спроектировать тиндер или убер. Обсудите с ним частые проблемы в работе с очередями, сериализацией, сокетами. Разрешите ему при этом использовать те инструменты, которые он привык использовать.
    И обязательно смотрите и обсуждайте код, будь то GitHub или нечто, написанное в процессе собеседования.

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

    Как всё обстоит в EXANTE


    Когда я только сюда устраивался, разработчики пригласили меня на продолжительный диалог. Угостили колой, обсудили мои прошлые проекты, подробно рассказали, чем занимается компания. Я задал ряд вопросов по технической части. Было много дебатов на тему «почему в данном случае было такое решение, а не иное». В том числе получил пару вопросов по моему коду в открытом доступе. В конце мне дали задачку из разряда «Как бы вы запроектировали X». Ещё мы периодически смотрели код на ноутбуках.

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

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

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

    Менять мир нелегко, но необходимо


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

    Был такой замечательный венгерский врач-акушер Игнац Филипп Земмельвайс. Ему первому пришла в голову мысль, что 30-50% смертность при родах вызвана инфекциями с немытых рук врачей. И он не просто не нашёл признания: его цензурировали, осмеивали, поместили в психушку. Он умер от избиений. Сейчас же Земмельвайс известен как основоположник асептики и «спаситель матерей».

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

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

    Материалы для размышления


    EXANTE
    25.58
    Инвестиционная компания нового поколения
    Share post

    Comments 733

      +62
      Заголовок спойлера
      image
        +14
        ну, такое :) Сатира с вашего скриншота она скорее на критику непонятных эйчарских вопросов направлена, а в моём посте про проблемы технических интервью.
          0
          Я офигел, когда меня в Германии спросили есть ли у меня права на управление автомобилем… Был несколько удивлен :)
            0
            почему? может вам хотят(или работа подразумевает наличие) выдать корп авто.
              0
              На самом деле спрашивают в 90% случаев. Во-первых это некий тест, потому что почти у всех есть права, независимо от пола, вероисповедания и т.д. А если нет, то либо у вас была причина не получать права, либо они у вас были и вас их лишили (пьяная езда, наркотики и т.д.). Во-вторых очень часто нужно поехать на встречу, к клиенту, к заказчику и, обычно, отдельного водителя не выдают.
                0
                Выдают машину? Или не оплачивают такси?
                  0
                  Ну на счет такси я не слышал. Если с вокзала или аэропорта, то такси вариант, но если ехать к заказчику 150 км, то выйдет очень дорого. А так на фирме есть, например 3-5 машин, которые только для этих целей. Взял ключи, карточку для заправки и путевую тетрадь и поехал по делам.
                0
                у нас в конторе это очень важно. Или оплачивать Вам такси при поездке в один из филиалов или Вы сами на фирменной машине решите все вопросы.
                  0
                  У них скорее всего командировки в Штаты или другую страну где без прокатного авто не обойтись.
                    0
                    страну где без прокатного авто не обойтись
                    А такие страны разве бывают? Везде же есть такси.
                +5
                Раз уж вы начали, продолжу:
                Джордж Карлин — как правильно устраиваться на работу

                  +5

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

                    +9
                    Пример того как рассказать, что ты начальник?
                      +1
                      "(Царю, чтоб не выглядеть так же, как все,
                      Приходится часто скакать на лосе)."
                      (Эйлин О'Коннор, из песни про Хоббита)
                        0

                        Тоже мне достижение :)

                      +5
                      Вопросы местами дебильные, но моожно ровно эти же ответы сказать нормальным тоном.
                      С человеком все ясно: конфликтный, смотрим следующего.
                        0
                        После нескольких десятков собеседований или играешь по правилам, или ломаешь их.
                        0
                        Вряд ли такого нервного и озлобленного типа возьмут работать в коллектив. Смотрителем маяка может?
                          0

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

                            0
                            Я думаю, это отсылка к спору остроконечников и тупоконечников.
                          +2
                          Ждем в комментах лидов из ТОП ру-айти ;)
                            +7
                            ждём с удовольствием, ибо у меня в том числе цель поднять дискуссию по этой теме )
                            +4

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

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

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

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

                                Кстати. Вот в этой части как раз прошу своим языком описать, как человек понимает, что такое X (DNS, например), и как оно работает. И сразу уточняю, что книжное и википедийные определения меня не сильно интересуют, если не знают — можно не напрягаться. Если знают — я не откажусь услышать.
                                Ну или прошу примерный алгоритм на пальцах, как система отработает при использовании этой технологии.
                                Человек и так стресс испытывает (первая же работа! У меня ладони были мокрые в первый раз), а вот ещё и чисто теоретическое тут вспомнить может быть проблемой. Не экзамен в универе, всё же.
                                  +4
                                  Я очень часто задаю один и тот-же теоретический вопрос. Мне задали его где-то в 1996-м.
                                  Я прошу человека нарисовать блок-схему решения квадратного уравнения. При этом сразу предупреждаю что гуглом пользоваться можно, но я буду наблюдать.
                                  вопрос задаю обычно или юниорам или «матерым».
                                  Вторым скорее для проверки психологического фактора.
                                  Очень многие начинают бычится, мол «это смешно, задавать МНЕ такие простые вопросы».
                                  Ну и потом когда (не если а когда) я найду к чему придраться, то у человека будет вторая возможность провалиться начав спорить что это все не важно, и вопросы у меня тупые.
                                  Если человек напишет без гугла, да еще и без ошибок («идеально»), то я прям даже не знаю что делать. Такого никогда не было. Но пути решения, поведенческие реакции, сообразит ли человек исправить все оплошности после первого наводящего вопроса, или будет кивать головой дальше пока я все сам не назову — это важно, да. Не так важно как практические навыки, и реальные знания (не энциклопедические), но важно.
                                  Это сродни текущему скандалу по «50% женщин». Отличная идея это ваше равенство.
                                  Поощрять талантливых женщин, геев и лесбиянок — выгодно всем, ведь ты получишь ценные кадры которые страдают от предрассудков в другом месте, они получат хорошее место… Но если идею развить до конца, то мы получим «50% женщин-программистов», а это чистый фейл.
                                  Я думаю что все эти олимпиадные собеседования имеют свои корни из таких вот небольших вкраплений теории и викторины. А потом «немножко» выродились в викторину. Плюс рекрутеру проще зазубрить количество пинов у сим-памяти, когда сейчас уже диммы чем научиться определять что рекрутируемый способен без документации разобраться какие джампера нужно ставить для какого процессора (ну какой он есть личный пример, по софту ни разу не собеседовался непрофессионалами).
                                    –1
                                    Камент месяца — Супер :)
                                      0
                                      Забавный вопрос для собеседования, спасибо!
                                        +1

                                        А какой ответ вы ожидаете?


                                        Прямолинейный алгоритм «x_1 = -b+sqrt(b^2-4ac) / 2a», «x_2 = -b-sqrt(b^2-4ac) / 2a » вас не устроит? А почему?


                                        Не проверил, что коэффициент при старшем члене не равен нулю? А если бы проверил? Вы бы придрались, что я не проверил, что для любого i > 2 коэффициент при x^i равен нулю? Кстати, как это сделать на машине с ограниченной памятью? И имеет ли смысл это делать?


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


                                        Не проверил, что дискриминант равен нулю, и поэтому x_1 = x_2? Ну давайте обсудим, почему нельзя говорить, что у квадратного уравнения один корень.

                                          –1

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

                                            +1

                                            Это как это для комплексных чисел корень работает по-другому?


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

                                              0

                                              Но вот Вы забыли это указать, а это существенно важно, мне кажется.

                                                +3

                                                Так он и для вещественных чисел так же работает. Корней из 4 два: 2 и -2, например.

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

                                                      Я просто со своей стороны считаю, что слова «блок-схема» еще более ругательные, чем «сортировка пузырьком». И постараюсь держаться одальше от конторы, где это просят на собеседовании.
                                                        +2
                                                        Дракон идет по лесу с блокнотом. Навстречу бежит волк.
                                                        Дракон (глядя в блокнот): Так, волк, сегодня вечером в 9.00 приходишь на
                                                        поляну к дубу, где я тебя съедаю. Записываю тебя. (записывает) Есть
                                                        вопросы?
                                                        Волк (испуганно): Н-нету…
                                                        Дракон: Хорошо, до девяти свободен.
                                                        Волк убегает, дракон идет дальше. Навстречу идет медведь.
                                                        Дракон (глядя в блокнот): Так, медведь, ты вечером занят?
                                                        Медведь (испуганно): Н-нет…
                                                        Дракон: Тогда в 9.00 приходишь на поляну к дубу, где я тебя съедаю.
                                                        Записываю тебя, медведь. (записывает) Есть вопросы?
                                                        Медведь: Н-нет…
                                                        Дракон: Так, до вечера свободен.
                                                        После этого дракон встречает лису, лося, ежа и т. д. — и всех записывает
                                                        на вечер на съедение. Идет дальше, навстречу бежит заяц.
                                                        Дракон (глядя в блокнот): Так, заяц, сегодня вечером в 9.00 приходишь на
                                                        поляну к дубу, где я тебя съедаю. Записываю тебя, заяц. (записывает)
                                                        Есть вопросы?
                                                        Заяц (робко): А м-можно не п-приходить?
                                                        Дракон: Можно. Тогда я тебя вычеркиваю. (вычеркивает)

                                                        Все кто спрашивает «а можно псевдокод (код) а то блок-схемы не помню / плохо рисую / не люблю?» получают от меня ответ: «Можно».
                                                          0
                                                          Ну так то же самое можно и на других собеседованиях делать. Вам говорят — напишите код сортировки пузырьком, а вы можете сппросить — а обязательно код на С++ или можно псевдокод? И т.п. В нормальных местах так тоже можно.

                                                          А вот лучший способ завалить собеседование с сортировкой пузырьком это «отказаться его делать обидевшись что мол слишком простой вопрос»
                                                  –2
                                                  В жизни блок-схемы рисую редко. И совершенно не помню как их правильно оформлять. Рисую банально прямоугольники с ромбиками и стрелочками, все остальное словами.
                                                  Слово «блок-схема» в задаче во многом «дань традиции», ибо я считаю что стал программистом именно с этой задачи. Я тогда пришел к системному программисту на маминой работе с тем вопросом который меня интересовал — я не мог понять для чего в микропроцессоре Z80 регистр R (если не путаю наименование). Вопрос кстати был не совсем уж глупый, и прошло довольно много лет пока я таки на практике понял что регенерация динамической памяти это не такая уж и мелочь, и когда процессор это сам умеет это хорошо… В общем я такой весь умный был, а этот старый еврей меня посадил блок-схему квадратного уравнения рисовать. Оно было сильно обидно когда тебя такое спрашивают в 11-м классе с математическим уклоном…
                                                  Вот когда я скрипя зубами нарисовал, и меня ткнули носом в граничные условия и т.п., я да, стал программистом). Не хорошим программистом, плохим программистом. Ничего не умеющим, но уже программистом.

                                                  Ну а так то оно не мешает. Кто не помнит что это — может спокойно нагуглить. Кто не может нагуглить — проявит психологические качества которые пойдут ему в минус. Если это будет единственный минус то и черт с ним, подскажу, но если я и так колебался, то даже это может повлиять.
                                                    0
                                                    Тот факт, что у вас был такой вопрос когда-то и вы его на всегда запомнили не значит, что другим он так же нравится. Вот у меня все было очень хорошо с матиматикой, я в институт поступил написав успешно олимпиаду по математике. Но вот прошло много лет и я уже не помню как выглядит дискриминант и как считать квадратичные уравнения. Получив ваш вопрос мне бы прошлось гуглить «как считать дискриминант» или еще что-то вроде того.
                                                      0
                                                      Я тоже не помню как выглядит дискриминант. Но не стесняюсь гуглить школьные вопросы, если то разрешено. Я тут раз семь наверное писал, что зубрежка зло, гугли все что надо. Хоть готовое решение, но готовое решение по блок-схеме тоже надо уметь нагуглить.
                                                      0
                                                      Только не задавайте вопросы про инвалидизацию кэша или именование переменных. Или по крайней мере не заикайтесь об этом на хабре. ;-)
                                                    +2
                                                    Нарисовать блоксхему или не спрашивая «а можно» написать псевдокод? — это тоже показатель того как человек в спокойной обстановке будет оформлять код.

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


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

                                                    Какой? Я не уверен, что корректно улавливаю коннотации.


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

                                                    А какие исключения? Коэффициент при x^2 не равен нулю, коэффициенты при всех старших степенях равны нулю — это определение полинома второй степени. Почему вы предлагаете проверить только одну часть этого условия?


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


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

                                                    Что значит «нестандартное окружение»? У меня в математике комплексные числа стандартные, давно придуманные и вполне себе используемые.


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

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


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


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

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

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

                                                Не стоит так резко воспринимать это.
                                                  0
                                                  А если не было позапрошлой работы? Я сразу после универа устроился и работал 13 лет в одной конторе. Вот сейчас как раз ищу новую работу (в связи с переездом). И да, почти все интересное подпадает под NDA (в моем случае). Буду пытаться рассказывать так чтобы ничего не «выдать»…
                                                    0
                                                    А если все работы такие?
                                                      0
                                                      Складывается впечатление что комментарий написан лишь бы написать.

                                                      Если уж совсем все плохо с возможность рассказать, наверное стоит подумать об opensource или так и говорить что показать нечего.
                                                        0
                                                        Я обычно рассказываю про используемые технологии (если, конечно, и их список не закрыт NDA)
                                                  +5
                                                  Вообще всё больше склоняюсь к мысли, что идеальный рекрутинг должен выглядеть так:
                                                  • отфильтровали по опыту и стэку
                                                  • нашли публичный код
                                                  • показали его разрабам
                                                  • позвали на собес, удостоверились, что он сам писал этот код
                                                  • взяли его
                                                    +12
                                                    что делать, если публичного кода нет?
                                                      +7
                                                      Это штатная ситуация, варианты её решения есть:

                                                      • тестовое задание (обычно для джунов, т.к остальным дорого тратить на это время. Либо оплачивать)
                                                      • писать и обсуждать код прямо на собеседовании
                                                      • устроить код-ревью чужого кода
                                                      • запросить зарихтовать кусочек коммерческого кода и прислать
                                                      • UFO just landed and posted this here
                                                          +3
                                                          наверное они просят собрать свою генту)
                                                            0
                                                            дефолтный emegre world с генкернелом много ума не требует :)

                                                            +1
                                                            Амазон дает шелл на сервер и просит поправить косяки по списку.
                                                              0
                                                              И не только Амазон.
                                                            +6
                                                            писать и обсуждать код прямо на собеседовании

                                                            Возвращаемся к whiteboarding'у пузырька? :) ну, и стоило ли так напрягаться, статью целую писать, чтобы вернуться к простому незамысловатому и лёгкому для анализа способу?
                                                            Когда-то давно прочёл, а потом нашёл немало подтверждений, что есть люди которые могут писать код и люди, которые только говорят, что могут. Очевидно, самая первая задача стоит в том, чтобы отделить одних от других. Можно пойти сложным путём и пытаться понять это из пространных размышлений о коммерческом коде в вакууме. Но можно же просто попросить написать на бумажке "пузырёк". Не?

                                                              0
                                                              Отделять одних от других надо как можно быстрее и до того, как пригласить к уайтборду, не?
                                                                +2

                                                                Если овладеть этой джедайской техникой, то собеседования становятся не нужны. Не?

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

                                                                    Готов рассмотреть варианты.
                                                                      0

                                                                      Полагаю, в топменеджеры газпрома примерно так и "берут". Но "у генерала уже есть свой сын" :-D

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

                                                                    То есть вы предлагаете притащить на собеседование компьютер? а какой именно? Я, вот, привык к аймаку с клавиатурой микрософт нейчурал 4000 и вертикальной мышкой. Покупаете ради кандидата? Поставить туда любимую иде кандидата, дать ему пол-дня для её настройки под себя и… и попросить написать бинарный поиск? Супер!

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

                                                                        Ну, вот, видите, вы сделали первый шаг — от комфортного компьютера и привычной иде к абы-какому хламу и первому попавшемуся иде. Следующий логический шаг — для решения примитивной задачи зачем вам иде? Хватит бумажки и ручки. Это достаточный набор бля любого айтишника. Я уверен, вы справитесь. Мои дети в первом классе справляются с этим инструментарием. И вы справитесь. А если не справитесь… ну, тогда, наверное, нафиг вы нужны такой? ;)

                                                                          +1
                                                                          Во всем нужен баланс).
                                                                            –1
                                                                            Я с некоторого времени стал принципиально отказываться на собеседованиях писать код не на компе.
                                                                            Если интервьювер не подготовил ноут и хочет видеть, как я пишу код — он недостаточно хорошо подготовился к собеседованию.
                                                                              +2

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

                                                                                0
                                                                                А собственный ноут захватить с собой религия не позволяет?
                                                                                Нет, серьезно. Если вы хороший специалист и рассчитываете на то что компания будет стараться создать вам хорошие условия (орешки в кофе-комнате, рабочий график для совы, работа из дома если похмелье, не суть), то давайте уже сразу с собеседования начинать «я лучше работаю в привычной среде, не возражаете если буду писать на своем компе?».
                                                                            +1
                                                                            Google на собеседованиях выдает ноут: мне предлагали выбрать из Chromebook, Macbook Air и вроде Lenovo какой-то. Правда для кода все равно или google doc, или доска.
                                                                              +1
                                                                              А клавиатуру и мышку к ноутбуку они не предлагали?

                                                                              Клавиатуры ноутбуков
                                                                              MacBook Air:


                                                                              Chromebook:


                                                                              Lenovo ThinkPad X1:


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


                                                                              Не понимаю, как можно программировать за такими недоразумениями. Я не спорю, можно привыкнуть к необычной раскладке, но когда тебя сажают за ноутбук и видят, что ты не можешь набирать на нём код, не глядя на клавитуру, это может испортить впечатление.
                                                                                +1
                                                                                Нет, не предлагали. Думаю, если попросить, дадут. И всегда можно писать на доске или на бумаге.
                                                                                Но тут есть такая особенность — все материалы с собеседования будут смотреть и другие люди. Вероятно, код им будет удобнее смотреть в виде google doc, а схемы и таблицы — в виде фото доски или листов, а не наоборот.

                                                                                Лично я сначала у доски рисовал пару рисунков, объяснял решение и доказывал его корректность и сложность, после чего набивал код на ноуте параллельно с комментариями на тему тестирования, получалось быстро и удобно.
                                                                                0
                                                                                Год назад у них собеседовался, мне ноут не предлагали :-/
                                                                                Только маркер и доска, только хардкор.
                                                                                  0
                                                                                  мне ноут не предлагали

                                                                                  Скорее всего, зависит от офиса. В Лондоне мне предлагали, в Цюрихе — нет.
                                                                                  Может, уже и вовсе эту практику прикрыли. Мне лично доска показалась гораздо удобнее, чем google doc на chromebook. На ней картинки и формулы удобно рисовать. Не могу я без картинок задачи решать.

                                                                                    0
                                                                                    Скорее всего, зависит от офиса. В Лондоне мне предлагали, в Цюрихе — нет.

                                                                                    Видимо, так и есть. Я был в Цюрихе, там не предлагали.

                                                                                    Мне лично доска показалась гораздо удобнее, чем google doc на chromebook. На ней картинки и формулы удобно рисовать. Не могу я без картинок задачи решать.

                                                                                    Так можно же совмещать? Картинки на доске, код в компьютере.
                                                                                    По-моему, так все и работают: картинки рисуют на доске, а код пишут в компьютере.
                                                                                      +1
                                                                                      Так можно же совмещать? Картинки на доске, код в компьютере.

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

                                                                                0
                                                                                Попросить кандидата принести свой лэптоп в голову не приходило?

                                                                                Если у кандидата нет лэптопа — сойдет любой, в любом случае это не то же что писать код на бумажке.

                                                                                Disclaimer: я не против писания кода на бумажке на собеседовании, но ваш аргумент как-то не очень.
                                                                                  +1

                                                                                  На собеседование со своим компьютером? Не, не приходило. Как не приходило просить крановщика прийти со своим башенным краном. :) в общем, я бы на такое собеседование не пошёл. Хорошо, что ни кто пока до такого не додумался :). И, главное, ради чего — ради написания пузырька/бинарного поиска или чего-то подобного? Мой аргумент о том, что нет смысла забивать гвоздь микроскопом. По-моему, он очень даже "очень". А вот "программист" настаивающий на том, что не в состоянии реализовать простейший алгоритм без любимой иде и гугла, как раз "не очень". Зачем такого брать не работу?

                                                                                    +1
                                                                                    На собеседование со своим компьютером? Не, не приходило. Как не приходило просить крановщика прийти со своим башенным краном. :)

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

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

                                                                                    Tут я с вами согласен, но аналогии у вас все равно дикие какие-то…
                                                                                      0
                                                                                      Многое от конторы зависит. Есть места, куда в принципе нельзя приходить со своей техникой по соображениям безопасности.
                                                                                        0
                                                                                        Думаю таких единицы.
                                                                                          0
                                                                                          Отнюдь. На западе, если фирма хочет работать на гиганта N, то, в 99 из 100 у гиганта N будет такая политика безопасности, которая требует безопасности и от субподрядчика.
                                                                                            0
                                                                                            Хм… Как вы себе это представляете? Например телефон свой тоже нельзя проносить? Знаю что иногда NDA перед собеседованием могут попросить подписать, но про запрет на телефоны/ноутбуки в первый раз слышу.

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

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

                                                                                              > провели на определенный этаж для собеседований

                                                                                              Наверное, всё дело именно в этом. Есть гостевые помещения, а есть рабочие (для подписавших NDA), и гостевые помещения изолированы от рабочих.

                                                                                              > Вообще у нас многие на собственных ноутах работали — и ничего.

                                                                                              С собой их забирали или оставляли на работе?
                                                                                                +1
                                                                                                Проносить можно — никто обыск на входе не устраивает, но вот пользоваться личными телефоном и ноутбуками нельзя.

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

                                                                                                Наверное, всё дело именно в этом. Есть гостевые помещения, а есть рабочие (для подписавших NDA), и гостевые помещения изолированы от рабочих.

                                                                                                Конечно, зачем пускать кого попало куда не следует (я это серьёзно)

                                                                                                С собой их забирали или оставляли на работе

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

                                                                                                А чем компанию защитит тот факт что ноутбук нельзя заносить или выносить из здания? (опять же если это не завод как я написал ниже, ну и может быть в банке какие-то спец требования еще)
                                                                                                Доступа к боевым серверам/ключам у кого попало нету, как и к интранету из дома. Ограничивать разработчиков и так подписавших NDA из-за необоснованной паранойи? Лучше вложиться в нормальную безопасность на мой взгляд.
                                                                                                  0
                                                                                                  > Опять же, как вы себе это представляете? Например вам приходит смс на телефон — что смотреть ее нельзя? Или нужно срочно ответить на звонок — на улицу пойдете?

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

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

                                                                                                  Вот всяких следящих программ мне ещё не хватало.

                                                                                                  > А чем компанию защитит тот факт что ноутбук нельзя заносить или выносить из здания?

                                                                                                  Во-первых, ноутбук с конфиденциальными данными может быть банально спёрт. Во-вторых, контакт внешней сети с интранетом будет, но не в реальном времени.

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

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

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

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

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

                                                                                                  Как и свой ноутбук — только интернета либо не будет, либо дадут гостевой.

                                                                                                  Что я и описал в своем примере выше.

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

                                                                                И тут же налетят сотни, тысячи…
                                                                                  0
                                                                                  Два последних варианта — ревью и шлифовка — это класс! Отличная идея. Честно. Главное код взять хороший, например не по стайлгайдам, KISS и SOLID. Уверен, в любом проекте найдётся. Можно нагавнякать. Или дать что-нибудь из решений кандиатов, не прошедших тестовое задание.
                                                                                    –8

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

                                                                                      +11
                                                                                      Человеку невыгодно тратить свое личное время на неоплачиваемую работу, тем более что на рынке есть работодатели без тестового задания
                                                                                      Существует практика оплаты затраченного на тестовое задание времени
                                                                                        +1
                                                                                        Там в статье обосновывается положение, что разработчику не только невыгодно бесплатно делать задания, но и даже платно (распыляются силы на неосновную цель).


                                                                                        +3
                                                                                        Нормальные работодатели платят за тестовые задания. Но они — вымирающий вид.
                                                                                          +1
                                                                                          Тестовое задание (которых лично я не сторонник) для кандидата, тем не менее — обычная инвестиция, имеющая субъективную ценность. Каждый может оценить (посчитать) её для себя.
                                                                                            +1
                                                                                            Ну так и для работодателя они — инвестиция.
                                                                                            Если я не настолько хорош с точки зрения компании, чтобы оплатить мне доорогу и тестовое задание — стоит задуматься, правильно ли меня оценивают.
                                                                                        • UFO just landed and posted this here
                                                                                            0
                                                                                            Как отказаться-то, если контора просит тестовое задание, а ты не против работать у них? Оплачивать, разумеется, никто ничего не собирается. Делаешь так — а куда деваться? Последний раз, когда я искал работу, сделал их штук 10, истратил вагон личного времени, и только последнее — 10-е — понравилось. Никто ничего не компенсировал, разумеется. Не те, кому не понравилось, ни тот, кому понравилось.
                                                                                          +3
                                                                                          Поддержу ревью.
                                                                                          Менее стрессовый вариант, рефреймящий коммуникацию с экзаменационного шаблона (вы задаёте каверзный вопрос, кандидат подрывается искать ответ) на кооперативный (совместно обсуждаете сторонний код, ответственность за который на кандидате не лежит, он наконец может немного расслабиться, включить голову, раскрыть способности, покритиковав другого показать себя).
                                                                                          Искать недостатки в готовом неидеальном коде эмоционально проще, чем ваять свой идеальный. Для перфекциониста вайтбординг — ад.
                                                                                          Если уж сил нет как хочется проверить стрессоустойчивость, можно дать кандидату в морду. Заодно и свою проверить.
                                                                                          0
                                                                                          Попросить прислать какой-нибудь код, например.
                                                                                            +2
                                                                                            Можно ради спортивного интереса сграбить кусок кода из больших популярных опенсорсных проектов гугла или апл,
                                                                                            и в итоге удивиться, какой «некачественный» код прислал.
                                                                                              +3

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

                                                                                                –4
                                                                                                Не скажу за всех, но я бы не хотел работать с людьми, которые не пишут код в свободное время.
                                                                                                  0

                                                                                                  Планета Шелезяка ждёт Вас!

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

                                                                                                      Так всё хорошо в меру ведь. Главное — правильно организовать своё время.

                                                                                                        0

                                                                                                        О рабочих моментах трудно общаться, или в пятницу после работы?

                                                                                                          0
                                                                                                          О рабочих конечно не трудно, но ни о чем другом. В пятницу после работы они код пишут дома :)
                                                                                                            +2

                                                                                                            А зачем вам с ними общаться о чём-то другом?

                                                                                                              –1

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

                                                                                                                +4

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

                                                                                                                  0

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


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

                                                                                                                    +3
                                                                                                                    > Например, если люди плохо знают друг друга, то они могут стеснятся поднять какую-то важную тему, например, о проблемах проекта и прочее.

                                                                                                                    Думаю, это больше от характера зависит.
                                                                                                                      +2

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

                                                                                                                    +6
                                                                                                                    Тимбилдинги очень эффективно отпугивают тех, кто предпочитает после рабочее время проводить по своему усмотрению.
                                                                                                                    А еще тимбилдинги не только уменьшают, но и увеличивают напряжение — зависит от очень многих факторов.
                                                                                                                      0
                                                                                                                      Если принудительные — то вы правы, конечно. Но, например, сходить в пятницу в бар с коллегами бывает полезно для того же тимбилдинга :)
                                                                                                                        +2
                                                                                                                        А давайте делать пьянки в рабочее время. Нет серьезно.
                                                                                                                        ДРы, корпоративные праздники и т.п. вполне можно и в рабочее время «после обеда» отмечать. При этом обязательно дать возможность асоциальным типам оставаться асоциальными. Ненавижу общения в группах больше трех человек.
                                                                                                                        Прям физически не могу. Но как руководящий работник делаю над собой усилие.
                                                                                                                        А тем кто не манагерит, тот должен иметь возможность откосить и не вызывать у окружающих отторжение по этому поводу.
                                                                                                                        А тимбилдинги в свободное время — зло несусветное. Нет, иногда можно, но лучше уж куда-то на недельку с семьями или еще что-то, чем «пиво по пятницам».
                                                                                                                          +3
                                                                                                                          А давайте делать пьянки в рабочее время.
                                                                                                                          Нормальные компании так и делают. Более или менее взрослому человеку нафиг не сдалось приезжать в выходной или задерживаться вечером, чтобы еще раз на коллег посмотреть вместо общения с семьей.
                                                                                                                            +2

                                                                                                                            Или вместо того, чтобы посидеть и дома пописать код.

                                                                                                                              0
                                                                                                                              Конкурентам
                                                                                                                                0

                                                                                                                                Зачем? Можно для себя.

                                                                                                                            0
                                                                                                                            У меня в компании так. Два часа дня — все поехали на шашлыки. Не хочешь, можешь дальше работать.
                                                                                                                +1
                                                                                                                Очевидно, те кто не пишут код в свободное время должны работать с себе подобными, как и те, кто пишут. Интересно, у кого будет лучше код?
                                                                                                                  0
                                                                                                                  Я пишу код в свободное время. Но не горю желанием всем его показывать (цель написания — не тщеславие). Мы подобны или нет?
                                                                                                                    0
                                                                                                                    Можно не показывать код, но показывать результаты его работы.
                                                                                                                    Или показывать саму программу, но не код.
                                                                                                                    К примеру, у меня весь код открыт, но он никому не нужен. Мои первые программы шли freeware (без опен-сорса) и количество их загрузок исчислялось десятками тысяч. Мои программы были полезны, а мой код — нет (вероятно, по причине его невысокого качества).
                                                                                                              0

                                                                                                              Оставьте в комментарии… любопытно почитать. :)


                                                                                                              PS ну и ссылку на резюме в инфе об аккаунте стоит держать, никогда не знаешь, где найдёшь человека, которого можно порекомендовать hr-ом компании, в которой работаешь :)

                                                                                                                0

                                                                                                                Я присоеденюсь к комментатору ниже, обычно, с людьми, которые совсем не пишут код в свободное время довольно сложно, так как преславутые 20% компания не выделает.


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

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

                                                                                                                  А вообще, тренды, как правило, то еще не предсказуемое и малополезное нечто. Они постоянно мрут и становятся бесполезным грузом знаний, либо решают уже решенные проблемы. Другой вариант. Смотрел тренды Java, нужно было подтянуть свой уровень. Многое выглядело для меня просто как дикость и безумие, т.к. проблемы, которые решают трендовые методики просто не существуют в C# dotnet. Так, легко видно людей, которые пишут на новом для себя языке как на старом.
                                                                                                                    +1

                                                                                                                    Мне кажется, вы совсем не поняли то, что я имел ввиду. Если обобщить, то я имел ввиду что-то в духе "Откуда человек будет знать о новой, крутой и очень полезном фрейморке/библиотеке/тулзе X, если в реальном проекте он им не пользуется, а в свободное время вообще не занимается программированием, а значит, у него банально нет времени для того, что бы рости как специалист вне проекта?"


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


                                                                                                                    Откуда, скажем, человек, который работает на проекте с jQuery будет получать опыт с новыми javascript библиотеками, что бы потом предложить их использовать в проекте?

                                                                                                                      0
                                                                                                                      Как раз таки понял. Но не понял, почему вы так считаете о тех, кто дома код не пишет. Попробую по другому. Что мешает просто загуглить и узнать о технологии? Обычная практика — сначала поставить проблему, потом уже её решать. Делать же наоборот — нонсенс.
                                                                                                                      Писать код совсем не обязательно, чтобы было понимание. И опять таки — все что в тренде может полететь далеко и навсегда. Так было с кучей практик, кучей, уже макулатуры, что когда-то были примерами для подражания большинства программистов той среды. Что для меня попусту потраченное время.

                                                                                                                      Мне уже давно не обязательно получать опыт пробами для работы с тем, что я уже знаю. Просто потому, что dotNet + Unity + специфика работы железа перекрывает возможности обучения методом проб. Они просто развиваются быстрее, чем это всё можно опробовать. Но есть и +. Всё это можно найти в спецификации, статьях, патчнотах и прочем. Этого достаточно, чтобы изучить всё и знать, что использовать в следующий раз.

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

                                                                                                                        Это как? Я еще ни разу не видел продукт, на котором было написано "у нас такие то проблемы". Что бы знать, подойдет ли какой-то продукт, фреймоворк или библиотека для решения проблемы — нужно получить с ними реальный опыт, чтение документации — это хорошо, но оно почти не дает точной информации по продукту.


                                                                                                                        Какие блага? Я делаю такие вещи не для того, что бы создавать блага, я это делаю для развития себя как специалиста и для того, что бы попробовать технологии, которые мне понравились. Вот у себя в pet-project написал бота с использованием rethinkdb и в целом неплохо и удобно, и как оказалось, у rethinkdb в самом деле неплохой кластер. Но и есть ряд проблем, которые оказались довольно внезапными и, которые, пока еще решить мне не удалось, типо того, что иногда все нафиг виснет из-за rethinkdb. Откуда бы я еще об этом узнал?

                                                                                                                          0
                                                                                                                          Понимание многих вещей можно получить умозрительно. Хорошая документация + специфика + примеры работы с пояснениями — достаточно для вывода, часто лучшего, чем даже собственный Небольшой опыт. Для лучшего опыта надо работать над этим долгое время, с разными задачами. Не обязательно самому быть первопроходцем. Опыт можно перенимать у коллег и сообщества. Для меня это очевидные вещи.
                                                                                                                          Да, в первые годы это приносит много пользы, учишься лучшему пониманию языка, набиваешь навык. Но потом это становится всё менее эффективным. С точки зрения понимания различных технологий — есть смысл изучить пару новых языков и программирование именно в их стиле. Большую часть новых фич переносят из других языков, не всегда даже языков программирования.
                                                                                                                          Касательно популярных вещей, что уже прошли отборку сообществом и теперь хотя бы иногда нужны заказчику. Освоить новую технологию не = написать что-то стоящее. Можно просто опробовать различные части этого проекта и понять как они работают. Это скорее исследовательская деятельность, чем написание чего-то конкретного. Тут просто быстро и полно проверяешь как и что работает. Часто даже более полно, чем когда требуется что-то конкретное.

                                                                                                                          Сколько у вас ушло только на одну вещь? А ведь их полно. Всё во всей IT среде просто не хватит времени проверить. Как вы будете выбирать, какой инструмент использовать? Только среди того, что пробовали? Это, пожалуй, на 2 месте самых худших способов выбора инструментария.

                                                                                                                          Любые блага. Даже ваше развитие как специалиста — благо, нет? Чтобы развиваться как программист, не обязательно для этого писать код, тем более «для себя», как и быть в тренде необязательно. Можно решать логические задачи, можно читать книги и справочники, ту же документацию. Даже изучение не языков программирования может принести пользу при правильном подходе.
                                                                                                                            0
                                                                                                                            Сколько у вас ушло только на одну вещь? А ведь их полно. Всё во всей IT среде просто не хватит времени проверить. Как вы будете выбирать, какой инструмент использовать? Только среди того, что пробовали? Это, пожалуй, на 2 месте самых худших способов выбора инструментария.

                                                                                                                            А как вы предлагает? У вас, по факту есть два варианта: это hype-driven-development и использование опыта. Откуда вы возьмете людей, которые скажут вам "Да, технология X подходит на наш проект, потому что ..."?


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

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


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

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


                                                                                                                            Это скорее исследовательская деятельность, чем написание чего-то конкретного.

                                                                                                                            Ну так мы же не требует от всех крутые open-source библиотеки. Но, скажем, если я буду изучать какую-то специфическую БД, то почему бы мне не взять в дополнение к этому какой-то новый web-фрейморк на знакомом мне языке (или уже знакомый мне) и не написать на нем какой-то todo лист? Вполне исследовательская деятельность.

                                                                                                                              0
                                                                                                                              hype-driven-development возможен когда как раз делаешь свой небольшой проект, не разбираясь более полно в технологии, а затем переносишь его на большой проект с десятком программистов. Небольшой опыт — хуже чем полноценный разбор и тестирование технологиЙ, тем более, если тестирование идет под конкретную задачу.
                                                                                                                              Я ни за что не начну верить только чужому опыту, когда на кону работа не одного человеко-месяца. Разве что от безысходности. Тут так же влияет психология — чаще выбирают просто знакомое, совсем не потому, что оно лучше.

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

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

                                                                                                                              PS: Ничего против не имею. И даже за. Но и не считаю, что это стоит превозносить.
                                                                                                                              0

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

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

                                                                                                                                  Мне кажется, совсем полностью раз и на всегда нормально выботать их не получится.
                                                                                                                                  Всякие docker, static-code analyze и прочие полезные штуки довольно часто появляются.
                                                                                                                                  Например, для тестов вот относительно недавно выпустили такую штуку: https://pypi.python.org/pypi/elizabeth, которой довольно не хватало некоторым для написания тестов)

                                                                                                                                    –1
                                                                                                                                    Кажется, не так давно(на деле больше года) говорили о проблеме в java, где было 1000 и 1 либа, иногда одна популярная либа была буквально в несколько строк.

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

                                                                                                                                    Я сам работаю с Unity и С#. Чем больше библиотек, тем больше мата. Иногда, чтобы внедрить новую либу, с учетом 5 необходимых, тратится столько времени, что быстрее написать своё решение. Возможно в вашей среде иначе? Я не знаю. Может и в этом наши различия?
                                                                                                                                    Так же, как я уже говорил — в той же Java решают часто те проблемы, что уже решены в dotnet самой архитектурой(быть может в Java решена часть проблем, что есть в C#, но я не столь хорош в Java). Думаю, это так же может влиять.
                                                                                                                                      0
                                                                                                                                      Я сам работаю с Unity и С#. Чем больше библиотек, тем больше мата. Иногда, чтобы внедрить новую либу, с учетом 5 необходимых, тратится столько времени, что быстрее написать своё решение

                                                                                                                                      Именно!
                                                                                                                                      Вот потому надрачивание на библиотеки и фреймворки — считаю Культом Карго.

                                                                                                                                        +1
                                                                                                                                        Кажется, не так давно(на деле больше года) говорили о проблеме в java, где было 1000 и 1 либа, иногда одна популярная либа была буквально в несколько строк.

                                                                                                                                        Речь явно было про js (точнее про npm)


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

                                                                                                                                        Ну а у npm время внедрения — несколько секунд.
                                                                                                                                        У Java при использовании gradle/maven (~99.5% проектов) время подключения новой библиотеки, кстати, тоже невелико и больше упирается в ширину интернет-канала.


                                                                                                                                        И да, можете гордиться тем, что


                                                                                                                                        в той же Java решают часто те проблемы, что уже решены в dotnet самой архитектурой(быть может в Java решена часть проблем, что есть в C#, но я не столь хорош в Java)

                                                                                                                                        вот только это заблуждение.

                                                                                                                                          0
                                                                                                                                          Ну а у npm время внедрения — несколько секунд.

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

                                                                                                                                          Это не заблуждение, а факт. Более того, некоторые проблемы(недостатки) есть у каждого языка, особенно если расширяется зона его применения. Часто о недостатках знают и сами разработчики — иначе бы языки не развивались.
                                                                                                                –4
                                                                                                                за что минусуют?
                                                                                                                сам так делаю, экономит кучу времени, как как соискателя, так и работодателя.
                                                                                                                полное отсутствие публичного кода считаю минусом. вероятно, человек не очень любит профессию?
                                                                                                                хотя для джунов такое приемлемо (еще не успели), тогда пишут тестовое.
                                                                                                                  +24
                                                                                                                  Отсутствие публичного кода может так же означать что на непубличный уходят все силы.
                                                                                                                    –1

                                                                                                                    Зачем так жить? На что ж после работы тогда остаются силы?

                                                                                                                      +1
                                                                                                                      За всех говорить не могу, но лично у меня остаются силы на физ. активность. Могз вырубается, но телу это не особо мешает :)
                                                                                                                        0

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

                                                                                                                          0
                                                                                                                          Пришел домой, а там бывает надо…
                                                                                                                          — помыть полы
                                                                                                                          — помыть плиту
                                                                                                                          — помыть санузел
                                                                                                                          — помыть зеркала
                                                                                                                          — помыть обувь
                                                                                                                          — постирать кучу белья
                                                                                                                          — глажка… 3 рубашки запросто могут съесть 40 минут времени
                                                                                                                          — мытье окон
                                                                                                                          — готовка-готовка-готовка… да, я способен сварить борщ за 30 минут, но это… скажем так, надо быть в настроении и форме.

                                                                                                                          И это только тот список дел, что просто обязательно делать нужно. А про чистку системника я вообще молчу — мне его разобрать-смазать-собрать обходится часа в 4. Благо раз в 6-8 месяцев этот ужас.

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

                                                                                                                                Готовить? Ну раньше я был поваром (пришел из поваров в IT).
                                                                                                                                А вот уборка? Скажем так, благодаря тому, что не хотят применять хим-реагенты или иные способы борьбы с гололедом, а посыпают все солью и песком несколько лет к ряду, то в воздухе стал такой ад твориться… просто приоткрытое окно дает за неделю слой земли на подоконнике.
                                                                                                                                Про робо-пылесоса думал, но от этого он тупо умрет.
                                                                                                                                Сторонним людям я не доверяю — не хочу никого пускать туда, где живу (без крайней на то нужды — от замены лампочки до бурения стен/плитки я и сам справляюсь).
                                                                                                                                  0
                                                                                                                                  У меня поглажка рубашек вызывала такое дикое отвращение, что пока не женился мне было проще отдать этот процесс на аутсорс (жена правда тоже это не любит, так что может в будущем все равно будет аутсорс). А если ваше нежелание подпускать чужих людей перевешивает, то тут тоже можно сказать «нравится». Может не процесс уборки, но результат — «зато никто посторонний не шастает» приносит больше удовольствия чем уборка приносит неудобств.
                                                                                                                                0
                                                                                                                                Да и мытьё полов ежедневное не нужно. Раз в 2 недели мыть вполне достаточно, а в остальное время проходить пылесосом. А вот насчёт мультиварки не соглашусь: это просто кастрюля с контролем температуры и вылючением по таймеру. Самое долгое в готовке — помыть-порезать.

                                                                                                                                Окна вообще нужно мыть, когда грязь на них начинает раздражать.
                                                                                                                                Рубашку можно купить более суровую, но не требующую глажки, обувь протирать тряпочкой перед выходом — 1 минута и т.д.
                                                                                                                                  0
                                                                                                                                  Самое долгое в готовке — помыть-порезать.
                                                                                                                                  Это сильно зависит от того, что готовить. Если, скажем, куриную грудку на пару делать, то в мультиварке это выглядит как «за 30 секунд все загрузить, полчаса погулять, готово», а в обычной кастрюле на плите мало того, что придется варить вместо парения, так еще и отойти никуда нельзя — вдруг убежит? Да и пенку снимать надо.
                                                                                                                                0
                                                                                                                                Вспомнил, как на первом курсе менял постельное белье три раза. За весь первый курс.

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

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

                                                                                                                                  А то без тренировок уже и в кресле сидеть не мог — все болело. Благо гантели/штанга/турник и т.д. спасли положение.
                                                                                                                        +10
                                                                                                                        Отсутствие публичного кода говорит о том, что человек был занят достаточно, чтобы вся его потребность творить полностью реализовалась за счёт закрытого кода.

                                                                                                                        Более того, наличие большого количества открытого кода, написанного во время полной занятости (а не между работами и не в отпуске), во многих случаях говорит о том, что работодатель не контролировал нагрузку сотрудника, и он, мягко скажем, скучал на работе. Или забивал болт на работу, потому что она ему не нравилась, и переключался на пиление своей библиотеки. Возможно, поэтому он и ушёл из той организации.
                                                                                                                          +2
                                                                                                                          Открытый код — небольшое, но преимущество (перед теми, у кого нет, конечно). Играет роль, но не главную. Хочешь лучше работу, тогда придется собирать такие «преимущества», ну можно и не собирать, когда ты и так хорош.
                                                                                                                            +12
                                                                                                                            Более того, наличие большого количества открытого кода, написанного во время полной занятости (а не между работами и не в отпуске), во многих случаях говорит о том, что работодатель не контролировал нагрузку сотрудника, и он, мягко скажем, скучал на работе.

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


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


                                                                                                                            Если сотрудник стал выполнять задачи не за 8 часов, а за 4 часа, а оставшиеся 4 часа скучал, это значит, что квалификация работника повысилась и надо что-то делать. И просто давать такому сотруднику больше задач — не вариант


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

                                                                                                                              +2

                                                                                                                              "Если сотрудник стал выполнять задачи не за 8 часов, а за 4 часа" — эмм, мы о программистах говорим или о грузчиках на складе? Грузчик может быстрее машину разгрузить и пойти отдыхать, пока следующая не приехала. А представить, что у программиста кончились задачи, я лично не могу. Их сотни висит в баг-трекере. Если прогаммист простаивает, это ошибка найма и убытки для бизнеса.
                                                                                                                              Если программист начал работать продуктивнее, он может делать больше (лучше) и претендавать на большую зарплату.
                                                                                                                              Саморазвитие — отдельный пункт, который должен либо по договору с работодателем либо планированием самого разработчика занимать N-ную часть рабочего процесса — и это может быть как pet project, так и изучение книг, напрсание статей, рефакторинг проекта… И это не 4 часа из 8, а максимум 1.

                                                                                                                                +4
                                                                                                                                А если программист не хочет претендовать на большую зарплату, а хочет свободное время?
                                                                                                                                  0
                                                                                                                                  Допустим, условный строитель в день обычно кладёт 5 условных рядов кирпичей. А наш Вася может класть 10, но хочет свободное время, поэтому кладёт те же 5, но за полдня. Что мы получим через месяц? Только то, что вся остальная бригада будет класть по 2 ряда в день, потому что тут можно работать полдня и идти отдыхать.

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

                                                                                                                                    Какое же это свободное время, если ты обязан сидеть его в офисе?

                                                                                                                                    • UFO just landed and posted this here
                                                                                                                                        +3
                                                                                                                                        А это низзя-низзя. Это нарушение основополагающей лжи, что якобы «деньги могут заменить всё».
                                                                                                                                        +2
                                                                                                                                        > Если прогаммист простаивает, это ошибка найма и убытки для бизнеса.

                                                                                                                                        Почему убытки-то? Обоснуйте. Почему медленный программист, выполняющий объём задач за 8 часов выгоден, а быстрый программист, выполняющий тот же объём задач за 4 часа и требующий столько же денег — нет?

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

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

                                                                                                                                        > максимум 1.

                                                                                                                                        За 1 час ничего серьёзного сделать не получится.
                                                                                                                                          0
                                                                                                                                          За 1 час ничего серьёзного сделать не получится.

                                                                                                                                          Серьезное вы делаете по основной работе. Если для вас это просто способ заработка и вам не интересен проект (был бы интересен, вам бы хотелось еще что-нибудь улучшить за оставшиеся 4 часа), то может быть стоит сменить работу?


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

                                                                                                                                          Почему убытки-то? Обоснуйте. Почему медленный программист, выполняющий объём задач за 8 часов выгоден, а быстрый программист, выполняющий тот же объём задач за 4 часа и требующий столько же денег — нет?

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

                                                                                                                                            +4
                                                                                                                                            > Серьезное вы делаете по основной работе. Если для вас это просто способ заработка и вам не интересен проект (был бы интересен, вам бы хотелось еще что-нибудь улучшить за оставшиеся 4 часа), то может быть стоит сменить работу?

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

                                                                                                                                            > то может быть стоит сменить работу?

                                                                                                                                            Нет. Я не соглашусь на работу, где надо работать по 8 часов в день. Ну ладно, может и согласшусь, но минимум за ~300-400к рублей в месяц.

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

                                                                                                                                            В том-то и дело, что филонить не стоит. Наличие срочных задач действительно потребует недельку-две попахать, отложив свои проекту. Но это не должно быть нормой. Аврал — проблема руководства.
                                                                                                                                            0
                                                                                                                                            Почему убытки-то? Обоснуйте. Почему медленный программист, выполняющий объём задач за 8 часов выгоден, а быстрый программист, выполняющий тот же объём задач за 4 часа и требующий столько же денег — нет?


                                                                                                                                            наверное имеется ввиду, что если «в среднем» программисты в фирме за 4 часа делают основную работу и 4 часа простаивают, то можно сократить штат программистов в два раза, и на этом сэкономить :)

                                                                                                                                            ЗЫ если что я сторонник того, что программист работает не 8 часов, а программист работает головой :)
                                                                                                                                              +3
                                                                                                                                              > наверное имеется ввиду, что если «в среднем» программисты в фирме за 4 часа делают основную работу и 4 часа простаивают, то можно сократить штат программистов в два раза, и на этом сэкономить :)

                                                                                                                                              Ага, сократить штат в 2 раза и поднять оставшимся программистам зарплату в 2 раза.за удвоенный объём работы. Шило на мыло. Но при этом пропадает ещё один важный момент: запас производительности. В случае аврала в первом случае вы можете удвоить производительность программистов, во втором — нет.
                                                                                                                                                +5
                                                                                                                                                Но при этом пропадает ещё один важный момент: запас производительности.

                                                                                                                                                Типичные грабли, на которых висят истлевшие косточки многих молодых оптимизаторов. Не раз мною виданы случаи, когда Васю с Петей сокращают, потому что их работу смогут сделать Дима с Колей за полторы зарплаты. В случае факапа оказывается, что в сутках всего 24 часа, раз в два дня Диме желательно, все же, поспать, а Коля, вообще, в гробу видал переработки и заявления его осталось ждать недолго.
                                                                                                                                            +4
                                                                                                                                            Если прогаммист простаивает, это ошибка найма и убытки для бизнеса.
                                                                                                                                            Если программист начал работать продуктивнее, он может делать больше (лучше) и претендавать на большую зарплату.

                                                                                                                                            Если у Вас два бегуна:


                                                                                                                                            • стайер который бежит не быстро, но долго
                                                                                                                                            • и спринтер который бежит быстро, но часто отдыхает

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


                                                                                                                                            может быть стоит сменить работу?

                                                                                                                                            Это Вам стоит сменить работу по причине Вашей полнейшей профнепригодности в качестве IT-менеджера.

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

                                                                                                                                            Захотелось попробовать какой-то новый язык/фреймворк? Скачали, развернули, почитали про синтаксис, мельком пробежали по стандартной библиотеке, придумали реалистичный сценарий применения, сваяли каркас, написали тесты (и стресс-тесты), погоняли, записали себе в блокнотик мысли о применимости решения и встретившихся на пути ограничениях. Всё. Выкладывать после этого этот каркас на гитхаб, чтобы будущий работодатель посмотрел на это убожество и решил, что я пишу так на всех языках? Извините, но нет.
                                                                                                                                              +4
                                                                                                                                              > Возможно, я чего-то не понимаю в современных тенденциях программирования, но вот честно, не могу представить себе ситуации, когда для изучения новой технологии (точнее, возможности применения этой новой технологии) требуется сделать аж целый проект, и более того, отшлифовать его до такой степени, что его будет не стыдно кому-то показать.

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

                                                                                                                                              А шапочное знакомство с новыми технологиями ради строчки в резюме не принесёт практической пользы.
                                                                                                                                                +3
                                                                                                                                                Если человек хочет изучить С++ ради того, чтобы сменить работу и начать писать на С++, он заслуживает уважения. Просто в моей практике, к сожалению, таких людей не было. В основном приходится иметь дело либо с узкими спецами по паре-тройке технологий, либо с людьми с сильной базовой подготовкой, которые разберутся с чем угодно (в разумных пределах) уже по факту. И ни те, ни другие, чрезмерной тягой к знаниям, не имеющим применения в данный момент, не страдают.
                                                                                                                                            0
                                                                                                                                            Исходя из вашей логики получается, что все те люди, которые в свободное время занимаются pet-проектами/open source и подобными вещами тратят свое время просто зря? А что тогда делать в случаях, когда твоя работа (внезапно!) вполне устраивает, загруженность имеется, но просто есть ряд технологий с которыми поработать не предоставят возможности никак, даже если ты общался с соответствующими людьми (допустим перейти на микросервисную архитектуру; попробовать какую-то хорошую и проверенную временем библиотеку, обсудив с архитектором проекта, но не получив его одобрения)?
                                                                                                                                            То что человек, тратит собственное время на что-то вне работы, говорит не о том, что ему здесь плохо и ему надо срочно уходить куда-то еще. Его вполне может устраивать текущее положение вещей на проекте. Это говорит скорее немного о ином: ей/ему интересны несколько областей разработки; просто чтобы всегда быть «в тонусе» и повышать свой профессиональный уровень гораздо быстрее, нежели его коллеги; иметь потенциальное преимущество перед другими кандидатами, при необходимости поиска работы (например, тебе могут закрыть глаза на необходимость тестовое задание и сразу перейти собеседованию).

                                                                                                                                            П.С. А вообще, я не буду удивлен, если вдруг обнаружится, что человеку который тратил свое свободное время и занимался какими-либо проектами (или может даже поучаствовал в разработке существующих как-либо) получает более «вкусное» предложение о работе.
                                                                                                                                              +4
                                                                                                                                              А вообще, я не буду удивлен, если вдруг обнаружится, что человеку который тратил свое свободное время и занимался какими-либо проектами (или может даже поучаствовал в разработке существующих как-либо) получает более «вкусное» предложение о работе.

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

                                                                                                                                              +1
                                                                                                                                              Раньше я думал также, но со временем стал находить баги в Open Source продуктах и фиксить их, реализовывать какую-то недостающую функциональность. Открытый код стал появляться сам собой.
                                                                                                                                                +2

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

                                                                                                                                                  +5
                                                                                                                                                  С высокой долей вероятности о том, что у вас нет жены и детей.
                                                                                                                                                    0

                                                                                                                                                    И правда, нет. А это плохо?

                                                                                                                                                      +1
                                                                                                                                                      Технически — это не является чем-то плохим.
                                                                                                                                                      С другой стороны: семья, как ничто другое формирует самодисциплину, умение ценить и оценивать не со своей колокольни, а с практической точки зрения. Семья очень сильно развивает эмпатию. Ну и да — с семьёй вы станете менее «крутым» с технологической точки зрения. Но еще не встречал ни одного такого «менее крутого», который бы жалел о том, что не так «крут».
                                                                                                                                                        0
                                                                                                                                                        семья, как ничто другое формирует самодисциплину

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


                                                                                                                                                        умение ценить и оценивать не со своей колокольни, а с практической точки зрения

                                                                                                                                                        Мне для этого хватило пообщаться с проджект-менеджерами.


                                                                                                                                                        Семья очень сильно развивает эмпатию.

                                                                                                                                                        Не для всех систем ценности и не для всех целей это важно и полезно.


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

                                                                                                                                                        Ну ещё бы они сказали (и зачастую думали) иначе :)


                                                                                                                                                        Я, кстати, встречал людей, которые радовались, что развелись и не создали в итоге семью.

                                                                                                                                                  +1
                                                                                                                                                  Господи, какие глупости. Наличие публичного кода как минимум означает наличие у разработчика страсти к программированию. Если у разработчика есть публичный репозиторий и домашние проекты это с очень высокой долей вероятности говорит что это хороший специалист. Я не говорю что те, кому нечего показать плохие разработчики, я говорю что те, кому есть что показать это хорошие разработчики. Они могут чего-то не знать, но они быстро научатся так как любят это дело и посещают ему даже свое свободное время. Так что если у компании 1000 резюме в день и нужно как-то их фильтровать — наличие публичного репозритория будет отличным первичным фильтром.
                                                                                                                                                    0

                                                                                                                                                    А если у меня публичный код никак не соотносится с моей работой?
                                                                                                                                                    У меня, например, публичный код на moddb.
                                                                                                                                                    Но, вряд ли какой кадровичке понравится такое "несерьёзное" хобби.

                                                                                                                                                  +9
                                                                                                                                                  А если я последние 5 лет писал NDA код для большой организации? Мне ради вас все исходники выкладывать?
                                                                                                                                                    +2
                                                                                                                                                    Это боль. Опытный программист с NDA ничем не отличается от джуниора, только просит больше :) Главное что количество лет опыта никакой роли не играет. Приходится урывками нацарапывать решения типовых задач, чтобы гитхаб заполнить якобы ценной ерундой.
                                                                                                                                                      +3
                                                                                                                                                      Получается, если нет кода в открытом доступе, то сразу джуниор? А если джун поучаствовал в паре проектов, сделал коммиты, то он уже круче того разраба с NDA?
                                                                                                                                                      Вряд ли.
                                                                                                                                                        –2
                                                                                                                                                        Да и это ломает мозг :(
                                                                                                                                                        Когда переходил с проекта на проект, где невозможно показать код и обсуждать технические решения, помогали две вещи: несложные тестовые задания на 1-2 дня и устные технические собеседования. Задания обычно не под NDA и я их с чистой совестью использовал дальше для демонстрации хорошего кода, а некоторые и для своих нужд (например, сокращатель ссылок как тест и для себя)

                                                                                                                                                        На тостере дал ответ на такую же ситуацию https://toster.ru/q/449109#answer_1064583
                                                                                                                                                        0
                                                                                                                                                        У опытного программиста есть строчки в резюме, возможно в неплохих компаниях на неплохих позициях. Да, «ведущий программист в ООО Рога и Копыта» это не очень, но ведущий программист в Сбертехе уже звучит лучше, даже если там каждая строчка кода лежала под тремя NDA.
                                                                                                                                                        Опять же, рекомендации, общие знакомые, участие в конференциях и т.п., что делает специалиста более заметным в своей сфере.
                                                                                                                                                          +5
                                                                                                                                                          Это с какой радости опытный под NDA равен джуниору? Ну просто, из чего это логически вытекает? Разработчику поиска Яндекса в лицо скажете, что он джуниор?
                                                                                                                                                        +1
                                                                                                                                                        А мне вот честно интересно: какой открытый код (да и просто код) охота писать «любящим профессию» людей? Что вам не хватает в существующих решениях? Не придираюсь, может, и для себя что-нибудь интересное найду
                                                                                                                                                          +2
                                                                                                                                                          открытый код, это в т.ч. и пулл реквесты к существующим решениям, например.
                                                                                                                                                            +1
                                                                                                                                                            Опять же, что такое «пулл реквесты»? Исправления найденных ошибок? Как часто вы находите ошибки в opensource и после этого находите время, чтобы разобраться в них и исправить? И насколько молодые проекты при этом? И для каких целей нужны эти проекты?
                                                                                                                                                            Или «пулл реквесты» — это решение каких-то задач из внутреннего трекера? Что тогда вас мотивирует решать такие (вполне возможно, даже абсолютно однообразные) задачи?
                                                                                                                                                            Или «пулл реквесты» — это проталкивание своих идей в проект? Как часто у вас возникают такие идеи? Не боитесь ли вы своей идеей сломать всю идею самого проекта? Как часто ваши идеи принимают?
                                                                                                                                                              0
                                                                                                                                                              Мы фиксирует баги в OS проектах не для развлечения, а потому что сталкиваемся с ними и хотим решить свою проблему.
                                                                                                                                                                +1
                                                                                                                                                                А вы пробовали? Обычно это приятно, внести свой, пусть и небольшой, вклад в то, что ты используешь. Это может быть любимый плагин к тектовому редактору или библиотека, которая упрощает тебе твою работу.

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

                                                                                                                                                                Самый простой вид «вклада» — это исправление неточностей в документации.
                                                                                                                                                                Обычно их находишь, если внимательно изучаешь документацию.
                                                                                                                                                                Какова мотивация их править?
                                                                                                                                                                Если ваc эти недостатки в документации заставили потратить лишнее время,
                                                                                                                                                                может захотеться сделать так, чтобы другой человек не потратил этого времени.
                                                                                                                                                                Такие изменения отклоняют очень редко.
                                                                                                                                                                  0
                                                                                                                                                                  Не всегда это имеет смысл. Ну вот из недавнего — понадобилось поправить реализацию рассылки эвентов в спринге под нашу задачу и поправить багу, которая воспроизводится при определенной конфигурации. Работы немного, код отделен от прикладной логики, можно ли это влить в спринг? Нет, ибо там достаточно сложная система релизов, а на работе надо получать кучу аппрувов на вливание кода в опенсорс. А у меня на работе хватает чем заняться, кроме того чтобы читать списки рассылки спринга, поверьте.

                                                                                                                                                                  А в свободное время у меня есть тренировки и девушка. Да и некрасиво как-то втихомолку заливать в гитхаб кода с домашнего компа, сделанный в оплаченное рабочее время.
                                                                                                                                                                0
                                                                                                                                                                К каким именно решениям: @torvalds/linux или @vasyanpro/console-file-deletor?
                                                                                                                                                                +7
                                                                                                                                                                Что вам не хватает в существующих решениях?

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

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

                                                                                                                                                                    Ну и пример, например. :)
                                                                                                                                                                    https://habrahabr.ru/post/275447/
                                                                                                                                                                    Сделал для себя. Альтернативы либо отстой, либо проприетарные.
                                                                                                                                                                      0
                                                                                                                                                                      Каждый сам решает.

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

                                                                                                                                                                      Пожалуйста.


                                                                                                                                                                      1. При поездке к заказчику оказалось, что работающая по HTTP железка формирует расходящийся со стандартом HTTP ответ. Браузер страницу отображает, но HttpClient из C# бросает исключение, типа, ProtocolError. В итоге за 1.5 часа просто написал свой собственный HttpClient. И пофиг, что он поддерживает не всё, главное, что работает с железкой.


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


                                                                                                                                                                      3. Собственный кросс-платформенный кооперативный планировщик для тасков в C#. Существующий не устраивал низкой производительностью — низкий IOPS при выполнении операций с сокетами из-за высоких накладных расходов на await и переключений контекста. В итоге увеличил IOPS почти на два порядка, написав обёртку для сокетов и избавившись от переключения контекста.


                                                                                                                                                                      4. Заменил tbb::parallel_for на свою реализацию за счёт снижения накладных расходов. Это позволило не думать о гранулярности задач.


                                                                                                                                                                      5. Применение нейросети для увеличения разрешения изображений (своя реализация SRCNN — пощупать можно тут). Там всего-то 50 строчек кода до AVX оптимизаций. Ведь для того, чтобы просто использовать уже обученную нейросеть, не нужны все эти здоровенные фреймворки.

                                                                                                                                                                      и т.д.

                                                                                                                                                                        +1
                                                                                                                                                                        По первому примеру как я понял, это было нужно по работе (или близко с ней). По остальнвм примерам не понял, где это было нужно.
                                                                                                                                                                        Видимо, я плохо сформулировал первый вопрос. Вопрос был в том, что вы делаете в отрыве от работы (либо напрямую не связанное с работой, что считать напрямую не связанной — остается за вами), а в том, что делаете для личных целей. Понятно, что все мы на работе пишем код, что-то оптимизируем, улучшаем и т.д. (правда, не все это рискуют выкладывать в open source)
                                                                                                                                                                          +1
                                                                                                                                                                          Всё, кроме первого — примеры задач, без которых можно было бы вполне обойтись.
                                                                                                                                                                          Я их делал для себя, потому что мне это было интересно, а потом просто переносил в рабочий проект, потому что мог.
                                                                                                                                                                        +1
                                                                                                                                                                        Почему собственная разработка должна обязательно облегчать кому-то жизнь?
                                                                                                                                                                        Варианты «в целях саморазвития» и «для лучшего понимания каких-то концепций» — вы в принципе не рассматриваете?