Pull to refresh

Comments 291

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

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

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

Дык, было же (done), вроде, под фразой "Некоторые из популярных комментариев к оригинальной статье".
Или у оригинала новые интересные комментарии появились? :)

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

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

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

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

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


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

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

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

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

Тема №2: Googliness.
См.мой предыдущий пост. В целом, ((вздох) опять же напоминаю: исключительно моё личное мнение), дестабилизирующие элементы не рекомендуются в командах. А так как одиночки не нужны большой компании (люди смерты, причем, что хуже, внезапно смертны) — все в командах. А значит, нет смысла его брать — смесь двух звездунов в одном месте — гремучая и разносит всё вокруг, а звездуна и адекватного человека — уничтожает адекватного человека и остаётся опять одиночка. Ну и кому это надо?
UFO just landed and posted this here
хм… нет, ну то что память пожирается со звуком «Хром хром хром» я не спорю, самого бесит. работы идут, с переменным успехом :D

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

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

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

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

P.S. Win 7 x64, Firefox v.57.0.2 (64-бит), 8 Гб RAM.
Ой, это очень просто. Достаточно на ноуте с 2 видеокартами принудительно переключиться с одной на другую. Либо если дрова активной свалятся и поднимутся снова (простите за непрофессиональную терминологию). При этом экран мигнул, все приложения работают, кроме тех что от Мозиллы — они все радостно крэшатся.

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

UFO just landed and posted this here
*«Либо если дрова активной свалятся и поднимутся снова»* — типичная ситуация при перегреве.
Включение режима энергосбережения к такому приводит, например.
UFO just landed and posted this here
UFO just landed and posted this here
м… а вот на такое, как воспроизводимое, надо багрепорт слать!
Стандартные логи при падении слал, но либо это действительно единичные случаи, либо не хватает информации чтобы понять в чем дело. Уже много лет наступаю на эту фишку на совершенно разных ноутах. Одна из причин того, почему пересел на хром.

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

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

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


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

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

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

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

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

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

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


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

На устаревшем FF (еще не Quantum) это делалось в настройках плагина. На новом FF авторы аддонов просят подождать расширения API.
UFO just landed and posted this here
У меня больше вкладок.
А Хром просто не дает открывать столько из-за багофичи UI — у него нет прокрутки табов, так что больше нескольких десятков их не открыть.
Да ладно вам. Откройте 20 окон, в каждом окне 20 вкладок. Всё будет работать, если памяти достаточно.
UFO just landed and posted this here
Это супер-пупер гугло-кодеры из гугла, которые хорошо разбираются в деревьях или в них блудят :)
Не флейма ради, но фф3 — у меня был рекорд 700 табов. При общем лимите в 2 гига на весь фф. Счётчики табов типа too many tabs — есть и под фф (кроме 57, там вообще ад устроили, ничего нужного не осталось), и под хром. Под виндой раскачивал хром в 400 табов, при системных 8 гиг рамы + 32 гига в ready boost + на сколько-то оно выползало в своп, но при этом вкладки которые использовались активно — не тормозили вообще!
Да, прокрастинация, всё такое, и сейчас рабочий объём — не более 200 табов, но суть не в этом.
Одна-две вкладки с youtube на adobe flash и все, адресное пространство закончилось.
Именно флэш там запускался в отдельном процессе. Так что мимо. Вот какой-нибудь кривой современный сайт типа юлмарта и прочих тяжеловесов положили бы тот фф в 5 табов, если бы оно вообще сумело отобразиться.
Нет, процессов — по количеству окон было. И ютюб быстро добивал до 2+ Гб.
Я про ФФ, и у первых версий — на все окна и табы был ровно 1 процесс. Плюс один процесс для флэша. хтмл5 тогда еще не было. И на весь этот процесс было всего 2 гига.
Процесс с флэшем может и падал…
Впрочем, фф 56.0 32 бита, 2 окна, 10 табов, ровно 1 процесс.
И я про него. До последнего обновления, когда все стало разбиваться на множество средне загруженных процессов (т.е. я о версии, актуальной месяц-два назад) было 1 окно=1 процесс.
ну выше же отписался, что это не так. И на другой машине глянул — 6 окон, 60 табов, 1 процесс. ОДИН.
UFO just landed and posted this here
У меня падает. Похоже, на рекламе. Случайным образом до 3 раз в сутки. Последняя, да. Адблок.
UFO just landed and posted this here
Тоесть я вас правильно понял, вы рекомендуете заменить один js на другой чтоб не падал броузер? А не перебор ли это, падать от js скрипта?
UFO just landed and posted this here
чаще всего у меня наворачивается на всяких загаженных рекламой сайтах.
хто его знает отчего, но вот так вот. адблок по-моему только усугубляет.

