Получи случайную криптовалюту за регистрацию!

Хочу в Google

Логотип телеграм канала @hiremegoogle — Хочу в Google Х
Логотип телеграм канала @hiremegoogle — Хочу в Google
Адрес канала: @hiremegoogle
Категории: Технологии
Язык: Русский
Количество подписчиков: 2.41K
Описание канала:

🎙 Рассказываю о том как прохожу собеседования на позицию программиста в крупных ИТ компаниях мира, в том числе в Meta, Google, Amazon .
📍 London, United Kingdom
📬 Насчет сотрудничества и обратной связи писать сюда - @hiremegoogle_feedback_bot

Рейтинги и Отзывы

4.00

2 отзыва

Оценить канал hiremegoogle и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

2

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения 7

2021-02-11 09:01:02 Хороший программист. Часть 3.

Это продолжение серии постов про хорошего программиста. Это последняя глава в этой серии.

Учи концепции, а не технологии.

Сегодня ты выучишь TypeScript, а завтра весь мир пишет на Flow. Сегодня ты выучишь RabbtMQ, а завтра весь мир использует Kafka. Мир технологий очень скоротечный. Поэтому не зацикливайся на технологиях, а изучай концепции которые лежат в основе них. Поняв концепцию тебе легче будет освоить похожие технологии. Это как если ты умеешь писать на одном языке программирования, то ты автоматический умеешь писать и на других, так базовые концепции везде одни и те же (переменные, классы, функции и т.д.).

Как развить?

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

Коммуницируй.

Я не смогу вам в полной мере объяснить насколько это важный пункт. 90% проблем в проектах можно было бы избежать если бы члены команды (хех члены) коммуницировали эффективно.

• До дедлайна осталось 2 недели, а фичи еще не готовы?! Коммуницируй! Расскажи об этом своему менеджеру, обсудите как это исправить.
• На встрече ты не понял что сказал клиент?! Коммуницируй! Спроси что они имели ввиду, убедись что вы поняли друг друга.
• Ты нашел код который надо поменять, но не уверен в правильности решения?! Коммуницируй! Найди чувака который написал этот кусок кода и поделись со своим мнением.

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

Как развить?

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

Постоянно учись.

Знаний никогда не бывает достаточно.

Как развить?

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

Расставляй приоритеты.

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

Как развить?

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

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

Решай проблемы.

Задача программиста не подружить PHP с GraphQL, а сделать так чтобы пользователь смог купить себе велосипед у вас на сайте. Если пользователь не может купить у вас велосипед на сайте, то он уйдет к другому продавцу, не важно как вы делаете запросы, через GraphQL или Ajax.

Как развить?

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

#story
2.0K views06:01
Открыть/Комментировать
2021-02-09 09:00:51 Хороший программист. Часть 2.

Это продолжение серии постов про хорошего программиста.

Бери инструменты по надобности.

Не надо писать интернет магазин на Java, не надо использовать React для одностраничного лендинга, не нужно заказывать Uber чтобы съездить за хлебом. Не бывает золотого молотка.

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


Аргументируй.

Почему ты использовал set вместо массива, почему MySQL, а не PostgreSQL, почему мы пользуемся Google Cloud а не AWS, ты должен уметь конструктивно аргументировать.

Помню, я спрашивал как-то препода по JavaEE: “А почему для запуска Java проектов мы используем сервер JBoss а не Tomcat?”, в ответ он мне сказал “Потому что JBoss круче!”. Так вот, никогда так не делай, это очень плохой пример аргументации.

Как развить?

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

Мир не делиться только на черное и белое.

Создать переменное которое используется только в одном месте чтобы не писать комментарии или лучше написать комментарии и снести переменную?!

fasterSpeed = step*2
moveUp(fasterSpeed)


vs

// Moves 2 times faster
moveUp(step*2)


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

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

Как развить?

Code review, Leetcode, не зацикливайся на одном решении и попытайся найти учитывать альтернативные решения. Всегда будь открыт обратной связи и альтернативным мнениям.

Продолжение следует..

#story
1.5K views06:00
Открыть/Комментировать
2021-02-08 09:00:29 Хороший программист. Часть 1.

Пост получился длинным поэтому тут будут 3 части.

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

Слушай, я был старшим программистом в Казахстане, был старшим программистом в Польше, являюсь старшим программистом в Англии, поэтому думаю я имею полное моральное право трындеть на эту тему.

Учи алгоритмы и структуры данных.

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

