Программист живёт нормально – Telegram
Программист живёт нормально
2.21K subscribers
140 photos
7 videos
29 files
79 links
Канал о программировании, программистах и жизни с программистами

Автор: @tkach1380
Download Telegram
#junior #middle #Поговорим #Java
Многие знают, что первое, куда стоит заглядывать, если вы чего-то не понимаете в технологии или языке - это документация 🤖

Документация Java и Spring:
https://docs.oracle.com/en/java/javase/19/
https://docs.spring.io/spring-framework/docs/current/reference/html/

Далее я приведу пример на языке Java, но читателю достаточно понимания и общих принципов программирования

Возьмем HashMap - удобный способ хранения в Java данных в виде ассоциативного массива, то есть пар "ключ-значение". Например, в нем мы можем хранить оценки учеников: ["Петров": 5, "Иванов": 3, "Сидоров": 2]

Поиск в таком ассоциативном массиве осуществляется по ключу (в нашем случае, фамилия школьника). А сам алгоритм поиска основан на работе корзин (buckets) и хэшкодов (hashcode). Количество таких корзин по-умолчанию задано в Java жестко. Более того, часто на собеседованиях я слышал вопрос: "Может быть, помните изначальное количество корзин в HashMap?" 😳

Давайте постараемся "вспомнить"

Есть три варианта это сделать. Я называю их первичным, вторичным и третичным ♨️

Третичным вариантом пользуемся мы все: бежим в гугл и ищем информацию о количестве корзин. Я уверен, что вы найдете информацию на первом же сайте (как ее нашел я).
Чем хороша такая информация? Она написана на вашем родном языке и, скорее всего, написана на вашем уровне. Более того, наш с вами канал - тоже источник третичной информации. Минусы тоже очевидны: информация может быть неактуальной или вовсе неверной. Стоит все перепроверять ⚠️

Вторичным источником можно назвать официальную документацию. Чаще всего такая документация описана на английском, но иногда она переводится и на другие языки (пример: документация по vue.JS). Из плюсов: шансы найти в ней ошибку минимальны. Минусы: чаще всего это прямое пересказывание кода.

Первичным источником информации является КОД. Да, написанный разработчиками код, в котором есть и описания на английском языке, и, что самое важное, все переменные, методы и функции 🌪

Хороший код, во многом, самодокументируемый. Это значит, что открывая его, вы в целом будете понимать, о чем идет речь (если у вас есть достаточно опыта в разработке). Посмотрите на третий скриншот, тут напрямую говорится о том, что "вместимость HashMap" равна 16. Это и есть ответ на наш вопрос.
Изучая настоящий код Java (или любого другого языка), вы получаете сразу три бенефита:

⚠️ Ответ на свой вопрос
🐣 Понимание устройства языка, его структуры
♨️ Способность читать чужой код

И третий из них, по моему мнению, просто невероятно важен каждому программисту.

Да, ключевым минусом тут является то, что вам придется разбираться даже не в английском тексте, а напрямую в коде, но вы же для этого и учились?

Читайте первичные источники информации!
👍4
Третичный источник информации - habr 🥲
Вторичный - вырезка из документации Java
Первичный - код на Java 🧠
Channel name was changed to «Dev.you — Программирование и жизнь»
Немного нововведений - я решил немного изменить направление канала. Мы все еще про разработку, мы все еще о жизни разработчиков, но теперь не только Java.

У меня есть для вас еще один инсайд!

На следующей неделе один мой замечательный коллега даст интервью, где расскажет о работе тестировщиком в одной из больших ИТ-компаний, не пропустите!
👍11
Нравится ли вам то, что канал впредь будет развиваться, затрагивая большее количество сфер разработки?
Anonymous Poll
87%
да
13%
!(да)
Удалось, немного приболев, провести собеседование сегодня на условную позицию junior+ java developer 😇
🐣Завтра выйдет первая часть интервью
🥾В четверг загружу вторую часть собеседования
🏁В пятницу ожидайте разбор слабых и сильных сторон нашего соискателя (он молодец)
🔥7
Ждете запись собеседования?
Anonymous Poll
73%
Да
10%
Нет
18%
Узнать результат
Channel name was changed to «Программист живёт нормально»
Череда ребрендингов настала, канал по-тихоньку подбирается к тому, чтобы быть еще более публичным!

Открыл для вас чат, если вам есть, что сказать - пишите, буду рад там вас видеть)
👍9🔥1
#junior #middle #МокИнтервью #java

Настал этот момент! Загружаю для вас первую часть Mock-интервью с Феликсом - нашим сегодняшним соискателем.

https://youtu.be/mZMsNA4DlsU

00:00 - Знакомство с Феликсом
6:00 - Самая сложная задача в работе
10:00 - Начало технического собеседования
10:10 - JVM, JRE, JDK
12:00 - final, finally, finalize
14:30 - equals и hashcode
15:40 - контракт между equals и hashcode
16:30 - почему хэшкоды могут быть равны?
17:25 - модель памяти в Java
19:30 - когда stream начинает свое выполнение?
20:40 - пул строк
22:00 - коллекции
22:50 - разница ArrayList, LinkedList
25:45 - реклама книги для начинающего разработчика
26:40 - устройство HashMap и HashSet
30:00 - по какому принципу увеличивается количество бакетов?
32:55 - сложный вопрос про HashMap
34:00 - какие базы данных использовал
35:05 - первичный и внешние ключи
36:25 - ограничения на ключи
🔥8👍5😍2👏1
Программист живёт нормально pinned «#junior #middle #МокИнтервью #java Настал этот момент! Загружаю для вас первую часть Mock-интервью с Феликсом - нашим сегодняшним соискателем. https://youtu.be/mZMsNA4DlsU 00:00 - Знакомство с Феликсом 6:00 - Самая сложная задача в работе 10:00 - Начало…»
Собеседование действительно получилось довольно случайным, я встретился с Феликсом на странице одной из групп в телеграмме, когда на его просьбу провести интервью никто не откликнулся 😞

