Java Developer
6.45K subscribers
235 photos
8 videos
12 files
279 links
MAKE JAVA GREAT AGAIN

Мемы: @java_memes
加入频道
Forwarded from In Silico
Есть очень хороший способ проверить, готовы ли вы к наступлению будущего: если все компании мира хотят вас нанять и к тому же готовы платить вам бесконечно много денег — вероятно, вы умеете что-то действительно важное. Если никто вас нанимать не хочет, либо хочет, но не слишком уж сильно, — стоит поскорее начать искать точки роста.

В IT-тусовке, к счастью, собралось достаточное количество занудных людей, готовых систематизировать всё подряд. Поэтому и оценку по приведённому выше критерию сделать просто: компании для этого придумали процесс интервью. Разработчиков в большинстве ситуаций проверяют по набору вечных ценностей: алгоритмическому программированию, system design и, опционально, data science. Первые два пункта универсальны и пригодятся любому, а третий, хоть и опционален, востребован до такой степени, что игнорировать его уже невозможно.

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

1. Алгоритмы и программирование

Умение программировать — оно как умение играть на скрипке, требует практики. Если вы прошли пачку алгоритмических курсов и прочитали томик Кормена, совсем не факт, что вам удастся отлично справляться с решением реальных задач. Вы отлично пишете код только тогда, когда пишете его постоянно. Поэтому решение 200 простых задачек на leetcode.com — отличная инвестиция, и именно этим нужно заниматься в первую очередь, если вы хотите освоить программирование с нуля, выучить новый язык, подготовиться к интервью или просто поддержать программистскую форму.

Но, конечно, можно и посмотреть, и почитать. Два моих видео про алгоритмические секции в Яндексе: задача попроще и задача посложнее. Мой же текст на ту же тему на хабре. Стоит иметь в виду инструкцию от Facebook и, конечно же, книжку от leetcode.com.

Но в первую очередь решайте задачки. Много задачек.

2. System Design

Чтобы стать реально высокооплачиваемым специалистом, нужно уметь строить сложные системы.

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

Есть два неплохих гайда, которые точно стоит почитать: hiredintech и interviewbit.com. Их рекомендуют, например, при подготовке к интервью в Facebook. Ну а я готов рекомендовать их и при подготовке к интервью в Яндекс!

3. Data science

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

Это широкая область, как и system design и метод подготовки тут тоже похожий. Стоит почитать форумы на kaggle (обсуждения задач), записи Open Data Science с тренировок по машинному обучению и просто посты технологических компаний. Например, наши посты про предсказание запроса пользователя, персонализацию Поиска, алгоритмы Палех и Королёв; в целом хаб машинного обучения на Хабре; посты про AlphaGo, AlphaStar (что первый, что второй) и т.п. тоже подходят, да и вообще у DeepMind отличный блог.

При этом не нужно обязательно быть экспертом по глубокому обучению или, скажем, статистическому ML. Хотя, бесспорно, это очень полезно.

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

#career #interview

Алексей Шаграев