Pull to refresh

Comments 204

UFO just landed and posted this here

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

По статьям и комментам у меня складывается впечатление, что для успеха в IT (то есть попасть в ИТ-гиганты) нужно только 3 вещи: до какого-то уровня подтянуть разговорный английский, хорошенько потренироваться в решении алгоритмических задач, почитать что-нибудь/пройти курс/посмотреть видео по System Design, чтобы хоть что-то по нему знать.
Из всех людей, которых я рекомендовал в разные компании FAANG'а, почти все думали, что английский — это самая серьёзная проблема, которая у них есть. Почти все из них ошибались.

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

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

Видимо все мои знакомые не очень способны к языкам, большинство через 6 месяцев только начинает понимать, о чем говорят на митингах :)

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

То бишь примерно Easy-Medium с leetcode?

Может мне везло, но да, выше уровня medium мне задачи ниразу не задавали на интервью. Я лет 20 в разработке близко к железу, ниразу в реальной работе деревья не требовались. Я про них только узнаю, когда очередной раз начинаю готовиться к очередному интервью.
>И самое главное, какая зп в каждом грейде?
levels.fyi

>Зависит ли за напрямую от грейда?
Да, есть условные вилки для каждого грейда.

>Может ли хотя бы теоритически Джуниор получать больше Мидла? Мидл больше синьера?
Часть компенсационного пакета опциональна: бонусы и RSU. Они зависят от перформанса. Технически успешный мидл может по итогу собрать больше среднего сениора.

>Какая вообще зп в Лондоне в Фейсбуке? Реально ли получать 180-200 тысяч в год?
Очень расплывчатый вопрос. Какой валюты, гросс или нетто, на какой позиции, базовой зарплаты или тотала. Вообще, levels.fyi :) Там можно отфильтровать по позиции и по офису.
По Дублину/Лондону там мало ЗП и оони сильно ниже американских, даже вне долины

£180-200k в фб в Лондоне получать вполне реально, сколько от этого будет оставаться после налогов можно посмотреть на https://www.uktaxcalculators.co.uk/

по дефолту показывает что на налоги уйдет 37%. Это… не много если сравнить с большинством провинций Канады, или NY, CA в США.

Моя математика показывает что для 200к налог будет 41.5%, что как бы совсем немало:)

Ну такой же налог в Калифорнии или Онтарио. Да, налоги высоки на западе.

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

UFO just landed and posted this here
Я не соглашусь с высказыванием, что «проверяют только алгоритмические задачи». Дело в том, что с помощью этих задач, очень легко увидеть Ваш уровень на данный момент. Абстрактный уровень на абсолютно случайной легкой формальной проблеме. Никто не знает, над чем Вы будете работать в Facebook, сперва идет bootcamp, так что выбор команды — это Ваш личный выбор. Поэтому я не могу спросить детали. Да и не хочу. Мне интересно видеть, как вы рассуждаете. Как вы пишете простые вещи. На сколько хорошо владеете базовым языком, который Вы выбрали. Как вы ищете баги в коде. Но лучше всего для меня, если Вы не знаете как решать задачу после прочтения. Тогда мы можем поговорить, я попытаюсь навести Вас на мысль и будет диалог, в процессе которого выяснится много вещей.

«Бред» — это сложное слово про интервью, я не хочу спорить. Но практика показывает, что подобное интервью позволяет выбирать хороших инженеров. Обратное не верно. Я не спорю, что бывают false negative, когда очень крутой инженер не смог решить задачу. Но тут значит все факторы (коммуникация, подсказки, кодинг, да и все 4-5 интервью прошли не так). Это неудача, но они случаются.

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

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

Про миддл и сеньор: это мера опыта. Допустим я сеньор, от меня ждут умения взять проект или понять проблему. Понять как ее решать. И решить. И я это должен делать сам, без того, чтобы мне кто-то указал. Ожидания от миддла меньше. Однако, когда я был миддлом, ожидание почему-то тоже было похожее на сеньорное :) Не знаю, на счет ответственности. По моему, всегда ответственность на том, кто ведет проект. В общем есть точно довольно интересный документ про уровни (я его видел, когда был в Dropbox, но вроде есть в каждой конторе), где каждый уровень расписан. И в основном это scope задач, которые Вы решаете.
Мне вот любопытно, а а как, например, уровень владения языком оценить по алгоритмическим задачам? Там чаще всего язык вообще неважен, всякие вещи типа ООП, паттернов и прочего солида — тоже побоку. Плюс под «владением языком» сегодня обычно имеется в виду больше знание фреймворков и инфраструктуры, чем собственно сам язык.

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

Эм. А зачем? На мой взгляд, если программист не знает конкретного языка или фреймворка, он его изучит, и я готов ему на это дать время и деньги. Более того, я организую ему обучение за счет компании и внутренние тусовки с правильными людьми. Но если он не понимает как именно его программа запускается на сервере и взаимодействует с окружающим миром и не понимает базовых принципов написания программ: структуры данных, рекурсия vs циклы, процессы, потоки, O нотация и так далее, то я не смогу его этому научить за разумный срок. На изучение фреймворка, даже большого уходит до года, а на инженерное мышление уходят иногда десятилетия.


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


Мне кажется примитивным сводить умение программировать к доскональному знанию языка. Это как в школе. Есть отличники, которые каждый урок истории выдают все даты на зубок, но через год уже ничего не помнят. Но обязательно найдется раздолбай в классе, который понятия не имеет о дате смерти Павла I, но точно объяснит вам, а почему это произошло, как это связано с гвардией, сложными взаимоотношениями между Елизаветой, Екатериной, Павлом и Александром, а так же как это выглядит с точки зрения марксизма. Вот такие раздолбаи, если попадают в правильную среду и учатся ответственности, становятся очень сильными программистами, архитекторамии и rockstar, а отличники дальше мидла вырастают редко и обычно уходят в менеджмент.

