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

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

Однако, проработав 3 года, я предпочитаю заниматься продуктами / программным обеспечением, а не исследованиями. Я обратился к технологиям / инжинирингу вместо алгоритмов. Тем не менее, я лично считаю, что понимание алгоритмов по-прежнему очень важно для разработчиков. И я не думаю, что можно пройти собеседование в Google или Facebook, ничего не зная о них!



1. HackerRank

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

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

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

2. TopCode

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

Пользователи, занимающие высокие места в TopCoder, являются очень хорошими программистами и регулярно участвуют во многих соревнованиях по программированию. Люди с самым высоким рейтингом будут вести собственный блог под названием «ЕЖЕНЕДЕЛЬНЫЕ АЛГОРИТМЫ ПЕТРА МИТРИЧЕВА», где они смогут писать о соревнованиях кода, алгоритмах, математике и обо всем, что им нравится.

3. Geekforgeeks

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

Эта страница geekforgeeks выглядит немного… некрасиво, упражнения не очень хорошо классифицированы. Однако в нем есть много решений для распространенных алгоритмов. Каждое решение включает в себя множество различных методов, а также сложность / объем памяти каждого метода. Это очень интересно и полезно читать.

Поэтому иногда вы можете увидеть эту страницу / пример решения популярных алгоритмов домой!

4. Leetcode

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

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

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

Ежедневная проблема кодирования

Эта страница меня представили, когда я смотрел канал на Youtube CS Dojo - сотрудника Google, который бросил свою работу, чтобы работать ютубером.

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

Это также Easy / Medium, которые используются такими компаниями, как Amazon / Google, для собеседований с кандидатами. Если вы приобретете пакет Premium, вам будет предоставлено решение.

Exercism.io

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

Есть много упражнений по Exercism, но эти упражнения не слишком тяжелы для алгоритмов, но тяжелы для использования языков программирования:

  • Используйте if / else, loop.
  • Обработка даты, обработка строк
  • Разделение методов, организация классов
  • Как обрабатывать ошибки, писать асинхронный код

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

Если вы какое-то время занимались программированием, хотите выучить новый язык, выучить новый образ мышления, просто перейдите на Exercism!

В конце концов

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

Я лично считаю, что вам не нужно слишком много учиться, просто зайдите в Skilled / Hackerrank / Leetcode, если вы хотите потренироваться перед собеседованием; Или выберите Exercism, если вам нужно выучить новый язык.

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