p.s.: кто нынче лучший адблок для фокса? (раз уж обновляю лиса, так и плагин по-лучше воткнуть...)
UFO just landed and posted this here
Ublock Origin лучше, чем Adblock. Использую в ФФ и Хроме, проблем не замечено.
у adblock вменяемый интерфейс, а куда тыкаться в ublock — без поллитры не разберешься
UFO just landed and posted this here
Ну не знаю. Что там, что там без проблем нашёл настройки и потыкал галочки против нужных фильтров.
Например, как там сделать исключение для конкретного сайта, я не знаю до сих пор (например, чтобы виджет жж грузился на сайте собственно жж, но блочился на всех остальных). Как читать табличку с плюсиками-минусиками — тоже не понимаю до сих пор.
UFO just landed and posted this here
Палка в стоону Лисы, 7 открытых вкладок -7гб озу, оно вообще что с ними делает? что вообще можно делать с гигом оперативы на 1 вкладку? просто вот интересно.
Это вам надо куда-то в другое место палки кидать, лиса такого не делает.



P.S. На скрине гораздо больше активных вкладок.
В диспетчере нужно включить ещё поле, что-то вроде «выделенная память», оно более честные цифры показывает. Если нужно, пруф сделаю, когда у винды буду. А в лине у меня так
$ 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
Да без разницы, до гигабайт там всё равно далеко. Предыдущий скрин был с работы. Вот скрин из дома, тут вкладок ещё больше, плюс из одной из них музон играет:



Это ProcMon, если что, он уж точно всё показывает.
Это в новой версии, после недавнего капитального обновления ffx'а. До того было четко 1 окно = 1 процесс, и у меня частенько съедало почти 2 гига, что приводило просто к VA space exhaust. Просто либо ютюб, либо тяжелые JS.
UFO just landed and posted this here
Эм, почему более честный? Там, как я вижу, private working set, т.е. конкретно отожранная память, без разделяемых областей.
У меня фф стабильно падает, если открыть десяток вкладок и оставить на сутки.
Я вообще комп не выключаю по полгода. И вкладок у меня на порядок больше десяти.
Главное — шлите репорты! Всегда легче лечить найденный баг, а не просто возмущения в воздух.

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

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

Вот же у них баг-трекер «говно-говно». Черт ногу сломит, из каменного века.
Найти смог только через свою почту линк с публичной частью:
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.
UFO just landed and posted this here
Хорошо, аргумент принимается, судя по всему я погорячился.
В свою защиту могу сказать, что мой проект не основной, для фирмы — это вспомогательный софт. Однако без которого мы не можем нормально обеспечить качество уже своего ПО.
А теперь представьте картину: близится завершение года, была сделана так давно желанная модернизация платформы тестирования. Влита куча сил и средств. Сделано все без косяков, т.е. как того требует спецификация, и тут выясняется, что это до сих пор не поддерживается Blink/WebKit — движком! Ну а крайний конечно же я для всех вокруг. И мне же вставляют черенок в зад только за то, что кто-то хрен знает сколько времени не может сделать как нужно.
Ибо эта модель в том же FF поддерживается более года как.

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

Причем когда гуглил (как отрисовать тени у таблицы (да, UI я так же занимаюсь)), то stackoverflow мне давал варианты, от которых волосы на попе зашевелятся (если они там есть).
и тут выясняется, что это до сих пор не поддерживается Blink/WebKit
и тут выясняется, что вы до сих пор не поддерживаете самый распространённый движок. Fixed. ССЗБ.
Эм, а зачем мне поддерживать отсталые технологии?
Хром когда-нибудь таки сможет эволюционировать до того, что уже реализовано у меня, и, что требуется от него W3C спеками. Так что это правило не работает, когда речь идет о технологиях «завтрашнего дня»… для хрома разумеется, ибо лиса это уже умеет много месяцев как.

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

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

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

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

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

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


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

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