UFO just landed and posted this here
По опыту, коллеги, которые приходили к нам писать на C++ из совершенно других миров (Java, Python-only, C#, т.е. вообще даже с garbage collector'ом, и из фронта с JS), вполне себе за пару-тройку недель начинали писать нормальный код.

Нет ничего сложного в C++, оказывается.
UFO just landed and posted this here
Может просто код-ревью строгие и не дают выпендриваться?
UFO just landed and posted this here
Кстати, всегда интересно было формализовать выпендреж, которым славятся плюсовые проекты. Думаю, что все должно идти от ключевого вопроса — сможет ли человек, перешедший на плюсы месяц назад понять твой код? Нет? Используй более простые конструкции. Рано или поздно список рекомендованных, нерекомендованных и запрещенных конструкций должен стабилизироваться и, может быть, оформиться в виде документа.
UFO just landed and posted this here
Если не использовать эти фичи (которые рано или поздно сведутся к плюсам), то непонятно, зачем вообще брать плюсы.

Потому что в си нет классов. По-моему, можно вполне писать на си как на Java 1.6, иногда в нужные места вставляя более тонкое управление памятью, ну и может быть, заимствовав каких-нить уж очень вкусных синтаксических сладостей типа лямбд. В проект с таким код-стайлом легко вьехать свитчеру с других языков.
UFO just landed and posted this here
Вообще все это наводит на мысль — нет ли где проекта совместимого подмножества плюсов? Этакий «Opinionated С with classes». Ну, понимаете, чтоб как C++, но осваиваемый без десятилетнего дрочева. За основу можно взять какую-нить из ранних версий C++ стандарта, выкинуть оттуда дурь, оставленную для обратной совместимости, добавить туда ограниченные версии ништяков с низким порогом вхождения из новых версий стандарта.

  • Все, о чем пишет Степанов — мимо, не включаем, слишком сложно.
  • Шаблоны — включаем ограниченно, делай как в джаве, не выпендривайся.
  • Множественное наследование — нафиг, делай как в джаве, не забивай себе голову
  • Невиртуальные функции — нафиг, не забивай себе голову
Есть, в 98 Sun, земля ему пухом, зарелизил. Называется… oh wait…
UFO just landed and posted this here
В этой же связи я думаю, что С++ это отличный первый ЯП. Плавать надо учиться со связанными руками в бассейне с кипящей кислотой.
UFO just landed and posted this here
Плюсы это не какой нибудь Scaskell. Там нет простых и сложных конструкций. Там 800 страничный стандарт где каждая фича взаимодействует с почти каждой другой фичёй.
UFO just landed and posted this here
Ну я примерно в 2004 слился с попыток им пользоваться (:

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

Владение языком — это не вот эта жесть которую в Яндексе спрашивали про ++i++i++; Что выведется мол на экран. Нет. Я именно хочу понять, как вы выучите новый фреймворк или язык. Если вы можете написать 50 строк простого кода без ошибок и умеете транслировать свои мысли в код, утверждается, что скорее всего вы сможете. Я плохо выразился про «уровень владения языком». Нужно умение базовых вещей. Например, если вы умеете решать задачи по физике лучше всех, но не знаете как означать физические величины, я не пойму вас. Тут тоже самое. В этих 50 строках мы обсудим О нотацию, может быть напишем бинарный поиск (может быть даже изобретем его), рекурсию и еще что там. Я даже не требую строгого API для допустим TreeMap или std::set. Но если вы не можете написать цикл без ошибок… Ну что сказать?
которую в Яндексе спрашивали про ++i++i++; Что выведется мол на экран.


Такого в Яндексе уже очень давно не спрашивают.
Это хорошо. Просто в те времена, когда я спаршивал ребят из Яндекса, там вопросы были по с++, что Страуструп вполне попросит минутку подумать :)

Я слышал недавние байки, что нанимают человека в Яндексе, а потом просят прислать какой-нибудь кусок кода на C++, хоть со стак оверфлоу скопировать, чтоб вставить в отчеты о найме :)


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

Это будет выглядеть как оправдание и никакого положительного PR эффекта не принесёт, поэтому обычно крупные компании не комментируют слухи, если только не произошел (или не произошел) какой-то инцидент.
Зачем нужны опровержения, которым все равно мало кто поверит, если можно самостоятельно сходить на собеседование и всё узнать?
Года два назад пробовал проходить там собеседование, по языку как таковому вопросов не было, надо было решать алгоритмические задачки на бумаге/доске, где ты свои знания и показывал.
Вы можете сами прособеседоваться, чтобы составить своё собственное мнение, и не верить байкам и легендам.
А какой правильный ответ? «Дружище, а тебе самому не смешно от этого вопроса?»
Ну почти на каждый из тех вопросов по С++ я говорил, если бы я увидел это в диффе на код ревью, то это был бы «request changes» сходу и дальше я бы уже не читал!
а куда они этих отборных кадров девают, почему такая трэшачина-то выходит?

Не уверен, но думаю, что примерно туда же, куда и у нас. Сначала гоняют по алгоритмам, а потом человек три года грубо говоря «перекладывает данные из одного json в другой протобаф». А года через 3 и глаза уже не так горят, да и менеджеры с задачами «нужно было вчера» никак не отстают.
UFO just landed and posted this here
Брукс и мифический человеко-месяц! 75-й год! А ведь до сих пор не освоили наследие.
Так о том и речь, что я не прошу ООП и фреймворки. Напишите 50 строчек кода без ошибок. И при этом надо просто написать то, что мы обсудили в виде кода на языке, который вы выбрали сами. Это все! Но оказывается это не просто. Однако, ничего сверхъестественного.

А простите, что за трешачина? Инстаграм вроде бы открывается, не падает. Фотки грузятся, лайки ставятся. Лента в ФБ открывается, посты постятся. WhatsUp вроде почти везде используют и тоже не падает. Остальные продукты тоже работают хорошо. У гугла тоже вроде поиск работает, почта тоже, youtube вообще по моему в половине вкладок у всех открыт, кого я знаю. Все продукты держат какую-то фантастическую нагрузку и огромное число юзкейсов. Так что за треш то?

Ну так себе гмэйл открывается — визуально slow motion.
Ну не знаю, у меня вроде нормально. Но мне и не надо от почтового клиента космической скорости. Вот если видео начинает лагать — это да. Или как допустим был момент, когда я звонил в Россию с телеги и связь была ужасная, прерывалось и т.д., но в то же время перезвонил на WhatsApp и все ОК. Вот это проблема.

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

Вы знаете, я прямо сейчас замерил. Gmail быстрее чем хабр загружается.

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

Все почему-то зацикливаются на задачах, но ведь soft skills очень сильно решают на интервью. Время одиночек прошло и без умения общаться с людьми (клиентами, коллегами) далеко не уехать.

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


Требования к Engineering Manager на уровнях 5-7 в части технических скиллов в принципе эквивалентны требованиям к инженерам соответствующих уровней, допускается уровень минус один. Ну и coding interview будет одно-два, а не три.


