Главная

Как подготовиться к собеседованию в Google/Facebook.

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

Поделиться:
 

8+

Я программист с 15-ти летним стажем. В самом начале моего пути(университетские годы) я много учился и работал над алгоритмами. Все свое время обучения в университете у меня была страсть к алгоритмам. После окончания учебы я поехал за границу заниматься исследованиями.

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

1. HackerRank

Этот сайт очень известен в мире программирования — от junior`ов до senior`ов, от программистов до менеджеров.

Image for post

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

2. TopCode

Image for post

TopCoder — одна из первых онлайн «арен», где можно соревноваться в навыках программирования. На TopCoder есть множество интересных алгоритмических задач, которые можно решать прямо в онлайне c помощью встроенного редактора кода.

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

3. Geekforgeeks

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

Image for post

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

4. Leetcode

Еще один популярный сайт для изучения алгоритмов — Leetcode. Количество задач на Leetcode не уступает Hackerrank. Есть 3 основных уровня сложности: легкий, средний и сложный (бывают ситуации, когда простые задачи оказываются очень сложными).

Image for post

Когда я ходил по собеседованиям, мне задавали «легкие» вопросы для разминки, «средние» — для проверки навыков и «сложные» вопросы задавали в таких компаниях, как Facebook/Google. На Leetcode также есть индикаторы, которые измеряют производительность/скорость работы вашего алгоритма.

5.Daily Coding Problem

Я открыл для себя этот ресурс во время просмотра Youtube Channel CS Dojo — блог бывшего сотрудника Google, который уволился, чтобы стать ютубером.

Image for post

В отличие от остальных ресурсов, Daily Coding Problem не имеет списка с различными задачами. Вместо этого вы вводите свой адрес электронной почты и каждый день вам на почту приходит одно задание по программированию.В среднем сложность задач варьируется от easy до medium. Если вы приобретете Premium пакет, то вам также будут присылаться решения.

6. Exercism.io

Если все ресурсы, о которых я рассказывал ранее были больше про алгоритмы, то Exercism — это про программирование в целом.

Image for post

На Exercism есть множество упражнений — они не слишком сложные с точки зрения алгоритмов, но тяжелые в контексте языков программирования:
• Использование условных конструкций и циклов.
• Обработка данных, парсинг.
• Методы разделения, классовая организация
• Обработка ошибок/асинхронный код
Лично использовал этот сайт, чтобы узнать больше об особенностях Golang и Elixir.
Если вы хоть немного понимаете в программировании и желаете изучить новый язык, то Exercism именно для вас.

Заключение.

В этой статье я поделился 6 классными сайтами, на которых вы можете практиковать навыки программирования!
Я считаю, что вам не нужно учить много теории, просто зайдите на Skilled / Hackerrank / Leetcode, если вы хотите попрактиковаться перед собеседованием. Если же вам нужно выучить новый язык программирования — используйте Exercism.

Спасибо за внимание!

8+