Последнее время в описании стека многих вакансий на Java можно встретить Kotlin.
Это относительно новый язык, который появился только в 2011 году, а используется чаще всего для разработки под android.
Иногда опыт работы с ним пишут в пожеланиях к кандидату или даже в требованиях вакансии.
По моим ощущениям, Kotlin упоминается примерно в 20-25% всех Java вакансий.
Kotlin — язык, который, как и Java, компилируется в bytecode JVM, а еще он полностью совместим с Java. Это значит, что внутри одного проекта можно совмещать код на Java и на Kotlin.
Поэтому некоторые компании и команды начинают переносить на него часть своих бэкенд-сервисов.
Например у меня в команде новые проекты пишут целиком на Kotlin, а в уже существующих на нем реализуют Unit и интергационные тесты.
В эту пятницу на внутренней IT-конференции в Т
Запись выложил на YouTube-канал — найти можно по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Чем хорош Kotlin | Доклад на внутреннем митапе Т-Банка
Персональный менторинг по Java - https://dsvdev.com
Обучающие материалы по Java и разборы реальных вопросов с собеседований в ТГ канале - https://news.1rj.ru/str/dsvdev
______
Запись выступления с внутренней IT конференции Т-Банка
Кратко рассказал про преимущества…
Обучающие материалы по Java и разборы реальных вопросов с собеседований в ТГ канале - https://news.1rj.ru/str/dsvdev
______
Запись выступления с внутренней IT конференции Т-Банка
Кратко рассказал про преимущества…
🔥1
Твоя язык программирования не важен!
На прошлой неделе написала HR из «Авито» с предложением пройти собеседование на Golang-разработчика.
Я ответил, что этот язык почти не знаю, а мой стек — Java/Kotlin.
На это мне сказали, что им не важно, на каком языке я пишу, главное — общие знания по бэкенд-разработке и инженерное мышление.
От собеседования я отказаться не смог, как минимум потому, что очень интересно, какие вопросы зададут на интервью, если стеки кандидата и вакансии не совпадают.
Вчера состоялся первый этап собеседования, сегодня HR написала, что я его успешно прошел и можно планировать следующий.
На первом этапе пообщались про работу сетей, какие есть протоколы, в каких случаях лучше применять TCP, а в каких UDP, зачем нужен HTTPS, какие бывают виды HTTP и из чего состоят запросы.
Поговорили про общие подходы к разработке, зачем нужен таймаут на выполнение запроса сервисом и как определить, какой он должен быть.
Также обсудили, как сервисы могут взаимодействовать между собой, а в конце затронули контейнеризацию — Docker и Kubernetes.
Интересный был опыт, впереди еще 2–3 этапа, посмотрим, как пойдет.
Хотите разбор некоторых общих вопросов, не связанных напрямую с Java, которые могут спросить на любом собеседовании разработчика?
👍 - да
🤔- нет
На прошлой неделе написала HR из «Авито» с предложением пройти собеседование на Golang-разработчика.
Я ответил, что этот язык почти не знаю, а мой стек — Java/Kotlin.
На это мне сказали, что им не важно, на каком языке я пишу, главное — общие знания по бэкенд-разработке и инженерное мышление.
От собеседования я отказаться не смог, как минимум потому, что очень интересно, какие вопросы зададут на интервью, если стеки кандидата и вакансии не совпадают.
Вчера состоялся первый этап собеседования, сегодня HR написала, что я его успешно прошел и можно планировать следующий.
На первом этапе пообщались про работу сетей, какие есть протоколы, в каких случаях лучше применять TCP, а в каких UDP, зачем нужен HTTPS, какие бывают виды HTTP и из чего состоят запросы.
Поговорили про общие подходы к разработке, зачем нужен таймаут на выполнение запроса сервисом и как определить, какой он должен быть.
Также обсудили, как сервисы могут взаимодействовать между собой, а в конце затронули контейнеризацию — Docker и Kubernetes.
Интересный был опыт, впереди еще 2–3 этапа, посмотрим, как пойдет.
Хотите разбор некоторых общих вопросов, не связанных напрямую с Java, которые могут спросить на любом собеседовании разработчика?
👍 - да
🤔- нет
👍11🤔1
Методы HTTP запросов
#собесы
🖥 Тема - #сети
Какие методы HTTP запросов существуют?
Начнем с основных запросов, которых чаще всего хватит для ответа на собеседовании
GET: Запрашивает данные с сервера. Запросы с использованием этого метода должны только извлекать данные.
➿ ➿ ➿
POST: Используется для создание новых данные в сервисе.
➿ ➿ ➿
PUT: Заменяет все текущие данные данными из запроса. Обычно используется для обновления существующих данных.
PATCH: Используется для частичного обновления данных. В отличие от PUT, который заменяет все данные, PATCH изменяет только указанные поля.
➿ ➿ ➿
DELETE: Удаляет указанный ресурс.
➿ ➿ ➿ ➿ ➿ ➿ ➿ ➿ ➿ ➿ ➿
Еще четыре метода, которые используются редко (я за все время работы не разу не сталкивался с этими запросами на практике)
Но если вы назовете их, можете выбить для себя пару плюсиков на собесе
HEAD: Запрашивает ресурс так же, как и метод GET, но без тела ответа. Используется для получения метаданных.
➿ ➿ ➿
OPTIONS: Используется для описания параметров связи с ресурсом. Например, может определить, какие методы поддерживаются сервером.
➿ ➿ ➿
CONNECT: Устанавливает туннель к серверу, определённому ресурсом.
➿ ➿ ➿
TRACE: Выполняет тестовый запрос для получения обратной связи маршрута, пройденного запросом.
#собесы
Какие методы HTTP запросов существуют?
Начнем с основных запросов, которых чаще всего хватит для ответа на собеседовании
GET: Запрашивает данные с сервера. Запросы с использованием этого метода должны только извлекать данные.
Примеры: Получение поста, получение комментариев к посту, получение количества лайков.
POST: Используется для создание новых данные в сервисе.
Примеры: Написание нового комментария, регистрация пользорвателя и т.д
PUT: Заменяет все текущие данные данными из запроса. Обычно используется для обновления существующих данных.
PATCH: Используется для частичного обновления данных. В отличие от PUT, который заменяет все данные, PATCH изменяет только указанные поля.
Примеры: Редактирование поста, редактирование комментария, обновление информации профиля.
DELETE: Удаляет указанный ресурс.
Примеры: Удаление поста, удаление комментария.
Еще четыре метода, которые используются редко (я за все время работы не разу не сталкивался с этими запросами на практике)
Но если вы назовете их, можете выбить для себя пару плюсиков на собесе
HEAD: Запрашивает ресурс так же, как и метод GET, но без тела ответа. Используется для получения метаданных.
OPTIONS: Используется для описания параметров связи с ресурсом. Например, может определить, какие методы поддерживаются сервером.
CONNECT: Устанавливает туннель к серверу, определённому ресурсом.
TRACE: Выполняет тестовый запрос для получения обратной связи маршрута, пройденного запросом.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1
Хочу поделиться интересным вопросом, на который я сам не сразу смог ответить правильно.
Что выведет этот код?
int a = 0;
int b = 0;
if (a++ == 0 || b++ == 0) {
System.out.println("Zero");
}
System.out.println(a);
System.out.println(b);
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет этот код?
Anonymous Quiz
24%
Zero 0 0
0%
Zero 0 1
18%
Zero 1 0
35%
Zero 1 1
15%
0 0
0%
0 1
0%
1 0
9%
1 1
Иерархия коллекций
На собеседованиях часто спрашивают о коллекциях. Обычно начинают с вопроса о том, как выглядит иерархия классов. Вот достаточно полное описание:
➡️ В Java Collection Framework на вершине иерархии находятся два интерфейса:
➡️
➡️ Интерфейс
➡️ Реализации интерфейса
➡️ Реализации интерфейса
➡️ Интерфейс
➡️ Интерфейс
На собеседованиях часто спрашивают о коллекциях. Обычно начинают с вопроса о том, как выглядит иерархия классов. Вот достаточно полное описание:
Collection и Map. Они разделяют коллекции на простые последовательные наборы элементов и наборы пар «ключ — значение» (словари).Collection наследуется от интерфейса Iterable. Он представляет собой набор однородных элементов, которые могут повторяться определённое количество раз.Collection определяет основные методы работы с простыми наборами элементов, которые будут общими для всех реализаций этого интерфейса. Например add(), remove() и size().Map включают HashMap, LinkedHashMap и TreeMap. Есть ещё WeakHashMap, но для понимания этой реализации нужно разбираться с типами ссылок в Java.List включают Vector, Stack, ArrayList и LinkedList.Set — это абстракция над математическим понятием множества. Главная особенность множества — отсутствие дубликатов. Его реализации: HashSet, LinkedHashSet и TreeSet.Queue описывает коллекции с предопределённым способом вставки и извлечения элементов — очереди FIFO. Его реализует, например, LinkedList.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
ТОП-10 вопросов по Java | Разбор самых популярных вопросы с собеседований по Java Core
Персональный менторинг по Java - https://dsvdev.com
Телеграм канал с полезными материалами по Java - https://news.1rj.ru/str/dsvdev
Больше об иерархии коллекций - https://news.1rj.ru/str/dsvdev/60
Таймкоды:
00:00 Начало
00:10 Откуда вопросы?
00:23 Расскажите про класс String?…
Телеграм канал с полезными материалами по Java - https://news.1rj.ru/str/dsvdev
Больше об иерархии коллекций - https://news.1rj.ru/str/dsvdev/60
Таймкоды:
00:00 Начало
00:10 Откуда вопросы?
00:23 Расскажите про класс String?…
🔥1
Кого ты, блядь, выберешь? Java или Go? Go или Java?
Недавно писал о том, как меня позвали проходить собесы на позицию Go разработчика в Авито.
Из запланированных 5 этапов уже пройдено 3
✔️ Скоринг - пол часа общих вопросов, чтобы отсеять тех кто точно совсем не шарит, подробно писал здесь
✔️ Алгоритмическая часть - такие я провожу сам в Т-Банке, было непривычно оказаться с другой стороны. По ощущениям в авито проще, надо решить две задачи а не три, и код не обязательно должен запускаться, главное описать верный алгоритм. В итоге решил две задачки, первая по уровню сложности примерно как easy с литкода, вторая сначала тоже казалась не очень сложной, пока интервьюер не сказал, что решать ее надо без сортировки. Додумался до оптимального решения только после небольшой подсказки интервьюера.
✔️ Секция по языку - На удивление была отдельная секция именно по Java, кажется хотели просто проверить насколько хорошо кандидат владеет тем инструментом которым пользуется в данные момент, понятное дело что для Go разработки знание Java не нужно. Поговорили про особенности реализации стримов, разницу между анонимными классами и лямбда выражениями, также была практическая задача на то, чтобы реализовать свою структуру данных алгоритмически эффективно.
Что еще осталось:
⏰ System design - нормально проходил его только один раз, и на тот момент прошел не очень, секция запланирована на вторник, сейчас активно перечитываю две книги по проектированнию распределенных систем которые у меня есть, очень хочется пройти хорошо. По результатам этой секции будет решаться итоговый грейд между Middle+ и Senior
⏰ Итоговая встреча с командой - на этом этапе обсуждаются уже задачи команды, задачи кандидата в команде в случае выхода, взаимная мотивация. Происходит знакомство с потенциальным тимлидом.
Про что из прошедших этапов рассказать подробнее?
👾 - алгоритмы
✍️ - секция по языку
Недавно писал о том, как меня позвали проходить собесы на позицию Go разработчика в Авито.
Из запланированных 5 этапов уже пройдено 3
Что еще осталось:
Про что из прошедших этапов рассказать подробнее?
👾 - алгоритмы
✍️ - секция по языку
Please open Telegram to view this post
VIEW IN TELEGRAM
✍4👾4
Откуда у тебя все эти вопросы?
Чтобы эффективнее готовить учеников к собеседованиям, нужно иметь на руках список актуальных вопросов, которые там задают
Поэтому я периодически хожу на разные интервью
На скрине итоги одного из них - собес был на проект газпромбанка, состоял из одного часового этапа
Забавно сравнивать такой подход и подход Яндекс/Т-банк/Авито и прочих российских FAANG компаний где нужно пройти 3-5 этапов перед получением оффера
Чтобы эффективнее готовить учеников к собеседованиям, нужно иметь на руках список актуальных вопросов, которые там задают
Поэтому я периодически хожу на разные интервью
На скрине итоги одного из них - собес был на проект газпромбанка, состоял из одного часового этапа
Забавно сравнивать такой подход и подход Яндекс/Т-банк/Авито и прочих российских FAANG компаний где нужно пройти 3-5 этапов перед получением оффера
🔥3❤1
Если задавать слишком много вопросов, тебя уволят
Многие начинающие программисты боятся задавать вопросы своей команде. Они думают:
Но это не так.
На самом деле, риск быть уволенным выше у тех, кто не задаёт вопросы. Ведь быстро разобраться во всех особенностях проекта, используемых технологиях и подходах самостоятельно практически невозможно. А без этого ты вряд ли сможешь начать выполнять задачи.
В новом видео рассказываю, что делать, чтобы успешно пройти испытательный срок и не потерять работу.
Многие начинающие программисты боятся задавать вопросы своей команде. Они думают:
Если я чего-то не знают, то я плохой разработчик и меня точно уволят.
Но это не так.
На самом деле, риск быть уволенным выше у тех, кто не задаёт вопросы. Ведь быстро разобраться во всех особенностях проекта, используемых технологиях и подходах самостоятельно практически невозможно. А без этого ты вряд ли сможешь начать выполнять задачи.
В новом видео рассказываю, что делать, чтобы успешно пройти испытательный срок и не потерять работу.
YouTube
ТИМЛИД ТЕБЯ УВОЛИТ | Как программисту не вылететь с работы в первые три месяца
Персональный менторинг по Java - https://dsvdev.com
Телеграм канал с полезными материалами по Java - https://news.1rj.ru/str/dsvdev
Таймкоды:
00:00 Начало
00:07 Мой опыт
00:24 Soft скилы
00:45 Зачем нужны 1to1
1:11 Как правильно задавать вопросы
1:54 Hard скилы
2:04…
Телеграм канал с полезными материалами по Java - https://news.1rj.ru/str/dsvdev
Таймкоды:
00:00 Начало
00:07 Мой опыт
00:24 Soft скилы
00:45 Зачем нужны 1to1
1:11 Как правильно задавать вопросы
1:54 Hard скилы
2:04…
🔥3
...и хотя он отлично работает, <...> другие объявляют его неработающим. Ситуация превращается в какой-то кошмар: <...> насильно тащат "на кладбище", а он отбивается и кричит "Я жив!". Но, поскольку никто его криков не слышит, похоронная процессия неуклонно продолжает движение
© Мартин Клеппман
Похоже на какой-то триллер, но нет.
Это цитата из книги про разработку высоконагруженных распределенных систем, которую я сейчас читаю.
Это описание того,
Спокойной ночи
😱3👍1🤯1
Из этой тысячи некоторые подписались и сюда, так что добро пожаловать)
Хочу спросить здесь - какое видео интересно было бы посмотреть дальше?
Опрос ниже
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Конечно да!
Я могу привести аргументы, почему это так, но, не буду.
Вместо этого поделюсь скрином переписки с HR компании, где мне изначально предложили зарплату около 360 000 рублей на руки.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Личный бренд, mutherfucker
Сейчас на одном из собеседований интервьюер сказал, что не будет спрашивать меня стандартные вопросы про Java, потому что видел на ютубе мое видео с разбором этих вопросов.
После чего мы приятно пообщались про процессы разработки и разные инструменты, скпинув стандартную скучную часть по Java Core
А само видео, если кто-то вдруг пропустил, можно найти здесь - ТОП-10 вопросов по Java
Сейчас на одном из собеседований интервьюер сказал, что не будет спрашивать меня стандартные вопросы про Java, потому что видел на ютубе мое видео с разбором этих вопросов.
После чего мы приятно пообщались про процессы разработки и разные инструменты, скпинув стандартную скучную часть по Java Core
А само видео, если кто-то вдруг пропустил, можно найти здесь - ТОП-10 вопросов по Java
🔥4
Попался на глаза твит про джуна, который в первый рабочий день гуглили слова, которые услышал и не понял. В связи с чем опрос: понимаете ли вы эту фразу?
После того как раскатишь фичу на прод, переключи фича тогл. Кстати, я заасайнил на тебя таску из бэклога, поресеч какие ручки нам нужны и заспекай их реализацию
Понял фразу?
Anonymous Poll
31%
59%
10%