Disclaimer: Вопрос из заголовка был задан на сайте Quora
и сопровождался ссылкой на твит разработчика Homebrew. Ответил, неожиданно, главный персонаж.

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



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

Так что там насчет логики? Ясно ведь, что я создал что-то достойное Гугла, правильно?

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

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

С другой стороны – моя программа оказалась невероятно успешной. Почему? Ну, ответ не стоит искать в царстве компьютерных наук. Я всегда фокусировался на пользовательском опыте при создании своих программ. Homebrew заботится о пользователе. Если что-то пошло не так при использовании Homebrew – он изо всех сил старается подсказать вам, почему – он ищет на Githab-е похожие проблемы и показывает их вам. Он заботится о Вас. Большинству же инструментов на Вас просто плевать. Что-то пошло не так – кирдык тебе. Homebrew помогает вам. И если он помочь не может – я постарался сделать так, чтобы исправить ситуацию было несложно (встроил команду для редактирования и исправления Homebrew). Вы можете сделать его лучше, и это — блестящий пример истинно Открытого ПО.

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

В защиту Гугла – во-первых, я не просто не смог инвертировать двоичное дерево, я вообще не очень понимал, что такое «двоичное дерево». Я изучал химию, не информатику. Конечно, во время защиты диссертации я использовал Mathematica, и я моделировал квантовомеханические свойства гелия (хорошо потрудился, кстати), но, еще раз, это было совсем не про информатику. А с другой стороны, какое, собственно говоря, отношение имеют компьютерные науки к современной разработке приложений? Вот именно это я хотел отметить в том своем твите.

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

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

Некоторые из популярных комментариев к оригинальной статье
Andrew McGregor, Site Reliability Engineer в Google (2013-и до сих пор), ~215 голосов

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



Gayle Laakmann McDowell, работала в Google, ~890 голосов

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

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

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

Да, и «быть козлом» — тоже беда, если Вы это серьезно :)


Carlos Matias La Borde, ~120 голосов

Елы палы, так это все по-настоящему!