Писать софт

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

Инструкция есть? Есть. Сделал по ней? Сделал. Не работает? Не мои проблемы! Так и только так. И пофиг что-там думает пустоголовый руководитель — есть нормальные фирмы. К примеру, одна «очень известная страховая Европы» (куда меня брали) — им гораздо видней, чем вам, какая у меня квалификация.

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

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

лукавите?
уверен, что если бы такой контракт был у робота — уволили бы даже робота

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

Или вы считаете, что собирать самолеты, делать операцию, рассчитывать топливную смесь надо не по инструкции?!
Угу. Только вот проблема в том, что инструкцию в данном случае вы сочинили себе сами.

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


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


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

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

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

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

Потому одного создания багрепорта через crbug.com, увы, недостаточно: чтобы пробиться через естественным образом возникающую «защитную реакцию» нужно достаточно много усилий.
из пары десятков багов открытых в багтрекере оперы мною, помню закрыто было то-ли 3 то-ли 4. остальные висели в низком приоритете… :D
остальные висели в низком приоритете…
Низкий приоритет — это смерть. Фактически это обозначает: «у нас этого в планах нет и никогда не будет, но если у кого-то появится энтузиазм… patches are welcome».
Так и было. Потом Presto пристрелили и всё, не релеватны более.
Вот за это — вам можно только спасибо сказать.

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

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

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

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

Надо бы и Яндексу «передать весточку».
Жму руку. Сам так же деформировался. Фиг знает когда выездным стану.
«Protocol isn't supported yet» и "Мы не умеем это делать" все же очень разные вещи

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


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

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

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

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


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

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

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

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

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

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

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

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


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


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

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

Перечитываю этот тред и складывается ощущение, что я просто «выдрессированная собака»… надо что-то делать с этим в своей жизни.
Ну, с другой стороны, у них прямо на главной странице написано: «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», так что это не что-то, что они скрывают.

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

Открой для себя Opera 49. Уже сильно не хуже 12-й тем более что допиленый до удобства Хром. Opera link forever в новой эпостаси и дргуие фичи Оперы которые не додули в других браузерах.
На личном ноуте О49 как основной браузер с тридцатькакой-то.
Это всё же не Старая бобрая 11.49, но уже и на хлеб мажется, и на вкус терпимо.
На Опере с 2002 года. После 12й долго сидел на девелоперской версии, но не слез с нее. Сейчас везде стоит релизная и более, чем устраивает. Все родные тоже на ней. Потому что продукт создан для людей с мыслью о людях. Гугл же не продуктовая компания, по большому счету. Они выскочили на фиче и перед ними никогда не стоял вопрос завоевания авторитета. Вспомните сколько раз они закрывали направления и продукты не заботясь о пользователях.

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

UFO just landed and posted this here
  1. Меня лично заинтересовало, что он не знал про деревья\графы и смог написать Homebrew. И очень интересует, знает ли он о них теперь (думаю да).
  2. Мой опыт — если отравитель, после двух бесед, не признает наличия яда — тянуть нельзя, приходится прощаться.
1. Уверен, что деревья и графы как концепцию знал. Я их знал даже когда не знал, как они называются — просто всё равно приходится данные организовывать.
Вполне допускаю, что не знал терминологии — ну так блин, задавать вопросы же можно! Я точно на собеседовании задавал тонну уточняющих вопросов, просто чтоб понять о чем идёт речь, я на русском-то не всегда знаю терминологию, а уж английские термины и подавно не все.
Вообще, собеседование ведётся чтоб смотреть как человек думает над решением задачи. К слову, что-то мне не верится, что задача была «инвертируйте двоичное дерево».

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

В гугле для этого есть NALSD (Non-Abstract Large Scale Design) шаг, где требуется именно спроектировать решение для задачи. Прекрасно показывает о чем и как думает человек, отталкивается ли от «что делаем» или пытается приткнуть всеми силами «как»
Профессионал в первую очередь должен думать о пользователях и эффективном решении ИХ проблем.
P.S. Табличка над дверью в отдел автоматизации: Мы увеличиваем производительность труда

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


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

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

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

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

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


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


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

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

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

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


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

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

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


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