И да, огромное большинство кандидатов с 15-20 годами опыта в Долине эти интервью не проходит.

А общий скилл работы с кодом — это про разные аспекты Clean Code речь или про что-то ещё?

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


Clean code — хорошая вещь.

Спасибо за проект, добавил в закладки.
Илоне — успехов и потом — терпения. Молодец.
Вопрос причастным: зачем люди стремятся в Гугл, там, Фейсбук или Яндекс? Чего там такого манящего, почему эта тема так популярна? Вопрос без подвоха.
Неужели в небольшой компании не так интересно или меньше возможностей? Или само чувство приобщения к чему-то большому и известному притягивает людей?
UFO just landed and posted this here
Хадуп, Спарк, КликХаус и тому подобные штуки не используют компании из 10 человек.


Я немного пописываю на Go, и если верить вакансиям подобные штуки (не именно все эти, но многие похожие) используют абсолютно все конторы, вне зависимости от размера.
И ещё у всех хайлод. И микросервисы в кубернетисе (даже если это единственный Go-бинарник).
Все хотят быть «как у Гугла», наверное.
UFO just landed and posted this here
А я про Go, а не про Delphi.
Ну и рекомендую смахнуть с моего комментария лёгкий налёт сарказма перед ответом.

Деньги и проекты. Платить в маленьких больше не будут. Я проходил собеседования во многие компании в долине. Если компания не публичная то они дают базовую ЗП может и выше но у них нет второй части — акции. А это ещё плюсом такая же вторая ЗП. Точнее они дают свои внутренние стоки но они ничего не стоят. В уши льют что вот мы выйдем на IPO и тогда все разбогатеют, но вероятность этого мизерная.
Ну а проекты, я например работаю в Гугл, в разработке софта для сетевых карт будущего. Такие железки появятся в дата центрах года через 2-3. Если кто-то ещё их разрабатывает то такие же гиганты как Гугл.

Навалом кто делает свои сетевые карты и сетевое железо. А вот как раз свои чипы сетевые делает мало кто. Закупают у броадкома как правило. Что там — циско и джунипер сорсит у броадкома.
UFO just landed and posted this here
в 99% случаев в маленькой компании будет и комфортной и платить будут больше.

У Гугла, например, зарплаты довольно высокие. А что касается комфорта, то это тоже спорный вопрос. Маленькая компания, например, не сможет так же обустроить офис с трехразовым питанием, спорт залом и душевой. Офис вероятнее будет находится в неудобной локации. Это, конечно, субъективные вещи. Если вы предпочитаете и можете работать из дома — то эти перки вам малоинтересны.

Для меня причастность к большому стала важным (и очень важным) фактором только через шесть-семь лет разработки.

UFO just landed and posted this here

Может быть, это циклический процесс?

UFO just landed and posted this here
UFO just landed and posted this here
www.levels.fyi вот зачем. Небольшие/малоизвестные конторы крайне редко платят столько.
Мне ничего не говорят американские зарплаты. Вообще не понятно много это или нет.
В России эти компании, если верить статьям тут же, не особенно задирают зарплаты. Кроме того, работа в большой компании — это практически всегда работа в офисе (опять же в России), в крупном городе. А, значит, это дорогая аренда, еда, транспорт и пр.
То есть вот вы имеете информацию, в России действительно выгоднее работать в Яндексе чем в конторе средней руки?
UFO just landed and posted this here
Но ведь в России их и нет…


Как это нет? Есть и Яндекс и Майкрософт и АйБиЭм и почти все прочие. Я не знаю, есть ли Фейсбук, но на суть вопроса это никак не влияет.
Зарплаты в Лондоне и Америке интересуют не только лишь всех россиян. Мне вот они, к примеру, вообще безразличны. Я спрашивал именно про Россию.
UFO just landed and posted this here
В России эти компании, если верить статьям тут же, не особенно задирают зарплаты.

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

UFO just landed and posted this here
Субъективно, я выбирал компанию по тому, что я хочу на данный момент, с кем хочу работать и над чем. Если есть продукт, который мне нравится и я в него верю, почему бы не учавствовать в нем. Я так пошел в свое время в Убер, потому что, как бы это банально не звучало, я верил, что мы делаем что-то очень крутое и нужное.

Но большие компании — это стабильность. Акции не настолько прыгают, как у маленьких. А если говорит про pre-IPO, так вообще неясно, выйдет компания или нет. Ну еще допустим в Facebook куча очень крутых проектов, в которых нет ощущения большой компании, когда 5-10 человек пишут очень мощные вещи. То есть возможности тоже есть.

А вот еще такой вариант, Вы решили завести семью. И вхерачивать по 14 часов без выходных уже не кажется такой заманчивой перспективой, как в 22 года. Хочется сходить на jiu jitsu или тайский бокс после работы, поужинать с детьми. Большие компании очень ценят work/life balance. И планы работы это закладывают. В отличие от маленьких компаний, где вам нужно успеть все за неделю, потому что через неделю надо питчить, и если это не будет готово, то денег не будет и все пойдут по домам.

Ну и еще вариант. В большой компании можно научиться как надо делать. То есть все системы должны работать вот так. Потому что это проверено временем, нагрузками и sev'ами.
Аргумент про акции звучит немного непонятно для человека, не имевшего дело с американскими компаниями, но ОК. К тому же маленькая компания — совсем не обязательно софтверный стартап, как у вас в комментарии. Это вообще не обязательно должна быть ИТ-компания, и работа по 14 часов тоже далеко не везде (очень редко где и исключительно по желанию).
Но аргумент понятен.
Такой к вам вопрос:
Если есть продукт, который мне нравится и я в него верю, почему бы не учавствовать в нем. Я так пошел в свое время в Убер, потому что, как бы это банально не звучало, я верил, что мы делаем что-то очень крутое и нужное.

У вас нет ощущения, что Убер и без вас сделал бы этот продукт точно так же? То есть реально ли оценить вклад каждого конкретного сотрудника в успех или неудачу компании? Ведь без этого, считаю, того самого ощущения сопричастности не появится.
Когда я пришел, то в компании было по-моему около 200-300 инженеров. Скорее всего, если бы я там не работал, ничего плохого бы не случилось бы и убер так же стал бы тем кем стал. Однако я там был и сделал какой-то вклад в становление компаний. А мысли что и без меня бы все было хорошо, какие-то обесценивающие, поэтому, нет, мне так не кажется :)

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

