DMdev talks @dmdev_talks Channel on Telegram

DMdev talks

@dmdev_talks


Авторский канал Дениса Матвеенко, создателя DMdev - обучение Java программированию

То, что все ищут по Java:
https://taplink.cc/denis.dmdev

P.S. Когда не программирую - я бегаю:
https://t.me/dmdev_pro_run

DMdev talks (Russian)

Канал "DMdev talks" - это авторский канал Дениса Матвеенко, создателя DMdev, который специализируется на обучении Java программированию. Здесь вы найдете все, что ищете по Java, начиная от базовых принципов и заканчивая продвинутыми темами. Денис делится своими знаниями, опытом и советами, чтобы помочь вам стать успешным Java разработчиком. Подпишитесь на канал и узнавайте первыми о новых уроках, интересных материалах и актуальных трендах в мире Java программирования. P.S. Когда Денис не программирует, он бегает и делится своими тренировками в канале https://t.me/dmdev_pro_run. Присоединяйтесь к сообществу DMdev, обучайтесь у профессионалов и достигайте новых высот в своей карьере разработчика Java.

DMdev talks

11 Nov, 14:37


11.11.2024, Bieg Niepodległości, 10k, 37:13

3 разряд по бегу взят с итоговым временем 37:13!

Все-таки удалось достичь своей цели, что ставил еще год назад 😎

Разложился вообще отлично, с запасом. Как сделали последнюю тренировку в среду по 3:45-50, так я и бежал всю дистанцию (на скрине смотри как ровно темп держал).

На последних 2.5 км понял, что еще много сил есть, поэтому начал еще больше разгоняться, поэтому последний км вышел по 3:28 мин/км.

И конечно же как положено отработал финишное ускорение. Заключительные 100 метров шел по 2:41 мин/км.

Сейчас прикидываю, что если бы знал, что так подведет тренер меня к старту круто и так легко будет бежаться мне, то можно было не перестраховываться и чуть быстрее идти хотя бы на 2-3 сек на км, тогда бы из 37 минут точно бы вышел!

Когда завершал прошлогодний сезон, то результат был 39:49. Получается, 2:36 мин снял.

Что в переводе на метры выходит около 650. Т.е. на полтора круга на стадионе обошел бы себя самого в прошлом году - это прям очень сильно мотивирует!!!

Во многом тут заслуга тренера. Под четким руководством выполнял все тренировки. Так что спасибо ей большое!

Конечно, не без косяков с моей стороны. Если бы не пошел без подготовки на триатлон, не травмировался там, и продолжил бы спокойно тренироваться, то определенно точно можно было показать результат намного лучше сегодняшнего - на минуту быстрее минимум.

Сегодня ровно 2 года, как мы с тренером начали сотрудничать. Так что ровно 2 года мне потребовалось для достижения 3 разряда. Надеюсь, что к следующем году мы если и не возьмем 2 разряд, то будем очень близки к нему!

https://www.strava.com/activities/12874608741/overview

DMdev talks

25 Aug, 11:32


инстаграм заблокировали, ютюб замедлили, телеграм посадили. видит Бог, я пытался быть блогером, но похоже не судьба.

DMdev talks

25 Aug, 11:32


Искандер прям как будто сорвал с языка - подписываюсь под каждым словом 😅

DMdev talks

19 Aug, 11:27


🚂 Для любителей последнего вагона...
...осталось ОДНО место на 1 и 2 ступень менторства DMdev

Отправляется в путь ровно через две недели - 2 сентября!

Условия учатстия:
Первая ступень менторства
Вторая ступень менторства

Кто забирает и присоединяется к нам?
✍️Пиши @karina_matveyenka

DMdev talks

16 Aug, 15:01


Почему у меня двое часов?

Не секрет, что невозможно создать инструмент, который бы отлично подходил для всего, что-то вроде швейцарского ножа. Да и в программировании есть такое заимствованное понятие one-size-fits-all, которое говорит все о том же.

Точно также и full stack разработчки никогда не смогут достичь высот более узкоспециализированных инженеров.

Поэтому и я ношу двое часов, чтобы лучше удовлетворить свои нужды:

1️⃣ Garmin
Лучшие умные часы для занятия спортом. Причем покрывают практически все циклические виды, тренажерный зал, фитнес, воркауты и т.д. Без них я не представляю как делал бы все свои тренировки по бегу, потому что я ленив, чтобы ездить чуть дальше, чем подъезд твоего дома.

2️⃣ Fitbit
Как хороши бы ни были Garmin для спорта, но мне не очень нравится качество/точность, с которым они трэкают мои health metrics: HR, RHR, HRV, sleep, stress, etc. Именно поэтому я отдаю предпочтение Fitbit. Тем более я работаю над ПО для этих часов, что тоже помогает в тестировании написанного функционала.
____________
И да, мне весьма комфортно носить двое часов.
У меня есть лишь одно требование -> зарядка должна держать не менее 5-7 дней.

DMdev talks

11 Aug, 08:38


Как я использую AI в работе?

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

Что-то внедрили уже несколько лет назад, что-то только недавно, и конечно же скоро будет еще и еще.

Приведу примеры того, что мне нравится больше всего:

1️⃣ Code Review tools
Я могу просто написать комментарий, что неправильно или что можно улучшить, и AI сам меняет код на основании контекста и моего комментария. Автору кода остается лишь нажать "Apply suggestion or cancel". Более того, порой я не знаю как реализовать те же параметризованные тесты на незнакомом мне языке или фреймворке. Я просто пишу комментарий в своем же коде "Лучше было бы заменить на параметризованные тесты" - и дело сделано (даже все импорты подставит).

2️⃣ Email/chats
Также дополняет твои предложения на основании контекста и того, что ты сейчас пишешь. Например, ты пишешь "I would like to recreate" + tab - и AI за тебя дописывает. Очень удобно и ускоряет переписку, на которую довольно много времени уходит.

3️⃣ Написание design docs
Также, что и пункт 2, только ты можешь еще дополнительно попросить, например, сравнить 5 разных инструментов для реализации scheduled jobs, со всеми плюсами и минусами. И если достаточно контекста есть/дашь - то даже подскажет, что лучше использовать именно для твоего проекта. Круто делает и резюме по уже написанному, что удобно больше не только тому, кто пишет, а тому, кто хочет просто прочитать вывод из огромного пласта информации.

PS. В одном из следующих постов напишу, как мы используем возможности AI для своего продукта (smartwatches), чтобы сделать его еще более полезным для пользователей.

Есть те, кто еще не носит умные часы? 🙂

DMdev talks

27 Jul, 14:02


Обзор будет краткий - одна фотка. Фото вместо тысячи слов и 10 митнутного видео)

Я люблю портативность, поэтому года 4 назад перешел со стационарного компа и кучей мониторов - на ноутбук.

На работе в офисе тоже только за ноутом сижу.

Интересно посмотреть, как выглядят ваши рабочие места - кидайте фотки в комментарии 👨‍💻

DMdev talks

27 Jul, 14:02


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

DMdev talks

27 Jul, 09:16


#20 Мой путь

В конце ноября 2017 года я пришел на собеседование в IT Academy (так назывался этот образовательный центр от парка высоких технологий), чтобы устроиться на работу в качестве преподавателя, или, как тут было принято называть, “ментора” по языку программирования Java. Прошла всего неделя с того момента, как я позвонил им и мне было назначено собеседование. За эту неделю мне нужно было выбрать любую понравившуюся небольшую тему по Java, подготовить презентацию, и рассказать ее двум основным слушателям: директору и заведующей учебным процессом. Что, собственно, и произошло.

И вот я стою, открыв уже второй слайд, и рассказываю про примитивные типы в Java. Но что самое интересное, дальше второго слайда я просто не дошел, хотя саму презентацию я сделал довольно большую, на совесть. Мне сразу же начали задавать вопросы, на которые я конечно же с удовольствием отвечал (я же хотел продемонстрировать свои глубокие знания в области программирования, чтобы меня взяли на работу, на которую я так хотел). Только каждый последующий вопрос все дальше и дальше отводил меня от темы.

В итоге, спустя где-то 30 минут, я стою у доски и рисую как устроены простейшие нейронные сети и как в мозгу человека происходит передача сигналов от каждого нейрона с помощью синапсов. В то время я как раз читал одну из технических книг от Рашида Тарика "Создаем нейронную сеть”, поэтому эти знания у меня были довольно свежи в памяти. После чего меня останавливает директор и говорит: “Я думаю, что можно закончить на сегодня. Прошло 45 минут, т.е. целый академический час, а мы еще очень далеко до объяснения темы нашего сегодняшнего занятия”.

Следующие 45 минут мне давали обратную связь по ошибкам, как нужно вести лекции на самом деле, и что как легко уйти в сторону из-за вопросов студентов, тем более имея довольно большой багаж знаний (все-таки моя цель была достигнута, они это оценили!). Это еще один пример того, на сколько важна обратная связь для человека. Только на своем опыте, получая конструктивную критику со стороны, можно очень быстро расти в любой сфере.

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

Я несколько раз отрепетировав перед зеркалом “Примитивные типы данных в Java”, сделал презентацию еще лучше, и со второй попытке меня наконец-то приняли. Осталось лишь стать индивидуальным предпринимателем (именно так было комфортнее всего сотрудничать с IT Academy, когда у тебя было основное место работы), ознакомиться с примерной программой для обучения, и подготовить материал для первых 6-8 занятий. На все это у меня было около полутора месяцев, потому что моя первая группа стартовала как раз после Нового Года.

#my_little_story

DMdev talks

13 Jul, 08:47


Speculative retry

Одной из очень полезных настроек, которую мы часто используем для своих gRPC клиентов - это speculative retries. Суть ее в том, чтобы не дожидаясь ответа от первого запроса - отправлять через какое-то время второй ТОЧНО ТАКОЙ ЖЕ запрос. Какой ответ был получен первым из двух запросов - тот и используется дальше клиентом, второй же запрос просто отменяется.

Особенно ценны speculative retries при использовании в микросервисной архитектуре, когда один из instance сервера медленно обрабатывает запросы, близок к OOM, и т.д. Но ее можно использовать для клиентов разных протоколов, включая привычные нам http и даже запросы к СУБД.

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

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