эЭЭ… как-то рано на собесы выпустили O_O
Тот самый случай, который я называю прощёлком ХРов
Рынок сейчас взрывной в разработке (речь про мобильную)
Организации рождаются и умирают за 1 год в огромном количестве.
За год можно выйти на хороший уровень, но начинают многие с джунов и оутсорса, так как не разбираются в предметной области, а только в маркетинге.
Джун за пол года идет вверх, штат растет, джун переходит в разряд сеньеров и берет на работу более обученных программистов (хотя бы своего уровня). Вот и всё. Нет тут прощелкивания, быстрый рост и то, что ты первый на этом месте.
Какой @#$//^&* сеньор из джуна за полгода?! А потом эти «сеньоры-помидоры» такое в прод гонят!.. И если не остановить вовремя этот полет мысли, то потом непросто исправить

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


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


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


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

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

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

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


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


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

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

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

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

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

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

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


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


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

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


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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

Можно же пройти собеседование еще раз, теперь уже успешно, в чем проблема-то :)
Учиться всё равно надо всю жизнь, иначе загниёшь и устареешь…
Это «мальчик шутит». На самом деле чувак крут тем, что умеет делать не просто user friendly продукты, а продукты, которые care about user. Google ничего такого давно не делает, очевидные баги не фиксятся годами, пользователь все сильнее загоняется в стойло кривоватой инфраструктуры. В таких условиях нужны не креативные программисты, а послушные кодеры. Кого гугл и набирает вполне успешно.
(Перехожу в пограничный режим) Я работаю как SRE у BigQuery. И точно могу сказать — мы делаем то, что надо пользователям, и так, чтоб им было удобно. Многие вещи планируются и реализуются так, что юзеры говорят «а что, так тоже можно было? супер! это то, что мы и хотели!».
Поэтому сложно сказать «давно ничего не делает», так как точно — делает.

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

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

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

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

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

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

Скажите, что это за (*#*@?
Так, а что такое android auto? Что я вижу — интерфейс на магинтолу, так?

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

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

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

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

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

Какой софт вы хотите переписать?
На 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 программа.
В Москве то она не удобна, а в российской глухомани — так и вообще бесполезна.

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

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

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

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

Через энное место, в общем, что даёт надежду на скорую доделку. Но я пока поостерегусь пользоваться.
Вот я еду из Москвы в Испанию. Жду предложений, как скачать Европу offline. При этом я еду не по единственному конкретному маршруту, конечно же.
на маршрут цюрих-прага и обратно я скачивал пачку разных областей по дороге. то еще удовольствие :/

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

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

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

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

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

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

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

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

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

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

Гугл совместно с производителями авто выпустил online only автомобиль.
Про это нужно кричать на каждом углу — «думайте заранее, что покупаете!». Ибо никаких сроков от гугла нет. А учитывая, сколько они обещали waze (свой же продукт) — можно предположить, что речь идет о сроках в много лет, явно большим, чем многие пользуются новым автомобилем.
К слову, удивлён, что пока никто не выпустил в качестве медиакнопки или чего-нибудь такого (доступного для android car) — ремотдесктопа до произвольного приложения на телефоне. Как раз покрыло бы потребность «запустить что угодно на телефоне и управлять с экрана авто»…
Ничего такого для android auto нет, потому что нет API. Разрешено выпускать только проигрыватели музыки и messaging apps.
Причем google даже не обещает, что это появится.
Тем, что гугл так не считает. Эскалируете? :)
Причем google даже не обещает, что это появится.
Гугл вообще в принципе мало когда мало что обещает. Ибо планы могут поменяться, а обещания потом будут припоминать годами.

Только в исключительных случаях, когда это считается очень важным.
Waze обещал, давно и регулярно. Результат ужасен.
В каком месте? Мне кажется, что тут та же самая ситуация, что и с выходом первого iPhone, который резко и категорически отказался от WAP.

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

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

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

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

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

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

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

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

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

А теперь я всего этого лишен, потому что для кого-то ездить от wifi до wifi — нормальная ситуация. Про туристические сим-карты в местах без покрытия я вообще молчу. Раньше прекрасно ездили по растровым картам, но гугл решил, что человек без интернета — неполноценен…
навигатор пиликал мне, когда я превышал разрешенную скорость, предупреждал о камерах, имел всегда доступную базу по ближайшим заправкам (offline).
То есть, вы на знаки не смотрите? И если камеры нет, то несётесь? И круиз-контроль/ограничение скорости не включаете?
Т.е. я обязан все делать сам, а если мне помогает программа — то это все, катастрофа?
Если я упустил внезапно появившийся за деревьями знак (кто ездил по России — то знает) — и все, получай штраф?