До недавнего времени их давали более-менее регулярно лишь начиная со старшего разработчика (нет, вам не дадут старшего разработчика в Я просто потому, что вы 10 лет проработаете в «Рогах и копытах» и «имеете опыт». И если в Я проработаете 10 лет, тоже не дадут). В прошлом году их стали давать активнее, но сейчас закручивают гайки обратно. Так что это значимая часть дохода, но далеко не у всех.
UFO just landed and posted this here
Ну я же говорю «in general». Ясно, что существуют исключения. Можно и не научиться, но обычно даже отрицательный опыт legacy или там кучи зависимостей — тоже отлично учит. Знаешь чего избегать.

Я вообще говорил только про IT компании. И чем меньше человек, тем выше количество задач на одного, то есть у вас растет требования (ну если только не какие-то государственные вливания там или еще что-то), ведь надо делать новые вещи.

В общем, данная тема и правда очень субъективная, так что особо не вижу смысле в ней. Это был исключительно мой взгляд на вещи. Я очень даже допускаю, что в нем много предположений и допущений.
Все ищут и находят разное. В больших конторах, например, много людей, которые умнее тебя (ну, в смысле, меня). А в мелкой, ты можешь быть самым умным настолько, что и спросить совета будет не у кого и в итоге делать лютую чепуху и никто не скажет «чувак — это лютая хрень и так не делают». Work\life balance выше упоминули. Бывает по-разному, но обычно с процессами у них намного все лучше, чем в мелких.
Неплохой аргумент про самого умного, действительно сильный.
Правда по этому поводу я раньше думал так: вот устроюсь, я, скажем, в Яндекс, а вокруг одни олимпиадники и будет постоянное ощущение определённого давления. Есть такой эффект на практике в известных конторах?

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


С процессами такой же бардак, как и везде.

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

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

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


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

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


Как-то так..

Вопрос причастным: зачем люди стремятся в Гугл, там, Фейсбук или Яндекс?

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

— финансовая стабильность работодателя: доходы диверсифицированы. бывает очень важно;
— финансовые вилки с большим разбросом: если вы интересны и нужны, то торг очень уместен;
— хорошая строчка в резюме: трамплин. если нужен. а лишним никогда не бывает;
— повышенный шанс встретить много «умных» коллег: далеко не аксиома, но так;
— всякие плюшки: бесплатные визы, спортзалы, помощь в покупке недвиги, гибкие графики;
— устоявшаяся техническая инфраструктура: можно пользоваться готовым, а не выстраивать с нуля;
— и снова инфраструктура: можно не уметь ее полноценно готовить самому, но сам факт, что вы пользовались грамотно настроенной уже будет, пусть небольшим, но плюсом со стороны будущего интервьюера. вы носитель культуры;
— уважение окружающих: "-где работаешь? -в {company_name}. -wow!". с годами проходит.
— проекты, которыми пользуются многие: причем сразу. сотни тысяч, миллионы, сотни миллионов;
— кого-то перехватывают на подлете: еще в вузе на практике/стажировке. ноготок уже увяз и вопрос «куда идти» отсутствует;

P.S.
Что-то в отдельности никогда не побеждает. Обычно в кучу: это, это и вот то.
Могу накидать столько же, если не больше, минусов (куда же без них) ;-)
Накидайте минусы, если не трудно :)
Все эти плюсы, на мой взгляд, со временем начинают терять актуальность. Ну, кроме денег, понятно. При этом, мне кажется, что минусов в крупной конторе не меньше и сальдо получается около нуля. Как считаете?
Нетрудно. Попробую, но дело это еще более спорное, чем плюсы.

— ваш вклад в проект может оказаться сильно размыт. проект один, под-проектов много, а людей еще больше;
— плюшки работодателя могут оказаться не к месту: кофе не пью, дмс-ом не болею, печенья и орехов нужна пригоршня/две в неделю. что там еще? а… впрочем и остальным нет нужды пользоваться;
— меж-проектные согласования могут показаться адом на яву. куча встреч, разговоров, аргументов, балансирование на лезвии. правки потому, как «кто-то что-то понял по своему». и все ради того, что бы сделать простую и атомарную штуку в продакшене;
— умные коллеги могут оказаться кислотными: требовать или ерунду или нереальные сроки. причем вполне аргументированно. они умные и как-то надо постоянно снова балансить;
— повышение зарплаты может быть простым на словах: профессиональные HR-ы вооружены не менее профессиональными покупными средними медианами и прочими красивыми статистиками;
— очень и очень не очевидно: ваши рядовые коллеги здесь, сейчас и в ближайшее время могут оказаться на голову выше вас и работать за деньги о которых вы грезите;
— рутины может оказаться очень много: около 90% вне зависимости от вашей крутизны. бизнес устоявшийся и развивается местами очень спокойно;
— вас может начать под-бамбливать от гибких технологий типа аджайла: брали на под-проект X и Y, а надо быстро разобраться и нести ответственность за бесконечные E, T и C.

что минусов в крупной конторе не меньше и сальдо получается около нуля. Как считаете?

Так, но кому как. :-) Сильно индивидуально и смотря, что нужно.

Еще минус важный есть, кому-то это dealbreaker — нельзя, пока работаешь в Гугле, участвовать в open source. Вернее можно, но все права принадлежат Гуглу. Видимо, сделанно, что бы не судиться потом, в рабочее ли время условный сотрудник пилил мега идею, или это его личная работа. С учетом что выдают кучу оборудования, можно работать из дома по гибкому графику — это все нетривиальные вопросы. Похожая нервотрепка есть с и другими компаниями: надо, по крайней мере, получать разрешение что-то стороннее делать.


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


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


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


Еще в такой большой компании появляется политика и связанные с этим драмы. Какой-то там директор домогался своей подчиненной, а потом ушел из компании, получив 40 миллионов долларов (вскрылось несколько лет спустя). У всех подгорает, все это обсуждают, вся цепочка менеджеров пишет письма, что никогда больше и мы расследуем и боремся. Активисты пишут открытые письма против чего-то или там за что-то. Это не напряжно и это все можно пропускать мимо себя, но может кому-то это будет очень неприятно. Если не смотреть на драмы такого порядка, то, по моему опыту, на более низком уровне климат очень доброжелательный, каких-то скандалов и интриг тут нет (говорю про Гугл).

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

