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



    Привет, Хабр!

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

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

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



    Филипп Ранжин, сын инженера из Иванова. Начал писать на С++ в 16 лет в университете, затем изучил .net. Сейчас Senior software development engineer в неплохой зарубежной конторе. Помимо распространенных языков пишет на F# и OCaml.

    1. Расскажи о фиче, которую ты реализовал и которой гордишься.


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

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

    2. А теперь — про самый лютый факап.


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

    В итоге я работал над ним три месяца.

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

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

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


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

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

    Сейчас у меня только один монитор. Планирую прикупить ещё парочку, чтобы не позориться. Моя любимая IDE — Visual Studio 2017 в связке с Resharper. Любимый текстовый редактор — Visual Studio Code в связке с миллиардом расширений. Скачивать их и наблюдать, как VSCode эволюционирует — одно из моих хобби.

    Я люблю git, но Visual Studio Team Services, пожалуй, нравится мне больше, чем GitHub.

    4. По какому принципу ты выбираешь работу? Стек, продукт, бытовые условия, деньги?


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

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

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

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

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

    5. Что в технологиях и языках, которые ты используешь, ты бы хотел исправить?


    — Я бы хотел:

    • Вывод типов и компайл-тайм иммутабельность для typescript и C#. Тогда я бы мог создать метод, который принимает что-то гарантированно иммутабельное, а не как сейчас — ReadonlyDictionary, которая на самом деле не ридонли (передал обычную дикшнари в ее конструктор, оставил на неё ссылку и спокойно мутируешь).
    • Чтобы разработчики C# послали, наконец, к чертям собачьим обратную совместимость, дурацкие using-и, которые работают только внутри одного файла и сделали ЯП более современным. Серьёзно, в языке, для которого весьма нередок код в стиле IDictionnary<IMyStupidType, IMyStupidType2> Foo(Func<IMySupidType, int, bool, string> reallyStrangeCallback не сделать норм алиасы типов — это оооочень странное решение.
    • Автоматические backing fields в C#, какой-нибудь сахар над Func<T1,T2>.
    • Контракты для C# из коробки (например в Roslyn) вместо сторонних решений, которые превращают мою IDE в тормозящее нечто.
    • Аналог jsx для языка F#. Если никто из вас не сделает его в ближайшую неделю, так и быть — займусь.
    • Чтобы сообщество пришло к пониманию, что юнит-тесты — бесполезный мусор, а языки с динамической типизацией (не путать со слабой) — самый крупный провал в истории индустрии.
    • Чтобы архитектура процессоров была больше рассчитана на функциональный подход.
    • Оптимизация хвостовой рекурсии в JS/TS, чтобы я мог фигачить свои tail-рекурсии повсюду, не упираясь спиной в размер стека. В спецификации она есть, но парни, которые пилят v8, просто решили, что не так уж и важно следовать спеке языка, когда разрабатываешь для него рантайм.
    • Опциональная возможность статической типизации в JS из коробки, но не в противовес typescript. Я, в отличие от создателей тайпскрипта, считаю его самостоятельным ЯПом с очень современным и мощным мультипарадигменным дизайном.
    • Чтобы штуки вроде Web-assembly прочно заняли своё место в практиках и стандартах фронтенд-разработки.
    • Значимого усовершенствования web-клиентов «Гитхаба» и ему подобных. В идеале возможность комфортно работать с кодом серьёзного проекта в браузере.
    • Больше конвенций по совместимости. Насколько бы всё было бы проще, если бы jvm умела интерпретировать и jit-ить дотнетный cil.

    6. Где лучше перенимать чужой опыт — в вузе, на конфах, на Хабре? Еще где-то?


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

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

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


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

    8. Как ты отдыхаешь? Что делаешь кроме работы?


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

    У меня несколько своих проектов с друзьями. Люблю специально делать им пассивно-агрессивные код-ревью («не мог бы ты предложить мотивацию для использования столь непродуманного решения?») и наблюдать, как это меняет наши взаимоотношения.

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

    9. Расскажи про 3 любимые книги — учебную, научно-популярную и художественную.


    Учебная — «CLR via C#» Джеффри Рихтера. Столько знаний про то, как устроен дотнетный рантайм в одном труде — настоящая находка. Если заучить эту книгу, пройдёшь любой собес на дотнетера. Ещё бы отметил «Функциональные структуры данных» Криса Окасаки. Не очень полезная с практической точки зрения, но мне она вернула веру в программирование — реализация структур данных вызывает у меня метафизический трепет.

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

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

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


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

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

    Бонус: задай любой вопрос другому разрабу.


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

    Похожие публикации

    Комментарии 293
      +18

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

        +3
        IMHO: Они не провинились, но fuzzing тесты лучше, — они получаются дешевле, их делать легче и они выявляют ошибки по всей глубине стэка приложения. И fuzzing тесты разрабатывать интереснее, а юнит тесты, это рутина, это рабский труд.
          +14
          Я думаю, правильнее сказать, что «в некоторых ситуациях fuzzing тест может дать больше полезной информации». Все эти абсолютные категории — такое… практика показывает, что серебрянной пули нет, даже чтобы застрелиться.

          они выявляют ошибки по всей глубине стэка приложения
          Вот тут погодите. Это характеристика end-to-end тестов. Те которые через GUI как правило. А их то, как раз, разрабатывать не редко сложнее, (например из-за отсутствия нормального интерфейса для доступа «робота» к графической оболочке, постоянного изменения или динамики/анимаций в графическом интерфейсе), и они дороже.

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

          Я боюсь, что в fuzzing тесте, ошибку скорее сделают при составлении граничных значений для параметров. Например 0-255, и толку тут от рандомизации, если область определения недостаточна, нет отрицательных значений. А при составлении юнит-теста, ты возьмешь четыре значения и все. И если я захочу делать рефакторинг — мне будет спокойней от прогона юнит тестов. Они скажут мне, что все то, что работало до этого работает и теперь. Что я никому не наступил на ногу, т.е. не нарушил никаких контрактов с другими подсистемами. А сколько прогонов случайных тестов нужно чтобы убедиться, что все работает как и раньше? Вот вам и вывод, что fuzzing тесты нельзя сравнивать с юнит тестами. Полезны и те и те, и нужно понимать где, когда и зачем применять разные методики тестирования.
            0
            > Полезны и те и те, и нужно понимать где, когда и зачем применять разные методики тестирования.

            Ну естественно. Моё IMHO, было относительно ключевых слов «провинились». Я как-бы не против юнит тестов, ибо «Они ничем не провинились».

            > Вот тут погодите. Это характеристика end-to-end тестов. Те которые через GUI как правило.

            Согласен, моя ошибка, — fuzzing тест выступит в данной ситуации вместо GUI.

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

            Fuzzing тесты делаются не для того, что-бы вводить граничные параметры, а что-бы выявить при каких условиях происходит сбой, в этом их вся суть. Если вы разрабатываете систему fuzzing тестов, которые как-либо ограничены в «рандоме данных», то это неправильные fuzzing тесты. Более того range overflow это один из базовых fuzzing кейсов.

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

            Дни, недели… Какая разница, сколько, если тест предназначен для того, что-бы свалить систему, а не для проверки работоспособности её компонент?
              +2
              Они скажут мне, что все то, что работало до этого работает и теперь.

              Они могут только сказать о том, что сломалось. По построению.

            0
            фишка unit-тестов как раз в рутине. Когда на каждый лишний if приходиться писать отдельный тест да еще и дать осмысленное название, а на вложенные еще больше. Когда просто невозможно покрыть говно-метод из 500 строк. Вот когда появится лень такое писать, unit-тесты уже не понадобятся.
            А вот фаззинг не предназначен для тестирование логики. Мне вообще не понятен его смысл, он только толкает делать ненадежный код.
              0
              Когда на каждый лишний if приходиться писать отдельный тест

              просто невозможно покрыть говно-метод

              Вот из-за такого использования тестов у разработчиков и появляется отвращение к тестированию и мысли типа юнит-тесты не нужны. Потому что где-то на каком-то проекте уже успели наесться такими тестами, где надо покрыть каждый if, потому что чуть что может и сборка упасть из-за недостаточного code coverage.
                0
                Когда просто невозможно покрыть говно-метод из 500 строк.

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

                  0
                  Это я о своем опыте говорю)
                  И о том, что проще написать простые тесты заранее, а потом уже писать код под них.
                  Но unit-тесты применимы только к чистой логики. Для остального кода нужно нечто подобное, кроме функциональных
              –2
              Тем, что они ничего не проверяют?
                +7
                Зачем же писать тесты которые ничего не проверяют. Это даже по определению уже не тесты. ))
                  +5
                  Ну как же — чтобы получить высокий процент покрытия кода тестами.
                    +3
                    Давайте будем честны, 90% unit-тестов проверяют, что 1+1=2 и не приносят абсолютно никакой пользы. Наибольшее кол-во проблем возникает не в работе конкретного модуля, а во взаимодействии между модулями и интеграционное тестирование в этом плане гораздо продуктивнее.
                      +9

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

                        +4
                        Отнюдь. Когда я писал свой математический интерпретатор, TDD все дела, то нахождение ошибки на границе модуля позволяло понять, что сломалось. И как раз-таки при совмещении всех этапов проблем не возникло.
                          +2
                          Я как то писал код который должен был рассчитывать приоритеты каких-то звуковых каналов. У меня была только таблица-спецификация на 15 тысяч полей с указанными приоритетами для каждой пары каналов, причем значения рассчитывались динамически. И после первого наброска кода я тут же стал писать юнит-тесты чтобы проверить, а удовлетворяет ли код спецификации. Берем охапку типичных сценариев, по таблице пешком выясняем что должно быть вычислено и пишем на это проверки. А потом допиливаем код. Берем еще охапку сценариев — шлифуем код. Иначе никак. Руками/глазами/мозгами это не проверить в таком объеме. Это пожалуй самый яркий случай на моей памяти где юнит-тесты сами собой напрашивались.
                            0
                            Вот в этом и проблема, что есть задачи, для которых тесты реально нужны и на которые они прекрасно ложатся. А потом приходит условный «менеджер» со своими метриками и «performance management» (будь он неладен) и начинается… coverage, SonarQube и прочее «1+1=2». А куда деваться? Большая компания, хорошая з/п, жить надо на что-то.
                              0
                              SonarQube чем вам не нравится? Правильно настроенный выдаёт вполне годные замечания.
                              0
                              Я так же компилятор делал. Есть мануал для пользователя, там есть набор примеров с получаемым результатом. Формализуем, запихиваем в табличку, делаем.

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

                              Ну, да, в моём случае я начинал с фронтенда компилятора, поэтому оно всё началось с таблички «выражение → AST». Потом начал писать интерпретатор, поэтому появилась табличка «выражение × вход → результат». Потом кодогенератор, на той же табличке, плюс quickcheck-тест, что интерпретатор и сгенерированный код работают одинаково на рандомных данных. Всё равно ИМХО не юнит-тесты.
                            +8
                            Если в команде один разработчик и кода не слишком много — то пользы от юнит тестов мало. А вот если много людей и большой проект — они необходимы. Я рассматриваю юнит тесты как живую документацию. На мой взгляд они помогают решить следующие проблемы:
                            — Если ты изменил поведение — они напомнят тебе, что раньше было иначе и надо бы изменить юнит тесты (т.е. документацию)
                            — Новый человек может неверно понять принципы работы модуля. Когда он сделает правку, которая противоречит дизайну — юнит тесты скорее всего об этом оповестят.
                            — В юнит тестах можно подсмотреть примеры вызова методов и того, что они возвращают.
                            — Ну и наконец это отличный способ отладки модуля в процессе разработки, чтобы не стартовать все приложение.
                              0
                              95% людей — альтернативно умные, как известно, я думаю у них количество тестов «1+1=2» может доходить до 100 и более процентов от их общего количества. В этом смысле вы правы, но если ориентироваться на то, как это должно быть, юнит-тесты это по сути требования к системе, под них пишется код, ну по методологии TDD. Требования должны быть достаточно четкими, ясными и исчерпывающими. А то, что юнит-тесты позволяют до некоторой степени сохранять устойчивость кода при его изменении, это побочный эффект.
                                +3
                                Потому что концепцию тестов обычно неправильно понимают и используют.

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

                                2. Тесты — это, в первую очередь, документация. Если из теста непонятно, как работает тестируемый кусок кода, значит, это плохой тест.
                                  –1
                                  Как-то оно действительно непонятно)

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

                                  Что бы мы без него делали я хз… Незаменимый человек.

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

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

                                    Если не секрет, чем вы занимаетесь?

                                      0
                                      А всем по-маленьку занимаемся) Ключевое слово тут — «всем».
                                      Потому что появился математик, а значит можно заниматься «всем».
                                      Давайте поясню.

                                      Боролись со шрифтами, искали нормальную библиотеку, и естественно не нашли. Откуда ей взяться, если оные либы пишут дурачьки?
                                      Задача: сообразить универсальную библиотеку, работающую с любыми шрифтами и способную рендерить шрифты хоть под что хоть где.
                                      Обыскались) и не нашли, оного не существует в природе.
                                      Написали свою, за неделю, но готовились к написанию два месяца, в развалку.
                                      В итоге сделали следующее: писано оно на фреймворке втором, потому что его можно запустить хоть где, и еще кое какие причины имеются на это. Сами шрифты специально обработаны, не спрашивайте зачем. Шрифты внедрены в либу и хитро запакованы. Сама либа следит за вызываемыми шрифтами из нее, и имеет свой кеш, но кешируются ФонтФемили, а не шрифты Фонт. Кеш сам следит когда почистить неуправляемый gdi например. Почему gdi? Потому что только gdi выдает вменяемые результаты на винде. Потому что gdi способен работать без видеокарты вообще. А значит оное работает на серверах и оно работает) Более того, математик разработал свой рендер. Он въехал как шрифты рендерятся виндой, и написал очень эффективный кеш в котором хранится именно готовое графическое представление строк. В системах где оно стандартным способом не будет работать — можно запросить битмапы с графикой. И да, он заодно разобрался с dpi, т.е. выдал формулу как его считать корректно))) И он нашел кучу ошибок, почему нынешний расчет dpi люто гонит. Только он предложил кешировать самые частовстречающиеся сочетания символов, и сразу хранить не графику отдельных символов, а наборы символов. И на это тоже он рассчитал и написал алгоритм)
                                      Теперь хоть где мы можем шрифт прицепить вот так просто: System.Drawing.Font f = SysDrawing.Fonts.Metro.Get(14, SysDrawing.Weight.SemiBold, SysDrawing.Style.Italic);
                                      И да, только у нас шрифты наконец-то видятся любых начертаний. Если вы думаете что это просто — да, это просто) Но вы попробуйте сделать так же, у вас ничего не получится, причин этому неимоверная гора. Все эти причины вы должны обойти, и получить ровно то что нужно хоть где работающее.
                                      Нужно всего-то разбираться в шрифтах, разработать точную архитектуру библиотеки, рендер на всякий случай, и написать все в кучу почти готовое за неделю) Что и было сделано. Без математика мы бы погрязли в чортовых тестах. Щяс же ничего не тестилось вообще, зачем?

                                      А есть совсем банальные вещи. Вы как конвертите число в шестнадцатеричную строку?) И даже на это есть математик. Потому что он доказал, что можно конверитить без массива чаров, и без единого if-а) Код ровно в одну строчку. Казалось бы а оно надо? Надо)) Там где вы будете массово конвертить числа в hex-строчки — вам понадобится производительность.

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

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

                                      Послушайте, есть вы — программист, но это не значит что вы шарите в математике. А значит?.. Наймите математика)
                                        0
                                        И вы даже не представляете, как хорошо мне программировать, когда можно звякнуть нашему математику Михаилу и спросить влоб: Миша!!! Есть данные из интов, каждый инт образован другими данными битовыми сдвигами и все свалено в кучу. Нука сообрази мне разряженную таблицу или можт еще чего, что бы я это все дергал из таблицы неимоверно быстро ридонли))))
                                        И через час я получаю псевдокод каторый пишу десять минут и мне ничего тестить не нужно) Причем, то что я переписываю с бумашки — я в этом вообще почти ничего не понимаю. Я почти не понимаю как оно работает. Но математически доказано, что оно будет работать. И я и не обязан понимать математику. Потому что это не моя работа.
                                        И да, имейте ввиду, что математик НЕ МОЖЕТ ОШИБАТЬСЯ. Потому что это математик) Он пользуется принципиально иными способами «тестирования», а именно доказательствами. Каторые тестировать нет никакого смысла. Проще говоря — тестировать за математиком — полнейший бред. Или вы собрались тестировать математику?) Ого…
                                          0
                                          А математики не могут ошибаться? Я вот помню прилично «доказательств» теормы Ферма, например. И только консиллиум из кучи народа может просмотреть и сказать «ну вроде ошибок нет».

                                          Напомню, что даже реальное доказательство 1997 года содержало ошибки, и до их исправлений было неверным.
                                            –2
                                            Смысл не в этом. Конечно могут ошибаться и ошибаются все.
                                            НО!
                                            Одно дело ошибаться в новом. А другое дело разруливать то что известно и известно хорошо.
                                            При этом. Тут как бы два угла зрения. Например мой, программистский, на известные математикам вещи. Но для меня они сложные, для меня это как раз почти теорема Ферма) А для математика это банальность. Так вот люди в банальностях не ошибаются. И доказательства тут достаточно простые, т.е. для математиков это банальщина. А для меня и для вас — это почти темный лес.

                                            Плюс ко всему конечно же тут нужно иметь ввиду то, что доказывать можно по-разному, оценочно например, или получать доказательства принципиально разными мат.методами. Наш Миша этим сильно грешит) Когда у него уже и так все доказано, а на основе этого уже и так все работает, он все равно с упорством числогрыза иногда приносит доказательства вдовесок. При этом, эти доказательства только улучшают старые доказательства. При этом, иногда получается так, что новыми доказательствами он расширяет область доказуемого, т.е. делает доказательство более обобщенным. А значит?)) А это значит, что у нас появляются мысли на более общий код. Без математика обобщить что-либо программистом вообще никогда не получится.

                                            И т.д. и т.п.
                                              0
                                              Напишите про это статью. Я не слышал нигде о каком-либо подобном опыте.
                                                –3
                                                Не представляю о чем будет статья)
                                                О том как мы раскалупали адобовский код обрабатывающий цветовые профили, и о том что только математик понял на какой формуле оно работает и какое преобразование применяется? И о том как мы это дело увели под себя? Это можете и вы. Легко. Но вы ничего не поймете) И никто не поймет. Поймут только математики) Ну и зачем такая статья, которую ни я ни вы не понимаете?

                                                Увести можно все, запрограммировать можно все, но как понять на основе чего оно работает, что бы перепилить под себя? В основе математика со сложным матаном — оно вам надо вообще?)) Мне — НЕТ.

                                                Или может быть замутить статью о четверичном кодировании представления картографических данных, например в викимапии старой версии, где я отчасти понял кое что, но у меня на это ушло два года))) А математик это понимает за пять минут. Про это написать?) Увольте…
                                                  0
                                                  Я про статью с примерами, типа «смотрите какую мы хрень сделали, а математик принес вот это, мы переделали, и получилось вот так. Так вот мы экономим по 1М ежемесячно, заодно поднимая общее качество кода». Что-то в таком духе, я ж деталей не знаю.
                                                    –1
                                                    Какую хрень мы сделали написано выше. Как пример.
                                                    Деньги на этом никак не экономятся.
                                                    У нас другой смысл.
                                                    Без математика никак нельзя собрать что-либо вменяемое. А мы собираем свое. Потому что нет смысла юзать чужое готовое. Оно невменяемое. Невменяемость заключается в том, что не понятно — работает оно или нет. Весь свободный код — не вменяемый совершенно. Как только свободный код становится вменяемым — он резко перестает быть свободным. Тут вариантов не много. Или пользоваться чужим и свободным, но абсолютно кривым, или коммерческим и не свободным, и тоже кривым. В любом случае вы не будете знать как оно работает и все тестами никогда не покроете.
                                                    Остается поглядеть как написали другие или же украсть, и дописать свое. Но в обоих случаях всегда лежит математический алгоритм, и знает как оно работает только математик.

                                                    Мы пришли к простой мысли. Контроль за кодом только один — когда он наш и мы понимаем как он работает.

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

                                                    Ровно так же делаем и мы. Вот по-этому у нас все работает. А там где не работает — всегда можно посмотреть и подправить.

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

                                                          Что такое качество кода я понятия не имею. Это похоже термин из юриспруденции что ли… Хз)
                                                  0
                                                  Он пользуется принципиально иными способами «тестирования», а именно доказательствами. Каторые тестировать нет никакого смысла. Проще говоря — тестировать за математиком — полнейший бред. Или вы собрались тестировать математику?) Ого…

                                                  А корректность доказательств он как проверяет? Пишет на Coq, Agda или Idris, я надеюсь?

                                                  А про использование самописной криптографии есть известное высказывание. Надеюсь, у вас там ничего mission-critical от неё не зависит.
                                          0

                                          Unit-тесты помогают дробить систему или какой-то блок системы на отдельные элементы (юниты). Если кто-то тестирует 1+1=2, это его проблемы. Тем не менее, unit-тестами можно тестировать и довольно сложную логику. А если еще эти тесты написаны как следует, то можно и по ним понять, как работает этот отдельный юнит.

                                        0
                                        Но если разработка через тестирование?
                                      +18
                                      На правах бреда:
                                      Я считаю такие интервью вредными потому, что их могут прочесть настоящие дураки,
                                      и принять их как руководство к действию.
                                        +1
                                        Ну так они больше всего себе навредят вроде.
                                          0
                                          Считаю что данное интервью может послужить руководством к действию с не самыми разрушительными последствиями для окружающих. А посему пусть действуют в своё удовольствие.
                                            +2
                                            Вот тут вы правы. У меня младший брат ходил учиться в компьютерную академию (ШАГ) 3 года, после которой спокойно берут на работу джуном. Какой-то дибил, который там то ли преподавал, то ли учился с ним ляпнул что получать диплом необязательно — на работу берут по знаниям (нужно пройти интервью). Малому 16 лет (что с него взять?) и он принял это за чистую монету. Кто бы ему рассказал что перед собеседованием ещё нужно чтобы тебя отобрали для того самого интервью из десятков кандидатов. В итоге заплачено куча денег, а корочки нет. Может ему конечно повезёт — но некоторые бумажки в этом мире знатно упрощают жизнь.
                                              +3
                                              Скажите ему, что уехать заграницу даже просто поработать пару лет без диплома сильно сложнее. Просто миграционным службам плевать сколько у человека звезд на github'е, ему бумажку хочется увидеть.
                                                +2
                                                Просто миграционным службам плевать сколько у человека звезд на github'е, ему бумажку хочется увидеть.


                                                Некоторые страны да, но есть и те, кому плевать на бумажки, скилл важнее. Нидерланды, например.
                                                  +2
                                                  5-10 лет опыта заменяют диплом, что в Британии, что в США.
                                                    0

                                                    Документально подтвердить эти 5-10 лет будет сложнее, чем диплом показать. Или думаете вам на слово поверят?

                                                      0
                                                      Тем не менее, процедура есть www.cdrreport.org/acs-australia-migration-skill-assessment

                                                      " ACS Australia assesses the skills of the applicant, who do not have ICT qualifications or any tertiary ICT qualifications. "

                                                      «вышка» давно уже перестала быть исключительной необходимостью для эмиграции айтишного люда.
                                                        0
                                                        Документально подтверждается письмами от прошлых работодателей. При этом даже не особо важно, были ли вы, скажем, официально трудоустроены и платили ли налоги в России. Контрактором на удалёнке на зарубежную фирму тоже вполне норм.
                                                      0
                                                      Ой, что мы ему уже только не говорили — сам живу и работаю заграницей. Некоторые люди не принимают чужой опыт. Я и сам таким был, но мне посчастливилось найти себя в науке. Посчасливится ли ему — очень большой вопрос.
                                                      0
                                                      Ну вообще, по моим небольшим наблюдениям — зависит от области.
                                                      Если что-то технически сложное, что обычно пишут на C/C++ — диплом спрашивают весьма часто(сужу по вакансиям). Если это ВЕБ — диплом вообще никого не интересует, 1С/Мобильная разработка — иногда спрашивают диплом только у кандидатов, что ещё не имеют опыта.
                                                      Я в 17 устроился (месяц назад), никто не спрашивал где/как я учусь(Пошёл в колледж ради того чтобы быстрее влиться в рабочую среду).
                                                      Если малый бывал за границей, можете рассказать ему что дорога туда в 90% с вышкой, может передумает =)
                                                        0
                                                        На начальных должностях дипломы, понятное дело, не особо нужны. А вот дальше может быть по разному.
                                                          +3
                                                          C++, машинное обучение, зарубеж. Диплом спрашивали после оффера, чтобы построить план релокации.
                                                          –1
                                                          5 съэкономленных лет это очень много. В реалиях нашей страны можно заработать на любую бумажку и еще останется. Миграционные ведомства стран повменяемее принимают стаж как подтверждение квалификации.
                                                            +5
                                                            Студенчество это не 5 лет заключения после которых дают бумажку. Это и прекрасно интересное время (больше половины которого проходит за пределами Альма-матер), и источник знаний, которые вы сами себя узнать не смогли бы заставить.
                                                              –1
                                                              Я не к тому что универ — тюрьма. А к тому что не тратить на него время нормальный выбор со своими достоинствами и недостатками.
                                                              0

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

                                                              0
                                                              В итоге заплачено куча денег, а корочки нет.


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

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

                                                                  +1
                                                                  Да и по фото видно. Слишком хмурый для смузи-хипстора. Сразу видно собрата по несчастью.
                                                                    +10
                                                                    Я похож на смузи-хипстера, потому что жена затащила меня в смузи-хипстерскую кофейню. Если бы фото было сделано на 10 минут позже (когда я понял, что они налили джем в мои бургеры), я бы уже совсем не был похож на хипстера
                                                                      +1
                                                                      Черт, я первый раз прочитал «налили джин». Задумался :)
                                                                        +2
                                                                        Спасибо, я придумал чем заняться на выходных
                                                                        –1
                                                                        Извините, если обижу. У вас легкое СДВГ?
                                                                        +2
                                                                        По фото подумал что очередной смузи-хипстор.


                                                                        Та же фигня. Начинаю читать и думаю — «сейчас начнется про новые фреймворки для node.js или про очередную конференцию...»
                                                                        Ан нет, внезапно годнота.
                                                                          +3

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

                                                                            +6
                                                                            Просто некоторые люди не хотят обучаться новому. И будут до потери пульса топить за старье, в котором все якобы «ламповее», «надежнее» и «удобнее». А из зависти к тем, кто может и любит изучать новое, и эффективно использует это в своей работе, придумывают про них оскорбительные прозвища, типа «смузи-хипсторов».
                                                                              +3

                                                                              Надо им тоже погоняло придумать. Типа "вата-кодеры" или что-то в этом роде.

                                                                                0
                                                                                Но почему вата-то?) Это самый ужасный материал для вас?
                                                                                  0

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

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

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


                                                                                      Не вижу смысла заниматься изобретением «обзывалок» для интернет-баталий.

                                                                                      Иногда можно и поприкалываться.

                                                                                        0
                                                                                        Кмк, главное здесь — не заиграться с обобщениями, так уже JavaScript можно сделать политической позицией)
                                                                                          0

                                                                                          Мне можно, я не гражданин России. У нас за комменты не сажают.

                                                                                            0
                                                                                            Я скорее о границах разумного) Заставить людей думать шире и видеть лес за деревьями никакие законы не могут.
                                                                                              0

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

                                                                                                0
                                                                                                У разумного не границ. Есть границы нашего понимания.

                                                                                                Альтернативная одаренность?)

                                                                                                цех строителей в Средневековье, который превратился в орден масонов

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

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

                                                                                        Я не верю в мантры "просто пиши код", "надо работать" и прочий популизм. Можно бездумно кодить 24 часа в сутки, пока кровь из носа не пойдет. И на выходе получить мегабайты неуправляемого спагетти пополам с кривыми велосипедами. А потом месяцами перебрасывать баги из бэклога в стейджинг и обратно. Многие проекты так и живут, благо маржинальность в IT зашкаливает. Только гордиться тут нечем.
                                                                                        А можно сесть подумать, почитать статью с Медиума, посмотреть видос с конференции или съездить. И добиться как минимум того же результата с меньшими затратами, большей расширяемостью и прочими плюшками. IT это не стройбат, где копают от забора до обеда.

                                                                                          +1
                                                                                          А вы просто рассматриваете кардинально противоположный случай — когда человек только и делает, что бездумно пишет кот 24/7. Это тоже такой себе подход, хотя, как вы заметили, в некоторых случаях он работает.
                                                                                          Я же описал человека, который НЕ занимается кодингом вообще, и вся его деятельность заключается в том, что (см. выше), однако же он считает себя зомфг разработчиком и двигателем нового в массы. Мы просто рассмотрели черный и белый случаи, а тут, думается мне, серенький-то все-таки идеален — когда человек сочетает и конференции, и кодописательство. А бездумные кодеры, равно как и бесполезные болтуны со сцены — это такое себе.
                                                                                            +1

                                                                                            Вы привели в пример не существующий в реальности edge case. Я в ответ предложил свой противоположный. У вас нет монополии на преувеличения.
                                                                                            Насчет разумной середины. Ну, я в ней. Кодю и езжу на конференции, пишу маленькую статью сейчас. Смузи-хипсторов на конференциях не замечал. Есть евангелисты, но это другая вообще тема. Зато часто читаю комменты вот таких лесорубов как вы. При это никогда не видел их вклада в сообщество. В отличие от смузи-хипсторов, которые способствуют развитию технологий.
                                                                                            Без обид, но со стороны ваши комменты звучат как нытье обиженного неудачника.

                                                                                              0
                                                                                              У вас нет монополии на преувеличения.


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

                                                                                                Не туда приклеилось, сорян.


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

                                                                                                  +2
                                                                                                  Зато часто читаю комменты вот таких лесорубов как вы


                                                                                                  Ну на личности-то зачем, нормально же сидели.

                                                                                                  При это никогда не видел их вклада в сообщество.


                                                                                                  А что, все те, кто не считает нужным вкладывать в сообщество — второй сорт и «лесорубы»?

                                                                                                  Без обид, но со стороны ваши комменты звучат как нытье обиженного неудачника.


                                                                                                  Меня это не волнует совсем абсолютно никак, тем более, что вы ошибаетесь.

                                                                                                    +1

                                                                                                    Не хотел обидеть, пардон.


                                                                                                    А что, все те, кто не считает нужным вкладывать в сообщество — второй сорт и «лесорубы»?

                                                                                                    Вкладывать или не вкладывать — личное дело. Но вот обзывать тех, кто вкладывает это плохо.

                                                                                                      +2
                                                                                                      обзывать тех, кто вкладывает это плохо.


                                                                                                      Согласен. Мысль простая — не каждый, кто вкладывает = смузихипстер и не каждый, кто НЕ вкладывает = лесоруб. От человека же зависит.
                                                                                          0
                                                                                          мой ТЛ, по моим наблюдениям, придерживается в работе догмы, что все что непосредственно улучшает продукт должно быть сделано и только это. Таким образом он максимум своего времени тратит на устранение проблем в продукте, и соответственно считает ненужными всякие автоматизации, фигации и прочие современные штуки. Как он говорит, мы не продаем автоматизацию, мы не продаем симуляторы и моки, мы продаем работающий продукт. И достигает этого непосредственным образом — находит, правит баги, добивается чтобы другие подрядчики чинили блокеры. И это работает. Он просто за день может разгрести кучу с которой трое за неделю не управятся. Никаких придумываний архитектуры, досок, диаграмм, документации, собраний и совещаний — просто чинит продукт. Сидит как египетское изваяние и фигачит. Да его код не самый легкочитаемый. Но эффективность такого подхода феноменальна. И это его заслуга, что наша фирма все эти годы среди остается конкуррентноспособной в тендере.
                                                                                          Так что в философии "programming motherfucker" — что-то есть.
                                                                                            0
                                                                                            Он просто за день может разгрести кучу с которой трое за неделю не управятся.

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

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

                                                                                              0

                                                                                              А что будет, когда этот человек решит уйти из компании?

                                                                                                0
                                                                                                в данном конкретном случае наверно должны разверзнуться небеса. Редкой лояльности человек. Ему предлагали уйти на гораздо более выгодные условия работать к заказчику. Он отказался.
                                                                                                Говоря в общем случае — тогда будет команда как все. И тогда мне наверное мне тоже захочется уйти. Потому, что весь этот западный детсад-стайл-менеджмент, философии компании, игра в аджайл и прочаяя муть «зальют водой» и утопят проект через год.
                                                                              +4
                                                                              Реальный факап:

                                                                              lenta.ru/news/2018/08/15/post
                                                                                +5
                                                                                Постараюсь ответить детально по пунктам:
                                                                                У меня не самый плохой девбокс, но с одним значимым минусом — я попытался сэкономить и купил проц от амд. Это был страшный провал. Не смотря на высокую заявленную мощность, этот кусок говна прогоняет мои тесты в 5!!! раз медленнее, чем его интеловский аналог.

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

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

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

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

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

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

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

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

                                                                                Что касается пожеланий:

                                                                                Вывод типов и компайл-тайм иммутабельность — System.Collections.Immutable. Проблемы только с иммутабельными классами, проблему осветил Джон Скит на дотнексте.
                                                                                Чтобы разработчики C# послали, наконец, к чертям собачьим обратную совместимость — не случится никогда
                                                                                Автоматические backing fields в C#, какой-нибудь сахар над Func<T1,T2>. — непонятно, что имеется ввиду. Автоматические филды есть, ручные я почти не вижу в реальном коде. Сахар для Func<T1,T2> непонятно какой имеется ввиду. Я бы предпочел иметь адекватный Unit-тип, чтобы объединить наконец Func/Action, Task/Task/…
                                                                                Контракты для C# — есть пропозал, вроде даже чемпион
                                                                                Аналог jsx для языка F#. — мне казалось jsx во-первых устарел (все фронты просто .js используют), а во-вторых функциональщина с интерфейсами как по мне слабо сочетается. Мб не прав, тут не знаю, не использовал серьезно
                                                                                Чтобы сообщество пришло к пониманию, что юнит-тесты — бесполезный мусор — выше написал
                                                                                Чтобы архитектура процессоров была больше рассчитана на функциональный подход. — ограничения физики это не то, что можно легко обойти. Лисп-машины были не сильно удачными, и не потому, что их не старались сделать производительными. На низком уровне императив правит миром, а языки, которые близки к ним идейно — быстрые. Вряд ли с этим глобально можно что-то сделать
                                                                                Оптимизация хвостовой рекурсии в js/ts — не вижу особых проблем, чтобы это реализовали в любое время, это ведь совсем несложно.
                                                                                Опциональная возможность статической типизации в js из коробки
                                                                                1. не будет сделано никогда
                                                                                2. уже есть ts, смысла большого нет
                                                                                Чтобы штуки вроде web-assembly прочно заняли своё место в практиках — так и будет
                                                                                Значимого усовершенствования web-клиентов гитхаба и ему подобных. — неплохая идея, будем надеяться. Пока что гитхаб даже ревью не очень показывает, приходится использовать сторонние сервисы
                                                                                Больше конвенций по совместимости. Насколько бы всё было бы проще, если бы jvm умела интерпретировать и jit-ить дотнетный cil. — было бы наверное неплохо, но кмк это нереализуемо, чтобы было и эффективно, не говоря про саму возможность договора между MS и Oracle.

                                                                                У меня несколько своих проектов с друзьями. Люблю специально делать им пассивно-агрессивные код-ревью («не мог бы ты предложить мотивацию для использования столь непродуманного решения?») и наблюдать, как это меняет наши взаимоотношения.

                                                                                Лучший способ поссориться с людьми, которыми дорожишь. Иронизировать и подкалывать — это одно, а ПА атаковать — другое.
                                                                                Учебная — «clr via C#» Джеффри Рихтера. Столько знаний про то, как устроен дотнетный рантайм в одном труде — настоящая находка. Если заучить эту книгу, пройдёшь любой собес на дотнетера.

                                                                                Вот сколько читаю про дотнетеров — все на эту книжку чуть ли не молятся. Пробовал читать её дважды — оба раза не мог дойти дальше 50 странцы. Столько воды, что засыпаешь на ходу. Про устройство дотнета намного полнее и интереснее было почитать Pro .Net Performance за авторством Саши Гольдштейна. Вот уж и глубоко, и понятно, и приколы вроде фич, которые есть в CLR, но не доступны напрямую из C#. Очень рекомендую.

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

                                                                                Сначала Delphi после pascal, потом схожие чувства от C# после Delphi, сейчас же Rust после C#.
                                                                                  +3
                                                                                  купил проц от амд. Это был страшный провал. Не смотря на высокую заявленную мощность, этот кусок говна прогоняет мои тесты в 5!!! раз медленнее, чем его интеловский аналог

                                                                                  — тут не ясно о какой модели идет речь. У меня Ryzen 7 1700X 3.4 GGz — я доволен как слон (перед этим была мать с двумя двухядерными ксеонами — AMD кратно их превзошел). Вероятно проблема в том что используются однопоточные приложения на которых мощь многоядерной системы не раскрывается.
                                                                                    +2
                                                                                    Видимо никто не читает мою простыню, абыдн, старался расписать подробно :)
                                                                                    Вероятно проблема в том что используются однопоточные приложения на которых мощь многоядерной системы не раскрывается.

                                                                                    Очевидно, речь о прогоне юнит-тестов в VS средставми самой IDE или R#. Конечно же, они прогоняются параллельно, я лично видел до 16 тестов одновременно на 8-ядерном (с HT) процессоре. Так что вопрос явно не в однопотоке (он кстати по тестам у рязани нормальный).
                                                                                      +5
                                                                                      Может, там FX был, а не Ryzen?
                                                                                        +5

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

                                                                                          +2
                                                                                          Вот не знаю что она там рвет и мечет, но моя попытка перейти на рязань 1800х с i7 4790K закончилась эпическим фейлом. Наивно предполагал что 8/16 даст солидный буст по сравнению с древним 4/8, но эффект прямо противоположный.

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

                                                                                          Возможно это кривая оптимизация винды/студии для амд. Но мне, честно, пофиг. Я хочу чтобы все работало, так быстро, как это возможно, не создавая дискомфорта. И если амд не может мне это обеспечить, то извините пожалуйста.
                                                                                            0
                                                                                            А почему сразу i9? i7-8700 недостаточно будет?
                                                                                              0
                                                                                              Менять железо чаще чем раз в 4-5 лет накладно, да и нет особого желания. Будут ли 6 честных ядер котироваться в 2022-23, так же как 8 ядерные и более решения — большой вопрос. Так что, по мне лучше подкопить дополнительные 40к на 10ядерник и не заморачиваться в ближайшие годы. Чем сэкономить сейчас и думать, стоило оно того или нет.
                                                                                                +1
                                                                                                Я перешёл на 8700k не столько из-за числа ядер, сколько из-за высокой частоты одного ядра. Был значимым фактором против линейки i9. Всё ещё полно задач, которые тупо в скорость одного ядра упираются. Больше ядер — меньше скорость каждого, чтобы в TDP держаться.
                                                                                                  0
                                                                                                  У AMD вот-вот выйдет 16/32 решение, если вам ядра важнее синглтреда. Сам смотрю на него с вожделением.
                                                                                                    0
                                                                                                    16/32 уже есть: Threadripper с ценником ~800$. А вот-вот выйдет 32/64 с ценой 2к. Будут ли наращивать кол-во ядер в десктопе пока непонятно.
                                                                                                      0
                                                                                                      Да, вы правы, конечно же, 32/64. Греться будет, конечно, ужасающе, надеюсь мой Dark Rock Pro 4 его вытянет.
                                                                                                      0
                                                                                                      Еще интересно, насколько оно всякими AVX'ами матрицы вертит, по этой части информации сильно меньше.
                                                                                                        0
                                                                                                        А все, оказывается продажи уже начались, так что тестов сейчас подвезут достаточно.
                                                                                                        Но цена конечно адовая.
                                                                                                          0
                                                                                                          Ну там тесты обычно немного другого рода.

                                                                                                          У меня есть некоторый вычислительный код, который я считаю вообще достаточно репрезентативным для тех задач, что мне интересны, но я всё ленюсь его упаковать в какую-то воспроизводимую форму, чтобы потом рассылать счастливым обладателям райзенов и тредрипперов с просьбой побенчмаркать.
                                                                                                            0
                                                                                                            Ну если все-таки отважусь на покупку этого адища — черкну, побенчмаркать мне не жалко.
                                                                                                      0
                                                                                                      Могу сказать что 8700k — монстр, особенно если довести до 4.8 или 5.0.
                                                                                                      Все открывается за доли секунды. Но скальп все же требуется если 5.0.

                                                                                                      Так что берите :)

                                                                                                      P.S. Лучше в связке с 970 pro.
                                                                                                    0
                                                                                                    не любите вы племяша.
                                                                                                      +1
                                                                                                      Возможно, какие-то проблемы с i/o. Помню, подобный эффект был на асроке 1156 после фенома2: формально, процессор пошустрее, по всем бенчмаркам, но есть ощущение затупливания. Обновил биос — и всё стало сново гладко и быстро.
                                                                                                      Рейзн пока толком не щупал (пришли первые 3 компа с 2400g, но на моём рабочем компе стоит 7, а на них — 10, напрямую не могу сравнить), но и7 славится затупами при высокой нагрузке — что на зионах замечал, что на текущем станционарнике, что на ноутах.
                                                                                                      Ну и биосы сырые, сырые и ещё раз сырые — очень много нового добавили, в целом, платформу наконец более-менее вылизали, но надо обновиться, а производители материнок не спешат как-то.
                                                                                                  +1
                                                                                                  Очевидно, речь о прогоне юнит-тестов в VS средставми самой IDE или R#.

                                                                                                  — для меня не очевидно (VS я не пользовался никогда), а в тексте статьи явных указаний на то как именно интервьюируемый гонял тесты (и какие? может интеграционные?) нет.
                                                                                                    0
                                                                                                    Какие бы они ни были, онит или нет, они гоняются по числу логических ядер, и отлично параллелятся. Поэтому вопрос именно в многопоточной производительности.
                                                                                                0
                                                                                                Мне кажется, человек плохо понимает, насколько один PR может принести пользу человечеству. Ведь если каждый коммит увеличивает продуктивность каждого пользователя технологии в 1.000000001 раз, то очень быстро их продуктивность изменится просто в разы. Кумулятивность эффекта программирования и взаимной помощи (особенно в OSS) это очень мощная штука. По крайней мере, когда я задумывался над этим, я пришел именно к таким выводам.

                                                                                                Мне кажется это сложный вопрос. Я вот не знаю, растет ли моя продуктивность. Каждый день каждый разработчик создает все новые PR'ы. В итоге, чем дальше, тем больше тратишь времени не на работу, а на изучение того, что изменилось, починку того, что поломалось (вышел какой-нибудь MegaElasticRedisSearch версии 7.5 — половина кода поломалась, тратишь от 4 часов до нескольких дней на починку)… У меня есть интуитивное ощущение, что через 5 лет такими темпами можно будет утром писать код, который к вечеру будет уже устаревать.


                                                                                                А помогает ли это все человечеству в целом?.. Не уверен.


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

                                                                                                Утопия. Никогда так не будет, скорее всего. Причины выгорания скорее не в зарплате, а в отношении к работе.

                                                                                                  0
                                                                                                  Чем не поможет? Уйти на ЗП в 2 раза меньше можно не чтобы самобивечанием заниматься, а чтобы получать нематериальные фишки. Выбор стека/коллег/фич в продукте/..., это все может вернуть человеку веру в себя.
                                                                                                    0
                                                                                                    Или даже большее количество свободного времени — порой нужно просто отдохнуть.
                                                                                                  0
                                                                                                  Пропустили пунк про
                                                                                                  а языки с динамической типизацией (не путать со слабой) — самый крупный провал в истории индустрии.
                                                                                                    +1
                                                                                                    Этот пункт очень провокационный, поэтому я не стал его комментировать. Лично для меня языки со статической типизацией более продуктивны, чем динамические.
                                                                                                      0
                                                                                                      Спасибо за ответ, было интересно узнать ваше мнение.
                                                                                                    0
                                                                                                    Автоматические филды есть

                                                                                                    Автор имел виду backing fields, как в Kotlin, автоматически доступные в геттерах/сеттерах, и только в них, чтобы для свойства вида int Age { get; set; } не приходилось объявлять поле int _age, если вдруг нужно реализовать какие-то проверки или иные действия в геттере/сеттере.
                                                                                                    А только в геттере/сеттере поля должны быть доступны, не только, чтобы не засорять код декларациями, но и чтобы не было разнобоя в обращениями внутри класса Age или _age (поди разбери, когда то или иное обращение было сделано специально, а когда от неаккуратности).

                                                                                                      –1
                                                                                                      1. Это почти никогда не нужно. Большого количества подобных филдов не бывает обычно.
                                                                                                      2. Есть пропозал, когда-нибудь добавят.
                                                                                                        +1
                                                                                                        >1. Это почти никогда не нужно. Большого количества подобных филдов не бывает обычно.

                                                                                                        В приложениях с UI их очень много, взять хотя бы INotifyPropertyChanged.
                                                                                                          0
                                                                                                          Это плохой дизайн самих фрейморков. Ну и я советую больше серверной разработкой заниматься, чтобы нервы поберечь. Помню писал одно WPF и другое Winform приложение, мурашки по коже при воспоминании бегать начинают… А на сервере — тишь да благодать, последнии плюшки, удобные тулчейны,… Попивай чай да реализуй очередную задачу, одна благодать.
                                                                                                    +11
                                                                                                    Интересный формат. Как-то искренне и по настоящему были ответы, без притягиваний всяких «казаться». Без галстуков и с бургером)
                                                                                                      +18
                                                                                                      Пилю с этим парнем один проект. И он доканал меня с требованием предложить мотивацию по использованию какого-либо очевидного ключего слова или конструкции))
                                                                                                        0

                                                                                                        Правильно ли вас понимаю, что от вас требуют, к примеру, обосновать, почему вы используете, допустим новые конструкции C# 6-7 — паттерн матчинг (новое слово when в switch/case), фильтр исключений (when), или какие-то новые конструкции, связанные с тем же паттерн матчингом в части апгрейда работы с is/as, или "out var _"?


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

                                                                                                          +1
                                                                                                          На вроде мотивации по использованию sealed, той или иной коллекции. Часто он это делает, на сколько я понимаю, для лучшего своего понимания того или иного решения. Лично на мой взгляд, не плохой подход — пытаться опровергнуть решение для получения доказательств его верности.
                                                                                                            0
                                                                                                            Лично на мой взгляд, не плохой подход — пытаться опровергнуть решение для получения доказательств его верности.

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

                                                                                                        +6
                                                                                                        Это очень странное ощущение — читать то, что как-будто про тебя написано.
                                                                                                        На фоне всех этих успешных успехов, как глоток свежего воздуха.

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

                                                                                                        Не знаю, как это можно совмещать, но я обожаю разрабатывать и ненавижу работать разработчиком

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

                                                                                                        Чтобы сообщество пришло к пониманию, что юнит-тесты — бесполезный мусор

                                                                                                        Тут ещё вопрос, что считать юнит-тестом. Unit — единица весьма условная. Но вообще по моему опыту бэкенд веб-дева получалось так, что чистых юнит-тестов в проекте меньше всего. Не складывается пирамидка-то :)
                                                                                                        Т.е они не совсем бесполезны, но очень часто их пишут просто до кучи и это не более, чем бесполезный шум. Имитация бурного тестирования :)
                                                                                                          +1
                                                                                                          Если этого нет, то даже высокая ЗП и плюшки — это временная радость.


                                                                                                          Зато не очень высокая зп — это постоянное несчастье ;)
                                                                                                          +5
                                                                                                          Ответ на первый вопрос потрясающ. Интересно, много ли HR-ов можно загнать в синий экран таким вот ответом?
                                                                                                          Да и вообще, было неожиданно интересно.
                                                                                                            –5
                                                                                                            Как раз такой ответ HR и ждут. Он сразу говорит о том, что человек ошибочно выбрал профессию.
                                                                                                              +5
                                                                                                              тогда 95% других разработчиков также ошибочно выбрали
                                                                                                                0
                                                                                                                Думаю, не 95%, а 80% разработчиков всех людей. Остальные 20%, что называется, are making a difference.
                                                                                                                +6

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


                                                                                                                Навскидку:


                                                                                                                • Разработать движок EAV-базы для нашей задачи? — Велосипеды не нужны, есть готовые фреймворки и графовые базы.
                                                                                                                • Задействуем готовый фреймворк или графовую базу? — Бизнесу это не нужно, нужно делать продуктовые таски.
                                                                                                                • Переведем проект на .NET Core? — А что это? Не нужно.
                                                                                                                • Мы много месяцев делаем однообразные таски, тратим на каждый много времени, при этом копипастя один и тот же код. Может, вынесем общий код в базовый класс, а под каждую таску будем делать легкий класс-наследник? — Не нужно, давай к пятнице закроем такую очередную таску.
                                                                                                                • У нас в истории и трекера несколько лет и на ближайшие полгода вперед какие-то одинаковые баги, постоянно переотрываются и/или заводятся очень похожие. Они относятся к двум-трем блокам в приложении. За месяц-два стало ясно, как их сгруппировать, и что нужно сделать в каждой группе, чтобы "закрыть" каждый блок на 95%, потратим по 2 недели на каждый блок? — Бизнесу это не нужно.
                                                                                                                • Далее везде.

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

                                                                                                                  +1
                                                                                                                  Почему бы не рассказать о том что было сделано для собственного маленького проекта?
                                                                                                                    +1
                                                                                                                    Может быть, потому, что нет собственного маленького проекта?
                                                                                                                      –6
                                                                                                                      Если нет собственного маленького проекта, то крайне вероятно, что человек не очень то и любит заниматься разработкой. Как следствие, возвращаемся к моему начальному утверждению.
                                                                                                                        0
                                                                                                                        я, к примеру, люблю заниматься разработкой, но у меня нет ни одной идеи для своего маленького проекта. А делать очередной туториал или воплощать чужие идеи в свое свободное время мне скучно.
                                                                                                                          0
                                                                                                                          Все сильные программисты, с кем доводилось работать, что-то пишут дома. Александр Соловьев в одной из лекций даже объяснял, какой в этом смысл.
                                                                                                                            0
                                                                                                                            Так мы говорим о «силе» программиста или о любви к области деятельности?
                                                                                                                            Или только «сильные» программисты любят свою работу?
                                                                                                                              +1
                                                                                                                              Может не каждый программист, кто любит свою работу уже «сильный», потому что он еще джуниор, но в будущем вырасти до сильного у него определенно больше шансов. И едва ли вы сможете найти сильных программистов среди тех, кто не любит свою работу.

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

                                                                                                                            Сейчас байндинги для хаскеля к libclang пилю, интересно, как выражать AST языков вроде C++ на функциональных языках, чтобы потом по ним можно было удобно и изящно писать всякие запросы и анализы? А, кстати, если ещё и парсер cmake или compdb сделать, то можно будет прям искаропки анализировать проекты целиком. А, вот, кстати, нужно было построить диаграмму Венна для пятка множеств, получилась какая-то херня, да и библиотек таких толком нет, может, подумать, как такие вещи ещё представлять? О, тут, кстати, да, граф же получается, если смотреть смежные по ребру области, надо сделать библиотеку, чтобы она dot-файл выплёвывала, а потом graphviz'ом рендерить. Хм, графвиз, может, сделать потом ещё библиотеку и совместить fgl и graphviz, чтобы визуализировать fgl'ные графы?
                                                                                                                              0

                                                                                                                              И в конце еще не хватало «и всё заверте...». Так и до готового продукта не далеко)

                                                                                                                                0
                                                                                                                                То, о чем вы пишете, интересно разве что двум с половиной фанатикам. В большинстве же своем люди предпочитают писать что-то практичное, что в 2018 в 100% случаев оборачивается велосипедированием.
                                                                                                                                  0
                                                                                                                                  Ну почему фанатикам и что-то непрактичное, это ж не ещё один способ вычисления факториала на очередном подклассе морфизмов.
                                                                                                                              +3
                                                                                                                              Отсутствие фанатичного отношения означает, что человек неверно выбрал профессию? Мир не делится на черное и белое, а проекты, которыми можно гордится наверняка требуют много сил и времени. Да и прецеденты намекают, что радикальных фанатиков не так уж много среди профессиональных программистов.
                                                                                                                                +1
                                                                                                                                Я не это имел ввиду. По вашей логике получается, что 95% процентов художников — фанатики.
                                                                                                                                  0
                                                                                                                                  95% художников я склонен относить к ремесленникам (художников-оформителей, работающих по четким ТЗ или, скажем, рисующие виды города или шаржи на прохожих, т.е. ориентируясь на рынок). Не уверен, что каждый из них дома годами сидит над своей «Мона Лизой».
                                                                                                                                  Остальное меньшинство вполне можно называть фанатиками, верно.
                                                                                                                                    0
                                                                                                                                    Я имел ввиду обычных современных художников, которые занимаются созданием цифрового контента.
                                                                                                                                      0
                                                                                                                                      Честно говоря, я не вижу разницы с точки зрения самого творца. Это так же можно делать как под заказ, так и упиваясь самовыражением.
                                                                                                                                        +1
                                                                                                                                        Вы явно не в теме: под заказ редко бывает, что приходится рисовать то что интересно. Сколько я не смотрел портфолио — там либо собственные работы, либо в перемешку с коммерческими. Собственные обычно более эффектные.
                                                                                                                                          0
                                                                                                                                          Как выглядит типичный заказ? «Здравствуйте! Нарисуйте нам что-угодно на ваш вкус»? Или все же «Мы — компания Х, нам нужен арт на тематику Y, у нас есть пожелания Z».

                                                                                                                                          Хорошо. В какое количество человекочасов можно оценить типичную собственную работу из портфолио художника?

                                                                                                                                          При сравнении еще важно понимать, что программисты крайне редко создают самостоятельный продукт, в отличие от художников. Более того, программные продукты чаще всего закрытые, а наиболее интересные нюансы алгоритмов еще и под NDA попадают.
                                                                                                                                            0
                                                                                                                                            На счет заказа ответил в личку
                                                                                                                                              0
                                                                                                                                              Не ответили.
                                                                                                                                                0
                                                                                                                                                Наверно, я нажал предпросмотр вместо отправить. Продублировал ответ.
                                                                                                                                              +1
                                                                                                                                              программисты крайне редко создают самостоятельный продукт
                                                                                                                                              Все опенсорс сообщество смотрит с недоумением на этот коммент.
                                                                                                                                                0
                                                                                                                                                Единоличные авторы годных опенсорсных проектов вполне подпадают под категорию «крайне редко». Причина недоумения остальной части сообщества для меня не очевидна.
                                                                                                                                                  0
                                                                                                                                                  И именно из-за того, что это так «крайне редко» случается, таким компаниям как Microsoft приходится признавать то, что с open source бороться не стоит, а стоит в него влится, а еще лучше — возглавить)
                                                                                                                                                    0
                                                                                                                                                    Тот опенсорс, о котором вы говорите, пишется в основном (по количеству коммитов) тучей программистов на окладе в крупных компаниях. А теперь еще и из MS.
                                                                                                                                                      0
                                                                                                                                                      А что было раньше, курица или яйцо? Моя компания работает с друпалом. Мечтаем писать для него модули и вообще влиться в комьюнити. Зачем? Чтобы привлекать разработчиков на работу :).
                                                                                                                                                        0
                                                                                                                                                        Но вы же не станете записывать себе в портфолио модули, которые вы командой разрабатывали или сам друпал (если патчили его)?
                                                                                                                                                    0
                                                                                                                                                    А как вы определяете годный или не годный? Мой проект форкнула пара индусов, это считается?
                                                                                                                                                      0
                                                                                                                                                      Исключительно субъективные ощущения, сертификатов годности не выдаю) Интересует популярность, качество и актуальность той проблемы, которую софтина решает.
                                                                                                                                    0
                                                                                                                                    Как вероятно и то, что он не делает из разработки культа, а просто продает свои умения и знания 8 часов 5 дней в неделю. С течением лет мне лично такой подход кажется все более и более здравым.
                                                                                                                                      0
                                                                                                                                      Я очень люблю заниматься разработкой (и у меня это неплохо получается, судя по отзывам коллег и зарплате), но в жизни есть еще и другие вещи. Я говорю не только про другие любимые занятия, такие как туризм, спорт и литература, а еще про жену, родителей, и в перспективе детей. Они для меня важнее любви к разработке. И к тому же на основной работе я выкладываюсь на сто процентов. Может, именно поэтому у меня нет «собственных маленьких проектов»?
                                                                                                                                        0
                                                                                                                                        Вопрос самореализации. Кому-то люто нужен ответ на вопрос «нафига я живу, что я после себя оставлю и в чём смысл конкретно моей жизни». А дальше уже кто как самореализуется.
                                                                                                                                        +1
                                                                                                                                        Или он отъебашил 9 часов еще 2 часа провел в транспорте, имеет нехилую перспективу похерачить в субботу и хочет тупо пожрать и спать.
                                                                                                                                      0

                                                                                                                                      Мне, к примеру, есть что рассказать и про продуктовую работу, и свои (не)маленькие проекты.


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


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


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

                                                                                                                                        +8
                                                                                                                                        Потому что свой умственный ресурс, связанный с ИТ, я практически целиком трачу на работу или околоработу. И приходя домой, последнее, что мне хочется, это запускать IDE.
                                                                                                                                        Гораздо приятнее взять в руки гитару или кисть с красками, лобзик или напильник, гантелю или шпагу. Пойти пробежаться или с женой в лесу погулять, в конце концов.
                                                                                                                                        Но нет, программистом у нас имеет право называться только тот, кто пялится в монитор 24/7. Обязательно аккаунт на гитхабе с тыщей звёзд, пачка статей на хабре, непременно свой проект, в котором обязательно должны присутствовать блокчейн, машин лёрнинг, биг дата, nosql и десять фреймворков не старше одного месяца.
                                                                                                                                          –1
                                                                                                                                          Но нет, программистом у нас имеет право называться только тот, кто пялится в монитор 24/7. Обязательно аккаунт на гитхабе с тыщей звёзд, пачка статей на хабре, непременно свой проект, в котором обязательно должны присутствовать блокчейн, машин лёрнинг, биг дата, nosql и десять фреймворков не старше одного месяца.
                                                                                                                                          Это вы сами выдумали, я такого не говорил. Бывает, что программисту не хватает рабочих задач, чтобы попробовать свои идеи, тогда он начинает что-то писать дома. Мне кажется, это нормально. То что вы написали выглядит, будто бы вы просто сдаете свой мозг в аренду на фиксированное время за фиксированную плату, и только когда приходите домой, то начинаете заниматься тем, что вам действительно нравится в жизни.
                                                                                                                                            +8
                                                                                                                                            А у некоторых людей программирование — не единственное дело, которое им нравится в жизни. Внезапно, да?
                                                                                                                                              –2
                                                                                                                                              Ой, людям не надо себе льстить и называть программирование делом, которое нравится в жизни, если им даже нечего ответить на «Расскажи о фиче, которую ты реализовал и которой гордишься».
                                                                                                                                                0
                                                                                                                                                А. Ну конечно же, вам про них лучше знать, чем им самим. Извините, чего это я.
                                                                                                                                                  0

                                                                                                                                                  В жизни есть гораздо больше интересного чем все фичи в бОльшей части ПО которое существует на текущий момент ;), с точки зрения ПО гораздо больше эмоций вызывает неадекватное число багов (причём в том ПО которое 5-10 лет назад работало.

                                                                                                                                                    0
                                                                                                                                                    Только вот фичи в большей части имеющегося ПО едва ли соотносятся с программированием и смежными дисциплинами.
                                                                                                                                              +1
                                                                                                                                              Подписываюсь под каждым словом.
                                                                                                                                                +3

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


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


                                                                                                                                                Просто не понимаю, как таким людям удается все успевать.

                                                                                                                                                  +1
                                                                                                                                                  Ключевая фраза коммента, с которого началась эта ветка — это что вам не дадут сделать так, чтобы вам было, чем гордиться.

                                                                                                                                                  Это не так. Гитары, лобзики и прочие гантели — это не «вам не дадут».
                                                                                                                                                    +2
                                                                                                                                                    Знакомо, только у меня стадия «работа настолько достает за день, что даже уборка в доме и поход в магазин — в огромную радость». Что не мешает держать пару пет-проектов, надо же как то развиваться.
                                                                                                                                                  0
                                                                                                                                                  A что значит «рассказывать stories»?
                                                                                                                                                    0
                                                                                                                                                    Предполагаю, что — придумывать, выдумывать, врать и т.д. )
                                                                                                                                                      +1

                                                                                                                                                      ну зачем так) это же популярная тема — "to tell a story", "рассказать историю", это давно пропагандируется в статьях про собеседования, и здесь, на хабре, не раз говорилось, что это, мол, помогает производить впечатление.


                                                                                                                                                      чуть ниже BingoBongo привел хороший пример, позволю себе протицировать:


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

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


                                                                                                                                                      "Был какой-то кипиш, я прямо из аэропорта за 10 минут до показа закоммитил исправление опечатки моего коллеги в develop-ветке, из-за которой билд не собирался, он там забыл поставить точку с запятой в строке int i = j +1;"


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


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

                                                                                                                                                        0
                                                                                                                                                        Аа-а-а, ну я если кого-нибудь готовлю к собеседованиям, советую все же на содержательную часть истории обращать внимание, заодно ориентируясь на того, кто тебя интервьюирует. То есть история про кипиш, на мой взгляд, довольно слабенькая, она ни технаря не удивит, ни менеджера. Имея пару-тройку лет опыта на любой работе можно найти более интересный случай, который либо позволил писать более элегантный и быстрый код, или сэкономил бизнесу денег.
                                                                                                                                                          0
                                                                                                                                                          Это рассказать о ситуации из прошлого, например, когда от тебя ждали версию игры для показа на выставке в Германии, но внезапно обнаружилось, что билд стал крашиться без причины в случайные моменты времени. И на часах уже 22:00, выставка завтра, а ты единственный кто может что-то сделать.


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

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

                                                                                                                                                            История должна содержать изящное решение технической проблемы, а не бизнес-задачи. Если без опоры на предметную область никак не объяснить, то интервьюера такая куллстори и не заинтересует.
                                                                                                                                                        0
                                                                                                                                                        Это рассказать о ситуации из прошлого, например, когда от тебя ждали версию игры для показа на выставке в Германии, но внезапно обнаружилось, что билд стал крашиться без причины в случайные моменты времени. И на часах уже 22:00, выставка завтра, а ты единственный кто может что-то сделать.
                                                                                                                                                          +1
                                                                                                                                                          а ты единственный кто может что-то сделать.


                                                                                                                                                          Кто виноват в том, что у команды такой bus factor? Уж точно не программист.