Самое главное — без гугла все работает именно так. Гугл считает, что мне это не нужно. Вот такие гении там работают.
UFO just landed and posted this here
Расскажите, как я могу выкинуть из своей машины головное устройство с android auto? Сразу скажу ответ — никак.
Зачем мне платить за обрезанный огрызок от гугла? Следующий автомобиль будет без него.
UFO just landed and posted this here
Потому что устройство настолько сильно интегрировано в автомобиль, что заменить его китайским не получается. А отдельное устройство — это колхоз и неудобство.
А раньше, без Гугла — всё было интегрировано, да?

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

То, что производители автомобилей решили подписать договор и выпустить «новое поколение» не на основе TomTom'а, а на основе Google Maps — может быть и их ошибка, но Гугл тут причём? Это был выбор производителей авто.
Раньше, до гугла — был, к примеру, mirrorlink (да и сейчас есть).
Вам бы не во вранье меня обвинять, а немного кругозор расширить. Тем более, что я не помню ни одной online only системы навигации ни в одном автомобиле.

Что касается гугла — сейчас ограничения зависят напрямую от него, а вовсе не от производителей авто. Но т.к. он давно превратился в корпорацию зла, то надежды нет.
UFO just landed and posted this here
Почему терплю? Авто продаю после новогодних праздников.
Тем более в семье две машины и отъездив на второй какое-то время понял, что возвращаться на android auto я не хочу совсем.
да, ее и собираюсь покупать.
UFO just landed and posted this here
Mirrorlink позволяет запускать практически любой софт, а не тот, что разрешил гугл.
UFO just landed and posted this here
Мешал гугл, ограничивая мой выбор. Чтобы отказаться от гугла — мне требовался mirrorlink, чтобы я мог использовать что-то кроме стандартного гуглового софта.
Раньше я никогда не думал, что буду выбирать автомобиль по главному критерию — отсутствию google lock.
Теперь знаю, что это именно то, что мне нужно.
UFO just landed and posted this here
Что значит — заставлял? Я купил машину в топовой, на тот момент, комплектации — с android auto. Мне лично было не понятно до конца — будет ли google lock или нет. Оказалось — будет по полной программе.

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

Причем тут Вы — мне вообще не понятно.
UFO just landed and posted this here
В 2016 году google не говорил, что будет google lock.
Спрашивать было не у кого — по понятным причинам.
Разумеется, с послезнанием легко изображать из себя умного.
Голосовой поиск вроде не работает при этом
А у гугла хоть что-то голосовое в офлайне работает? Я не знаю, не пользовался.
А навигацией с Google Maps и My Maps пользуюсь лет 5 уже по всему миру. Даже когда офлайна там ещё не было — прокладываешь маршрут, а потом интернет уже не нужен.
Удивительное дело, но я уже лет 15 пользуюсь offline навигаторами и не очень понимаю, почему я должен отказываться от удобного сервиса. Потому что в гугл берут сотрудников, которые не думают про удобство пользователей?
уже лет 15 пользуюсь offline навигаторами и не очень понимаю, почему я должен отказываться от удобного сервиса
Не понял. Заставляет кто-то?
Да, гугл заставляет меня пользоваться в android auto только одной программой (в перспективе двумя — еще waze, она тоже online only).
Поняли?
Поняли?
Нет, не поняли. Вы так говорите, как будто вы можете взять какой-нибудь BMW 2010го года выпуска или Тойоту 2012го, залить в их встроенный навигатор свою прошивку (ничего не взламывая и не перепаивая) и спокойно ездить. А Гугл вас этой возможности лишил.

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

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