Комментарии (262)


  1. africaunite Автор
    27.12.2017 23:24

    Если покажется интересным — дополню переводом некоторых из самых популярных комментариев к этому посту (с Quora).


    1. NikGP
      28.12.2017 09:40

      Интересно, можно обещанный перевод популярных комментариев?


      1. africaunite Автор
        29.12.2017 04:39

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


    1. YetAnotherSlava
      29.12.2017 01:11

      Пожалуйста, дополните.


      1. africaunite Автор
        29.12.2017 04:40

        Partially practically done. ;)


  1. datacompboy
    27.12.2017 23:41
    +1

    Насколько помню, интервью еще оценивает на «Googliness», см. например www.quora.com/What-is-Googliness

    Если он пишет, «я часто веду себя как козел» — так может потому и не взяли?

    Хотя надо ли нанимать звезд, даже если они те еще звездюки — насколько помню, тоже отдельная тема для холивара.


    1. africaunite Автор
      27.12.2017 23:52

      Все еще хуже, он пишет "I am often a dick", постеснялся переводить дословно ;)


      На самом деле — там есть хорошие комментарии, в том числе и от гугловцев. Смысл такой: "возможно надо было подавать на product manager-а, а не инженера программиста. Потому что SE Гуглу нужны именно с понятиями".


      1. datacompboy
        28.12.2017 00:42
        +1

        Стоп-стоп-стоп. Давайте разделять мух и котлет!

        Тема №1: должен ли программист знать алгоритмику.
        Ответ (важно: мой личный, я не могу говорить за компанию): программист — да.
        Никто не знает, чем придётся заниматься завтра, какой язык использовать и в какой код лезть. В гугле очень открытая внутренняя среда, и возможность править есть всего и вся, и зачастую, если не хочешь терять кучу времени, быстрее самому поправить, чем эскалировать в ответственную команду. Да блин, это еще и интереснее!
        Так вот, если ты без понимания базы — легко наломать дров. Ооо, до гугл ая видел какие радостные вещи народ тянет в прод, вплоть до О(n3) ибо «да оно и так быстро». Ага. Только на тесте 1000 зверьков, а в проде 1000к зверьков. Откат, по шапке, разбираться. Особенно радовало когда взрывалось на праздниках (в обычный день ветку трогали раз или два за день, никто не замечал особо).
        Если есть жесткая структура менеджер=>техлид=>тимлид=>куратор=>кодер, и ревью жесткое всеми в цепочке для каждого изменения — тогда да, можно брать на кодера кого угодно, и такие места вылавливать и использовать для обучения кодера.
        Но при широкой свободе и небольших одноранговых командах — это просто невозможно, некому отслеживать. А в масштабах гугла, использование O(n2) вместо O(n*log(n)) очень и очень быстро выливается огромные затраты. Несоизмеримо большие, нежели зарплата одного программиста.
        Я не HR и не провожу собеседования, но если мне вдруг станет не лень и начну их проводить — это точно будет поводом оценить кандидата как не дотягивающего до требуемого уровня.

        Руководитель продукта — не обязан. Если не технический, конечно.

        Тема №2: Googliness.
        См.мой предыдущий пост. В целом, ((вздох) опять же напоминаю: исключительно моё личное мнение), дестабилизирующие элементы не рекомендуются в командах. А так как одиночки не нужны большой компании (люди смерты, причем, что хуже, внезапно смертны) — все в командах. А значит, нет смысла его брать — смесь двух звездунов в одном месте — гремучая и разносит всё вокруг, а звездуна и адекватного человека — уничтожает адекватного человека и остаётся опять одиночка. Ну и кому это надо?


        1. reversecode
          28.12.2017 00:49
          +1

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


          1. datacompboy
            28.12.2017 01:04

            хм… нет, ну то что память пожирается со звуком «Хром хром хром» я не спорю, самого бесит. работы идут, с переменным успехом :D

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

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

            Потерять данные легко можно и после закрытия дескриптора, если не сделать fsync. А если делать fsync на каждый чих, то всё встанет колом. «man eat-my-data» — вещь, позволяющая чудеснейшим образом ускорять очень многие программы.
            можно подробнее — какие конкретно полезные вещи были потеряны и в каком сценарии?


            1. Psychosynthesis
              28.12.2017 04:40

              Мне вот интересно: люди, у которых падает лиса — вы что с ней делаете вообще?

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

              P.S. Win 7 x64, Firefox v.57.0.2 (64-бит), 8 Гб RAM.


              1. palexab
                28.12.2017 09:33

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


                1. questor
                  28.12.2017 09:48

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


                  1. sevikl
                    28.12.2017 10:35

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


                  1. mayorovp
                    28.12.2017 12:19

                    *«Либо если дрова активной свалятся и поднимутся снова»* — типичная ситуация при перегреве.


                  1. palexab
                    28.12.2017 12:39

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


                  1. sumanai
                    28.12.2017 16:06

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

                    У меня на ноуте HDMI работает только от дискретки, а в основном используется встроенная. Воткнул кабель- получил переключение.


                    1. sumanai
                      28.12.2017 16:14

                      Кстати, FF у меня при этом ни разу не падал.


                1. datacompboy
                  28.12.2017 12:17

                  м… а вот на такое, как воспроизводимое, надо багрепорт слать!


                  1. palexab
                    28.12.2017 12:41

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


                    1. Lelushak
                      28.12.2017 19:03

                      А вот у меня хром падает в аналогичной ситуации. Правда на стационарнике.


                      1. datacompboy
                        28.12.2017 19:35

                        Багрепорт? Железо, ос, версии дров, и др можно зафайлить?


              1. Idot
                28.12.2017 10:23

                Открыть в Лисе свыше 256 вкладок.


                PS а на скольки вкладках падает Хром?


                1. Skerrigan
                  28.12.2017 10:36

                  У меня 400-420 вкладок в ФФ на домашней машине. Если надо будет, смогу скинуть «нотариально-заверенный» скриншот.


                  1. zagayevskiy
                    28.12.2017 13:33

                    Зачем вы это помните?


                    1. Skerrigan
                      28.12.2017 13:56

                      Я это не помню — у меня счетчик висит в правом верхнем углу для этих целей.


                  1. Idot
                    28.12.2017 13:37

                    Значит у меня свыше 512 вкладок. Потому что на каком-то числе вкладок Лиса крашится, не знаю на каком :)


                    1. myrslok
                      28.12.2017 17:57
                      +1

                      Более 2,147,483,647 вкладок?


                      1. sumanai
                        28.12.2017 18:21

                        Пора исправить это безобразие и сделать переменную беззнаковой!


                  1. pavlick
                    28.12.2017 16:45

                    просто интересно, зачем может понадобиться 400 вкладок? Это примерно из той же серии, что и бардак на столе?


                    1. Skerrigan
                      28.12.2017 17:13

                      Нет, бардака нету. У меня используется продвинутый автостекинг (в духе старой оперы). К сожалению функционал временно мертвый на v. >= v.56 билду (или я уже напутал? Когда там Quantum пришел то?).
                      Как итог — переключаюсь очень быстро.

                      Зачем?
                      — «о кино» (википедия по актерам, кинопоиск, раздачи сериалов и т.д.)
                      — о БМВ (ремонт, ремонт, ремонт… ремонт и еще раз ремонт)
                      — о быте (от замены труб/унитаза до «продвинутой глажки»)
                      — о кухне (100500 блюд, обсуждения по выборам кухонной утвари)
                      - и конечно, о работе (WebSockets, Vue, Java, ORM, WebDriver, Photoshop, PHP, ....., ассинхронный код)


                      1. pavlick
                        28.12.2017 17:16

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


                        1. MacIn
                          28.12.2017 17:27

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


                          1. Skerrigan
                            28.12.2017 17:33

                            Именно, но при этом я могу себе позволить именно вариант с вкладками (железо «огонь»). А с вкладками тупо удобней.


                      1. FyvaOldj
                        28.12.2017 23:17

                        Как итог — переключаюсь очень быстро

                        Быстро?
                        Современные десктопные браузеры давно уже от мобильных заразились сбрасыванием неактивных страниц в никуда и их загрузкой заново при возврате.


                        Может кто знает как это отключить


                        1. Skerrigan
                          29.12.2017 06:15

                          На устаревшем FF (еще не Quantum) это делалось в настройках плагина. На новом FF авторы аддонов просят подождать расширения API.


                        1. sumanai
                          29.12.2017 14:46
                          -1

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

                          Ни разу не встречал на своём FF на Windows XP.


                1. dom1n1k
                  28.12.2017 12:42

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


                  1. khim
                    28.12.2017 13:00

                    Да ладно вам. Откройте 20 окон, в каждом окне 20 вкладок. Всё будет работать, если памяти достаточно.


                1. yshurik
                  28.12.2017 15:04

                  Чувааак, да этож 8-битное переполнение! :)


                1. playnet
                  28.12.2017 20:46

                  Не флейма ради, но фф3 — у меня был рекорд 700 табов. При общем лимите в 2 гига на весь фф. Счётчики табов типа too many tabs — есть и под фф (кроме 57, там вообще ад устроили, ничего нужного не осталось), и под хром. Под виндой раскачивал хром в 400 табов, при системных 8 гиг рамы + 32 гига в ready boost + на сколько-то оно выползало в своп, но при этом вкладки которые использовались активно — не тормозили вообще!
                  Да, прокрастинация, всё такое, и сейчас рабочий объём — не более 200 табов, но суть не в этом.


                  1. MacIn
                    28.12.2017 23:57

                    Одна-две вкладки с youtube на adobe flash и все, адресное пространство закончилось.


              1. arheops
                28.12.2017 11:44

                У меня падает. Похоже, на рекламе. Случайным образом до 3 раз в сутки. Последняя, да. Адблок.


                1. sumanai
                  28.12.2017 16:07

                  Адблок

                  Замените на Ublock.


                  1. arheops
                    28.12.2017 16:10

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


                    1. sumanai
                      28.12.2017 16:15

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


              1. datacompboy
                28.12.2017 12:16

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

                p.s.: кто нынче лучший адблок для фокса? (раз уж обновляю лиса, так и плагин по-лучше воткнуть...)


                1. sumanai
                  28.12.2017 16:07

                  См. мой совет выше.


                1. VioletGiraffe
                  28.12.2017 19:27

                  Ublock Origin лучше, чем Adblock. Использую в ФФ и Хроме, проблем не замечено.


              1. alterpub
                28.12.2017 17:28

                Палка в стоону Лисы, 7 открытых вкладок -7гб озу, оно вообще что с ними делает? что вообще можно делать с гигом оперативы на 1 вкладку? просто вот интересно.


                1. Psychosynthesis
                  28.12.2017 17:38
                  +1

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



                  P.S. На скрине гораздо больше активных вкладок.


                  1. playnet
                    28.12.2017 20:52

                    В диспетчере нужно включить ещё поле, что-то вроде «выделенная память», оно более честные цифры показывает. Если нужно, пруф сделаю, когда у винды буду. А в лине у меня так
                    $ top -b -n 1 -p 5820 |tail -2
                    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
                    5820 playnet 20 0 16,036g 6,530g 53820 R 39,9 42,5 3256:20 firefox


                    1. Psychosynthesis
                      28.12.2017 23:28

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



                      Это ProcMon, если что, он уж точно всё показывает.


                      1. MacIn
                        29.12.2017 00:01

                        Это в новой версии, после недавнего капитального обновления ffx'а. До того было четко 1 окно = 1 процесс, и у меня частенько съедало почти 2 гига, что приводило просто к VA space exhaust. Просто либо ютюб, либо тяжелые JS.


                        1. sumanai
                          29.12.2017 14:47

                          Это в новой версии, после недавнего капитального обновления ffx'а.

                          Многопроцессный режим работы можно было врубить достаточно давно.


                    1. MacIn
                      29.12.2017 00:00

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


              1. sergey-b
                28.12.2017 22:31

                У меня фф стабильно падает, если открыть десяток вкладок и оставить на сутки.


                1. Psychosynthesis
                  28.12.2017 23:24

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


            1. Skerrigan
              28.12.2017 05:47

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

              Я QA. Java. Пишу AST. Код сильнейшим образом завязан на стандарты работы с браузерами. Дописал асинхронную мультипоточную многопроцессную версию двигателя. Пытаюсь запустить. Хрен мне.
              Пишу багрепорты гуглу. Мне, внезапно, очень оперативно отвечают. Просят прологгировать дополнительно некоторые вещи. Потом просят мой код. Потом приходит ответ — «Chrome и его разработчики знают о том, что так должно работать по спекам W3C, но мы не умеем это делать. Сожалеем. В будущем мы конечно постараемся обеспечить поддержку».
              FF — завелось с пол-пинка.


              1. AstarothAst
                28.12.2017 10:04

                Зато они умеют разворачивать бинарные деревья. В уме.


              1. justboris
                28.12.2017 11:02

                А ссылка на баг-репорт есть?
                Очень интересно почитать ответ от Гугла «мы не умеем».


                1. Skerrigan
                  28.12.2017 11:09

                  Вот же у них баг-трекер «говно-говно». Черт ногу сломит, из каменного века.
                  Найти смог только через свою почту линк с публичной частью:
                  bugs.chromium.org/p/chromedriver/issues/detail?id=2157#c6

                  Для ленивых:

                  Thank you for providing the details and the log file.

                  From the log files I see you have used a customized JAVA API, particularly for HttpCommandExecutor. You were using W3C dialect of WebDriver protocol in your code and Chromedriver 2.33 at this moment doesn't support W3C dialect.

                  In a future releases of Chromedriver the W3C will be supported.


                  1. staticlab
                    28.12.2017 11:48
                    +1

                    Справедливости ради, этот ответ означает, что они пока что не сделали поддержку стандартного диалекта протокола, но в процессе. Это связано с тем, что реализация протоколов начинается задолго до их стандартизации. То есть сами гугловцы делали черновики протокола, реализовывали их, предлагали комитету, и так далее. Вероятно, в конечном счёте комитет утвердил какие-то особенности реализации Мозиллы, а не Гугла, и последние получились отстающими. Я считаю, что некрасиво заявлять, что они "не умеют это делать", поскольку звучит это как "они там все криворукие бездельники". Но фактически, им теперь код нужно доработать под новые требования, но по возможности не сломать существующие приложения, завязанные на гугловский диалект протокола. И такая ситуация практически по всему Web API.


                    1. Skerrigan
                      28.12.2017 13:10

                      Хорошо, аргумент принимается, судя по всему я погорячился.
                      В свою защиту могу сказать, что мой проект не основной, для фирмы — это вспомогательный софт. Однако без которого мы не можем нормально обеспечить качество уже своего ПО.
                      А теперь представьте картину: близится завершение года, была сделана так давно желанная модернизация платформы тестирования. Влита куча сил и средств. Сделано все без косяков, т.е. как того требует спецификация, и тут выясняется, что это до сих пор не поддерживается Blink/WebKit — движком! Ну а крайний конечно же я для всех вокруг. И мне же вставляют черенок в зад только за то, что кто-то хрен знает сколько времени не может сделать как нужно.
                      Ибо эта модель в том же FF поддерживается более года как.

                      Ну и да, я все же QA — увы, с чем я только не сталкивался в плане отклонения от спек в Chrome. Пока не написал им, они и тени (box-shadow) не рисовали как нужно. Баг тянулся то ли с 2012-го, то ли с 2013-го. А закрыли лишь в том году, после моего репорта.

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


                      1. zagayevskiy
                        28.12.2017 13:36

                        и тут выясняется, что это до сих пор не поддерживается Blink/WebKit
                        и тут выясняется, что вы до сих пор не поддерживаете самый распространённый движок. Fixed. ССЗБ.


                        1. Skerrigan
                          28.12.2017 14:02

                          Эм, а зачем мне поддерживать отсталые технологии?
                          Хром когда-нибудь таки сможет эволюционировать до того, что уже реализовано у меня, и, что требуется от него W3C спеками. Так что это правило не работает, когда речь идет о технологиях «завтрашнего дня»… для хрома разумеется, ибо лиса это уже умеет много месяцев как.

                          Просто смотрите, ситуация то какая?
                          Имеем рабочий свой софт, что жрет тонну ресурсов и тормозит. Сильно негативно для бизнеса. Бизнес таки за несколько лет дал разрешение «снести к херам» и «сделать быструю/эффективную реализацию». На это не каждый день дают ресурсы. Это раз в 3-5 лет такая возможность. Я и сделал максимально-производительно. И это уже не мои проблемы, что софт от мирового бренда больше года не может уметь работать с этим.

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


                          1. khim
                            28.12.2017 14:09

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

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


                          1. zagayevskiy
                            28.12.2017 15:39

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


                            1. omegik
                              28.12.2017 17:12

                              Подождите, подождите! Когда в далекие времена IE работал не так как по стандарту положено — все орали — «ату его!». Теперь, оказывается, что раз «корпорация добра» так сделала — то так и должно быть?
                              Двойные стандарты в действии


                              1. justboris
                                28.12.2017 17:46

                                Никаких двойных стандартов.
                                Орали на IE, орём на Chrome и сейчас.


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


                              1. zagayevskiy
                                28.12.2017 18:32

                                Орать, что не работает — орите. Писать софт, а потом возмущаться — ССЗБ.


                                1. Skerrigan
                                  28.12.2017 20:24

                                  Писать софт

                                  Только есть один нюанс — не соблюдение правил!
                                  Ладно бы я написал криворуко, тогда реально ССЗБ.
                                  Но! Нарушил не я — не мои проблемы.
                                  Гуглу надо, чтобы он был самым-самым? Так пусть и работает он для этого, а не я. Мне он за это не платит. И это в его интересах сохранять лидерство. Пусть тогда и софт пишет лучше. По правилам!

                                  Багрепорт я написал, информацию донес, меня услышали — долг выполнен.


                                  1. khim
                                    28.12.2017 20:45

                                    Но! Нарушил не я — не мои проблемы
                                    Серьёзно? А если завтра W3C всё переиграет и правила вдруг станут совместимы с тем, что сделал Гугл, а не с тем, что написали вы — это будут ваши проблемы? Или нет?

                                    Давайте по порядку.
                                    1. Вы совершенно сознательно под лозунгом «а зачем мне поддерживать отсталые технологии?» выбрали технологию для которой утверждённых правил игры ещё нет (последняя версия датирована, на минуточку, 21 декабря 2017 года — и это ещё не рализ).
                                    2. Зная о том, что вы используете технологию, для которой нет не только полностью совместимых реализаций, но даже утверждённой спецификации вы не проверили как и что работает в версии для самого распространённого браузера
                                    3. И после этого вы начинаете вопить о том, что кто-то кому-то чего-то должен

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


                                    1. Skerrigan
                                      29.12.2017 06:33

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

                                      Отвечая на ваш (и не только лично ваш) вопрос — да, если W3C переделает что-то капитально, тогда уже виноват буду я.

                                      Я от чего отталкиваюсь, ведь эти люди, это не рептилоиды с Марса, нет, вовсе нет. Этот консорциум состоит из представителей в том числе и Google, MS, Mozilla. Т.е. владельцы браузеров, их инженеры, там вполне «сидят и принимают решения».

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

                                      Так и тут, я понимаю, что мы не роботы. Ваше (кажется) утверждение, что приняли реализацию Mozilla, а в Google надо все теперь переделывать, мне понравилась. Т.е. такая гипотеза многое объясняет (и прощает).

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

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

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


                                      1. zagayevskiy
                                        29.12.2017 13:43
                                        +1

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


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


                                  1. zagayevskiy
                                    29.12.2017 13:39

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


                      1. khim
                        28.12.2017 14:06
                        +2

                        Пока не написал им, они и тени (box-shadow) не рисовали как нужно. Баг тянулся то ли с 2012-го, то ли с 2013-го. А закрыли лишь в том году, после моего репорта.
                        Вот за это — вам можно только спасибо сказать.

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

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


                        1. datacompboy
                          28.12.2017 14:10

                          из пары десятков багов открытых в багтрекере оперы мною, помню закрыто было то-ли 3 то-ли 4. остальные висели в низком приоритете… :D


                          1. khim
                            28.12.2017 14:18

                            остальные висели в низком приоритете…
                            Низкий приоритет — это смерть. Фактически это обозначает: «у нас этого в планах нет и никогда не будет, но если у кого-то появится энтузиазм… patches are welcome».


                            1. datacompboy
                              28.12.2017 14:28
                              +1

                              Так и было. Потом Presto пристрелили и всё, не релеватны более.


                        1. Skerrigan
                          28.12.2017 14:22
                          +1

                          Вот за это — вам можно только спасибо сказать.

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

                          Мне очень больно.

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

                          Из недавнего:
                          если совместить новую версию драйвера с патчем от Yandex, в определенном порядке, то ломаются java проекты. А если сделать сборку иначе, то не ломаются.

                          Надо бы и Яндексу «передать весточку».


                  1. noktigula
                    28.12.2017 11:53
                    +1

                    «Protocol isn't supported yet» и "Мы не умеем это делать" все же очень разные вещи


                  1. justboris
                    28.12.2017 12:03
                    +3

                    Так я и думал. "мы не умеем это делать" оказалось вашей чересчур вольной интерпретацией.


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


                    1. Skerrigan
                      28.12.2017 13:17

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

                      Пояснения тут: habrahabr.ru/post/345756/#comment_10590812


                      1. justboris
                        28.12.2017 14:34
                        +2

                        Я вижу, что имплементация Chromedriver отстает от актуального стандарта. А причем здесь разворот деревьев и компетенция программистов?


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


                        1. Skerrigan
                          28.12.2017 14:50

                          А причем здесь разворот деревьев и компетенция программистов?

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

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

                          Это мощная отмазка. Под неё можно подвести почти любые «причина-следствие». Гугл обязан. Ровно, как и все остальные, держать свой софт в актуальном состоянии.

                          И вообще, чего это сразу делать меня тираном, что требует овертайма по ночам?
                          Вы ведь не в курсе чем местный "Петя Джон Синь-Джень" занимается? Он вполне может и в «потолок плевать».
                          У них есть обязанность выпускать драйвер. Этот драйвер имеет значение планетарного масштаба. Ибо он для всего человечества предназначен. Ровно как и драйвер от мозиллы. Так что вы не правы, мы платим гуглу за этот драйвер.

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


                          1. justboris
                            28.12.2017 14:57

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


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


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


                            1. Skerrigan
                              28.12.2017 15:04

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

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


                              1. khim
                                28.12.2017 15:14

                                Ну, с другой стороны, у них прямо на главной странице написано: «We are in the process of implementing and moving to the W3C standard, you can view the current implementation status of the WebDriver standard here», так что это не что-то, что они скрывают.


                              1. datacompboy
                                28.12.2017 15:36

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


            1. DiJey
              28.12.2017 17:57

              Открой для себя Opera 49. Уже сильно не хуже 12-й тем более что допиленый до удобства Хром. Opera link forever в новой эпостаси и дргуие фичи Оперы которые не додули в других браузерах.


              1. datacompboy
                28.12.2017 19:38

                На личном ноуте О49 как основной браузер с тридцатькакой-то.
                Это всё же не Старая бобрая 11.49, но уже и на хлеб мажется, и на вкус терпимо.


          1. africaunite Автор
            28.12.2017 01:09

            Не пробовали подаваться в Гугл? С врагом эффективнее всего бороться изнутри.


          1. F0iL
            28.12.2017 15:15

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

            Это не memory leaks. Это GC handled objects (да, в C++ бывает сборка мусора) + сознательная тактика использования памяти (кэши, буферы, предзагруженный контент, и много другое). В Chromium имеется механизм отслеживания memory pressure (с уровнями типа modetate и critical) на разных платформах, и при его срабатывании происходит очистка и оптимизационные мероприятия.
            Если хотите, изучите и поиграйтесь с ключами командной строки, начинающимися на --memory-pressure, там много интересного есть.


        1. africaunite Автор
          28.12.2017 01:06

          1. Меня лично заинтересовало, что он не знал про деревья\графы и смог написать Homebrew. И очень интересует, знает ли он о них теперь (думаю да).
          2. Мой опыт — если отравитель, после двух бесед, не признает наличия яда — тянуть нельзя, приходится прощаться.


          1. datacompboy
            28.12.2017 01:16

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

            2. А если признаёт сразу, но поведение не меняется? К слову, поведение поведению рознь. Вообще, имхо, умение адаптации поведения важнее, для хорошей командной игры. Даже вечные ангелы могут задостать :D


            1. datacompboy
              28.12.2017 01:32

              К вопросу о «нехорошем поведении». Когда мне первый раз написала HR гугла, я ответил «думаю, вы сможете убить rss reader и без меня» :D


            1. africaunite Автор
              28.12.2017 01:39

              1. Я верю, что он не лукавит и технологии позволяют сваять простое, но нужное, на первых этапах карьеры. И по той же причине уверен, что теперь он знает гораздо больше и мог бы пойти в Гугл, если бы не устроился в Apple.
              2. Конечно я имел в виду признание, как процесс, а не словесный результат. Один из показателей процесса, кстати, наличие вопросов. С теми, кто не умеет задавать вопросы — тоже приходилось прощаться, увы. Успокаивает, что за 25 лет таких случаев по 2 каждого. Иначе надо было бы увольнять из наставников самого себя и насовсем, а не эти четыре конкретных раза.
              3. Но статья, кстати, кроме личного момента (мне скоро предстоит процесс устройства на работу, впервые в жизни), интересует как маркер — многие ли считают, что профессионал должен думать не только об алгоритмах, но и о пользователях


              1. datacompboy
                28.12.2017 02:11

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

                В гугле для этого есть NALSD (Non-Abstract Large Scale Design) шаг, где требуется именно спроектировать решение для задачи. Прекрасно показывает о чем и как думает человек, отталкивается ли от «что делаем» или пытается приткнуть всеми силами «как»


        1. CrazyFizik
          28.12.2017 02:15

          А в чем собственно проблема? Открыл Кормэна, открыл Сейджвика — посмотрел и сделал. А по структурам данных есть шпаргалка по большим О. Тем более:
          А) Как показывает… гхм… личный опыт: Бодрые ответы на собеседовании про алгоритмы и большие О потом никак не коррелируют с их применением. Также тащат не самые оптимальные алгоритмы
          Б) Вообще эти асимптотические оценки вычислительной сложности мягко говоря бывают писаны вилами по воде. Те же хэш-таблицы обещают операции за константное время, но как правило в Волшебной Стране Розовых Понни, в реальности же наихудший случай О(n) наступает куда чаще чем хотелось бы.
          В) Ну и да. Это все будут разговоры о заезженных алгоритмах, но мне кажется что программистов обычно набирают не для того что бы они переписывали стандартные библиотеки. Мне всегда казалось что программистам платят деньги за новые программы и алгоритмы. Ну вот в моем, например, случае итоговая сложность порядка О(n^6) это еще хорошо и большое достижение — ну вот такой вот мерзкий класс задач, так что разницу между деревьями и хэш-таблицами никто и не заметят (вообще заметят, только многомерные деревья, только хардкор).


          А так то да. Знание теории вещь конечно необходимое, но к заучиванию теорминимума это отношение не имеет


          1. datacompboy
            28.12.2017 02:21

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

            При этом даже знающие могут начать попытки интегрировать по разрывной фукнции.

            Просто где знающий _может_ налажать, незнающий _точно_ налажает.


            1. CrazyFizik
              28.12.2017 03:03
              +1

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


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


              Ну мне кажется, что разрывные функции должны как минимум быть интегрируемыми по Лебегу, даже такие, как функция Дирихле, например, а некоторые из них вполне себе будут интегрируемы по Риману на сегменте. Но вообще IRL все задачи невыпуклые, а все функции разрывные, так что в любом случае будет грустно и все будут лажать :-)


              1. datacompboy
                28.12.2017 03:21

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

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


                1. CrazyFizik
                  28.12.2017 03:42
                  +1

                  Если честно я уже чего только не видел, особенно на этих многоуровневых собеседованиях. На люки, например, натыкался несколько на точно, при этом я видел в живую треугольные люки :-) Гномы какие-то попадались, просили возвести 2 в 32 степени, мыши какие-то.
                  Или например после долгого скрининга по всяким регуляризациям в методах оптимизации или там хитрым вопросам по ML, на следующем этапе всплывали ВНЕЗАПНО например контейнеры C++ или еще какая фигня (например, потому что такое было в нескольких местах, и внезапно потому что… ну потому что внезапно).


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


                  1. datacompboy
                    28.12.2017 03:44

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


                    1. CrazyFizik
                      28.12.2017 12:29

                      Это все косяки менеджмента, причем ползучие.
                      Например давно-давно был у меня пространный случай: Меня 2 часа опрашивали по книги Рихтера, т.е.
                      1) Да реально последовательно перебирали оглавление книги. Зачем? Почему именно Рихтер?
                      2)Да. Вообще я шел не на .NET погроммиста. Шел я на того, кого обычно называют Algorithm Engineer. ИМХО тут все же должны быть акцент явно не на вопросы по конкретной технологии, конкретного языка.
                      3) Потом уже, я случайно наткнулся на собеседовавшего в LinkedIn: Забавно, но на тот момент это было первое его место работы, причем работал там он меньше года, вообще чувак оказался заметно младше, но уже Сениор, но вскоре ушел, причем он вообще за все это время нигде больше года не задерживался и везде Сениор.


                      Вообще это все странно выглядит, вот прям все: Скороспелые сениоры сразу после универа, текучка (ну вот не отпускают просто так ведущих сотрудников), странные собеседования. При этом конторы вообще-то не Рога и Копыта


                      1. datacompboy
                        28.12.2017 12:45

                        эЭЭ… как-то рано на собесы выпустили O_O
                        Тот самый случай, который я называю прощёлком ХРов


                        1. Calc
                          28.12.2017 14:06

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


            1. CrazyFizik
              28.12.2017 03:27

              Вообще на тему рекрутинга мериканцы исписали тонны макулатуры в научных журналах.


              Я даже по памяти попытаюсь вспомнить, какие методы самые надежные:
              1) Тест на IQ или GMA,
              2) Тест на лояльность (как бы грустно это не было, но это так)
              3) Выполнение практических тестовых задач
              4) Структурированное интервью
              В общем умение по памяти на литрчке записать алгоритм Дейкстры сюда не входит, хотя его и можно впихнуть в структурированное интервью, вот только корреляция эффективности работы и успешность в прохождении теста на IQ будет все равно выше, а он как известно не требует наличия специальных знаний: Кружочки, квадратики, циферки да буковки.


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


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


              1. datacompboy
                28.12.2017 03:35

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

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


                1. CrazyFizik
                  28.12.2017 04:20

                  А. Ну да. Есть такой подход. Тут только вопрос как правильно задачки формулировать.


                  Вот когда мне представлялась возможность подбирать людей — всегда ходил по пути наименьшего сопротивления — если для погромистов, то это набор задачек на обход графа, кластеризацию или даже преобразование Фурье, которые надо реализовать в задании (дистанционно) где на вход программы подается А, а на выходе получается В, а дальше как хотите — полная свобода действий. Например, достаточно стандартная задача для программиста, который учился именно на программиста: Найти кратчайший путь из точки А в точку В. Ну понятное дело обычно там идут алгоритмы Дейкстры, алгоритм Ли и А*. Но вот присылали, например, реализацию с использование Q-learning или например с возможностью использовать разные метрики: Евклидовое расстояние или манхэтенноское. Ну и да, стиль программирования и оформление кода не менее важен.
                  Для не совсем погромистов — ну там другие люди примерно по тому же принципу составляли, собственно я так сам и устраивался: Решал тестовые задачи.


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


                  1. datacompboy
                    28.12.2017 12:26

                    Я сам интроверт. Но интроверт не значит, что человек не общается вообще — он не общается экстенсивно, как экстраверт. То есть нельзя его на ХРа натравливать. Другой технарь интроверт вполне подходит.


              1. masai
                28.12.2017 13:34

                Тест на IQ или GMA,

                А что нового (по сравнению с остальными пунктами) покажет тест на IQ кроме способности решать тесты на IQ?


          1. nanshakov
            28.12.2017 21:41

            Можете рассказать, когда и на каких хеш-таблицах с каким типом адресации происходит частое О(n)?


            1. CrazyFizik
              29.12.2017 00:49

              На любых хэш-таблицах в худшем случае операция удаления, вставки и поиска занимает O(n) времени — это их фундаментальный недостаток: хэш-функция не гарантирует уникальность ключей, а идеальную хэш-функцию еще пока не придумали, так что в любом случае наступит момент коллизии, и тогда в случае открытой адресации придется тыкаться по всему списку — например, для почти полностью заполненной таблицы, каждое пробирование займет уже вроде чойт порядка 0.63*N + const. Собственно в случае заполненной таблице, например, при вставке нового элемента окажется, что вы вышли за пределы диапазона и придется все перехешировать заново, что вообще-то тоже не дешевая операция. В методе цепочек вставлять Вы конечно будете за O(1+const), вот только поиск и удаление уже потребуют перебора всех элементов цепочки

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

              Ну а собственно, «хорошие» хэш-функции, которые нас должны спасать от коллизий — тоже не бесплатные. Можно, конечно, исхитрятся, разменивая память на скорость, это вот прям целая специалаьная олимпиада: кто напишет самую быструю хэш-таблицу, но в случае если:
              1) время выполнения критично, ну т.е. даже вероятность в 0.001% что случится неприятный момент и операция займет в N раз больше времени уже не канает.
              2) порядок имеет значение
              3) природа, т.е. количество и распределения поступающих данных хз какая и иих еще надо постоянно вставлять/удалять
              то хэш-таблицы использовать неприемлемо, есть куда более замечательные деревья, которые всегда дают O(N*logN).


              1. mayorovp
                29.12.2017 11:01

                Можете привести хоть один пример наступления худшего случая?


                Кроме намеренных DoS-атак через хеш-коллизии, про них я уже слышал, как и про то как от них защищаться.


                И кроме заведомо плохих хеш-функция вида "поксорим все поля".


                1. CrazyFizik
                  29.12.2017 16:01

                  Выше целый класс задач указан где хэш-таблицы в принципе себя плохо чувствуют, могу повториться: а) Любые приложения работающие в реальном времени, б) если и количестве информации ничего не известно наперед и требуется неограниченная масштабируемость.
                  Вы же сами один из примеров и привели. А знайте как дэдосят, например, абоненты сотовой связи — уууу, это их нормальный режим работы.
                  Или например, для collision detected в физическом движке какого-нибудь несчастного платформера будут использоваться именно деревья, но можете извратиться и попробовать обойтись хэш-таблицами. В QTCustomPlot тоже используются для хранения именно красно-черные деревья (хотя для таких задач еще и порядок будет иметь значение, но не всегда), а у компонент от Dundas (эти занимаются Business Intelligence) во всю используются те же деревья и skip list. Интересно, почему?


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


                  1. mayorovp
                    29.12.2017 16:10

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

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


                    1. CrazyFizik
                      29.12.2017 16:38

                      Вообще-то нет, можно и без упорядоченного набора обойтись, просто вы наверное никогда не слышали про Spatial hashing — это кстати куда тривиальнее чем работать с деревьями.
                      Проблемы хэш-таблиц вроде бы уже передавали. Куда уж конкретнее? Хотите увидеть вживую — попадете к нам, подпишете NDA и увидите.


        1. CrazyFizik
          28.12.2017 02:19

          И да. Гугловские проекты явно не пример вылизанного и максимально оптимизированного кода. Про Хром тут уже в принципе отписались.


        1. andrsam
          28.12.2017 09:32

          1) Человек неглупый и в состоянии освоить алгоритмику в процессе производства. Почему считается зазорным доучивать?
          2) Откуда уверенность, что он с командой не сработается?


        1. OnYourLips
          28.12.2017 14:15

          если ты без понимания базы

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

          Но как бы вы посмотрели на меня, если бы на собеседовании на позицию обычного разработчика я бы стал у вас спрашивать вопросы по циклу Кребса, попросил рассказать теорему Тевенина или объяснить разницу между ReplicationController и Deployment в Kubernetes?


          1. datacompboy
            28.12.2017 15:44

            Так же нормально, как я ожидаю понимания что такое "счёт" от разработчика, который должен работать с финучетом.


            1. OnYourLips
              28.12.2017 16:45

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


        1. Ipeacocks
          28.12.2017 16:37

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

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

          Гугл, как работодатель, может нанимать кого-угодно.


          1. datacompboy
            28.12.2017 19:42

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

            Но устроить холивар же можно!


        1. FyvaOldj
          28.12.2017 23:10

          А в масштабах гугла, использование O(n2) вместо O(n*log(n)) очень и очень быстро выливается огромные затраты. Несоизмеримо большие, нежели зарплата одного программиста.

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


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


          Но именно и поэтому налететь на косяк стоимостью в годовой доход и программисту и админу очень легко. И не только в Гугле


  1. Gemorroj
    28.12.2017 00:37

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

    эх промазал, это ответ в ветку выше


    1. datacompboy
      28.12.2017 00:43

      Если у авто повело силовые балки, а этого не видно снаружи, я всё равно предпочту такое авто не брать. :)


      1. africaunite Автор
        28.12.2017 01:01

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


        1. datacompboy
          28.12.2017 01:07

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

          Можно же пройти собеседование еще раз, теперь уже успешно, в чем проблема-то :)
          Учиться всё равно надо всю жизнь, иначе загниёшь и устареешь…


          1. dinoth
            28.12.2017 01:11

            Это «мальчик шутит». На самом деле чувак крут тем, что умеет делать не просто user friendly продукты, а продукты, которые care about user. Google ничего такого давно не делает, очевидные баги не фиксятся годами, пользователь все сильнее загоняется в стойло кривоватой инфраструктуры. В таких условиях нужны не креативные программисты, а послушные кодеры. Кого гугл и набирает вполне успешно.


            1. datacompboy
              28.12.2017 01:29
              -1

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

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

              Известно же, что простые решения — очень просты, но с масштабом рост стоимости поддержки тоже большой. Вообще, стоимость от масштаба (q) — X+A*q. У простых решений X малюсенький, а A значительнный но не убойно.
              В какой-то момент проще выкинуть и написать новое, с учетом масштаба — стоимость такого решения большая, но стоимость поддержки ниже. При этом X уже большой, но A значительно (на порядки зачастую) ниже. Это становится выгодно только по достижении некой точки размера. С некоего размера приходится делать еще более сложную систему, где X еще больше, но в сумме это выгодно. Даже с учетом переделки — выгодно.

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

              Для себя я понял пользу protobuf только в гугле. До гугла примерялся много раз, и каждый раз отказывался именно из-за огромной стоимости входа. Банальный json (позже bson) обошелся дешевле, даже с учетом граблей, от которых уберёг был протобаф.

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


              1. dinoth
                28.12.2017 02:18

                Давайте не будем про big data — вот я купил новый автомобиль, с android auto.
                Мало того, что гугл насильно отобрал у меня возможность использовать удобный для меня софт, так еще и не дает разработчикам API, чтобы переписать его, если он не подходит под какие-то гугловые требования. Или он насильно заставляет меня использовать только свой обрезанный софт?

                При этом в самом гугле навигация без интернет не работает — это получается, что у меня online only автомобиль? А если я выезжаю в регионы, где очень плохо с покрытием — весь android auto превращается в тыкву?

                Скажите, что это за (*#*@?


                1. datacompboy
                  28.12.2017 02:32

                  Так, а что такое android auto? Что я вижу — интерфейс на магинтолу, так?

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

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

                  По описанию с www.android.com/auto — это просто удобный доступ к дефолтным приложениям на телеофне через магнитолу. Да, не 100% покрытие нужд всех людей, но городские мегаполисы точно покрыты. Мне было бы крайне удобно — я, несмотря на магнитолу, часто телефон держу с гуглокартами на держателе где-нибудь.

                  Со стороны мне это выглядит как MVP, причем где M это уже medium :D
                  Развивать есть куда.

                  А вот это подсказывает, что вообще API есть, и свои приложения вполне можно делать:
                  developer.android.com/training/auto/index.html

                  Какой софт вы хотите переписать?


                  1. dinoth
                    28.12.2017 02:39

                    На WinCE как раз в большинстве устройств есть выход в shell, что позволяется запустить софт. В android auto гугл впринципе оторвал возможность запуска какого-то софта, который не прошел гугловый approval. При этом большинству разработчиков было просто отказано в получении API (а по навигации — вообще всем).

                    Вот читайте по ссылке:
                    www.sygic.com/blog/2016/sygic-car-navigation-for-android-auto-and-apple-car-play

                    Google Maps — это совершенно ужасная программа для навигации, там нет базовых функций (от полноценного offline до предупреждения о скоростных ограничениях). Гугл заставил полтора года (!) меня ждать, пока, наконец, появится waze (в жуткой альфа), но это опять таки — online only программа.
                    В Москве то она не удобна, а в российской глухомани — так и вообще бесполезна.

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


                    1. datacompboy
                      28.12.2017 03:31

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

                      Ну я не патриотичен — по новосибирску и сибири я ездил на навителе и яндексе, а не гугле в любом случае :)

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

                      Но спасибо, учту. Если попадётся с AA в ближайшее время машина — даже не буду тратить время на соединение.


                    1. OnvogSGN
                      28.12.2017 13:34

                      Google Maps — это совершенно ужасная программа для навигации, там нет базовых функций (от полноценного offline
                      Это неправда
                      image


                      1. datacompboy
                        28.12.2017 14:05

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

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


                        1. dinoth
                          28.12.2017 15:52

                          Вот я еду из Москвы в Испанию. Жду предложений, как скачать Европу offline. При этом я еду не по единственному конкретному маршруту, конечно же.


                          1. datacompboy
                            28.12.2017 16:03

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

                            а на цюрих-мюнхен я накачал оффлайн карт, и всё равно заблудился :DDD выбирался по запаху и указателям.

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


                            1. dinoth
                              28.12.2017 16:12

                              Много где связь есть в виде 2G only, причем Вы говорите только про Европу, а ведь есть еще и остальной мир.
                              О чем речь, если на трассе Москва-Рига есть области вообще без покрытия.

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

                              Скажите, как после этого я должен относиться к гуглу? Или мне нужно не ездить туда, где нет онлайн?!
                              Online only car — это худший кошмар, какой я мог только представить.


                              1. datacompboy
                                28.12.2017 20:02

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

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

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

                                Так и тут. 3G появится, и оффлайн навигация появится нормальная. Гугл не «решил сделать онлайн-онли», гугл _пока_ реализовал только «онлайн-онли».


                                1. khim
                                  28.12.2017 20:15

                                  Когда элп выпускала телефон даже без 3G — что-то адроидофоновладельцы над ними смеялись
                                  Андроидовладельцы над ними не смеялись ибо их тогда не было ещё. Смеялись владельцы телефонов на Symbian'е, Windows Mobile и прочих всяких Blackberry.

                                  Ну и где они теперь?


                                  1. MacIn
                                    29.12.2017 00:04

                                    Андроидовладельцы над ними не смеялись ибо их тогда не было ещё. Смеялись владельцы телефонов на Symbian'е, Windows Mobile и прочих всяких Blackberry.

                                    Ну и где они теперь?

                                    В небытии, куда их запихнул-таки андроид, а не яблоко.


                                1. dinoth
                                  28.12.2017 20:15

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

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


                              1. datacompboy
                                28.12.2017 20:03

                                К слову, удивлён, что пока никто не выпустил в качестве медиакнопки или чего-нибудь такого (доступного для android car) — ремотдесктопа до произвольного приложения на телефоне. Как раз покрыло бы потребность «запустить что угодно на телефоне и управлять с экрана авто»…


                                1. dinoth
                                  28.12.2017 20:12

                                  Ничего такого для android auto нет, потому что нет API. Разрешено выпускать только проигрыватели музыки и messaging apps.
                                  Причем google даже не обещает, что это появится.


                                  1. datacompboy
                                    28.12.2017 20:16

                                    Прекрасно! чем не messaging app? :D


                                    1. dinoth
                                      28.12.2017 20:18

                                      Тем, что гугл так не считает. Эскалируете? :)


                                      1. datacompboy
                                        28.12.2017 20:23

                                        В обязательном порядке.


                                  1. khim
                                    28.12.2017 20:16

                                    Причем google даже не обещает, что это появится.
                                    Гугл вообще в принципе мало когда мало что обещает. Ибо планы могут поменяться, а обещания потом будут припоминать годами.

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


                                    1. dinoth
                                      28.12.2017 20:20

                                      Waze обещал, давно и регулярно. Результат ужасен.


                                      1. khim
                                        28.12.2017 20:30

                                        В каком месте? Мне кажется, что тут та же самая ситуация, что и с выходом первого iPhone, который резко и категорически отказался от WAP.

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

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

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

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

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


                                        1. dinoth
                                          28.12.2017 23:00

                                          Не совсем понятно, какова связь между WAP и google lock?
                                          Google lock — то когда ты завязан на одного вендора. А wap/html — это не vendor lock никоим образов.

                                          Собственно я никогда и не страдал особо по WAP сайтам, хотя в интернет с телефона хожу с 2003 года.

                                          Гугл просто нужно нагибать по антимонопольной статье через ЕС и все будет хорошо. Процесс уже пошел.


                          1. OnvogSGN
                            28.12.2017 16:30
                            +1

                            А чё не из Лиссабона в Гуанчжоу, чтобы уж наверняка пример сработал?
                            Вы в один присест собрались за 36 часов 3600 километров проехать? И по пути ни одного вай-фая? И туристической симки нет? И заранее маршрут не прокладывали? В общем, надуманная проблема.


                            1. dinoth
                              28.12.2017 16:36

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

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

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

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


                              1. OnvogSGN
                                28.12.2017 16:59

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


                                1. dinoth
                                  28.12.2017 17:06

                                  Т.е. я обязан все делать сам, а если мне помогает программа — то это все, катастрофа?
                                  Если я упустил внезапно появившийся за деревьями знак (кто ездил по России — то знает) — и все, получай штраф?

                                  Самое главное — без гугла все работает именно так. Гугл считает, что мне это не нужно. Вот такие гении там работают.


                              1. sumanai
                                28.12.2017 17:04

                                До появления android auto — я просто заливал в китайский навигатор

                                А после появления android auto все навигаторы превратились в тыкву?


                                1. dinoth
                                  28.12.2017 17:08

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


                                  1. sumanai
                                    28.12.2017 17:24

                                    Ещё раз- что вам мешает использовать китайское устройство и просто не включать эту функцию головного устройства?


                                    1. dinoth
                                      28.12.2017 17:28

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


                                      1. khim
                                        28.12.2017 18:06

                                        А раньше, без Гугла — всё было интегрировано, да?

                                        Вы уж врите, но не завирайтесь. Ни на одной машине, нигде и никогда я не видел встроенных навигаторов, позволявших в них что-то, что производитель не предусмотрел, заливать. Хоть 20 лет назад, хоть 10, хоть сейчас.

                                        То, что производители автомобилей решили подписать договор и выпустить «новое поколение» не на основе TomTom'а, а на основе Google Maps — может быть и их ошибка, но Гугл тут причём? Это был выбор производителей авто.


                                        1. dinoth
                                          28.12.2017 18:14

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

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


                                      1. sumanai
                                        28.12.2017 18:23

                                        А отдельное устройство — это колхоз и неудобство.

                                        Но ведь это встроенное неудобно. Или всё же удобно, раз вы терпите эти огрехи?


                                        1. dinoth
                                          28.12.2017 18:25

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


                                  1. Chamie
                                    28.12.2017 18:40

                                    Просто поищите машину с поддержкой MirrorLink.


                                    1. dinoth
                                      28.12.2017 18:56

                                      да, ее и собираюсь покупать.


                                      1. sumanai
                                        28.12.2017 19:13

                                        А как же мешающий гугл?


                                        1. dinoth
                                          28.12.2017 19:19

                                          Mirrorlink позволяет запускать практически любой софт, а не тот, что разрешил гугл.


                                          1. sumanai
                                            28.12.2017 19:30

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


                                            1. dinoth
                                              28.12.2017 19:50

                                              Мешал гугл, ограничивая мой выбор. Чтобы отказаться от гугла — мне требовался mirrorlink, чтобы я мог использовать что-то кроме стандартного гуглового софта.
                                              Раньше я никогда не думал, что буду выбирать автомобиль по главному критерию — отсутствию google lock.
                                              Теперь знаю, что это именно то, что мне нужно.


                                              1. sumanai
                                                28.12.2017 22:11

                                                Мешал гугл, ограничивая мой выбор.

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

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


                                                1. dinoth
                                                  28.12.2017 22:57

                                                  Что значит — заставлял? Я купил машину в топовой, на тот момент, комплектации — с android auto. Мне лично было не понятно до конца — будет ли google lock или нет. Оказалось — будет по полной программе.

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

                                                  Причем тут Вы — мне вообще не понятно.


                                                  1. sumanai
                                                    29.12.2017 14:50

                                                    Мне лично было не понятно до конца — будет ли google lock или нет.

                                                    Погуглить, поспрашивать?
                                                    Я тут притом, что я гуглю и спрашиваю, а не жалуюсь на неподходящие мне вещи.


                                                    1. dinoth
                                                      29.12.2017 15:17

                                                      В 2016 году google не говорил, что будет google lock.
                                                      Спрашивать было не у кого — по понятным причинам.
                                                      Разумеется, с послезнанием легко изображать из себя умного.


                        1. OnvogSGN
                          28.12.2017 16:35

                          Голосовой поиск вроде не работает при этом
                          А у гугла хоть что-то голосовое в офлайне работает? Я не знаю, не пользовался.
                          А навигацией с Google Maps и My Maps пользуюсь лет 5 уже по всему миру. Даже когда офлайна там ещё не было — прокладываешь маршрут, а потом интернет уже не нужен.


                          1. dinoth
                            28.12.2017 16:46

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


                            1. OnvogSGN
                              28.12.2017 16:50

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


                              1. dinoth
                                28.12.2017 17:04

                                Да, гугл заставляет меня пользоваться в android auto только одной программой (в перспективе двумя — еще waze, она тоже online only).
                                Поняли?


                                1. khim
                                  28.12.2017 18:13

                                  Поняли?
                                  Нет, не поняли. Вы так говорите, как будто вы можете взять какой-нибудь BMW 2010го года выпуска или Тойоту 2012го, залить в их встроенный навигатор свою прошивку (ничего не взламывая и не перепаивая) и спокойно ездить. А Гугл вас этой возможности лишил.

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

                                  Не подскажите пяток моделей с подобной возможностью?


                                  1. dinoth
                                    28.12.2017 18:48

                                    Первый попавшийся список:

                                    image


                                  1. dinoth
                                    28.12.2017 18:57

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


                          1. sumanai
                            28.12.2017 17:04

                            А у гугла хоть что-то голосовое в офлайне работает?

                            Набор текста, по крайней мере на 4.1 после плясок с бубном.


                      1. dinoth
                        28.12.2017 15:50

                        Нельзя нужную область скачать для оффлайн — Вы сами пробовали это для более-менее крупных областей? Например я хочу скачать оффлайн карту всей Грузии. Попробуйте? :)))


                        1. OnvogSGN
                          28.12.2017 16:46

                          Нельзя нужную область скачать для оффлайн
                          Кому нужную? Мне? Можно, постоянно так делаю.
                          Вы сами пробовали это для более-менее крупных областей?
                          Сто раз. Регионы, типа Каталонии туда целиком влазят со всеми городами и городишками. Можно и всю страну скачать в несколько приёмов.
                          Например я хочу скачать оффлайн карту всей Грузии. Попробуйте? :)))
                          90% Грузии влазит в одну область для скачивания. Так что ВСЯ Грузия влезет в две области. Месяц назад я так и скачал её (опять же — на всякий случай, у меня давно международная симка с местными тарифами в каждой стране). Накачать можно сколько угодно областей. Вы ведь не пытались разобраться с приложение дольше пары минут, год назад да?
                          Опять же — вы такой продвинутый, постоянно по европам ездите, а интернет вам там в поездках не нужен ни для чего, получается?


                          1. dinoth
                            28.12.2017 17:03

                            Разве для того, чтобы ездить в Европу — нужно быть продвинутым? Мне казалось, что с этим справится кто угодно. А интернет — нет, не нужен. Потупить в интернете я могу и в гостинице, с wifi — в дороге я прекрасно обхожусь без него, тем более, что во многих странах интернет в большей части страны — это 2G.

                            По поводу offline: в полученной карте не будет POI, она будет ограничена сроком жизни в месяц, размер storage для карт имеет ограничение — поэтому при увеличении zoom теряются локальные детали, например — имена улиц.
                            Это какой-то ад, который решается одним простым движением — выкидывается google maps и все становится снова хорошо и удобно.


  1. reversecode
    28.12.2017 00:43

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


    1. datacompboy
      28.12.2017 00:45
      +1

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


      1. reversecode
        28.12.2017 00:51

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


        1. datacompboy
          28.12.2017 00:54

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


          1. dinoth
            28.12.2017 00:57

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


            1. datacompboy
              28.12.2017 01:09

              А можно развернуть мысль?

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


              1. dinoth
                28.12.2017 01:13

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


                1. datacompboy
                  28.12.2017 01:18

                  Ээээ… Жесть. Это, а эскалация на уровень выше команды не работала?
                  Вообще менеджмент же есть как раз за этим, если не справляются — перераспределить усилия, заменить людей, раздать люлей…


                  1. dinoth
                    28.12.2017 01:28

                    Менеджмент и врал :)
                    Еще помню, прошло где-то полтора года, пока сотрудники гугла в штатах не выучили географию Россию и перестали слать нам письма, предназначенные для совсем другой компании в Питере…

                    С проекта я сбежал, потому что так нельзя…


                    1. datacompboy
                      28.12.2017 01:29

                      У менеджмента есть же свой менеджмент. Он тоже врал?


                      1. berezuev
                        28.12.2017 01:52

                        We need to go deeper!


                        1. datacompboy
                          28.12.2017 02:17

                          Я доходил в эскалации в догугловые годы до ген.директоров, когда считал что творится (бес)форменный трындец.

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

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


                      1. dinoth
                        28.12.2017 02:00

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


                        1. datacompboy
                          28.12.2017 02:14

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


                          1. dinoth
                            28.12.2017 02:20

                            Проект жив до сих пор, так что у меня свои NDA.


                  1. rkosolapov
                    28.12.2017 13:30

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


  1. lxsmkv
    28.12.2017 01:50

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

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

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


    1. kwardakov
      28.12.2017 07:33

      Это не какая-то программа, а программа, которую используют миллионы. Так что это очень хорошая программа.

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

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


  1. HSerg
    28.12.2017 02:47

    Когда приходилось помогать пользователям macOS с homebrew — это казалось лишь забавной песочницей любителей. А сейчас уже и на prod-серверах стартапов почти всегда есть linuxbrew от DevOoops с MacBook. И сейчас проблемы неработающих и неподдерживаемых скриптов с кривыми зависимостями homebrew уже не кажутся мне такими забавными. Всё-таки популярность ? качеству.

    P.S. Почему-то напомнило интервью с Ryan Dahl (создатель Node.js).



  1. sotnikdv
    28.12.2017 05:33

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

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

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


    1. datacompboy
      28.12.2017 15:40

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


      1. sotnikdv
        29.12.2017 07:47

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

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


  1. smer44
    28.12.2017 09:28

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


    1. datacompboy
      28.12.2017 15:48

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


    1. MacIn
      28.12.2017 17:26

      Никто не запрещает уточнить, переспросить, сослаться на другую терминологию.


  1. ilitnyexpert
    28.12.2017 09:29
    -1

    Вы когда-нибудь работали с андроидом? Писали под него приложения/игры? Видели его API или код?

    Это worst OS ever. Впечатление что код писали первокурсники набранные по ЛГБТ-квотам. Заметьте, я говорю «писали код», а не «проектировали», потому что проектированием там не пахнет. Любой человек с опытом написания больших проектов, напишет лучше, рили.

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

    Глобальные косяки в проектировании, тащатся с первых версий и не исправляются в принципе. Конечно, лучше новую кривую апишку добавить. Эти ребята даже язык не смогли выбрать для проекта, пока андроид написан на джаве, он так и будет тормозить. И не надо мне говорить «джава не тормозит» или «новые андроиды не тормозят», на практике это не так. Когда на 8 ядрах и нескольких гигах RAM звонилка открывается 0.5 сек, это не «не тормозит», а беспредел, на таком железе иначе как мгновенно быть не должно.

    Идем дальше, вещи типа GooglePlayServices написаны запредельно говняно. То что в ios делается в 2 строки, тут делается в файл полный костылей и асинхроннного глючного говна.

    NDK это просто высер и одновременно плевок в лицо разработчикам под платформу. Из всего апи корректно работает 20%, остальное в той или иной мере не работает или просто недоделано. Есть баги которые не фиксятся с первых версий. Не буду говорить о том, что значительная часть рабочих фичей по части поддержки C++ сделана вообше сторонним разработчиком(спасибо ему за это). И опять же не надо говорить что они думали что «все приложения\игры будут написана на джаве и нативный код ненужон». Сам факт того что они так мыслят, говорит об отсутствии квалификации.

    Далее, тулсет. Android Studio — глючное, тормозное ужасное говно. Gradle — вообще ночной кошмар. Такой же тормозной как и студия. За время за которое ant собирал проект, gradle даже запуститься не успевает(Знаете как они пытаются это пофиксить? Запускают демон чтобы не запускатать каждый gradle раз. Overmind). Ужасный, нелогичный, инопланентый синтаксис. Оказывается раньше это был более-менее нормальный язык groovy(Если конечно считать нормальным делать тормозной скриптовый язык на и без того тормозной джаве), но потом туда добавили сахарку и писать на нем даже с документацией проблематично. Haskell понятнее.
    Мусор, в каждый проект gradle добавляет кучу мусорных файлов, просто уйму. Про частые обновления которые ломают сборку я промолчу. В свое время я не знал про offline режим, и как-то открыв проект через месяц обнаружил его несобирающимся, хотя ничего не менял. Это беспредел.

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

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

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


    1. TheDeadOne
      28.12.2017 10:40
      +1

      А вы с какими мобильными операционками сравниваете? А то Android прекрасен во всех отношениях после Symbian.


      1. ssl
        28.12.2017 11:54

        Я бы не согласился, сам Symbian был не плох, но вот гуевые надстройки под него от Nokia — S60 и подобные, это был АД. Были также и достаточно неплохие GUI надстройки по типу UIQ под которые было приятно разрабатывать, но после того как Symbian был куплен Nokia, они не выжили…


        1. datacompboy
          28.12.2017 15:39

          Как и сама нокия…


          1. dinoth
            28.12.2017 16:27

            Нокия как раз вполне жива.


            1. AntonAlekseevich
              28.12.2017 16:30

              Только в лице HMD Global. Вроде бы.


              1. khim
                28.12.2017 16:37

                Там всё сложно. Нокиа жива — но телефонов больше не выпускает. Выпускает всякие базовые станции. А вот торговая марка на рынке сотовых телефонов — да, у HMD.

                Подразделения же, которое занималось телефонами в Nokia и всё разработки — канули в лету. Всё. С концами.

                Можно ли при этом говорить «Нокия жива»? Я не знаю, если честно…


                1. dinoth
                  28.12.2017 16:49

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


                  1. khim
                    28.12.2017 18:32

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

                    А то, что загнулся один из побочных для нее бизнесов — ну так бывает, ничего страшного.
                    Не было у неё никогда «побочного бизнеса» никакого. И сама Nokia Networks не была подразделением Nokia до 2013 года.

                    Вот когда материнская компания, для которой телефоны, всё-таки, были основным видом деятельности, «просрала все полимеры» — она выкупила у Сименса свою долю и для неё прозводство телефонов до того приносившее прибыли и близко не сравнимые с с тем, что получала Nokia Networks (за первое десятилейтие у подразделения Mobile Solutions, которое занималось смртфонами, не было ни одного убыточного квартала) стало «побочным».

                    Хотя тут, конечно, вопрос, когда оно стало «побочным» бизесом… видимо в феврале 2011го. По крайней мере до 2011го у мобильного подразделения Nokia не было ни одного убыточного квартала, а после — не было уже ни одного прибыльного.


                    1. dinoth
                      28.12.2017 18:42

                      Телефоны никогда не были для Nokia основным видом деятельности — телекоммуникационное оборудование они начали активно производить еще в начале 70х (DX200 покупали даже в СССР), а первый мобильный телефон nokia — была создан не в самой компании, а в совместном предприятии Nokia и Salora в начале 80х, в основную Nokia они влились только в 1984 году.
                      Под своим брендом Nokia выпустила телефон только в 1989 году.


                      1. khim
                        28.12.2017 19:06

                        Тем не менее в 2006м они выделили производство телекоммуникационного оборудевания в отдельное, совместное с Siemens, подразделение, а производство телефонов — осталось в головной компании.

                        Так что по меньшей мере в 2006 именно производство телефонов считалось основной деятельностью компании.

                        В 2013м, видя, что «телефоны — фьсьо» — они переиграли обратно.

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


                        1. dinoth
                          28.12.2017 20:00

                          Выделили они низкомаржинальный бизнес, чтобы сфокусироваться на высокомаржинальном. Как только он сдулся — вернулись к основному низкомаржинальному. Все очень банально…

                          Сейчас Nokia Network обслуживает сети по всей России (например: www.cnews.ru/news/line/2017-03-07_nokia_i_vympelkom_podpisali_5letnij_kontrakt), и избавившись от телефонов живет вполне уверенно, прикупив заодно Alcatel-Lucent.


                      1. MacIn
                        29.12.2017 00:05

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


                1. AntonAlekseevich
                  28.12.2017 19:28

                  Я как раз про мобильное подразделение и говорю.


                  1. khim
                    28.12.2017 20:06

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


      1. ilitnyexpert
        28.12.2017 19:01

        Сравниваю не только с мобильными, а вообще. Даже WinAPI лучше спроектирован.
        Из мобилок сравниваю с iOS, после Android ощущение что ее проектировали инженеры с 20 летним опытом(Я думаю это и не далеко от истины), а не макаки-первокурсники.


    1. AlexEx70
      28.12.2017 11:15
      -1

      Впечатление что код писали первокурсники набранные по ЛГБТ-квотам

      Оч смешно, забрал себе в копилку


    1. Error1024
      28.12.2017 17:35

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


    1. JEuler
      28.12.2017 18:19

      Android Studio глючное говно? Крайне сомнительно. Что именно глючит? Прекрасная IDE, все что нужно для Android разработки есть. Не знаю как работает с NDK, правда.


      1. Skerrigan
        28.12.2017 20:29

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


    1. punksta
      28.12.2017 20:06

      Справедливости ради. в ios тоже не все гладко. Я не писал код под ios, про api ничего сказать не могу. сталкиваюсь со сборкой ios проектов. Так вот это боль.
      немного в защиту андроид…

      1. вы синтасис objective-c видели, это груви то инопланитянский?
      2. Градл достаточно гибкий. Можно во время сборки запрашивать пароль от ключа подписи из консоли или даже окошка с полем ввода. Вообще вы почти не ограничены. У вас полноценный скрипатовый язык и любыми либами на jvm

      об xcode
      1. В ios все делается через xcode. Формат описания проекта почти машинный. Огромный xml файлы, которые xcode генерит. На билдсервере все нужно делать через ui или юзать сторонние скрипты тулзы на ruby. В андроид можно просто из консоли поправить читаемый gradle конфиг.
      2. ios sdk монолитный. Нельзя скачать отдельные части
      3. xcode нельзя поставить из консоли
      4. нужно поплясать с бубном, чтобы иметь 2 версии xcode
      5. Проблемы с подписями. Можно юзать фастлайн, но не спасает от обновлений икскода. В андроид просто нет таких проблем, указываешь путь к ключу, пароль и всё!.
      6. Фактически нет системы зависимостей. Можно руками подключать либы из ui xcode. или юзать cocoapods, который автоматизирует редактирование проектных файлов. но и это боль. В андроид достаточно кинуть jar-ник(в 2017 никто так не делает) или указать зависимость и она удовлетворится. Опять же можно динамически создавать список зависимостей.


      1. khim
        28.12.2017 20:09

        Фактически нет системы зависимостей.
        Вот как раз для решения этой проблемы Макс Хауэлл и был нанят. И там он — к месту.

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


  1. vba
    28.12.2017 12:08

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

    Нет нет и нет, ну где же ты khim, нервно брызгающий слюной на трибуну, по которой ты еще секунду назад бил тапкой, приговаривая — "Не место тебе супостат окаянный среди людей иди формулки в excel пиши или шкурки для wordpress ковыряй" ?!


    7 собеседований, не хило так то, если не турнули с первого то это уже не плохо.
    Зная немного об отборе в Гугл, меня удивляет что его спросили только о простой инвертации деревьев. Я бы ожидал что то вроде математического доказательства что инвертирование не оказывает влияния на свойства бинарного дерева как ацикличного орграфа. И сладеньким в виде реализации на доске поиска в Scapegoat tree. А то ведь без этого никак, работая в команде поддержки AngularJs.


    1. khim
      28.12.2017 13:57
      +1

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

      Какие факты я имею в виду?

      1. Андроид не был разработан инженерами Гугла (статья в Wikipedia чуть ли не начинается с фразы Изначально разрабатывалась компанией Android, Inc., которую затем купила Google)
      2. Андроид был создан человеком в чём-то черезвычайно похожим на Макса Хауэлла
      3. Очень долгое время Андроид был «государством в государстве» — исходя из декларируемого Максом Хауэллом принципа.
      4. Анди ушёл и Макса не взяли примерно после того, как руководству Гугла всё это надоело и они сказали «больше Андроид не будет „государством в государстве“ и к нему и к его разработчикам будут предъявляться такие же требования, как и ко всем остальным» — после чего косяки потихоньку начали исправлять.

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

      P.S. В конечном итоге Макса взяли на должность где его знания и опыт по созданию клевых вещей, может не идеальных, но людям они по-настоящему нравящихся несомненно пригодится — Swift таки получит пакетный менеджер — и избежал попадания в компанию, где его будут «бить по рукам» (очень многие вещи, которые в своё время делала Android team сейчас бы никто не разрешил делать).

      P.P.S. Я, кстати, не говорю о том, что Анди или Макс — плохие, нехорошие люди. Вовсе нет! Но умение создавать «вещи, которые людям нравятся» и умение «делать всё так, как надо» — это сильно разные вещи! Если вы умеете первое — то не факт, что вам стоит устраиваться на позицию, где нужно второе… а на практике так уж получается, что эти два навыка очень часто входят в конфликт. Иначе бы только таких людей бы все и набирали…


      1. vba
        28.12.2017 14:17
        -1

        Вы наверное приболели, ибо тон у вас сменился кардинально с:


        Ну как бы это. Это типичный случай ситуации «кто на что учился».
        Вы можете заниматься высокоинтеллектуальной деятельностью типа натягивания шаблонов на CMS типа Drupal'а. Или создания формочек в 1С или Excel'е. Тогда вам этот «армейский тупняк» действительно не нужен.

        на


        Я, кстати, не говорю о том, что Анди или Макс — плохие, нехорошие люди. Вовсе нет! Но умение создавать «вещи, которые людям нравятся» и умение «делать всё так, как надо» — это сильно разные вещи! Если вы умеете первое — то не факт, что вам стоит устраиваться на позицию, где нужно второе… а на практике так уж получается, что эти два навыка очень часто входят в конфликт.

        Заметьте, это просто заметка.


        1. khim
          28.12.2017 14:36
          +2

          Вы про это? Так каков вопрос — таков ответ.

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

          Он, в некотором роде, прав — но это не значит, что его нужно брать на работу программистом.

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



  1. lyadnov
    28.12.2017 13:33

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


    1. khim
      28.12.2017 14:01
      +2

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


      1. datacompboy
        28.12.2017 14:07

        Везде и всюду работают. Но просто связывальщиков крупные компании не любят. По крайней мере несколько лет назад про яндекс так же рассказывали. И так же поливали «я гений, зачем мне знать что-то кроме где прочитать API библиотек»…


        1. khim
          28.12.2017 14:16
          +1

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

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


          1. datacompboy
            28.12.2017 14:29

            Ну человек из топика явно не на них метил, верно?


    1. devalone
      28.12.2017 16:50

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


    1. smer44
      28.12.2017 17:58

      должен)) на досуге почитай какое нибудь популярное API, и чем оно популярнее тем больше там такого кошмара как будто специально писали чтоб потроллить


    1. MacIn
      29.12.2017 00:10

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


  1. Gummeah
    28.12.2017 13:34

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


    1. datacompboy
      28.12.2017 15:37

      +100500


    1. MacIn
      29.12.2017 00:13

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


  1. devalone
    28.12.2017 15:25

    Но, в конце концов, должен ли был Гугл нанять меня? Да, конечно да

    Почему он считает, что гугл что-то кому-то должен?


    1. datacompboy
      28.12.2017 15:37

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


    1. KIVan
      28.12.2017 17:37

      В оригинале "But ultimately, should Google have hired me?" Это имеет конотацию "Стоило ли Гуглу нанять меня?"


      1. africaunite Автор
        28.12.2017 17:50

        Да, мой косяк. Спасибо, исправлю.


  1. EGlaz
    28.12.2017 17:26

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


    1. africaunite Автор
      28.12.2017 17:52

      если самогон как Самогон — то и его тоже, видимо


  1. splatt
    28.12.2017 22:34

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


  1. maydjin
    28.12.2017 23:56
    -1

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


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


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


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


  1. farwayer
    29.12.2017 09:34
    +1

    Когда я работаю с некоторыми API от гугла, я хочу, чтобы компания вместо спецов по красно-черным деревьям начала нанимать таких ребят, как Макс Хауэлл. Потому что API эти написаны для инопланетян. И документация разбросана по 10 разным страницам. Про некоторые вещи вообще приходится догадываться (вживаясь в роль чувака с Альфа Центавры, ага).


    1. maydjin
      29.12.2017 12:06
      +1

      А может вам надо просто немного почитать про те деревья?


      Я, если честно из гугловского api видел только gtest/gmock и gperftools, и они вполне себе не плохи, читабельны(сорцы), портабельны, (портировал gtest на os/400 поправив 4 строчки кода) и шустры.


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