Java Марафон 2
Новому джава марафону быть. Про предыдущий можно прочитать здесь — https://yangx.top/java_developer/424. Новогодние праздники выдались продуктивными, и я почти дописал программу марафона. Подробности будут через неделю, когда все начнут выходить из спячки. Кодовое название марафона Java Core Challenge
Новому джава марафону быть. Про предыдущий можно прочитать здесь — https://yangx.top/java_developer/424. Новогодние праздники выдались продуктивными, и я почти дописал программу марафона. Подробности будут через неделю, когда все начнут выходить из спячки. Кодовое название марафона Java Core Challenge
Как быть востребованным разработчиком
Один из самых крутых постов, которые прочитал за прошлый год.
Один из самых крутых постов, которые прочитал за прошлый год.
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
Алексей Шаграев
В 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
Алексей Шаграев
Про важность коммьюнити
В жизни очень важны знакомства и общение! В профессиональной среде это так же ценно. Реально, нет ни одной специальности, в которой не важно поддерживать связь и состоять в каком-то сообществе с коллегами (даже у таксистов есть свои чаты).
Расскажу про свой опыт: когда проходил первый курс по Джаве, я познакомился с кучей классных ребят со всей России. У каждого из нас своя история, почти все пришли в программирование из других сфер, для кого-то это был первый опыт поиска работы.
Хорошо, что после курса, мы не потерялись, и вовремя поняли, как можем быть полезны друг другу в дальнейшем. У нас организовался чат, который существует до сих пор. Нас больше 30 человек, которые теперь работают в 30 крутых и неочень(Рамблер) компаниях. Конечно же мы делимся друг с другом инсайдами: обсуждаем внутреннюю кухню, зп, собеседования, технологии, проекты в этих компаниях. Это очень помогает!
У меня на памяти несколько примеров, когда ребята в чате узнавали о вакансиях в других компаниях, где тоже работали выпускники наших курсов, и переходили туда на более высокую зп. Такие знакомства помогают решиться на релокацию. Двое парней сейчас работают в Берлине, они также знакомы между собой благодаря чату. Теперь у нас международное коммьюнити. Еще периодически мы устраиваем встречи в Питере и в Москве, это всегда очень шумно и весело!
Поверьте, такие знакомства с единомышленниками из вашей профессиональной среды могут быть также полезны, как и сами курсы/обучения, после которых можно как раз стать частью подобного активного коммьюнити. Не теряйте контакт! И спасибо вам, парни и лейдис из чата выпускников!
В жизни очень важны знакомства и общение! В профессиональной среде это так же ценно. Реально, нет ни одной специальности, в которой не важно поддерживать связь и состоять в каком-то сообществе с коллегами (даже у таксистов есть свои чаты).
Расскажу про свой опыт: когда проходил первый курс по Джаве, я познакомился с кучей классных ребят со всей России. У каждого из нас своя история, почти все пришли в программирование из других сфер, для кого-то это был первый опыт поиска работы.
Хорошо, что после курса, мы не потерялись, и вовремя поняли, как можем быть полезны друг другу в дальнейшем. У нас организовался чат, который существует до сих пор. Нас больше 30 человек, которые теперь работают в 30 крутых и неочень(Рамблер) компаниях. Конечно же мы делимся друг с другом инсайдами: обсуждаем внутреннюю кухню, зп, собеседования, технологии, проекты в этих компаниях. Это очень помогает!
У меня на памяти несколько примеров, когда ребята в чате узнавали о вакансиях в других компаниях, где тоже работали выпускники наших курсов, и переходили туда на более высокую зп. Такие знакомства помогают решиться на релокацию. Двое парней сейчас работают в Берлине, они также знакомы между собой благодаря чату. Теперь у нас международное коммьюнити. Еще периодически мы устраиваем встречи в Питере и в Москве, это всегда очень шумно и весело!
Поверьте, такие знакомства с единомышленниками из вашей профессиональной среды могут быть также полезны, как и сами курсы/обучения, после которых можно как раз стать частью подобного активного коммьюнити. Не теряйте контакт! И спасибо вам, парни и лейдис из чата выпускников!
JAVA CORE CHALLENGE
20 января запускаю Java челлендж для начинающих. Он продлится 4 недели. За это время участники познакомятся со средой разработки, изучат основы Java, научатся избегать типичные ошибки в коде, решат множество задач и получат код ревью. А так же самое ценное – прокачают навыки самостоятельной работы, познакомятся с новыми людьми из будущей профессиональной среды и поймут, куда двигаться дальше.
Акцент сделаем на четырёх важнейших темах, каждой из которой уделим одну неделю, и задачи будем решать соответствующие. План такой:
1. основные типы данных;
2. условные операторы и циклы;
3. строки;
4. массивы.
Цена участия за месяц курса – 990 рублей. Вернуть деньги, если материал покажется вам неподходящим/сложным/лёгким, можно в первые два дня. Количество мест на курсе ограничено.
Позже я расскажу более подробно о том, как будет проходить работа и чего ожидать от курса.
20 января запускаю Java челлендж для начинающих. Он продлится 4 недели. За это время участники познакомятся со средой разработки, изучат основы Java, научатся избегать типичные ошибки в коде, решат множество задач и получат код ревью. А так же самое ценное – прокачают навыки самостоятельной работы, познакомятся с новыми людьми из будущей профессиональной среды и поймут, куда двигаться дальше.
Акцент сделаем на четырёх важнейших темах, каждой из которой уделим одну неделю, и задачи будем решать соответствующие. План такой:
1. основные типы данных;
2. условные операторы и циклы;
3. строки;
4. массивы.
Цена участия за месяц курса – 990 рублей. Вернуть деньги, если материал покажется вам неподходящим/сложным/лёгким, можно в первые два дня. Количество мест на курсе ограничено.
Позже я расскажу более подробно о том, как будет проходить работа и чего ожидать от курса.
Работа в NEXIGN
История Паши из чата выпускников про то, как он год трудился в Nexign. Энджой
Жила себе в городе на Неве компания Петер-Сервис. Пилила биллинговые решения для Мегафона, а на запад торговали какие-то легасёвые решения. Потом собралась с мыслями, взяла кредит в охулиард, сделала ремонт в новом офисе с проектом от ребят, которые для JetBrains офис пилили, замутила ребрендинг и стала Nexign. Nexign открыли кадровый набор в R&D отдел (Research & Developmet - ищут перспективные разработки и проводят модернизацию). Чтобы покончить с легаси и уже выкатить полноценный продукт с точками кастомизации, микросервисами, куберами и еже с ними.
Гуляли раз с супругой ночью по Санкт-Петербургу. Встретили моего одноклассника с девицей, которая, как оказалось HR рекрутер. Так я и попал в Nexign, в команду процессов. Процессы — это тупо BPMN-диаграммы на Камундовском движке, работают как оркестровщики микросервисов. Это был титанический труд — полгода овертайма, работа по выходным. Мы даже выкатили годный релиз. А потом компанию продали и тихонечко всё начало скатываться. Амдоксовских топовых менеджеров по разработке, которых недавно скупили, резко попросили уйти. А вместо выхода на международный рынок компания стала держать направление на СНГ, и народ из R&D потихоньку разбрёлся кто куда.
За этот год знатно прокачался в микросервисах, в архитектурных решениях. Но былой драйв и задор команды ушли и пришлось обновлять резюме. В самой компании остались крутые и даже очень крутые проекты, но неприязнь к менеджменту взяла своё. Из плюсов это топовый HR бренд, девочки на уровне работают. Из минусов: с проектом можно не угадать. Компания стабильно растёт, по окладам не обижают, в плане роста и менторинга тоже всё хорошо. Недооцененный джун в три раза по зп вырос за год (батрачил как чёрт). Чётких 8 из 10 уходят Nexign.
История Паши из чата выпускников про то, как он год трудился в Nexign. Энджой
Жила себе в городе на Неве компания Петер-Сервис. Пилила биллинговые решения для Мегафона, а на запад торговали какие-то легасёвые решения. Потом собралась с мыслями, взяла кредит в охулиард, сделала ремонт в новом офисе с проектом от ребят, которые для JetBrains офис пилили, замутила ребрендинг и стала Nexign. Nexign открыли кадровый набор в R&D отдел (Research & Developmet - ищут перспективные разработки и проводят модернизацию). Чтобы покончить с легаси и уже выкатить полноценный продукт с точками кастомизации, микросервисами, куберами и еже с ними.
Гуляли раз с супругой ночью по Санкт-Петербургу. Встретили моего одноклассника с девицей, которая, как оказалось HR рекрутер. Так я и попал в Nexign, в команду процессов. Процессы — это тупо BPMN-диаграммы на Камундовском движке, работают как оркестровщики микросервисов. Это был титанический труд — полгода овертайма, работа по выходным. Мы даже выкатили годный релиз. А потом компанию продали и тихонечко всё начало скатываться. Амдоксовских топовых менеджеров по разработке, которых недавно скупили, резко попросили уйти. А вместо выхода на международный рынок компания стала держать направление на СНГ, и народ из R&D потихоньку разбрёлся кто куда.
За этот год знатно прокачался в микросервисах, в архитектурных решениях. Но былой драйв и задор команды ушли и пришлось обновлять резюме. В самой компании остались крутые и даже очень крутые проекты, но неприязнь к менеджменту взяла своё. Из плюсов это топовый HR бренд, девочки на уровне работают. Из минусов: с проектом можно не угадать. Компания стабильно растёт, по окладам не обижают, в плане роста и менторинга тоже всё хорошо. Недооцененный джун в три раза по зп вырос за год (батрачил как чёрт). Чётких 8 из 10 уходят Nexign.
Забыл добавить коменты к предыдущему посту, поэтому держите сообщение от Саши из Nexign. Пост не для тех, кто только начал учить джаву, а давно в теме айти. Контент 18+
Nexign очень старается быть топом среди IT-компаний, но не везде это ей удается. У нас модный офис, печеньки, кофе, небольшой зал, проводятся митинги, своя "соц. сеть". Топ-компания, но со своим набором сотрудников. Компания набрала разных спецов для своего R&D и раздула рынок зарплат - джун-мидл 150-200к. Но с R&D ничего не вышло и многие ушли. Была история, когдая целая команда из 26 человек встала и ушла.
При этом, старую часть компании "легаси" обделяют. Хотя только "легаси" деньги и приносит. Плюс, на мой взгляд, страдает качество работников. В смысле, тут работают хорошие люди, но многим 40+ и нет мотивации пилить современные решения. Также некоторые просто сидят на зп и хорошо если закрывают свои таски. Бывает возьмет человек небольшую задачу и сидит с ней несколько месяцев. Есть кого взяли и оставили после испытательного строка, но совершили ошибку и теперь просто так уволить этого человека нельзя. А вот работать с такими "работникоми" бывает очень некомфортно. Молодые из "легаси" потихоньку уходят, т.к. задач крутых мало,а зп сильно не повышают. Мне, например, повысили только как контрофер.
Но опять же, все очень зависит от команды и проекта, поэтому есть определенная рулетка. 4 из 7 нексиков (внутренняя валюта) отходит Nexign
Nexign очень старается быть топом среди IT-компаний, но не везде это ей удается. У нас модный офис, печеньки, кофе, небольшой зал, проводятся митинги, своя "соц. сеть". Топ-компания, но со своим набором сотрудников. Компания набрала разных спецов для своего R&D и раздула рынок зарплат - джун-мидл 150-200к. Но с R&D ничего не вышло и многие ушли. Была история, когдая целая команда из 26 человек встала и ушла.
При этом, старую часть компании "легаси" обделяют. Хотя только "легаси" деньги и приносит. Плюс, на мой взгляд, страдает качество работников. В смысле, тут работают хорошие люди, но многим 40+ и нет мотивации пилить современные решения. Также некоторые просто сидят на зп и хорошо если закрывают свои таски. Бывает возьмет человек небольшую задачу и сидит с ней несколько месяцев. Есть кого взяли и оставили после испытательного строка, но совершили ошибку и теперь просто так уволить этого человека нельзя. А вот работать с такими "работникоми" бывает очень некомфортно. Молодые из "легаси" потихоньку уходят, т.к. задач крутых мало,а зп сильно не повышают. Мне, например, повысили только как контрофер.
Но опять же, все очень зависит от команды и проекта, поэтому есть определенная рулетка. 4 из 7 нексиков (внутренняя валюта) отходит Nexign
Подкасты по Java
В комментариях к посту https://yangx.top/java_developer/404 уже писали кто какие подкасты слушает. Но за год какой-то произошёл подкастерский бум, их стало намного больше. Вот несколько новых джавовых подкастов.
Радио Платформа
Всё об it и backend-разработке. Ссылка на пилотный выпуск "Backend Engineer" https://yangx.top/radioplatforma/4
Javaswag
Интервью с крутыми спецами сферы. Первый выпуск с Евгением Борисовым https://yangx.top/javaswag/561
Паша + Слава
Хардкорный подкаст, мастадонтам понравится. Выпуск "Новогодний" https://yangx.top/ps_podcast/16
Разбор полётов
Совсем не новый подкаст, но это классика. Выпуск про искусственный интеллект https://razborpoletov.com/2019/07/episode-206.html
Кидайте в коменты, какие подкасты вы слушаете. И, вообще, слушаете ли вы подкасты?
В комментариях к посту https://yangx.top/java_developer/404 уже писали кто какие подкасты слушает. Но за год какой-то произошёл подкастерский бум, их стало намного больше. Вот несколько новых джавовых подкастов.
Радио Платформа
Всё об it и backend-разработке. Ссылка на пилотный выпуск "Backend Engineer" https://yangx.top/radioplatforma/4
Javaswag
Интервью с крутыми спецами сферы. Первый выпуск с Евгением Борисовым https://yangx.top/javaswag/561
Паша + Слава
Хардкорный подкаст, мастадонтам понравится. Выпуск "Новогодний" https://yangx.top/ps_podcast/16
Разбор полётов
Совсем не новый подкаст, но это классика. Выпуск про искусственный интеллект https://razborpoletov.com/2019/07/episode-206.html
Кидайте в коменты, какие подкасты вы слушаете. И, вообще, слушаете ли вы подкасты?
Java Developer
JAVA CORE CHALLENGE 20 января запускаю Java челлендж для начинающих. Он продлится 4 недели. За это время участники познакомятся со средой разработки, изучат основы Java, научатся избегать типичные ошибки в коде, решат множество задач и получат код ревью.…
Итак, ребята, инфа для тех, кто заинтересовался марафоном для начинающих. О том, кому он будет полезен, как будет проходить, чего от него ожидать, и что получат те, кто реализует свои планы.
Как будет проходить
Дам доступ в приватный чат и канал. В канал буду выкладывать материалы и домашку, а в чате обсуждать задания и непонятные моменты.
Какие темы будут затронуты
Будем изучать материалы и решим много задач на 4 темы: операторы, циклы, строки, массивы. В конце — попрактикуемся с гитом и в парном код ревью. И те, кто выполнят все задания, получат ревью кода, почёт, уважение и кайф от проделанной работы.
Сколько времени нужно потратить
В среднем 1-2 часа в день. Эффективность курса на 90% зависит от каждого. Поэтому если больше выделишь времени = больше прокачаешься.
Кому полезно
Если хотите попробовать себя в Java, изучить основы или повторить их, понять стоит ли учить дальше, то этот курс для вас.
Кому не подойдёт
Если вы хотите прокачаться в многопоточке, научиться работать со спрингом или подготовиться к собесу, то этот челлендж вам не подойдёт.
Почему платно
Мотивация. Для меня это мотивация отнестись ответственно и сделать всё максимально круто и правильно, подготовить материалы и внимательно всё проверять. А для участников это мотивация заниматься и пройти курс до конца. Я сам забивал на многие бесплатные, хоть и полезные курсы, уроки, рассылки. Знаем:)
Стоимость участия 990 рублей.
Как записаться
Для записи пишите @zybkin
После оплаты, я дам ссылу на приватный канал и добавлю в чат участников. Там можно будет обсуждать домашние задания и помогать друг другу.
Как будет проходить
Дам доступ в приватный чат и канал. В канал буду выкладывать материалы и домашку, а в чате обсуждать задания и непонятные моменты.
Какие темы будут затронуты
Будем изучать материалы и решим много задач на 4 темы: операторы, циклы, строки, массивы. В конце — попрактикуемся с гитом и в парном код ревью. И те, кто выполнят все задания, получат ревью кода, почёт, уважение и кайф от проделанной работы.
Сколько времени нужно потратить
В среднем 1-2 часа в день. Эффективность курса на 90% зависит от каждого. Поэтому если больше выделишь времени = больше прокачаешься.
Кому полезно
Если хотите попробовать себя в Java, изучить основы или повторить их, понять стоит ли учить дальше, то этот курс для вас.
Кому не подойдёт
Если вы хотите прокачаться в многопоточке, научиться работать со спрингом или подготовиться к собесу, то этот челлендж вам не подойдёт.
Почему платно
Мотивация. Для меня это мотивация отнестись ответственно и сделать всё максимально круто и правильно, подготовить материалы и внимательно всё проверять. А для участников это мотивация заниматься и пройти курс до конца. Я сам забивал на многие бесплатные, хоть и полезные курсы, уроки, рассылки. Знаем:)
Стоимость участия 990 рублей.
Как записаться
Для записи пишите @zybkin
После оплаты, я дам ссылу на приватный канал и добавлю в чат участников. Там можно будет обсуждать домашние задания и помогать друг другу.
Тест на пиво
Как понять на собеседовании, что вам подходит команда, люди, которые вас интервьюируют? Подумайте, смогли бы вы пойти с ними вечером после работы выпить пивка, поиграть в страйкбол, боулинг. Было бы вам с ними комфортно, интересно?
Как понять на собеседовании, что вам подходит команда, люди, которые вас интервьюируют? Подумайте, смогли бы вы пойти с ними вечером после работы выпить пивка, поиграть в страйкбол, боулинг. Было бы вам с ними комфортно, интересно?
Сегодня в 17:00 я проведу трансляцию, в которой подробнее расскажу о предстоящем курсе Java Core Challenge. Трансляция будет полезна участникам и тем, кто заинтересовался, но пока не решился, тк возникли какие-то вопросы. Расскажу о том, для какого уровня подготовки подойдет этот курс и что именно он вам даст. Ну и помимо этого, отвечу на ваши вопросы в прямом эфире. До связи:)
Ссылка на трансляцию:
https://youtu.be/OI1d958YTSI
Ссылка на трансляцию:
https://youtu.be/OI1d958YTSI
YouTube
JAVA CORE CHALLENGE
Как выучить что-то новое
Пост делал для участников Java Core Challenge, но поделюсь со всеми)
Я знаю, что по окончании университета, а иногда и раньше, многие теряют навык обучения. Мы забываем, как сосредотачиваться на одном деле и как запоминать новую информацию, потому что зачастую такой нужды больше нет. Но уметь УЧИТЬСЯ это 100% навык, без которого не возьмут в будущее.
Когда я начал плотно учить джаву, я поменял всё расписание дня под это дело на какое-то время. Планировал, какие материалы буду изучать каждый день, завёл для учебы новый блокнот, куда записывал многое от руки. В общем, создал новые привычки , для того чтобы туда комфортно вписалось обучение.
Было бы здорово, если каждый из вас вынесет из этого курса столько пользы, сколько вам необходимо, а может даже больше.
Поэтому я хочу поделиться с вами рабочими приёмами, которые помогут легче и эффективнее усвоить новый материал:
1. Пишите конспекты
Постарайтесь завести тетрадь/блокнот, куда сможете записывать краткую выжимку из прочитанного теоретического материала. Серьезно! Все же знают, как написание помогает запоминанию.
Если время сильно ограничено, запишите в конце дня пару пунктов или тем, которые выучили или прочли за этот день. Это хорошо упорядочит информацию в голове
2. Повторяйте изученное перед сном
Постарайтесь делать так, чтобы последней информацией, которую вы получите за день, была информация по теме курса, а не сериалы, новости и тд. Это очень поможет усвоению!
3. Не делать несколько дел одновременно
Решать задачу, читать материал желательно без видосов и сериалов на фоне. А листать ленту новостей и переписываться приятнее без отвлечений на обучение!
Лучше выделить 30 минут на прочтение главы и сделать это быстро и хорошо, чем тупить над ней час, отвечая друзьям в тг или отвлекаясь на ленту. Так мы сэкономим своё время.
4. Отложить телефон как можно дальше
Если есть возможность, читайте материалы с ПК, чтобы не отвлекаться на уведомления и не заходить в перерывах в привычные приложения. Если получится читать теорию только с телефона – ставьте авиарежим.
5. Запланируйте специально 2 часа в день
Попробуйте внести их в план дня заранее, так точно будет удобнее. Например, я знаю, что сегодня у меня свободный вечер, так что выделю два часа на обучение после рабочего дня, а послезавтра вечером у меня встреча с друзьями, значит выделю час утром перед работой на обучение и час в рабочее время, если занятость позволяет.
Время на обучение не найдется, если специально не освободить его от других дел.
6. Не бойтесь задавать вопросы
Если вам что-то непонятно — пишите, спрашивайте, докапывайтесь до сути. И помните, глупых вопросов не бывает.
Пост делал для участников Java Core Challenge, но поделюсь со всеми)
Я знаю, что по окончании университета, а иногда и раньше, многие теряют навык обучения. Мы забываем, как сосредотачиваться на одном деле и как запоминать новую информацию, потому что зачастую такой нужды больше нет. Но уметь УЧИТЬСЯ это 100% навык, без которого не возьмут в будущее.
Когда я начал плотно учить джаву, я поменял всё расписание дня под это дело на какое-то время. Планировал, какие материалы буду изучать каждый день, завёл для учебы новый блокнот, куда записывал многое от руки. В общем, создал новые привычки , для того чтобы туда комфортно вписалось обучение.
Было бы здорово, если каждый из вас вынесет из этого курса столько пользы, сколько вам необходимо, а может даже больше.
Поэтому я хочу поделиться с вами рабочими приёмами, которые помогут легче и эффективнее усвоить новый материал:
1. Пишите конспекты
Постарайтесь завести тетрадь/блокнот, куда сможете записывать краткую выжимку из прочитанного теоретического материала. Серьезно! Все же знают, как написание помогает запоминанию.
Если время сильно ограничено, запишите в конце дня пару пунктов или тем, которые выучили или прочли за этот день. Это хорошо упорядочит информацию в голове
2. Повторяйте изученное перед сном
Постарайтесь делать так, чтобы последней информацией, которую вы получите за день, была информация по теме курса, а не сериалы, новости и тд. Это очень поможет усвоению!
3. Не делать несколько дел одновременно
Решать задачу, читать материал желательно без видосов и сериалов на фоне. А листать ленту новостей и переписываться приятнее без отвлечений на обучение!
Лучше выделить 30 минут на прочтение главы и сделать это быстро и хорошо, чем тупить над ней час, отвечая друзьям в тг или отвлекаясь на ленту. Так мы сэкономим своё время.
4. Отложить телефон как можно дальше
Если есть возможность, читайте материалы с ПК, чтобы не отвлекаться на уведомления и не заходить в перерывах в привычные приложения. Если получится читать теорию только с телефона – ставьте авиарежим.
5. Запланируйте специально 2 часа в день
Попробуйте внести их в план дня заранее, так точно будет удобнее. Например, я знаю, что сегодня у меня свободный вечер, так что выделю два часа на обучение после рабочего дня, а послезавтра вечером у меня встреча с друзьями, значит выделю час утром перед работой на обучение и час в рабочее время, если занятость позволяет.
Время на обучение не найдется, если специально не освободить его от других дел.
6. Не бойтесь задавать вопросы
Если вам что-то непонятно — пишите, спрашивайте, докапывайтесь до сути. И помните, глупых вопросов не бывает.
Java to Scala. Вопросы с собеседований
Недавно у меня друг перешел на Scala-проект. Он готовился две недели, прошел 17 собеседований, получил 7 офферов. До этого у него было два года коммерческого опыта на java-проекте. Я попросил его расписать, что спрашивают на собеседованиях. Получилось очень подробно и здорово.
Типичное собеседование по Scala можно описать как hardcore-версию собеседования на позицию Senior Java. Причем не берем в счет позиции типа better Java или Java/Scala. Речь о Scala, где нет как минимум var переменных, циклов, сеттеров и мутабельных коллекций, ну или где за этим хотя бы стараются следить. Практически нигде вам не будут задавать типичных вопросов про HashMap, методы Object, контракты equals/hashcode, как работает Docker и прочую лабуду, а сразу начнут лезть в душу. Большинство вопросов, конечно, задают и на Java-собесах, но насыщенность Scala собеседования глубокими вопросами зашкаливает и отделаться каким-нибудь определением не получится, нужно будет объяснять как это работает внутри. Вот примерный список тем, которые необходимо довольно глубоко изучить. Начнём с обязательной части.
1.Многопоточка. Про неё спрашивают вместо HashMap. Нужно знать всё. Как работает многопоточное приложение, отличие потоков java от потоков системы и процессов, может ли одно java/scala приложение работать на нескольких процессорах, happens-before, какие языковые конструкции могут гарантировать happens-before, как в жизни помогают и как работают volatile/final, CAS, способы синхронизации, виды дедлоков, как бороться с ними, Future, недостатки и преимущества Future, пулы потоков, какие пулы в каких кейсах лучше использовать. Отдельно выделяют fork/join и просят рассказать, как он устроен внутри и для каких бизнес-задач подходит, а для каких нет. Атомики, как атомики реализованы, виды локов, проблемы с lazy полями в многопоточной среде и как реализованы lazy поля, отсюда вопрос про минусы этих реализаций и все что в голову взбредет.
2. Java Memory Model. Первая часть собеса никогда не обходится без обсуждения JMM. Виды GC, алгоритмы работы, различия, преимущества и недостатки, способы оптимизации работы, основные показатели, в каких случаях какой необходимо выбрать, способы поиска проблем. Рассказать, как реализована оптимизация хвостовой рекурсии в Scala. Обычно разбор многопоточки и JMM занимает 50% времени всего собеседования.
3.Алгоритмы и структуры данных. В 90% случаев обязательно попросят написать на бумажке задачку а-ля Фибоначчи с хвостовой рекурсией, реализовать метод flatMap/map у листа, обход графа/дерева, развернуть рекурсивно лист. Или другую из первых 40 задач с leetcode, которые заточены на рекурсию. Дальше интервьюеры пройдутся по всем структурам данных в Scala, их различия, юз кейсы, сложности, что там под капотом. Спросят про сортировки. Очень популярен вопрос про различные кейсы сортировок огромных файлов и поиск в уже отсортированных файлах нужного элемента, где бинарным поиском не обойтись.
4.Scala Core. Иерархия типов, иерархия коллекций, система типов, Nothing/Null. Где-то спрашивали, как реализован Nothing и как получается, что он подтип всех? Часто собеседующие спрашивают про вариантность, просят рассказать про кейсы, дают какие-нибудь задачки на расставления вариантности у типов. Задают вопросы про тайп классы, тайп конструкторы, экстеншен методы, функции и типы высшего порядка, виды имплиситов, зачем это все нужно и области применения.
For comprehension: во что раскладывается, что будет, если не написать yield, дают различные примеры, где типы не совпадают и спрашивают, будет ли работать, во что превращается в байткоде.
Pattern matching: что нужно, для того, чтобы это работало. Отсюда вопросы про алгебраические типы данных, как они реализованы в Scala и почему именно так. Ещё нужно быть готовым объяснить, чем Scala тебя так привлекла. Рассказать о плюсах и минусах.
#scala
Недавно у меня друг перешел на Scala-проект. Он готовился две недели, прошел 17 собеседований, получил 7 офферов. До этого у него было два года коммерческого опыта на java-проекте. Я попросил его расписать, что спрашивают на собеседованиях. Получилось очень подробно и здорово.
Типичное собеседование по Scala можно описать как hardcore-версию собеседования на позицию Senior Java. Причем не берем в счет позиции типа better Java или Java/Scala. Речь о Scala, где нет как минимум var переменных, циклов, сеттеров и мутабельных коллекций, ну или где за этим хотя бы стараются следить. Практически нигде вам не будут задавать типичных вопросов про HashMap, методы Object, контракты equals/hashcode, как работает Docker и прочую лабуду, а сразу начнут лезть в душу. Большинство вопросов, конечно, задают и на Java-собесах, но насыщенность Scala собеседования глубокими вопросами зашкаливает и отделаться каким-нибудь определением не получится, нужно будет объяснять как это работает внутри. Вот примерный список тем, которые необходимо довольно глубоко изучить. Начнём с обязательной части.
1.Многопоточка. Про неё спрашивают вместо HashMap. Нужно знать всё. Как работает многопоточное приложение, отличие потоков java от потоков системы и процессов, может ли одно java/scala приложение работать на нескольких процессорах, happens-before, какие языковые конструкции могут гарантировать happens-before, как в жизни помогают и как работают volatile/final, CAS, способы синхронизации, виды дедлоков, как бороться с ними, Future, недостатки и преимущества Future, пулы потоков, какие пулы в каких кейсах лучше использовать. Отдельно выделяют fork/join и просят рассказать, как он устроен внутри и для каких бизнес-задач подходит, а для каких нет. Атомики, как атомики реализованы, виды локов, проблемы с lazy полями в многопоточной среде и как реализованы lazy поля, отсюда вопрос про минусы этих реализаций и все что в голову взбредет.
2. Java Memory Model. Первая часть собеса никогда не обходится без обсуждения JMM. Виды GC, алгоритмы работы, различия, преимущества и недостатки, способы оптимизации работы, основные показатели, в каких случаях какой необходимо выбрать, способы поиска проблем. Рассказать, как реализована оптимизация хвостовой рекурсии в Scala. Обычно разбор многопоточки и JMM занимает 50% времени всего собеседования.
3.Алгоритмы и структуры данных. В 90% случаев обязательно попросят написать на бумажке задачку а-ля Фибоначчи с хвостовой рекурсией, реализовать метод flatMap/map у листа, обход графа/дерева, развернуть рекурсивно лист. Или другую из первых 40 задач с leetcode, которые заточены на рекурсию. Дальше интервьюеры пройдутся по всем структурам данных в Scala, их различия, юз кейсы, сложности, что там под капотом. Спросят про сортировки. Очень популярен вопрос про различные кейсы сортировок огромных файлов и поиск в уже отсортированных файлах нужного элемента, где бинарным поиском не обойтись.
4.Scala Core. Иерархия типов, иерархия коллекций, система типов, Nothing/Null. Где-то спрашивали, как реализован Nothing и как получается, что он подтип всех? Часто собеседующие спрашивают про вариантность, просят рассказать про кейсы, дают какие-нибудь задачки на расставления вариантности у типов. Задают вопросы про тайп классы, тайп конструкторы, экстеншен методы, функции и типы высшего порядка, виды имплиситов, зачем это все нужно и области применения.
For comprehension: во что раскладывается, что будет, если не написать yield, дают различные примеры, где типы не совпадают и спрашивают, будет ли работать, во что превращается в байткоде.
Pattern matching: что нужно, для того, чтобы это работало. Отсюда вопросы про алгебраические типы данных, как они реализованы в Scala и почему именно так. Ещё нужно быть готовым объяснить, чем Scala тебя так привлекла. Рассказать о плюсах и минусах.
#scala
5.Функциональщина. Если на проекте используется ФП, а на позициях чисто по Scala(not better Java) ФП используется почти всегда, аналогом вопроса про HashMap является разбор Монады, рассказ про чистые функции и ссылочную прозрачность. Причем в теорию категорий никто не лезет. Возможно, спрашивают на собеседованиях Senior Scala. Достаточно рассказать на прикладном уровне что такое Монада, от кого она "наследуется", зачем нужна, что дает. Отсюда вытекают вопросы про Аппликативы, Функторы, Моноиды и различные реализации в Scala. Если вы использовали какие-то библиотеки, типа Cats/Scalaz/ZIO/Monix, то обязательно и по ним спросят, но очень поверхностно.
6.Архитектура. Обязательно будут вопросы про архитектуру. Попросят расписать все про последний проект. Рассказать, почему реализовано так, а не иначе, что хотел бы улучшить и пр. Дают задачу на разработку архитектуры под различные бизнес-задачи. Но в большинстве случаев все сводится к распределенным системам и отсюда вытекает много вопросов по оптимизации таких систем и доп вопросы по алгоритмам, Например, как реализовать транзакционность для распределенных хранилищ данных или назвать алгоритмы распределения обработки одного бесконечного входного потока данных несколькими потоками приложения.
6.Архитектура. Обязательно будут вопросы про архитектуру. Попросят расписать все про последний проект. Рассказать, почему реализовано так, а не иначе, что хотел бы улучшить и пр. Дают задачу на разработку архитектуры под различные бизнес-задачи. Но в большинстве случаев все сводится к распределенным системам и отсюда вытекает много вопросов по оптимизации таких систем и доп вопросы по алгоритмам, Например, как реализовать транзакционность для распределенных хранилищ данных или назвать алгоритмы распределения обработки одного бесконечного входного потока данных несколькими потоками приложения.
После полутора часов первой обязательной части собеседования идут проектно-специфические вопросы. Их обычно задают и на Java и на Scala-собеседованиях.
7. Kafka и другие. Одни из самых популярных вопросов - это Kafka. Любят спрашивать, почему она так популярна, чем отличается от других очередей и очередь ли это вообще? Для чего там партиции и топики, можно ли без них, какие гарантии дает Kafka. Еще спрашивают про Spark/MapReduce, но далеко не идут. Про RDD, HDFS, этапы MapReduce, проблемы, с которыми сталкивались, их способы решения. Из deprecated вещей бывает что-нибудь про акку. Например, какой пул используется внутри, как акторы хранят очередь задач и взаимодействуют друг с другом, можно ли стейт менять. Как правило функциональное программирование и BigData вместе не дружат, поэтому про это и спрашивают мало где.
8. SQL. Про SQL спрашивают далеко не везде. Просят организовать хранение данных для разных кейсов. Например, профили пользователей, которые можно лайкать. SQL/NoSQL ли это будет? Какие таблицы нужны? Какие связи будут? Потом могут попросить написать хитрый SQL запрос для выгрузки данных из твоей же только что созданной БД. И благодаря таким вопросам могут указать на ошибки. Популярен такой вопрос: очень долго выполняется SELECT, ваши действия? Сразу намекну, что проставления индексов, просмотр плана запроса, выпиливание JOIN из запроса недостаточно. Редко всплывают вопросы про ACID/BASE и уровни изоляции транзакций.
9. REST/SOAP. Попадаются вопросы по REST/SOAP и протоколам, которые они используют. В основном про TCP/UDP и HTTP. Например, когда нужен UDP, а когда TCP? Назвать примерно хотя бы уровни OSI. Методы HTTP, какие гарантии дает GET, а какие POST, их различия, какие где надо использовать. В задачах про архитектуру часто просят написать API и объяснить почему здесь POST, а не GET или наоборот.
10. DevOps. Для любителей Devops-практик есть плохая новость. Про это нигде не спрашивают. Из 17 компаний меня спросили только в одном месте что-то про K8s и Docker. И то, поняли, что я ничего про это не знаю, но в итоге все равно оффер прислали.
7. Kafka и другие. Одни из самых популярных вопросов - это Kafka. Любят спрашивать, почему она так популярна, чем отличается от других очередей и очередь ли это вообще? Для чего там партиции и топики, можно ли без них, какие гарантии дает Kafka. Еще спрашивают про Spark/MapReduce, но далеко не идут. Про RDD, HDFS, этапы MapReduce, проблемы, с которыми сталкивались, их способы решения. Из deprecated вещей бывает что-нибудь про акку. Например, какой пул используется внутри, как акторы хранят очередь задач и взаимодействуют друг с другом, можно ли стейт менять. Как правило функциональное программирование и BigData вместе не дружат, поэтому про это и спрашивают мало где.
8. SQL. Про SQL спрашивают далеко не везде. Просят организовать хранение данных для разных кейсов. Например, профили пользователей, которые можно лайкать. SQL/NoSQL ли это будет? Какие таблицы нужны? Какие связи будут? Потом могут попросить написать хитрый SQL запрос для выгрузки данных из твоей же только что созданной БД. И благодаря таким вопросам могут указать на ошибки. Популярен такой вопрос: очень долго выполняется SELECT, ваши действия? Сразу намекну, что проставления индексов, просмотр плана запроса, выпиливание JOIN из запроса недостаточно. Редко всплывают вопросы про ACID/BASE и уровни изоляции транзакций.
9. REST/SOAP. Попадаются вопросы по REST/SOAP и протоколам, которые они используют. В основном про TCP/UDP и HTTP. Например, когда нужен UDP, а когда TCP? Назвать примерно хотя бы уровни OSI. Методы HTTP, какие гарантии дает GET, а какие POST, их различия, какие где надо использовать. В задачах про архитектуру часто просят написать API и объяснить почему здесь POST, а не GET или наоборот.
10. DevOps. Для любителей Devops-практик есть плохая новость. Про это нигде не спрашивают. Из 17 компаний меня спросили только в одном месте что-то про K8s и Docker. И то, поняли, что я ничего про это не знаю, но в итоге все равно оффер прислали.
Java Developer pinned «Java to Scala. Вопросы с собеседований Недавно у меня друг перешел на Scala-проект. Он готовился две недели, прошел 17 собеседований, получил 7 офферов. До этого у него было два года коммерческого опыта на java-проекте. Я попросил его расписать, что спрашивают…»
AlphaZero
Начал читать «21 урок для 21 века». Решил поделиться отрывком про AlphaZero, который меня удивил. Может кто тоже не в теме
Уже давно никого не удивляет, что компьютер способен обыграть человека в шахматы, но 7 декабря 2017 года алгоритм AlphaZero компании Google выиграл у Stockfish 8, чемпиона мира 2016 года среди компьютерных программ. Stockfish 8 имела доступ к опыту, накопленному человеком за сотни лет игры в шахматы, а также к данным шахматных программ за несколько десятков лет. Она могла просчитывать 70 миллионов шахматных позиций в секунду. Скорость вычислений AlphaZero составляла лишь 80 тысяч операций в секунду, и создатели программы не обучили ее шахматной стратегии – даже стандартным дебютам. Осваивая шахматы, программа AlphaZero использовала самые современные методы машинного обучения, играя сама с собой. Тем не менее из ста партий, сыгранных со Stockfish 8, новичок AlphaZero выиграл 28 и свел вничью 72. Ни одного проигрыша! Поскольку алгоритм AlphaZero не учился у человека, многие из его выигрышных ходов и стратегий выглядят весьма необычно. Их с полным основанием можно назвать творческими – если не гениальными.
Угадайте, сколько времени потребовалось AlphaZero, чтобы научиться играть в шахматы, подготовиться к матчу с Stockfish 8 и развить у себя гениальную интуицию? Четыре часа. Это не опечатка. Столетиями шахматы считались одним из высших достижений человеческого разума. Программа AlphaZero за четыре часа без какой бы то ни было помощи со стороны человека проделала путь от полного незнания до вершин мастерства.
Начал читать «21 урок для 21 века». Решил поделиться отрывком про AlphaZero, который меня удивил. Может кто тоже не в теме
Уже давно никого не удивляет, что компьютер способен обыграть человека в шахматы, но 7 декабря 2017 года алгоритм AlphaZero компании Google выиграл у Stockfish 8, чемпиона мира 2016 года среди компьютерных программ. Stockfish 8 имела доступ к опыту, накопленному человеком за сотни лет игры в шахматы, а также к данным шахматных программ за несколько десятков лет. Она могла просчитывать 70 миллионов шахматных позиций в секунду. Скорость вычислений AlphaZero составляла лишь 80 тысяч операций в секунду, и создатели программы не обучили ее шахматной стратегии – даже стандартным дебютам. Осваивая шахматы, программа AlphaZero использовала самые современные методы машинного обучения, играя сама с собой. Тем не менее из ста партий, сыгранных со Stockfish 8, новичок AlphaZero выиграл 28 и свел вничью 72. Ни одного проигрыша! Поскольку алгоритм AlphaZero не учился у человека, многие из его выигрышных ходов и стратегий выглядят весьма необычно. Их с полным основанием можно назвать творческими – если не гениальными.
Угадайте, сколько времени потребовалось AlphaZero, чтобы научиться играть в шахматы, подготовиться к матчу с Stockfish 8 и развить у себя гениальную интуицию? Четыре часа. Это не опечатка. Столетиями шахматы считались одним из высших достижений человеческого разума. Программа AlphaZero за четыре часа без какой бы то ни было помощи со стороны человека проделала путь от полного незнания до вершин мастерства.
Внутренние митапы
Мы тут внутри отдела наконец решили организовать внутренние митапы. Договорились по четвергам после работы собираться на час-два, чтобы обсудить какую-нибудь тему.
Формат такой — сначала докладчик выступает на выбранную тему, а потом все вместе дискутируем. Тема может быть любой — от внутреннего устройства проекта до супер модной технологии.
Профит пока не могу назвать какой-то. Но мне уже это нравится, так как шэринг знаний отличная штука для прокачивания команды.
Мы тут внутри отдела наконец решили организовать внутренние митапы. Договорились по четвергам после работы собираться на час-два, чтобы обсудить какую-нибудь тему.
Формат такой — сначала докладчик выступает на выбранную тему, а потом все вместе дискутируем. Тема может быть любой — от внутреннего устройства проекта до супер модной технологии.
Профит пока не могу назвать какой-то. Но мне уже это нравится, так как шэринг знаний отличная штука для прокачивания команды.