image
Ну и куча c mirrorlink — конкретные модели сами найдете, но там прошивку не сменить, другой метод.
UFO just landed and posted this here
Нельзя нужную область скачать для оффлайн — Вы сами пробовали это для более-менее крупных областей? Например я хочу скачать оффлайн карту всей Грузии. Попробуйте? :)))
Нельзя нужную область скачать для оффлайн
Кому нужную? Мне? Можно, постоянно так делаю.
Вы сами пробовали это для более-менее крупных областей?
Сто раз. Регионы, типа Каталонии туда целиком влазят со всеми городами и городишками. Можно и всю страну скачать в несколько приёмов.
Например я хочу скачать оффлайн карту всей Грузии. Попробуйте? :)))
90% Грузии влазит в одну область для скачивания. Так что ВСЯ Грузия влезет в две области. Месяц назад я так и скачал её (опять же — на всякий случай, у меня давно международная симка с местными тарифами в каждой стране). Накачать можно сколько угодно областей. Вы ведь не пытались разобраться с приложение дольше пары минут, год назад да?
Опять же — вы такой продвинутый, постоянно по европам ездите, а интернет вам там в поездках не нужен ни для чего, получается?
Разве для того, чтобы ездить в Европу — нужно быть продвинутым? Мне казалось, что с этим справится кто угодно. А интернет — нет, не нужен. Потупить в интернете я могу и в гостинице, с wifi — в дороге я прекрасно обхожусь без него, тем более, что во многих странах интернет в большей части страны — это 2G.

По поводу offline: в полученной карте не будет POI, она будет ограничена сроком жизни в месяц, размер storage для карт имеет ограничение — поэтому при увеличении zoom теряются локальные детали, например — имена улиц.
Это какой-то ад, который решается одним простым движением — выкидывается google maps и все становится снова хорошо и удобно.
UFO just landed and posted this here
А что, существует только чёрное и белое?
Вообще креативность, способность принимать решения, умение брать на себя ответственность и исполнительность — совершенно разные и слабо зависимые плоскости.
Не обязательно быть говнюком чтоб генерить креатив.
UFO just landed and posted this here
Это у всех людей разные плоскости. А технорабов я пока не встречал.
Наверное, потому что не берут?
Там огромное количество сотрудников, работающих по принципу — «копаем отсюда и до обеда», когда работаешь с ними на совместных проектах — это очень заметно.
А можно развернуть мысль?

А то что-то я теряюсь. Одни говорят что в гугле заставляют народ работать по 70 часов в неделю, другие пишут что народ чуть ли не выгоняют домой на выходные пинками. Вы вот пишете что работают «отсюда и до обеда».
Мне довелось курировать проект, который гугл затянул почти на год, из-за полного бардака внутри компании, в итоге ими было загублено проектирование, логистика и нам внаглую врали, обещая нереальные сроки.
При этом приезжавшие из гугла инженеры тупо вникали, говорили — «да, мы опять налажали», после чего радостно ехали пить пиво. Им было совершенно пофиг, чем все закончится. Обычные исполнители.
Ээээ… Жесть. Это, а эскалация на уровень выше команды не работала?
Вообще менеджмент же есть как раз за этим, если не справляются — перераспределить усилия, заменить людей, раздать люлей…
Менеджмент и врал :)
Еще помню, прошло где-то полтора года, пока сотрудники гугла в штатах не выучили географию Россию и перестали слать нам письма, предназначенные для совсем другой компании в Питере…

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

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

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

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

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

P.S. Почему-то напомнило интервью с Ryan Dahl (создатель Node.js).
Которое интервью? Можно ссылку?
UFO just landed and posted this here

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

UFO just landed and posted this here
я тоже до прочтения статьи не знал о понятии «инвертировать» по отношению к бин. дереву,
жесть какой я неуч,

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

Никто не запрещает уточнить, переспросить, сослаться на другую терминологию.
Вы когда-нибудь работали с андроидом? Писали под него приложения/игры? Видели его 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 режим, и как-то открыв проект через месяц обнаружил его несобирающимся, хотя ничего не менял. Это беспредел.

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

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

Справедливости ради отмечу, что инвертировать бинарное дерево изи задача. Заметтье, если бы Макс Хауэлл спал с мужиками, повода для этой статьи бы не было.
А вы с какими мобильными операционками сравниваете? А то Android прекрасен во всех отношениях после Symbian.
Я бы не согласился, сам Symbian был не плох, но вот гуевые надстройки под него от Nokia — S60 и подобные, это был АД. Были также и достаточно неплохие GUI надстройки по типу UIQ под которые было приятно разрабатывать, но после того как Symbian был куплен Nokia, они не выжили…
Нокия как раз вполне жива.
Там всё сложно. Нокиа жива — но телефонов больше не выпускает. Выпускает всякие базовые станции. А вот торговая марка на рынке сотовых телефонов — да, у HMD.

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

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

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

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

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

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

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

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

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

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

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

