Почему постоянство (consistency) важнее других правил?
Здорово, когда на проекте во всем соблюдаются best practices. Но, во-первых, это не панацея, а во-вторых, не всегда это возможно по многим причинам.
Тем не менее, если на проекте уже используется какой-то подход при написании кода, привнесены определенные библиотки и фреймворки, то лучше придерживаться именно этого подхода и не добавлять новых библиотек без веских на то причин, которые к тому же должны быть обговорены внутри команды.
Простейший пример
Если ни в одном из проектов/модулей нет lombok, то не нужно его подключать во время реализации вашей задачи, чтобы не генерировать boilerplate code самому. В таком случае только ваш модуль и только ваша часть кода будет его использовать. Других разработчиков это введет в заблуждение при написании кода в других модулях, а также возникновении потенциальных багов и ошибок с тем же equals, hashCode, etc.
Еще один пример из моей практики
У меня как-то раз тестовый flyway скрипт накатился на prod базу данных. А все потому, что именно в этом проекте не работал стандартный шаблон именования скриптов, которые накатываются только на тестовое окружение и больше нигде. Во всех остальных проектах работало именно так. Т.е. не было consistency между всеми модулями, тем самым разработчик сделал предположение, что должно работать именно так.
Здорово, когда на проекте во всем соблюдаются best practices. Но, во-первых, это не панацея, а во-вторых, не всегда это возможно по многим причинам.
Тем не менее, если на проекте уже используется какой-то подход при написании кода, привнесены определенные библиотки и фреймворки, то лучше придерживаться именно этого подхода и не добавлять новых библиотек без веских на то причин, которые к тому же должны быть обговорены внутри команды.
Простейший пример
Если ни в одном из проектов/модулей нет lombok, то не нужно его подключать во время реализации вашей задачи, чтобы не генерировать boilerplate code самому. В таком случае только ваш модуль и только ваша часть кода будет его использовать. Других разработчиков это введет в заблуждение при написании кода в других модулях, а также возникновении потенциальных багов и ошибок с тем же equals, hashCode, etc.
Еще один пример из моей практики
У меня как-то раз тестовый flyway скрипт накатился на prod базу данных. А все потому, что именно в этом проекте не работал стандартный шаблон именования скриптов, которые накатываются только на тестовое окружение и больше нигде. Во всех остальных проектах работало именно так. Т.е. не было consistency между всеми модулями, тем самым разработчик сделал предположение, что должно работать именно так.
И это было правильное предположение разработчика, потому что большинство вещей мы делаем на автомате, полагаясь на некий шаблон - это экономит очень много времени и энергии. Только представьте, как застопорилась бы работа, если бы человек думал над каждой строчкой кода, потому что не было бы уверенности без consistency: а точно ли я правильно пишу или нет?
👍49🔥7💯6❤1
Эффект бабочки
Сейчас я отдыхаю с семьей на Кипре. И в прошлое воскресенье мы встретились с моей самой первой ученицей Полиной, когда я еще менторил ребят в it-academy в Минске в далеком 2018 году. А это почти 7 лет назад 😱
За эти годы Полина стала очень сильным Java разработчиком, поработав в своей первой компании в Беларуси (где еще и нашла свою вторую половинку!), потом в Польше, и вот теперь живет с мужем на Кипре и работает в стартапе, покоряя островную жизнь, которая учит тебя замедляться - а это очень важно.
Интересный факт: для того, чтобы скопить необходимую сумму на обучение, Полина подрабатывала нянечкой.
И вспоминая как все было в 2018 году, мы пришли к очень интересной мысли:
Так и решение пойти ко мне на менторство стало одним из поворотных, и оно полностью перевенуло жизнь Полины.
Сейчас я отдыхаю с семьей на Кипре. И в прошлое воскресенье мы встретились с моей самой первой ученицей Полиной, когда я еще менторил ребят в it-academy в Минске в далеком 2018 году. А это почти 7 лет назад 😱
За эти годы Полина стала очень сильным Java разработчиком, поработав в своей первой компании в Беларуси (где еще и нашла свою вторую половинку!), потом в Польше, и вот теперь живет с мужем на Кипре и работает в стартапе, покоряя островную жизнь, которая учит тебя замедляться - а это очень важно.
Интересный факт: для того, чтобы скопить необходимую сумму на обучение, Полина подрабатывала нянечкой.
И вспоминая как все было в 2018 году, мы пришли к очень интересной мысли:
Есть множество решений, которые человек принимает каждый день. Но лишь малая часть из них может на столько сильно изменить твою жизнь.
Так и решение пойти ко мне на менторство стало одним из поворотных, и оно полностью перевенуло жизнь Полины.
👍71🔥36❤20💯1
Не мог не поделиться еще одной историей в комментариях к моему посту. Возможно, тоже кого-то замотивирует.
Вот какая может жизнь быть людей. И вот такие люди становятся очень сильными, характером и духом!
Вот какая может жизнь быть людей. И вот такие люди становятся очень сильными, характером и духом!
👍19
Forwarded from Ratibor Axyonov
2019 год.. от меня ушла жена оставив меня с ребенком инвалидом на руках, не было своего жилья, остался на улице, меня приютил сельский священник, жил одно время у него в комнатке с ребенком куда влезало одно спальное место, потом комнатка побольше, работал у него на стройке, вставал в 4 учил java, в 8 отдавал малыша матушке, и шел на стройку, в 6-7 заканчивал , забирал ребенка и сидел с ним стараясь учиться дальше. Был совершенно истощен морально , психически и физически, в 8-9 выключался, дальше опять в 4 подьем и по кругу, поюс ко всему пеленки, готовка, уборка, кто знает что такое ребенок - тот поймет… и так около года, дальше первые собесы, работа, встреча второй половинки которая стала помогать с ребенком. Прошло уже 6 лет, а все как вчера. Впереди еще много проблем, и позади уже многое, главное не сдаваться. Сейчас java разработчик в крупной компании уже 6 лет в профессии. Денис спасибо тебе! Твои курсы очень помогали мне в обучении, дай Бог тебе здоровья , любви и благополучия!
❤🔥171🔥23🙏22
#22 Мой путь
По окончании первой группы я был на столько опустошен, что хотел взять отпуск. О своих намерениях я решил рассказать заведующей it-academy. Беседа закончилась тем, что я буду вести ту же самую ступень, а не идти дальше. Все-таки, обучать по накатанной программе в разы проще, где уже все мне известно и материал готов. Это означало, что мою первую группу будет вести новый ментор на второй ступени обучения Java.
Прошло немного времени. Мои ребята уже начали продлевать обучение, оформлять документы, и вдруг узнали, что дальше с ними буду идти не я. И какое было мое удивление, когда они написали заявление, что в качестве ментора должен быть я и никто другой, собрав подписи с 15-ти человек в группе! А дальше мне пришлось рассказывать о своем решении и почему я так захотел сделать. Слово за слово, и я уже не в силах был сопротивляться и даже захотел продолжить путь. Все-таки, связь между нами была построена действительно сильная. Такого не воссоздашь с помощью online образования, которое заменило все остальное в период Covid.
2 недели спустя (именно столько длился обычно перерыв между двумя ступенями обучения) - я нахожусь в аудитории it-academy, открываю первую лекцию по теме Apache Maven, стоя напротив своей любимой группы.
Так пролетели следующие 2.5 месяца. В течение этого периода я успел уволиться из Godel Technologies, проработав там ровно 2 года по контракту. Потом устроился в Red Alpha, не задержавшись там больше чем на месяц. А затем и Synesis.
К довольно размеренному темпу разработки на банковском проекте в Red Alpha я еще не был морально готов. Мне хотелось программировать, много и интересно. Я сразу понял, что это не мое, поэтому не юлил с работодателем. Сказал все как есть и чего хочу. Поэтому мы попрощались на дружественной ноте. И даже спустя время мы иногда созванивались, чтобы узнать не изменилось ли мое отношению к их проекту.
А вот в Synesis я нашел то, что пришлось по душе. В 2019 году планировалось проводить Европейские игры в Беларуси, поэтому нужны были толковые ребята, которые любят писать код и делают это очень хорошо. Ведь оставался один год, т.е. довольно жесткие дедлайны, а людей в команде не хватало. Поэтому компания не скупилась на офферы и делала их очень заманчивыми.
И вот 6 августа 2018 года - я сижу в новом офисе в двух шагах от 5 корпуса БГУИР, который я закончил 4 года назад! Поэтому первое время часто охватывала ностальгия об универовских годах, все-таки каждый будний день проезжал мимо него и ходил на обед неподалеку.
Как-то раз даже зашел в столовую БГУИР. Конечно, к тому времени я уже отвык от такой студенческой еды. Маленькие порции, переваренный рис, какая-то второсортная колбаса, кисель с комочками - даже не верится, что этим я питался когда-то и мне даже нравилось. Ко всему хорошему, включая еду, быстро привыкаешь. Больше туда я не заходил.
#my_little_story
По окончании первой группы я был на столько опустошен, что хотел взять отпуск. О своих намерениях я решил рассказать заведующей it-academy. Беседа закончилась тем, что я буду вести ту же самую ступень, а не идти дальше. Все-таки, обучать по накатанной программе в разы проще, где уже все мне известно и материал готов. Это означало, что мою первую группу будет вести новый ментор на второй ступени обучения Java.
Прошло немного времени. Мои ребята уже начали продлевать обучение, оформлять документы, и вдруг узнали, что дальше с ними буду идти не я. И какое было мое удивление, когда они написали заявление, что в качестве ментора должен быть я и никто другой, собрав подписи с 15-ти человек в группе! А дальше мне пришлось рассказывать о своем решении и почему я так захотел сделать. Слово за слово, и я уже не в силах был сопротивляться и даже захотел продолжить путь. Все-таки, связь между нами была построена действительно сильная. Такого не воссоздашь с помощью online образования, которое заменило все остальное в период Covid.
2 недели спустя (именно столько длился обычно перерыв между двумя ступенями обучения) - я нахожусь в аудитории it-academy, открываю первую лекцию по теме Apache Maven, стоя напротив своей любимой группы.
Так пролетели следующие 2.5 месяца. В течение этого периода я успел уволиться из Godel Technologies, проработав там ровно 2 года по контракту. Потом устроился в Red Alpha, не задержавшись там больше чем на месяц. А затем и Synesis.
К довольно размеренному темпу разработки на банковском проекте в Red Alpha я еще не был морально готов. Мне хотелось программировать, много и интересно. Я сразу понял, что это не мое, поэтому не юлил с работодателем. Сказал все как есть и чего хочу. Поэтому мы попрощались на дружественной ноте. И даже спустя время мы иногда созванивались, чтобы узнать не изменилось ли мое отношению к их проекту.
А вот в Synesis я нашел то, что пришлось по душе. В 2019 году планировалось проводить Европейские игры в Беларуси, поэтому нужны были толковые ребята, которые любят писать код и делают это очень хорошо. Ведь оставался один год, т.е. довольно жесткие дедлайны, а людей в команде не хватало. Поэтому компания не скупилась на офферы и делала их очень заманчивыми.
И вот 6 августа 2018 года - я сижу в новом офисе в двух шагах от 5 корпуса БГУИР, который я закончил 4 года назад! Поэтому первое время часто охватывала ностальгия об универовских годах, все-таки каждый будний день проезжал мимо него и ходил на обед неподалеку.
Как-то раз даже зашел в столовую БГУИР. Конечно, к тому времени я уже отвык от такой студенческой еды. Маленькие порции, переваренный рис, какая-то второсортная колбаса, кисель с комочками - даже не верится, что этим я питался когда-то и мне даже нравилось. Ко всему хорошему, включая еду, быстро привыкаешь. Больше туда я не заходил.
#my_little_story
👍53🔥17❤🔥6❤2🤔1
Официально открываю 15-ый набор на менторство DMdev 🚀
📆 Старт 27 января 2025г.
Продолжительность: 3,5 месяца
На первую ступень приглашаю тех, кто находится в самом начале пути изучения Java
На вторую ступень - бывалых, тех, кто знает основы Java Core и не только!
Тех, кто уже работает разработчиком и хочет укрепить свои знания для повышения зп или смены компании
Что внутри?
Результат: реализуешь свой собственный веб-проект по лучшим практикам разработки 👨🏻💻
Программа и запись:
1️⃣ Первая ступень менторства - осталось5 мест 3 места
2️⃣ Вторая ступень менторства - sold out
🎁 Бонус для тех, кто забронирует место до Нового Года -> курс по «Docker»!
Продолжительность: 3,5 месяца
На первую ступень приглашаю тех, кто находится в самом начале пути изучения Java
На вторую ступень - бывалых, тех, кто знает основы Java Core и не только!
Тех, кто уже работает разработчиком и хочет укрепить свои знания для повышения зп или смены компании
Что внутри?
✔️недельные спринты с уроками, домашним заданием и дедлайном
✔️два раза в неделю живые созвоны с практикующим ментором-разработчиком (на второй ступени со мной)
✔️еженедельное code review
✔️безлимитное общение в ламповом чате с группой и ментором
Результат: реализуешь свой собственный веб-проект по лучшим практикам разработки 👨🏻💻
Программа и запись:
1️⃣ Первая ступень менторства - осталось
2️⃣ Вторая ступень менторства - sold out
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍5❤🔥2😁2
Отключение монетизации для ребят из РБ
К сожалению, есть не очень хорошие новости - YouTube деактивирует AdSense аккаунты для ребят из РБ с сегодняшнего дня 13 декабря.
По этой причине пришло письмо без права выбора - принудительная деактивация моего AdSense аккаунта.
Буду думать, как решить этот вопрос, если это вообще возможно. В худшем случае я теряю платформу для своих курсов, т.е. останутся только Udemy и GetCourse.
❗️PS. Напоминаю, что все мои курсы доступны для любых стран только на платформе GetCourse https://dmdev.getcourse.ru/courses
К сожалению, есть не очень хорошие новости - YouTube деактивирует AdSense аккаунты для ребят из РБ с сегодняшнего дня 13 декабря.
AdSense используется для монетизации контента на YouTube и поменять страну там невозможно.
По этой причине пришло письмо без права выбора - принудительная деактивация моего AdSense аккаунта.
Буду думать, как решить этот вопрос, если это вообще возможно. В худшем случае я теряю платформу для своих курсов, т.е. останутся только Udemy и GetCourse.
❗️PS. Напоминаю, что все мои курсы доступны для любых стран только на платформе GetCourse https://dmdev.getcourse.ru/courses
😭15😱10❤7🤯6👍1👎1
🚀 Спонсорство на YouTube восстановлено!
Наконец-то получилось создать новый AdSense аккаунт, пройти все верификации и прилинковать его к YouTube каналу dmdev.
Как подтверждение - вижу, что вновь пошли новые ребята присоединяться к спонсорской программе YouTube.
Так что всем большое спасибо, кто помог информацией и ссылками на то, как быстро восстановить доступ к видео!
И всем вновь приятного просмотра :)
Наконец-то получилось создать новый AdSense аккаунт, пройти все верификации и прилинковать его к YouTube каналу dmdev.
Как подтверждение - вижу, что вновь пошли новые ребята присоединяться к спонсорской программе YouTube.
Так что всем большое спасибо, кто помог информацией и ссылками на то, как быстро восстановить доступ к видео!
И всем вновь приятного просмотра :)
🔥55🎉12👍6⚡3❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Копипаст - это хорошо!
Копируя очередной блок кода откуда-то для своего сервиса, помни - что это абсолютно естественно (в рамках разумного конечно). Потому что это заложенно в нас генетически!
👉Как отличный пример:
на видео мой сын, которому 1 год и 4 месяца пытается скопировать довольно сложное для него упражнение для раскатки мышц роллом. И его явно никто не просил и не учил этому, потому что у детей его возраста уши нужны для красоты. Так что все происходит естественно.
Поэтому в который раз убеждаюсь, что абсолютно любой человек - это универсальная копировальная машина 😎
Копируя очередной блок кода откуда-то для своего сервиса, помни - что это абсолютно естественно (в рамках разумного конечно). Потому что это заложенно в нас генетически!
👉Как отличный пример:
на видео мой сын, которому 1 год и 4 месяца пытается скопировать довольно сложное для него упражнение для раскатки мышц роллом. И его явно никто не просил и не учил этому, потому что у детей его возраста уши нужны для красоты. Так что все происходит естественно.
Поэтому в который раз убеждаюсь, что абсолютно любой человек - это универсальная копировальная машина 😎
🔥60😍18👍15❤5😁5💯3🥰2
Почему исторически пришли к использованию нескольких баз данных на одном проекте?
Лет 10 назад (а может уже и больше) я написал довольно сложный SQL запрос, который ежедневно вытягивал информацию заказчику об израсходованных пользователями ресурсах. Сам запрос отрабатывал просто замечательно, пока данных не перевалило за 50M. Последующий тюнинг запроса и создание индексов хоть и улучшили ситуацию, но лишь отложили неминуемую проблему.
И уже тогда я задавался вопросом - неужели нельзя как-то иначе структурировать данные в СУБД, чтобы можно было и правильно хранить, соблюдая первые нормальные формы, и читать их также эффективно.
Как оказалось - нельзя 🙂
Поэтому решение, к которому мы тогда пришли и которое сейчас уже повсеместно встречается везде (и которое кажется абсолютно логичным, но не тогда казалось нам!) - это использование нескольких СУБД. Но как и любое другое решение, оно имеет свои плюсы и минус - и это надо помнить.
Например:
- одна для обработки live данных пользователей
- вторая для быстрого поиска по этим live данным
- третья для аналитики и отчетов
Обычно, для каждого варианта используются разные СУБД, которые выполняют свои функции лучше всего. Например, для первого кейса PostgreSQL, для второго Elasticsearch, для третьего BigQuery.
PS. Фото - это я решил покормить лемуров на Кипре. Но их было также много, как и баз данных сейчас у меня в Google 😅
Лет 10 назад (а может уже и больше) я написал довольно сложный SQL запрос, который ежедневно вытягивал информацию заказчику об израсходованных пользователями ресурсах. Сам запрос отрабатывал просто замечательно, пока данных не перевалило за 50M. Последующий тюнинг запроса и создание индексов хоть и улучшили ситуацию, но лишь отложили неминуемую проблему.
И уже тогда я задавался вопросом - неужели нельзя как-то иначе структурировать данные в СУБД, чтобы можно было и правильно хранить, соблюдая первые нормальные формы, и читать их также эффективно.
Как оказалось - нельзя 🙂
Это все равно, что решить две диаметрально противоположные проблемы на чтение и запись данных - одним и тем же способом.
Поэтому решение, к которому мы тогда пришли и которое сейчас уже повсеместно встречается везде (и которое кажется абсолютно логичным, но не тогда казалось нам!) - это использование нескольких СУБД. Но как и любое другое решение, оно имеет свои плюсы и минус - и это надо помнить.
Например:
- одна для обработки live данных пользователей
- вторая для быстрого поиска по этим live данным
- третья для аналитики и отчетов
Обычно, для каждого варианта используются разные СУБД, которые выполняют свои функции лучше всего. Например, для первого кейса PostgreSQL, для второго Elasticsearch, для третьего BigQuery.
Но нужно помнить, что это вполне нормально и даже более правильно начинать с одной СУБД и только со временем добавлять другие, если в этом есть или предвидется необходимость в скором времени - YAGNI!
PS. Фото - это я решил покормить лемуров на Кипре. Но их было также много, как и баз данных сейчас у меня в Google 😅
🔥44👍18❤4❤🔥4😁4
Какое количество строк в таблицах реляционных СУБД можно считать оптимальным?
Anonymous Quiz
6%
До 10к
12%
До 100к
34%
До 1М
31%
До 10М
17%
До 100М
🤔18👍5🤯3😭3
Какое оптимальное количество строк в таблицах реляционных СУБД?
На своем опыте использования разных СУБД и пообщавшись с более профильными ребятами DBE (Database Engineer) - я пришел к выводу, на сколько хорошо или плохо работают реляционные СУБД в зависимости от объема данных в таблицах:
1️⃣ От 0 до 10M - такое количество строк, пожалуй, является идеальным. Все SQL запросы по любым колонкам работают очень быстро, и даже full scan выполняется за доли секунды.
2️⃣ От 10М до 50М - это довольно увесистые таблицы, уже нужно задумываться о создании индексов и как написать хорошо SQL запросы. Нужно избегать full scan, если это возможно. Старые SQL запросы скорее всего придется пересмотреть и оптимизировать, потому что появляются проблемы с производительностью приложений.
3️⃣ От 50М до 100М - пора доставать задачи из бэклога о редизайне схемы базы данных, рассматривать партиционирование/шардирование (на уровне СУБД, если она это поддерживает, либо на уровне приложения). Или даже использование/переезд на другую СУБД, потому что релиз практически любой фичи сопряжен с какими-то проблемами. А старый функицонал все чаще выстреливает в ногу там, где даже не ожидал. Даже простейшее добавление/удаление колонки, создание нового индекса может привести к full outage.
4️⃣ От 100М до 1ММ - это как тонущий корабль, ибо поздно задумываться о чем-то - проблемы уже есть здесь и сейчас. А использовать какое-либо решение из пункта 3 сопряжено с большими проблемами или даже не является возможным.
Уже не помню из какой книги, но я достал для себя интересную мысль, которую применяю при написании алгоритмов или тех же SQL запросов:
Другими словами говоря, я ставлю себя на место машины/компьютера.
Например:
1️⃣ Переносить дрова по одной штуке сложнее, чем взять тележку (= использование батчей)
2️⃣ Если попросить друга, то выкопать картошку в огороде будет почти в 2 раза быстрее (= использование несколько ядер/потоков)
3️⃣ Поднимать вес гантель становится все сложнее с увеличением веса (= увеличению кол-ва строк в таблицах)
4️⃣ Искать номер телефона в справочнике гораздо быстрее, если он отсортирован по алфавиту (= использование сортировок и двоичного поиска)
PS. На фото - это я себе сделал подарок на НГ, чтобы выполнять силовые не выходя из дома 😁
На своем опыте использования разных СУБД и пообщавшись с более профильными ребятами DBE (Database Engineer) - я пришел к выводу, на сколько хорошо или плохо работают реляционные СУБД в зависимости от объема данных в таблицах:
1️⃣ От 0 до 10M - такое количество строк, пожалуй, является идеальным. Все SQL запросы по любым колонкам работают очень быстро, и даже full scan выполняется за доли секунды.
2️⃣ От 10М до 50М - это довольно увесистые таблицы, уже нужно задумываться о создании индексов и как написать хорошо SQL запросы. Нужно избегать full scan, если это возможно. Старые SQL запросы скорее всего придется пересмотреть и оптимизировать, потому что появляются проблемы с производительностью приложений.
3️⃣ От 50М до 100М - пора доставать задачи из бэклога о редизайне схемы базы данных, рассматривать партиционирование/шардирование (на уровне СУБД, если она это поддерживает, либо на уровне приложения). Или даже использование/переезд на другую СУБД, потому что релиз практически любой фичи сопряжен с какими-то проблемами. А старый функицонал все чаще выстреливает в ногу там, где даже не ожидал. Даже простейшее добавление/удаление колонки, создание нового индекса может привести к full outage.
4️⃣ От 100М до 1ММ - это как тонущий корабль, ибо поздно задумываться о чем-то - проблемы уже есть здесь и сейчас. А использовать какое-либо решение из пункта 3 сопряжено с большими проблемами или даже не является возможным.
Также нужно помнить не только о количестве, но и об объеме информации (количестве байт), которое занимает в среднем одна строка в таблице. Ибо если решить хранить там бинарники (картинки, файлы) или большие строки, то описанные выше проблемы как будто сдигаются и могут начаться гораздо раньше!
Уже не помню из какой книги, но я достал для себя интересную мысль, которую применяю при написании алгоритмов или тех же SQL запросов:
Eсли что-то сложно или дольше делать тебе, то и машине это будет сложнее/дольше.
Другими словами говоря, я ставлю себя на место машины/компьютера.
Например:
1️⃣ Переносить дрова по одной штуке сложнее, чем взять тележку (= использование батчей)
2️⃣ Если попросить друга, то выкопать картошку в огороде будет почти в 2 раза быстрее (= использование несколько ядер/потоков)
3️⃣ Поднимать вес гантель становится все сложнее с увеличением веса (= увеличению кол-ва строк в таблицах)
4️⃣ Искать номер телефона в справочнике гораздо быстрее, если он отсортирован по алфавиту (= использование сортировок и двоичного поиска)
PS. На фото - это я себе сделал подарок на НГ, чтобы выполнять силовые не выходя из дома 😁
👍46🔥15❤7❤🔥3
С Наступающим Новым 2025 Годом!
Каждый раз в конце декабря я подвожу итоги для себя лично, чего я досиг и какая работа была проделана мной. Все-таки, очень часто со временем забываются и даже обесцениваются свои же труды, хотя когда-то это же самое казалось стоящим!
1️⃣ Купил машину. Это было очень важное приобретение по сравнению со всеми остальными моими покупками машин, потому что в этот раз я ее приобрел больше для сына и семьи, нежели сугубо для себя одного. Но почему-то в этот раз у меня даже не было радости или какого-то восторга от приобритения. Было чувство, как будто я просто в магазин сходил. Не нравится, когда со временем тебя перестают радовать даже такие вещи.
2️⃣ Месяц жили с семьей на Кипре. Пожалуй, это было лучшее время для меня в этом году, когда все вместе, не нужно пропадать днями на работе, а погода позволяет выходить на пробежки в шортах и майке в декабре месяце. Здесь я получил очень много нового для себя опыта, начиная от левостороннего движения и заканчивая первым в жизни землетрясением. Именно такой опыт увеличивает плостность твоей жизни, от чего кажется, что она становится еще длиннее и насыщеннее!
3️⃣ Взял 3 разряд в беге и триатлоне. Спорт - это не только про преодоление себя, дисциплину и прочее, хотя это одно из важнейших его качеств. Благодаря бегу я начал много читать книг (только ~7 за этот год) и интересоваться физиологией человека, как устроены наши тела, как происходит энергопотребление и другие очень важные процессы внутри нас (даже курс по долголетию прошел!). Тем самым я стал еще больше и усиленнее следить за тем, что я кушаю, пью, сплю, какие физ упражнения делаю, работаю и т.д. С возрастом здоровье только набирает ценность и становится все важнее и важнее для тебя.
4️⃣ Погасил ипотеку за квартиру. Покупка очередной квартиры, как и покупка очередной машины - больше не приносит того же восторга и удовольствия. Но отсутствие всяких кредитов явно делает мою жизнь спокойнее и менее стрессовой. А это дорогого стоит в наше время! Так что как и раньше - буду всеми силами в будущем отказываться от взятия всяких кредитов/ипотек и т.д.
5️⃣ Провел 4 группы менторства DMdev. В отличие от своей основной работы в Google, здесь я получаю настоящую благодарность от людей за то, что помог им реализовать их планы и цели в жизни. Это очень сильно помогает мне в получении душевного спокойствия. Поэтому буду стараться проводить их и дальше, пока это возможно!
6️⃣ Закончил курс по Docker. Это был единственный курс в этом году, хотя планировал изначально два. Законченные дела - это то, что помогает быть более дисциплинированным, ведь начинать что-то делать гораздо проще, чем продолжать и заканчивать. Для этого приходится брать силу воли и идти дальше, когда совсем уж и не хочется.
Теперь, написав все на бумаге, мне становится приятнее осознавать (или даже "осязать"), что не зря прошел этот год и можно заслуженно позволить себе отдохнуть на Новый Год, чтобы потом сразу же поставить перед собой новые цели. Ведь без целей твой фокус внимания будет метаться из стороны в сторону, и все силы (как и твое время) будут уходить вникуда.
❄️ ❄️ ❄️ ❄️ ❄️ ❄️
Поэтому всем желаю похвалить себя за пройденный путь и проделанный труд в 2024 году, загадать и идти к своим самым амбициозным желаниям в 2025 году, не спешить жить и замедляться, проводить больше времени с семьей и близкими, и просто человеческого счастья! Ваш Денис 🥳
Каждый раз в конце декабря я подвожу итоги для себя лично, чего я досиг и какая работа была проделана мной. Все-таки, очень часто со временем забываются и даже обесцениваются свои же труды, хотя когда-то это же самое казалось стоящим!
1️⃣ Купил машину. Это было очень важное приобретение по сравнению со всеми остальными моими покупками машин, потому что в этот раз я ее приобрел больше для сына и семьи, нежели сугубо для себя одного. Но почему-то в этот раз у меня даже не было радости или какого-то восторга от приобритения. Было чувство, как будто я просто в магазин сходил. Не нравится, когда со временем тебя перестают радовать даже такие вещи.
2️⃣ Месяц жили с семьей на Кипре. Пожалуй, это было лучшее время для меня в этом году, когда все вместе, не нужно пропадать днями на работе, а погода позволяет выходить на пробежки в шортах и майке в декабре месяце. Здесь я получил очень много нового для себя опыта, начиная от левостороннего движения и заканчивая первым в жизни землетрясением. Именно такой опыт увеличивает плостность твоей жизни, от чего кажется, что она становится еще длиннее и насыщеннее!
3️⃣ Взял 3 разряд в беге и триатлоне. Спорт - это не только про преодоление себя, дисциплину и прочее, хотя это одно из важнейших его качеств. Благодаря бегу я начал много читать книг (только ~7 за этот год) и интересоваться физиологией человека, как устроены наши тела, как происходит энергопотребление и другие очень важные процессы внутри нас (даже курс по долголетию прошел!). Тем самым я стал еще больше и усиленнее следить за тем, что я кушаю, пью, сплю, какие физ упражнения делаю, работаю и т.д. С возрастом здоровье только набирает ценность и становится все важнее и важнее для тебя.
4️⃣ Погасил ипотеку за квартиру. Покупка очередной квартиры, как и покупка очередной машины - больше не приносит того же восторга и удовольствия. Но отсутствие всяких кредитов явно делает мою жизнь спокойнее и менее стрессовой. А это дорогого стоит в наше время! Так что как и раньше - буду всеми силами в будущем отказываться от взятия всяких кредитов/ипотек и т.д.
5️⃣ Провел 4 группы менторства DMdev. В отличие от своей основной работы в Google, здесь я получаю настоящую благодарность от людей за то, что помог им реализовать их планы и цели в жизни. Это очень сильно помогает мне в получении душевного спокойствия. Поэтому буду стараться проводить их и дальше, пока это возможно!
6️⃣ Закончил курс по Docker. Это был единственный курс в этом году, хотя планировал изначально два. Законченные дела - это то, что помогает быть более дисциплинированным, ведь начинать что-то делать гораздо проще, чем продолжать и заканчивать. Для этого приходится брать силу воли и идти дальше, когда совсем уж и не хочется.
Теперь, написав все на бумаге, мне становится приятнее осознавать (или даже "осязать"), что не зря прошел этот год и можно заслуженно позволить себе отдохнуть на Новый Год, чтобы потом сразу же поставить перед собой новые цели. Ведь без целей твой фокус внимания будет метаться из стороны в сторону, и все силы (как и твое время) будут уходить вникуда.
Поэтому всем желаю похвалить себя за пройденный путь и проделанный труд в 2024 году, загадать и идти к своим самым амбициозным желаниям в 2025 году, не спешить жить и замедляться, проводить больше времени с семьей и близкими, и просто человеческого счастья! Ваш Денис 🥳
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥110❤33👍19🎉8🤩2🏆1🍾1
У меня новый год начался на работе с задач по аналитике. С ней мне не приходилось работать с тех пор, как я устроился в Google.
И что я понял... Что прогресс не стоит на месте даже здесь. Если раньше я использовал BigQuery для построения запросов и Looker для визуализации аналитических данных, то сейчас я вообще никак не ограничен в способах получения данных.
Я могу использовать в одном запросе данные из BigQuery, Spanner, да даже csv файл могу заджойнить! О такой гибкости я мог только мечтать.
Поэтому смело инвестируй свое время в SQL. Это, пожалуй, такой же ключевой навык для backend разработчика, как и знание Bash. Причем оба инструмента старше меня. Как говорится, великое актуально всегда :)
И что я понял... Что прогресс не стоит на месте даже здесь. Если раньше я использовал BigQuery для построения запросов и Looker для визуализации аналитических данных, то сейчас я вообще никак не ограничен в способах получения данных.
Я могу использовать в одном запросе данные из BigQuery, Spanner, да даже csv файл могу заджойнить! О такой гибкости я мог только мечтать.
Но самое главное, что для всего этого мне достаточно хорошо знать SQL, потому что этот язык с небольшими диалектами/изменениями используется везде! А он, на минуточку, был создан в далеком 1974 году, т.е. уже 50 лет назад.
Поэтому смело инвестируй свое время в SQL. Это, пожалуй, такой же ключевой навык для backend разработчика, как и знание Bash. Причем оба инструмента старше меня. Как говорится, великое актуально всегда :)
❤🔥26👍23🔥11❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Top Alerts
Я уже не раз в своих постах затрагивал тему логов и метрик, чтобы донести на сколько важны они в системе. И возвращаясь к метрикам: какой топ самых распространенных алертов, которые должны быть настроены у каждого?
1️⃣ Availability - доступность сервиса. Или иначе: как много 5xx ошибок возвращается клиентам по сравнению с другими статусами.
2️⃣ Latency - как много времени сервису трубется для обработки одного запроса. Если оно становится больше, то это может свидетельствовать о каких-то внутренних неполадках (например, downstream сервис или база данных подтормаживают, SQL запросы не оптимизированы, и т.д.). Также это каскадно может привести к проблемам у upstream сервисов.
3️⃣ Traffic absence - отсутствие траффика вообще, когда ни одного запроса не достигает твоего сервиса на протяжении часа, двух, суток и т.д. Это свидетельствует о проблемах на уровень выше, в инфрастуктуре или на стороне клиента. Часто про этот алерт забывают, но он невероятно важен как и два предыдущих!
В любом случае, алерты - это конечно хорошо, но очень уж не нравится просыпаться среди ночи, когда они звонят тебе на телефон 🥲
Я уже не раз в своих постах затрагивал тему логов и метрик, чтобы донести на сколько важны они в системе. И возвращаясь к метрикам: какой топ самых распространенных алертов, которые должны быть настроены у каждого?
1️⃣ Availability - доступность сервиса. Или иначе: как много 5xx ошибок возвращается клиентам по сравнению с другими статусами.
2️⃣ Latency - как много времени сервису трубется для обработки одного запроса. Если оно становится больше, то это может свидетельствовать о каких-то внутренних неполадках (например, downstream сервис или база данных подтормаживают, SQL запросы не оптимизированы, и т.д.). Также это каскадно может привести к проблемам у upstream сервисов.
3️⃣ Traffic absence - отсутствие траффика вообще, когда ни одного запроса не достигает твоего сервиса на протяжении часа, двух, суток и т.д. Это свидетельствует о проблемах на уровень выше, в инфрастуктуре или на стороне клиента. Часто про этот алерт забывают, но он невероятно важен как и два предыдущих!
В любом случае, алерты - это конечно хорошо, но очень уж не нравится просыпаться среди ночи, когда они звонят тебе на телефон 🥲
👍34🔥9❤🔥2❤1
Фото для привлечения внимания 😁
Осталось 3 места на менторство DMdev 1 ступени
Записывайся, будем прокачивать мозги, а не тело💻
Да начнется трансформация!
👇
клик-клик
Осталось 3 места на менторство DMdev 1 ступени
Записывайся, будем прокачивать мозги, а не тело
Да начнется трансформация!
👇
клик-клик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁67🔥15👍5⚡1👏1🤔1🌚1
Учитель - это не тот, кто скажет тебе нечто, о чем другие до него не могли сказать. Учитель станет твоим другом, потому что скажет так, что ты наконец-то услышишь
Что-то в этом есть. Сам помню, как бывает слушаешь ту же самую сложную тему, которую плохо понимаешь, но от другого человека - и мир как будто начинает играть новыми красками, и до тебя наконец-то доходит.
Также очень сильно влияет то, КАК до тебя доносят информацию, используя уже известные тебе знания, термины, понятия и т.д. По-другому говоря, объясняют "неизвестное" через "известное".
Если же говорить про Java, то очень важно постепенно изучать ее по моему Roadmap, не пропуская какие-то темы. Даже если тебе, как ученику, кажется, что это не нужно и можно пропустить парочку курсов!
PS. Календарь настоящий, у меня дома на кухонном столе стоит 🙂
Что-то в этом есть. Сам помню, как бывает слушаешь ту же самую сложную тему, которую плохо понимаешь, но от другого человека - и мир как будто начинает играть новыми красками, и до тебя наконец-то доходит.
Также очень сильно влияет то, КАК до тебя доносят информацию, используя уже известные тебе знания, термины, понятия и т.д. По-другому говоря, объясняют "неизвестное" через "известное".
Если же говорить про Java, то очень важно постепенно изучать ее по моему Roadmap, не пропуская какие-то темы. Даже если тебе, как ученику, кажется, что это не нужно и можно пропустить парочку курсов!
PS. Календарь настоящий, у меня дома на кухонном столе стоит 🙂
👍43🔥14❤4🤔3
На Java сейчас в основном проекты на поддержке, а новые в сфере применения Java пишутся на Go или JS. Так ли это?
Начну с того, что когда я учился в университете БГУИР в далеком 2009 году, я всегда думал, что все вокруг меня пишут на C/C++. А значит и мне надо учить этот язык, чтобы устроиться на работу.
Потом я работал в компании Godel Technologies, где большинство проектов были написаны на C#, причем количество проектов этих только увеличивалось со временем, а проектов по Java уменьшалось здесь. И закрадывалась мысль, что вот-вот и C# поборет Java и нужно свичнуться на него побыстрее.
К чему это я?
Если хочется более объективной оценки, то лучше смотреть на вакансии в интересующем тебя регионе или на мировые рейтинги языков программирования, например, TIOBE или GitHub.
Лично я предпочитаю TIOBE, потому что он основан на анализе поисковых запросов по языку программирования, активности сообщества разработчиков, количестве вакансий и проектов. Он обновляется ежемесячно.
GitHub же не совсем объективен по моему мнению, потому что большинство компаний (тем более таких больших как MAANG) не держат там свой код. И, наоборот, студенты и фрилансеры активно его используют.
Также нужно обращать внимание на доменную область применения языка. Например, Python находится на первом месте в рейтингах потому, что сейчас нейронные сети и AI на хайпе. Но это не значит, что прикладные программы, enterprise, мобильные приложения и веб пишутся на нем с той же популярностью - это совсем не так. Эти области заняты другими языками.
Python - это обычно про data science и machine learning (и то он переписывается на C++, если нужно установить приложение на пользовательские устройства).
Что же касается изначального вопроса про Go - то, работая в компании Google, которая создала его, могу сказать, что он занял здесь лишь свою небольшую нишу. Так что до сих пор при выборе языка программирования для backend разработки новых сервисов - здесь предпочтительным является Java/Kotlin.
Теперь, напоследок, хочу добавить следующее:
Начну с того, что когда я учился в университете БГУИР в далеком 2009 году, я всегда думал, что все вокруг меня пишут на C/C++. А значит и мне надо учить этот язык, чтобы устроиться на работу.
Потом я работал в компании Godel Technologies, где большинство проектов были написаны на C#, причем количество проектов этих только увеличивалось со временем, а проектов по Java уменьшалось здесь. И закрадывалась мысль, что вот-вот и C# поборет Java и нужно свичнуться на него побыстрее.
К чему это я?
А к тому, что нужно шире смотреть на вещи, а не на обстановку и людей вокруг тебя, потому что таким образом сильно сужается точка зрения. Но самое главное, что зачастую она не объективна и даже не верна (и это относится не только к программированию, а вообще ко всему).
Если хочется более объективной оценки, то лучше смотреть на вакансии в интересующем тебя регионе или на мировые рейтинги языков программирования, например, TIOBE или GitHub.
Лично я предпочитаю TIOBE, потому что он основан на анализе поисковых запросов по языку программирования, активности сообщества разработчиков, количестве вакансий и проектов. Он обновляется ежемесячно.
GitHub же не совсем объективен по моему мнению, потому что большинство компаний (тем более таких больших как MAANG) не держат там свой код. И, наоборот, студенты и фрилансеры активно его используют.
Также нужно обращать внимание на доменную область применения языка. Например, Python находится на первом месте в рейтингах потому, что сейчас нейронные сети и AI на хайпе. Но это не значит, что прикладные программы, enterprise, мобильные приложения и веб пишутся на нем с той же популярностью - это совсем не так. Эти области заняты другими языками.
Python - это обычно про data science и machine learning (и то он переписывается на C++, если нужно установить приложение на пользовательские устройства).
Что же касается изначального вопроса про Go - то, работая в компании Google, которая создала его, могу сказать, что он занял здесь лишь свою небольшую нишу. Так что до сих пор при выборе языка программирования для backend разработки новых сервисов - здесь предпочтительным является Java/Kotlin.
Теперь, напоследок, хочу добавить следующее:
Один язык не является фундаментально лучше или хуже другого. Выбор языка зачастую основывается на опыте инженеров, кто будет писать приложение, проблемной области, которую нужно решить, и уже построенной экосистемы внутри компании.
👍72🔥14❤🔥5
Ровно неделя до старта менторства DMdev!
Еще осталось:
- 2 места на 1 ступень (записаться)
- освободилось 1 место ко мне на 2 ступень! (записаться)
Если все еще сомневаешься идти или нет, то просто напиши по любым вопросам @karina_matveyenka
PS. Примеры финальных проектов, которые у вас будут по окончании менторства, можно посмотреть на YouTube:
- 1 ступень
- 2 ступень
Еще осталось:
- 2 места на 1 ступень (записаться)
- освободилось 1 место ко мне на 2 ступень! (записаться)
Если все еще сомневаешься идти или нет, то просто напиши по любым вопросам @karina_matveyenka
PS. Примеры финальных проектов, которые у вас будут по окончании менторства, можно посмотреть на YouTube:
- 1 ступень
- 2 ступень
🔥11👍7❤🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Самый младший студент на первой ступени менторства😁
Юбилейный 15ый старт двух ступеней состоялся 🎉
Впереди 3,5 месяца насыщенной и продуктивной работы!
Цель поставили, план наметили - осталось только действовать.
Спасибо каждому за доверие, let’s go 🚀
P.S. Для тех, кто любит прыгнуть в последний вагон -> еще два человека могут присоединиться
(писать @karina_matveyenka)
Юбилейный 15ый старт двух ступеней состоялся 🎉
Впереди 3,5 месяца насыщенной и продуктивной работы!
Цель поставили, план наметили - осталось только действовать.
Спасибо каждому за доверие, let’s go 🚀
P.S. Для тех, кто любит прыгнуть в последний вагон -> еще два человека могут присоединиться
(писать @karina_matveyenka)
🎉38🔥20😁9❤🔥4❤3⚡1👍1
Хочу завести новую рубрику: ответы на ваши анонимные вопросы 💻
Часто вопросы задаются в коментариях к постам, под разными видео.
Они теряются и порой остаются неотвеченными.
Теперь для ваших вопросов есть отдельное место, буду отвечать по возможности тут в телеграм канале или инстаграм https://www.instagram.com/denis.dmdev
P.S. Я не буду видеть, кто задал вопрос, они будут полностью анонимны.
Задать вопрос:
👇
https://forms.gle/FLHEHQ7GcSNjmtku5
Часто вопросы задаются в коментариях к постам, под разными видео.
Они теряются и порой остаются неотвеченными.
Теперь для ваших вопросов есть отдельное место, буду отвечать по возможности тут в телеграм канале или инстаграм https://www.instagram.com/denis.dmdev
P.S. Я не буду видеть, кто задал вопрос, они будут полностью анонимны.
Задать вопрос:
👇
https://forms.gle/FLHEHQ7GcSNjmtku5
Please open Telegram to view this post
VIEW IN TELEGRAM
Google Docs
Твой вопрос к DMdev
Здесь можно задать любой анонимный вопрос
Ответ можно будет увидеть в telegram канале https://t.iss.one/dmdev_talks или instagram https://www.instagram.com/denis.dmdev
Ответ можно будет увидеть в telegram канале https://t.iss.one/dmdev_talks или instagram https://www.instagram.com/denis.dmdev
👍41❤🔥6🤔2❤1