А я, между тем, очень надеюсь на вашу активность в выставлении реакций на пост про интервью, соберем по максимуму!
Это очень важно для моей мотивации!
👍19🌭1
#junior #middle #МокИнтервью #java
А вот и вторая часть Mock-собеседования с Феликсом. В нем разобрали вопросы по sql и Spring, было круто!

https://youtu.be/l47cQGiDq_g

0:15 - типы Join
2:45 - having, where
4:20 - Задача на собеседовании на SQL
8:10 - Индексы
12:35 - куда будет вставляться строка быстрее
15:30 - партиционирование и explain
16:10 - какие есть scope в Spring?
17:50 - какой скоуп используется по умолчанию?
18:15 - где использовал прототайп?
20:40 - аннотации, в чем их разница?
22:35 - разница RestController и Controller?
23:00 - где используется Bean?
25:00 - конфигурация Spring-приложений
27:00 - конец технического собеседования
🔥6🎉2❤‍🔥1
Программист живёт нормально pinned «#junior #middle #МокИнтервью #java А вот и вторая часть Mock-собеседования с Феликсом. В нем разобрали вопросы по sql и Spring, было круто! https://youtu.be/l47cQGiDq_g 0:15 - типы Join 2:45 - having, where 4:20 - Задача на собеседовании на SQL 8:10 …»
Рад приветствовать всех новеньких! Незаметно, но цифра подписчиков перевалила за первую сотню - это приятно. Рассказывайте о канале своим друзьям - тут хорошо и будет еще лучше)

Впереди выходные, а уже после них попробуем новый формат - интервью с действующими разработчиками и тестировщиками. Не пропустите⚠️

Совсем скоро напишу о сильных и слабых сторонах соискателя, с которым у нас недавно было собеседование ♨️
🔥9👍1
РАЗБОР СОБЕСЕДОВАНИЯ 🤑

Итак, начну с позитивных сторон:
🤪 Первое, на что я обратил внимание - это софты. Феликс не боялся со мной разговаривать! Возможно я не очень внушаю страх, но, если бы это было реальное собеседование, я был бы рад такому общительному кандидату
🧳 Сильные, реально очень сильные ответы на junior-вопросы по Java core и коллекциям, понимание базы программирования вроде О-большой нотации
🧠 Феликс реально думал там, где не знал ответ, пытался рассуждать, это тоже проверяется

Перейду к тому, что можно улучшить:
🤑Немного больше бизнеса. Это я о чем? Разработчик сейчас - это не просто тыкатель на кнопки, это человек, который понимает, какую прибыль он приносит компании, что он делает, для кого и зачем он это делает. Когда я спросил о самой сложной задаче, я хотел получить не только технический ответ на вопрос :"КАК это было сделано?", но и: "Что и для чего было сделано?" (со стороны бизнеса).
👩‍🎓 Слабенькие ответы по SQL и Spring, тут 100% еще есть, что улучшить.
🥲 Иногда казалось, что многовато воды в ответах, но, вероятно, это связано с не очень большим опытом и стрессом.

Вывод: я бы взял Феликса на позицию Junior+ разработчика, если бы имел ограниченное время, иначе бы провел еще два-три собеседования для определения лучшего кандидата 🧳

#МокИнтервью
🔥7👍2💩1
Выгорание 🥲

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

На самом деле, причины выгорания от человека к человеку отличаются. Более того, даже длительность этого этапа может быть разной: от одного дня до месяцев и нескольких лет. Но саморефлексия - наш друг.

Я чаще всего попадаю в состояние выгорания, когда мои родственники навещают меня. Я довольно hard-working и времени у меня хватает только на любимую жену да собаку 🥰
И когда на пороге появляется мой родственник - тут и запускается термодинамическая реакция в моей голове. Я кардинально пытаюсь изменить все свои планы, начинаю крутить и вертеть своим временем, лишь бы все успеть, со всеми повидаться. Как итог, я выгораю еще до приезда человека 🐣

Из-за чего выгораете вы? Напишите в комментариях!

Найдя вход, мы можем ровно также спокойно найти и выход:
1) Вы выгорели, потому что делали одно дело за другим? Отмените на завтра всё, всё, что вы только можете. Дайте себе почувствовать себя так, будто вам нечем заняться
2) Выгорели, потому что какой-то ваш проект провалился? На время вернитесь к менее рисковым проектам.
3) Выгорели, потому что столкнулись с новой технологией? У вас на доске, я уверен, завалялась задачка на известном вам фреймворке, и она тоже ждет своей очереди!

Еще один совет от меня:
!!!Не пытайтесь вести учет времени, как советуют в интернете. Любые жесткие правила, в том числе контроль времени, могут только усугубить выгорание 🧶

#junior #middle #senior #Поговорим
👍13
Пятьдесят раз случайно опубликовывал этот пост раньше времени, надеюсь, сильно уведомлениями вас не убил)
🔥2
Кстати, на днях смотрел очень глупый сериал про ПАГРАМИСТОВ - КиберСталкер (Stalk) называется. В сериале очень смешно показано программирование.

Это, например, цитата прямо из фильма: "IF STAND ELSE RETURN BREAK END. Писать код - это как заблудиться в сибирской тайге и спрашивать дорогу у глухонемого русского. Шансы так себе" 😂😂😂

Хотите новую рубрику - разбор кода из фильмов-сериалов?
👍23🤬1