А получается достигать достижения? Мне как-то сложновато пока перестроиться на этот американский достиганческий лад. «Что делал?» «Работу делал, вот запустили полезную штуку вшестером.» «Чего достиг?» «Как чего? Я же сказал, штуку запустили!»

Работу делал, вот запустили полезную штуку вшестером.

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

Вот мой топ причин:
  1. Концентрация крутых ребят вокруг выше, чем в других местах. А где крутые ребята, там и возможность и желание тоже стать покруче, и возможность с ними замутить крутые штуки.
  2. Твоим софтом без дураков будут пользоваться. Если повезет — то сотни миллионов.
  3. Ты будешь решать не только слесарные, но и инженерные задачи.
> Не обязателен.
> Я занималась олимпиадами с 8 класса
> Три раза участвовала во всероссийской олимпиале, хотя ни разу не выигрывала
> У меня были дипломы других олимпиад
> это помогло поступить в ВШЭ
То есть у девушки к 11 классу было ~5 лет «опыта» работы. Ну норм, чо. А я крапиву палкой бил в 8 классе.
Для работы в Google нужно быть чемпионом мира по программированию?
Нет, не обязательно. Это вообще какие-то глупые люди придумали эти вещи про чемпионов мира. Не понимаю их. Дурачки какие-то, ей богу. Достаточно быть чемпионом своей страны или города.
Ну, олимпиадное программирование это совсем не опыт работы.

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

Дык полтора-два годика вдумчивого фигачинга литкода должны помочь, разве нет?

UFO just landed and posted this here
Всё зависит от постановки KPI. Он может измеряться разными способами. Вплоть до количества написанных строк кода, тестов, микро-фичей и прочего. Всё может упираться в то, что не важно назначение задачи. Просто должно быть много кода, тестов и это должно работать. Запустить сервис на телефоне важнее для бизнеса, чем зарефакторить 1кк строк инфраструктуры. Решить много средних задач важнее, чем мало сложных.
Ну тут всё легко объяснимо — уволить криворуких невозможно, сразу засудят за притеснение угнетаемых. Мне вот только интересно, когда в итоге в FB/Google/Amazaon/etc останутся одни равноправные, кто будет писать нормальный код?
Уволить криворуких вполне возможно (особенно в США) и это нередко случается.
Лучше всего, конечно, не нанимать криворуких.
Когда в компаниях уровня FB/Google/Amazon/etc стоит задача достижения полной толерантности/равноправия, то критерий отбора в виде профессиональных скилов уже не является главным. Пример обсуждаемого человека в статье это хорошо показывает — за полтора года с джуна до сеньора? Корпорации гениев, не иначе.

Можно конечно сказать, что это бред сивой кобылы, но:
— качество сервисов от этих компаний становится всё хуже. Как же так, если в компаниях работают сотрудники, прошедшие кучу вступительных этапов?
— посмотрите состав увольняемых сотрудников в наступивший кризис, превалирующая доля как раз эти самые группы толерантности.
Если у них senior, это тот, кого принято называть middle, то все сходится. Человек, который понимает, что происходит. Не зря же упомянут какой-то staff и еще три дополнительных уровня.

А можно какой-нибудь пруф про массовые увольнения инженеров в Фейсбуке и в Гугле в связи с кризисом?
Убер в пример чур не приводить.

Погоди, а убер же вроде не увольнял инженеров. Там вроде в лифте было сокращение? Или я что-то пропустил?
Увольняют со свистом как раз, но в крупных конторах собесы сложные и многоступенчатые, тч совсем лютые ошибки найма редко бывают.
UFO just landed and posted this here
но он прошел все уровни leetcode интервью в FAANG и скопил бабла. Потому оптимизируйтесь по литкод!
UFO just landed and posted this here
На hackerrank можно хаскель. Он вообще IMO лучше чем литкод.
Я правда не считаю, что стоит оптимизироваться на условный FAANG.
Но для фана раньше любил алгоритмические задачки решать.
Учитывая градацию
3 – junior
4 – middle
5 – senior
6 – staff
дальше – 7, 8, возможно 9, но таких мало
У меня предположение, что эквивалент senior у них где-то на уровне 6-7. Ну не может программист, который скорее всего работал только в 1-ом — 2-х проектах, поработавший над относительно небольшим количеством и разнообразием задач и, скорее всего, не участвовавший в разработке с нуля, стать сеньором.

И не знаю связан ли подобный стремительный рост с тем, то в ФБ такие кривые и противоречивые АПИ.
А подобное мне кажется следствием отсеивания алгоритмическими собеседования. Если разработчик плох в алгоритмах, но силен в других вещах, его отсеют. На остальные этапы пройдут только те, кто хорош в алгоритмах. И среди них может быть большой процент посредственностей во всем остальном.
Думаю, что было бы качественней, если какой-то средний проходной бал считали по нескольким навыкам (например: алгоритмы, проектирование, кругозор и техническая эрудированность).
Увидел, что в статье говорится, что soft скиллы гораздо важнее. Т.е. технически можно быть не очень опытным мидлом и при этом, руководить разработкой проектов, получив должность сеньора и выше.
Это зависит скорее даже не от того, сколько вы знаете, а о того, сколько вы готовы взять на себя ответственности за большие проекты, как вы можете общаться с людьми, работать с другими командами, строить взаимоотношения, договариваться, идти на компромиссы. В большей степени это soft skills.
Есть разные архетипы. Некоторые люди самостоятельно создают сложные фичи, но у меня такого не было. Мне больше нравится общение с людьми, совместная работа, задавание пути развития продукта.

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

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

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

А в твиттере? ;)
Большие проекты сами по себе же создаются, развиваются и в конечном итоге умирают, да?
Подёргать API-шку несложно, сложно решить важную задачу, «просто дёргая API-шку».

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

А в твиттере есть команды интересные в платформе, которые решают задачи создания всяких хранилищ и облачных решений и попасть в них можно не находясь в CA ;)

А в фейсбуке есть команды интересные в платформе, которые решают задачи создания всяких хранилищ и облачных решений и попасть в них можно не находясь в CA ;)

Ну я вот живой здесь.