Как развить?

Решай задачки на Leetcode, слушай курсы и лекции по теме.

Люби копаться в чужом коде.

Давайте признаемся что неотъемлема часть работы программиста это умение копировать чужой код (copy/paste). Скорее всего то что ты хотел сделать, уже кто то реализовал и сделал это куда лучше и умнее. Это нормально копировать чужой код, до тех пор пока ты понимаешь что там написано.

Чтобы эффективно копировать чужой код, нужно уметь в нем копаться и уметь искать по нему.

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

В Facebook и Google искать и копировать чужой код это ежедневная норма.

Как развить?

Покопайтесь в коде вашего проекта, фреймворка или библиотеки, попробуйте понять как он работает, как данные приходят в систему, как они обрабатываются и хранятся. Делайте code review с коллегами.

Компилируй код в голове.

Бывают случаи когда код нельзя запустить или изолировать или это все долго делать (code review, debugging). Тогда нужно уметь компилировать код в голове, идти линия за линией и понимать что делает программа. Это помогает быстрее находить баги, делать рефакторинг, понимать чужой код и т.д.

Как развить?

После того как написал код пытайся понять как он работает, не запуская его, потом перепроверяй себя, делай code review, решай задачки на Leetcode.

Тестируй код.

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

Мы как то мигрировали 5-6 проектов с Python 2 на Python 3 для Google. Мы запускали тесты и фиксили там где валились тесты и так успешно мигрировали все проекты.

Как развить?

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

Продолжение следует..

#story
1.4K views06:00
Открыть/Комментировать
2021-02-05 09:00:54 Как я выбрил команду в Facebook.

Свершилось, я выбрал себе команду. У меня было 2 фаворита:
Shops - ребята которые оптимизируют магазин фейсбука под разные платформы.
Workplace - команда работает над одной очень важной фичей (которой пользуется сам Джесси Айзенберг) внутри корпоративной социальной сети.

Shops

Чем привлекателен:
• Ключевой продукт, возможность проявить себя.
• Много старичков, можно набраться опыта.
• Команда маленькая, больше ответственности и быстрее рост.
• Интересен концепт оптимизации продукта под разные платформы.

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

Workpalce

Чем привлекателен:
• Команд работает над фичей которым пользуется высшее руководство FB (и даже Энди Сэмберг).
• Команда маленькая, ребята толковые. Приятный менеджер у команды.
• Знакомый продукт которым сам пользуюсь.

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

Кем ты там будешь работать?

Короч оказывается есть типы разработчиков как System Engineer и Product Engineer.
System Engineer - делает всякие сервисы типа очередей, базы данных, системы аналитики и логирования, highly scalable, distributed mombo-jambo. Обычно работают на Java и C++.
Product Engineer - делает то что непосредственно видит и трогает пользователь, это фронт, это API, это какая-то бизнес логика. Обычно работают на Hack (кастомный PHP), React, GraphQL.

Есть еще понятие Specialist и Generalist.
Specialist - это батьки в какой либо определённой технологии. К примеру, Java разработчик или C++ разработчик.
Generalist - это чувак который умеет все, но по чуть-чуть. К примеру, PHP разработчик который могет и во фронтенды.

Так вот, оказалось что я Product Generalist по своей природе и это моя роль в команде.

#story
1.5K views06:00
Открыть/Комментировать
2021-02-01 09:00:31 Меня могут уволить.

Теоретически это возможно, так что технически это не кликбейт. 

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

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

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

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

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

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

Готовлю пост про “Хорошего программиста”, так что следите за каналом. 

#story
1.6K views06:00
Открыть/Комментировать
2021-01-27 12:26:35 На канале уже более 1000 подписчиков.

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

Немного фактов о канале.

• Канал был создан в ноябре 2019 года. Тогда это был мой дневник подготовки к собеседованиям.
• Первые 10 подписчиков были мои друзья и родственники которых я сам подписал на канал.
• Больше половины подписчиков активно читают каждый пост. Я думаю что это хорошая конверсия.
• У большей части аудитории канал стоит на мьюте.
• Подписчики делятся постами обычно в личку, очень редко публично.
• 60-70% канала это программисты у которых есть работа. Остальные это студенты и простые смертные.

Q&A

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

А пока решил сделать сессию ответы/вопросы. Можете задавать вопросы которые вы стеснялись задать по тематике канала в комментариях. Буду ждать вас там
1.7K views09:26
Открыть/Комментировать
2021-01-19 09:00:41 5 причин почему тебя не пригласили на интервью в Facebook или Google.

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

