Все знают, что для того чтобы устроиться в крупную it компанию (да даже если не в крупную), нужно пройти страшное и ужасное it-собеседование, где будут ̶в̶а̶с̶ ̶у̶н̶и̶ж̶а̶т̶ь̶ алгоритмы, структуры данных, вопросы по платформе и тд. Многих возмущает именно секция с алгоритмами, мол, зачем вы спрашиваете меня как развернуть LinkedList ведь в реальных задачах я никогда с этим не столкнусь! Зачем вы спрашиваете меня эти непонятные сортировки, когда уже есть готовые функции для этого! Зачем вы задаете мне эти глупые олимпиадные задачки для задротов по алгоритмам! Для чего, почему, зачем, какого черта!!?
Когда я только начинала программировать, я тоже не понимала этого. Но теперь, когда прошло много времени и я научилась со всем этим жить и работать, пришло и понимание. Вы должны знать алгоритмы и структуры данных, потому что это заложено в нашей профессии. Со временем, проведенным за программированием, вы начнете замечать, что у вас просто меняется способ мышления и все эти страшные алгоритмические задачки перестают казаться вам такими уж сложными. Вы поймете, где и как применять паттерны. Ваш код станет структурированным, простым и понятным.
Вопросы, которые задаются на типичных собеседованиях просто позволяют прощупать вашу базу, потому что собеседующим нужно как-то понять, что вы из их “тусовки” и что вы сможете понимать и работать над задачами, которые вам предоставят в данной компании. Это упорядочивание знаний.
Поэтому если вы говорите, что в программировании уже пять лет, но не можете повернуть в обратном направлении долбанный связный список - то возможно, вы занимались чем-то не тем.
За время существования канала меня уже много раз спрашивали о том, как я попала в сферу it, как устроиться программистом, что нужно знать, как готовиться, поэтому я решила собрать все материалы в кучу и предоставить их вам. В основном я буду опираться на Яндекс, так как именно от них у меня накопилось больше всего статей и все таки это большая компания со сложными собеседованиями, которые можно поставить в пример, но по сути, если вы усвоите всю нижеприведенную информацию, проблем с устройством на работу в сфере it у вас быть не должно. Грубо говоря, можете пройти в Яндекс = можете пройти везде.
Так что если вы хотите укрепить свои знания, начать понимать алгоритмы, то изучите данные материалы:
Полезные статьи:
Введение в анализ сложности алгоритмов
Алгоритмы и структуры данных — шпаргалка
Направляю также на небольшой яндекс контест
Там есть 4 задачки, которые очень похожи на задачи с яндекс секций, первая уже решена (чтобы можно было ознакомиться с самой системой).
Контест бесконечный - сроков для решения нет. Можно возвращаться к тренировке в любое время.
Примеры задач так же из яндекса:
12 алгоритмических задач отборочного раунда и их разборы
Какие алгоритмические задачи нужно уметь решать
Немного потренироваться в решении схожих задач, помогут внешние ресурсы:
1. Codeforces
2. Interviewbit
3. Leetcode
4. Hackerrank
5. Topcoder
Теория:
Алгоритмы1
Алгоритмы2
Алгоритм «Палех»
Видео-лекции Стэнфорда - очень доступные и интересные, у них есть курс на Coursera
В наиболее сжатом виде основы
Алгоритмы и структуры данных поиска
Post #45
2.02K