В Фейсбуке в Лондоне, например, есть часть MySQL-команды, целиком команда logdevice (https://logdevice.io/, очень грубо — внутренняя кафка), часть команды tupperware (очень грубо — внутренний кубернетес), целиком команда Scribe (очень грубо — внутренний Splunk), Source Control (команда, которая держит внутренние репозитории). Просто то, что я вспомнил прямо сейчас и о чём можно говорить.

Ну так пример проекта за пределами менло парка в котором идёт активная разработка.

Любой из перечисленных.

Ну вот эти уже другое дело, а разработка или просто поддержка?

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

Интересно, сколько народу кафку пилят?

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

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

Попробую предположить. Меньше юзеров, менее жесткие требования к софту

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

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

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

На всякий случай покажу табличку сарказм.

Потому что любая задача становится сложной.
Вы запускали bazel build //... && bazel test //... в вашем проекте перед коммитом? А теперь не можете.
Вы хотите обновить ядро на всех серверах вашего проекта? А теперь это проект на пару месяцев.
Вы хотите просто задеплоить новую версию софта? А теперь не можете, в процессе деплоя часть железяк тупо умрёт, а часть запровижионится.
Вы ждали раньше, пока ваш сторадж отребилдится перед тем как деплоить новую версию софта (ну просто чтобы минимизировать риски)? А теперь не можете, ваш сторадж ребилдится всегда.
Вы хотите изменить интерфейс API, добавить аргумент в какой-то RPC-колл? Добро пожаловать в кодовую базу вообще всех проектов, кто вас использует.
Хотите обновить python 3.7 на python 3.8? Ну вы поняли.

Обновить с 3.7 до 3.8 еще ничего. Вот со 2ого на 3ий.

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

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


Вы правда верите, что система обновления ядер, которая прячется за словосочетанием "автоматически раскатывается" масштабируется в три тысячи раз без обнаружения множества подводных камней? Однажды я работал в "компании, в которой есть как минимум лям юзеров" (вы тоже там работали, кстати :D), я там масштабировал Cobbler чтобы налить всего лишь три тысячи машин за 24 часа. Один маленький пример из того опыта: пришлось выкинуть TFTP (который абсолютно стандартен здесь!), потому что TFTP крайне нестабилен, если TFTP-сервер хоть чуть-чуть нагружен. Если у вас 50 машин — вы просто поретраите десяток машин. Если 3000 — уже не поретраите. Впрочем, видимо, остальное масштабирование до масштабов фейсбука стало бесплатным, если просто дёрнуть протобуф и переложить данные в JSON.


Фейсбук надо, наверное, в клауде развернуть, там все проблемы решены. RuVDS подойдет? :)


Впрочем, мне вас не переубедить.

Так в том и дело, что для тебя как для разраба разницы нет: в gcp ты хостишься или в private cloud фейсбука. Все проблемы решены, ты только jsonчики перекладываешь, в то время как разрабы в мелких конторах должны разбираться во всех технологиях которые они используют. Те мелкие конторы более требовательны к уровню разрабов а не наоборот.

То есть я правильно понимаю? Инфраструктурные команды в фейсбуке не нужны потому что в фейсбуке уже есть инфраструктурные команды, и там все задачи решены?


Ну ок.

Я уверен, что в фб есть люди которые решают сложные задачи, но на 1 такого человека приходится 100 перекладывателей json, разве нет? И даже у того одного человека основная сложность это не сама задача, а согласование с миллионом стейкхолдеров, что не совсем инженерная задача.
ЗЫ. А это правда что фб до сих пор использует для хранения связей MySQL + memcached но гордо называет это TAO?

Вы знаете, я долго думал, что на одного человека со сложными задачами приходится 100 перекладывателей json. Но ни одного перекладывателя json я не знаю, а людей со сложными задачами знаю сотни. Иронично, а?


ЗЫ. А это правда что фб до сих пор использует для хранения связей MySQL + memcached но гордо называет это TAO?

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

Я рад за вас:) хорошо когда вокруг так много действительно сложных и новых задач :)
Мне просто кажется, что многие из них не сильно сложнее задач с которыми сталкиваются обычные разработчики в обычных компаниях.
ЗЫ. Про Амазон как то некорректно, так то фб использует тоже ssd ;)

Ой, а про ТАО корректно? 1:1.

Добавь еще то, что они набирают спецов не по какому-то стеку, а просто инженеров.

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

Как уже многие говорили. На собеседованиях гоняют по алгоритмам, нетривиальным задачам и устраивают вайт-борд. А по факту сидишь и гоняешь json для какого-то внутреннго сервиса графика уборки офиса.
В итоге, ребята, которые всю жизнь условно писали на Java садятся за какой-нибудь pytho/js и начинают из него делать Java, что потом вообще поддерживать невозможно становится.
Справедливости ради, стоит отметить, что так будет делать большинство в аналогичных ситуациях, если нет времени углубиться в новый стек или в нем нет стандартов, как с js раньше было. Берут лучшее/привычное из того, с чем был опыт, и пытаются применить в новом стеке.
О, вот это вообще сплошь и рядом. Приходишь с бэкенда, а тебе такие — «а набросай тут UI на React». Вот просто бесит неимоверно.

Странный посыл насчёт невозможности найти работу в долине если не IT. Сложно найти работу не в IT если она должна обеспечивать жизнь. А просто низкоквалифицированной работы с оплатой до 20$/час навалом. Если один человек в семье работает нормально в IT то второй спокойно устраивается на почасовую и имеет гибкий график и свои 2-3к в месяц.

В США очень распространена контрактная работа. Особенно QA/Frontend/Mobile. Целые школы есть в Калифорнии. Правда всё без обязательств и полный at will employment.
Так я полностью согласен, я в долине 10 лет уже. Меня по-этому и удивило, что есть какие-то трудности с работой в долине.
И какой бы вы способ посоветовали попасть в долину(для работы)? На сколько развита практика найма удалённых работников?
Трудно сказать, что сейчас с наймом удаленных работников, особенно с этим covid. Идеальный способ попасть в долину — это гринкарту выйграть, но этот вариант подразумевает полноценную иммиграцию, а не только работу.

1) Выиграть грин-карту
2) Выиграть H-1B
3) Устроиться на работу в интернациональную компанию, отработать год, получить L-1, переехать, оформить грин-карту.