Не, мобильное подразделение — мертвее мёртвых. Их Microsoft купил и закрыл в итоге. HMD досталась только торговая марка, ни людей, ни наработок они не получили…
Сравниваю не только с мобильными, а вообще. Даже WinAPI лучше спроектирован.
Из мобилок сравниваю с iOS, после Android ощущение что ее проектировали инженеры с 20 летним опытом(Я думаю это и не далеко от истины), а не макаки-первокурсники.
Впечатление что код писали первокурсники набранные по ЛГБТ-квотам

Оч смешно, забрал себе в копилку
Согласен, слушаю от одного приятеля высеры про то, что я — формошлеп и т.д., а в итоге фикшу то, что человек не может сделать уже месяц выловив переполнение стека, не за бесплатно конечно же. Зато олимпиадные задачи человек решает, да, ко ко ко задростово, ко ко ко биг дата, ко ко ко профессионализм.
Android Studio глючное говно? Крайне сомнительно. Что именно глючит? Прекрасная IDE, все что нужно для Android разработки есть. Не знаю как работает с NDK, правда.
Не основной род деятельности, но под мобильники таки пишу — регулярно проблема с тем, что криво-косо работает «эмулятор верстки». Т.е. в графическом плане постоянно косяки разного рода. В остальном, лично у меня, претензий нет.
Справедливости ради. в 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 никто так не делает) или указать зависимость и она удовлетворится. Опять же можно динамически создавать список зависимостей.
Фактически нет системы зависимостей.
Вот как раз для решения этой проблемы Макс Хауэлл и был нанят. И там он — к месту.

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

От ЛГБТ-первокурсников есть большая польза, необязательно в программировании, но есть, ЕВПОЧЯ. Правда, среди всех моих знакомых ЛГБТ-первокурсников ни один не пошёл бы в гугл, их стихия — это индустрия красоты, моды и тому подобное.

Я не понимаю, зачем пользоваться gradle. Хоть это и сборщик по умолчанию, maven гораздо привычнее для мира java.
А где почитать какую-то количественную информацию про ЛГБТ-квоты в Гугле и прочих грандах?
Но, в конце концов, должен ли был Гугл нанять меня? Да, конечно да.… Я умею создавать действительно клевые вещи, может не идеальные, но людям они по-настоящему нравятся. Несомненно, несомненно Гуглу это могло бы пригодиться.

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


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

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

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

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

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

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

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


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

на


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

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

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

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

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

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


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

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

А Вы всегда считаете PM начальником? Я себе в PM назначал в основном девушек — оказывались самыми не зазнающимися, организованными и ответственными. Ох. Прошу прощения — это я про Project Manager. Но очевидно, что в продакт менеджеры попадают не самые мало знающие в программировании, а именно умеющие лучше всех видеть процесс со стороны. Со сторон.

Во первых приходит понимание как оно работает и почему эффективнее использовать ту или иную структуру данных в конкретной задаче, а во вторых, речь про гугл, это не обычная компания, где нужны знания какого-нибудь языка и какого-нибудь фреймворка для решения типовых задач.
должен)) на досуге почитай какое нибудь популярное API, и чем оно популярнее тем больше там такого кошмара как будто специально писали чтоб потроллить
А если твоя задача — как раз реализовать эту библиотеку или улучшить существующую? Или это не программист будет делать? В ином случае я не понимаю вашего захода «я, программист, не понимаю, зачем...» Вероятно, стоило сказать «я, программист <вот такой специализации>...» И тут уже все было бы всем ясно — кому надо, а кому нет.
Логично. Вопрос тут не в том, что должен, а чего не должен знать условный «программист». Гугл платит деньги. Кого хотят, того и набирают. Хоть уборщиц с докторской степенью. Если оно вам не подходит, идите в другое место или на другую, подходящую, должность.
Ну, или как вариант — создайте свой гугл с блекджеком и дЕвицами. И берите туда на должности программистов всех, кто умеет читать и подписываться.
Но, в конце концов, должен ли был Гугл нанять меня? Да, конечно да

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

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

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

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

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

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

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


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


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


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

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

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


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


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

Sign up to leave a comment.

Articles