1. Плохо составленное резюме. 

Если  тебя отклонили даже не пригласив на собеседование значит ты не прошел процесс Скрининга резюме. Иногда это делают люди, чаще это делают машины, поэтому важно правильно составить резюме, чтобы твое резюме не выпилили из системы даже не показав его рекрутеру. Подробнее про резюме тут https://t.me/hiremegoogle/5.

2. Твой опыт это салат винегрет (мля, я знаю что это не салат винегрет на иконке, че докопался).

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

Попытайся выбрать что то одно и подгоняй свое резюме под это. 

3. Твой стэк это какие-то фреймворки.  

Все твои проекты только на Flutter, или только React Native, или только Django, или только Laravel? Это звоночек, так как это показывает тебя как человека который не умеет глубоко разбираться в технологиях и использует фреймворки как золотой молоток (золотой молоток  - уверенность в полной универсальности какого-либо решения и применение этого решения к любым задачам).

4. Твой опыт не соответствует требованиям.   

Не отходя от кассы, ты пишешь на React Native, но откликаешься в Google (Google не использует React)? Ты пишешь на Flutter, но откликаешься на iOS разработчика (iOS разработчики пишут на Swift или ObjectiveC, не обманывай себя)? Ты откликаешься на позицию младшего разработчика со стажем 30 лет (чем ты занимался все это время)? Ну кароч ты понял. 

5. Вся мировая экономика полетела в тартарары из за того что какой-то чувак съел летучую мышь. 

Прикинь, оказывается и такое бывает. Опасный вирус рушит мировую экономику, самолеты не летают, офисы не работают, нефть стоит $0, люди стоят в очереди чтобы стать доставщиками пиццы. 

Многие крупные компании замораживают найм для определенных позиций или регионов в связи с плачевный экономической ситуацией. Google не нанимает в офис в Цюрихе, Facebook не берет никого младше E5, Airbnb и Uber сосут палец. Вся эта ситуация меняется каждый день, поэтому читаем новости прежде чем откликаться.

#interviewtip #resume
2.1K viewsedited  06:00
Открыть/Комментировать
2021-01-15 09:00:45 Про недвижимость в Лондоне?

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

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

Лондон очень большой и очень разный. Поэтому от того что вы ищите и где зависит очень многое. 

Что мы искали?

• 3 комнатная квартира (2 bedroom) 
• 50-70 квадратов 
• Балкон
• Ванна (bath tub)
• Парк или зеленая зона в шаговой доступности
• Тихий район
• Хорошая отделка
• Можно свободно перемещаться с коляской
• Хорошая вентиляция и без запахов
• Желательно с хорошим видом 
• Быстрый доступ к центру города

Где мы искали?

• Camden
• St John's Wood
• Hampstead
• Chiswick
• Kensington
• Richmond
• Battersea

Сколько это все стоит?

Мы искали квартиру в промежутке £1700-2300.

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

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

Вилка

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

К примеру:
• Есть хата в центре за отличную цену, с хорошей квадратурой, но с дырявыми окнами. 
• Есть отличная хата в прекрасном районе, быстрый доступ в центр города, отличная квадратура, но стоит £2600. Но я же программист, а не дочь президента. 
• Есть отличная хата в хорошем районе, с отличной квадратурой, с хорошей ценой, новая, но в центр города ехать с пересадкой. 
• Есть супер хата, рядом с рекой, с балконом, с отличной отделкой, большая и светлая, рядом есть парк, но ее уже сняли. 

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

∑ Итоги

C недвижимостью в Лондоне все очень грустно, особенно с ограниченным бюджетом и пандемией. Все либо ветхое, либо хрен знает где, либо “а все уже, раньше надо было”. 

Мы будем теперь оформлять бумаги и готовиться у переезду.

#story
1.7K views06:00
Открыть/Комментировать
2021-01-11 09:00:44 Выбор команды.

Прошло чуть больше месяца как я начал работать в Facebook. Это рассказ о том как это было.

Все еще прохожу Bootcamp, так как он сдвинулся немного из-за праздников. За это время я закрыл 4 задачи, написал 302 строк кода и прослушал миллиард лекций про разработку в компании.

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

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

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

Все ещё ищем квартиру. Но об этом как-нибудь в другой раз.

#story
1.7K views06:00
Открыть/Комментировать