UFO just landed and posted this here
Ну стойте, у меня в долине очень много друзей не в IT и вроде обеспечивают жизнь и очень неплохо обеспечивают. Хотя опять же, наверное, важно определить, что значит «обеспечивать жизнь» :)
Так я с этим и не спорю, это автор почему-то утверждает, что для не IT есть какая-то проблема с работой в долине.
А, прошу прощения. Автору возможно стоит добавить больше данных в эти утверждения :)
А с чего ему умирать? Буритто стоит около $10, если шиковать и есть по два буритто в сутки то всего-то нужно $600 в месяц. А с двух местных буритто в день не то что умереть, зад разнесет так, что в дверь не войдете :-)

А если серьезно, то вы же не думаете, что каждый человек в каждом магазине или ресторане заколачивает по $100k в год? Огромное количество людей тут работает именно за 2 — 3к в месяц. Естественно — это не основной доход семьи. В оригинальном комментарии говорилось о втором человеке, обычно это супруга, которая часто вообще не работает, но если ей становится скучно то спокойно на part time может получать свои 2к.
Бурита буритой, а почем аренда? Страховка шоб подлечиться и не склеить ласты? Машина, как я понимаю, тоже обязательна?
В окрестностях Сан Хосе, один бедрум в районе 2к можно снять. Страховку у малоимущих бесплатная благодаря Abamacare. Машина очень желательна, иногда подальше от дома можно найти повыше часовой рейт. Бензин 2.7$/галлон, страховка ответственности что-то около 40$/мес. Если совсем малоимущий то и купоны на еду дадут и иногда саму еду раздают бесплатно.

Но я не в коем случае не говорю. что один человек, без жилья на 3к в долине отлично проживет. Конечно нет. Но если в семье два человека работают, то даже если они оба работают за 20$/час то за 4 недели это 6400$. А если взять продленную смену то и 8к заколотить можно. Хочу обратить внимание, что это мы говорим о работе, которую любой человек с улицы способен делать.

Вообще я на себе заметил интересный эффект. Тяжелее всего кода ты слегка проходишь вверх уровень малоимущих. Т.е. примерно 100к в год на семью. Тогда тебе власти уже не помогают, и ты сам за все платишь по полным ценам. Конечно, какой-нить бомж из СФ возмутился бы такому высказыванию, но у них там своя история.
Ох, стар я для Америки, очень стар.
Это было уже давно – в 2015 году, я училась с 2013 по 2017,



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

Да ну! Выдыхай!!!
А мне Лондон скучным показался. Горы далеко, океан далеко. Чем там вообще заняться? По митапам только ходить? Толпы людей везде, просто муравеник какой-то.
На машине очень удобно ездить. Не нужно думать, где пересадку делать, где там ветка закрыта из-за забастовки. Ждать ничего тоже не нужно на остановке. Сел и поехал. И думать про маски, всякое социальное дистанцированиие тоже не нужно. Очень все просто и прямо.
UFO just landed and posted this here

Чтобы по выходным не вымирал — нужно в Soho жить.

UFO just landed and posted this here

Не бы в НЙ, может там ещё хуже все. Вы жили не в жилом районе по сути. В тех районах, где живут больше, а не офисы — толпы и в выходные. Может даже и больше тк все не в центре.
Я и в метро/автобусе не могу читать из-за тряски, только слушаю. Ну и у меня маршрут удачный, примерно 80% времени машина сама по хайвею едет. Я как то даже в ноуте ковырялся пока ехал, тк алерт прилетел.

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

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

«На собеседованиях больше ценится реальный опыт или решение задач из олимпиад?
Ценится все. „


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

“с junior на middle надо перейти за два года
с middle на senior – за три года;
если не получается – увольняют»


Вроде ж уже отменяют везде (в Фб и Гугле).

«Как грубо говоря отличить Мидла от сеньера?»

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

«Вопрос причастным: зачем люди стремятся в Гугл, там, Фейсбук или Яндекс?»

1. Свобода действий — грубо тебе не ставят задачи, ты решаешь что делаешь, твои идеи, ты свой архитектор и менеджер, бери и твори. Даунсайд конечно, когда придет время ревью надо будет показать, что то что ты делаешь приносит прибыль.
2. Деньги, акции, бонусы плюс плюшки — бесплатная еда, транспорт, у них нереальное количество всяческих плюшек — за полгода привыкаешь жить как на курорте (но работать). И нет, 300k это не средняя зарплата сеньора в долине, 99% компаний это таки не FAANG (большинство даже не в зп чартах), 180-200k может. В FAANG скажем 200k и до миллионов, но! если посчитать бонусы, страховку, 401k match, транспорт, оплату переезда, еду в конце концов, даже с 200k FAANG будут далеко впереди…
3. Резюме — имея Фб или Гугл в резюме можно рассчитывать на лучшие зарплаты, легче найти работу (да-да даже для хорошего инженера полгода поисков в штатах это нормально)

«Просто миддл фейсбука это прокаченный джун.»

Что-что а уровень инженеров в Фб весьма достойный, у меня были претензии к менеджменту, но все инженеры с которыми работал были круты (есть с чем ставнить: TI, Amazon, Nvidia, Panasonic)

Как по-вашему, год нарешивания задачек с литкода — это форма честного прокачивания своих problem solving скиллов или форма нечестного взлома системы найма на работу? Предположим, что система этого самого нарешивания очень хороша: кандидат классифицирует задачи, осознаёт, в каких местах он косячит чаще всего, решает больше задач, чтобы устранить свои недостатки, научается считать big O для большого класса задач и впитывает в себя методику подсчета, собирает фидбек на mock interview, учится рассуждать вслух, учится продумывать решение и лишь затем писать код, учится быстро и чисто писать код, который продумал, на вайтборде, учится дебажить свой код в голове и на бумаге и прочее. Вот прошёл год подготовки. В итоге мой скилл нарешивания литкодовских задач на время перед белой доской существенно вырос. Можно ли сказать, что если я делал все правильно, я стал лучшим программистом? Или же я стал просто лучшим проходистом собеседований?

Я считаю, что можно.


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


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


Еще один скил, нужный для прохождения интервью — умение объяснить решение задачи. Не написать код и сказать "вот тут мы делаем так", а именно рассказать в виде "сначала итерируемся слева-направо запоминая минимум для каждой точки, потом идем справа-налево поддерживая частичную сумму". Это полезный навык при обсуждении и проектировки решений.

Дада, я все эти вещи начал в себе замечать после того как стал готовиться. Спасибо за ответ!

> действительно попадаются в ежедневной работе (по крайней мере, в Гугле). Да, не каждый день

Это противоречивые утверждения.

"Ежедневная работа" = обычная работа, которую вы делаете.

Как-то выходит, что уже не первый раз пишу комменты к вашим)
Просто пишите про то, с чем моя точка зрения не совпадает.

На leetcode я не решал задачи. Но, учась в лицее, нарешал кучу алгоритмических задач, хотя и не олимпиадного уровня. Плюс в универе они тоже были, но в гораздо меньшем количестве, хотя в целом посложнее. Конечно, как-то сказывается, что я этим занимался в прошлом. Но все-таки за 10 лет работы что-то более-менее алгоритмически сложное приходилось писать раз 5. То, что я раньше делал за полчаса, сейчас займет несколько часов, т.к. навык решения алгоритмических задач сильно притупился.
Зато, если в те времена, я мог написать прогу максимум в 10к строк, т.к. дальше ни другие, ни я просто не смогли бы ее поддерживать и расширять, то сейчас несколько сотен тысяч строк не проблема сделать достаточно читабельными и расширяемыми.

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

Алгоритмические задачи не учат писать читаемый код, не учат разбивать задачу на подзадачи, не учат/практически не учат паттернам, не учат мыслить абстрактно. Для их решения нужно 10, 20, ну 500 строк (почти потолок). Это не тот объем кода, при котором одному человеку будет сильно необходимо заботиться о качестве кода.
Этому учат книги, статьи, видеоматериалы, другие люди, при совмещении с практическим опытом, когда пишешь большие проекты, где, например, надо делать сложные формы под 10 ролей. Или когда ищешь, как упростить или не городить сложную иерархию наследования. Или когда стараешься писать код с учетом того, что требования могут неоднократно поменяться. Или когда думаешь, как ускорить разработку, как лучше избежать написание лишнего, избежать дублирование кода и нужно ли его в данном случае избегать. Или когда думаешь, как вставить новый функционал, о возможности которого автор кода/плагина/фрейворка/системы совсем не позаботился или не подумал.

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

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

Тут наверное надо во многих различных проектах поучаствовать, много различных систем поизучать на разных стеках. Тогда повысится шанс, что в чужом проекте что-то знакомое увидишь и быстрее разберешься.
А так, в случае контор с кучей велосипедов, да и почти в любой, без авторов обычно не разобраться. Имхо, куда больше зависит от того, как написано, а не от навыков нового разработчика.
гммм, да, пожалуй. Может быть, еще опен-сорсовые фреймворки попробовать поковырять, поглядеть на видосы разбора их кода, записать самостоятельно подобный видос, послать создателям, послушать, как они поднимут тебя на смех и может быть объяснят, где ты неправ.
Эт всё мило. Но за 5-10 часов, которые большинство готовы потратить на собесы, не проверяемо. А офер таки надо или делать или нет. Имеем то имеем.
Ох, разумеется это нечестно. Хотя подготовка, что вы описали безусловно сделает вас лучшим программистом (мне помогает).

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

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

Однако вы упускаете objective системы — цель не в том, чтобы нанимать лучших, а в том чтобы максимально исключить false positive. Не нанять хорошего инженера это ничего страшного, а вот нанять плохого — это сказывается на перфомансе очень сильно. И оно вроде так работает, насколько я могу судить.
Вот я из того, что сказал wataru сообщением выше делаю вывод, что очень даже это все честно. Ну, то есть, если мой десятилетний опыт не помог мне решать задачки, которые спрашиваются на собесах гугла и коррелируют с задачками в гугле — значит, все десять лет я работал как бы в другой отрасли и в своем сегодняшнем виде буду бесполезен. У меня от этого никакой фрустрации нет.
Ну окей, а сейчас хочу работать в гугле, значит надо пройти гугловый собес. Открыл литкод — и не закрывай пока штучек 200-300 задачек не нарешается, а на mock-interview не будешь регулярно срывать аплодисменты. Ну, раз надо, будем делать и будем подходить к этому процессу максимально осознанно и вдумчиво, брать будем пониманием, а не зубрежкой.
Вообще, меня очень порадовал ответ о том, что мой ближайший год будет не просто наяриванием тестов на определенный экзамен, но и повысит мой профессионализм как разработчика.
До Facebook у меня не было опыта, кроме стажировок

Да как это у всех так получается?!
Ну так. В FAANG проще попасть после универа чем с опытом. Свежий выпускник + литкод = успех

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

Наушники и требования поставить доску-перегородку за спиной. И уже жить можно.

Ребята, напоминаем, что в понедельник будет еще один эфир: с Натальей Теплухиной, Vue.js core team member, GoogleDevExpret и Senior Frontend Engineer в GitLab.

Наташа расскажет, как перешла во фронтенд посл 30, за 4 года не только выросла в синьора, но и стала обучать других: она аккредитированный GoogleDevExpret, выступает на англоязычных конференциях, пишет статьи и гайды.

Задать Наташе вопрос можно в комментариях в этом посте.

Эфир пройдет тут
До Facebook у меня не было опыта, кроме стажировок, и путь от junior до senior занял два года…
… Мне больше нравится общение с людьми, совместная работа, задавание пути развития продукта…
… Мой приятель перешел с junior на senior за полтора года, так что быстрое продвижение возможно, как и медленное.
— когда в большом IT станут снова цениться инженеры, а не инфлюэнсеры?..
Уже никогда. Времена когда было вообще непонятно как всё это дерьмо заставить работать прошли. Сейчас можно за 2-5-10М $ набрать нужное число индусов и они в принципе взлабают что угодно. Сейчас в основном важно понять за что кто-то готов заплатить.

Нишевые исключения конечно есть, но их мало и будет только меньше.
Столько комментариев и ни одного про то, что facebook необоснованно банит аккаунты «направо и налево»? Я из параллельного мира, где facebook стал исчадием ада, где каждый день любой может быть заблокирован и нет никакой (ни_од_ной) возможности связаться с поддержкой, чтобы разблокировали? Да кому этот сервис вообще нужен, если банят даже честных рекламодателей, работающих на законных основаниях?
Facebook — как сбербанк, с ним либо бабушки с фиолетовыми волосами (странные личности), либо те, кто в него вляпался и теперь сидит…

А всё это я к тому, что всякие сеньоры и джуниоры никак не влияют на ситуацию, прекрасно зная о ней — попали внутрь монстра и молчат, ничего не делают для улучшения — печально, и идти работать в такую контору из-за этого не хочется. Идёт отторжение facebook на уровне пользования.
Sign up to leave a comment.