Java Mentor – Telegram
Java Mentor
294 subscribers
173 photos
48 videos
1 file
79 links
Download Telegram
Что самое важное в изучении Java?

Пет-проекты. По нескольким причинам.

🏜 В пет-проекте ты учишься делать цельное приложение. Тебе приходится решать комплекс взаимосвязанных друг с другом задач, а не решать задачки в отрыве от реальности

🏜 В отличии от теоретической подготовки, которая несомненно важна, в пет-проекте ты обретаешь навыки, которые тебе будут нужны всегда, а не только во-время прохождения собеса

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

Это не голые умозаключения. Это инфа проверенная на опыте.

У меня было 5 учеников. Мы тратили минимум 80% времени на создание проектов, а остальные 20 раскидали на подготовку к собесам и консультации по тестовым заданиям. Каждый из 5 нашел работу.

С каждым из них мы делали индивидуальный проект. Логика в проектах была разной, где-то даже интерфейс был на иврите 😅.

Но по большей части набор технологий был схож, как и структура.

Теперь у меня есть маленькая мечта. Преподнести эту информацию не кому-то персонально, а группе людей. Поэтому в мае я стартую первую итерацию своего курса по созданию пет-проектов на Spring Boot.

Что будет?

Я наберу людей в закрытую группу, где раз в неделю буду выкладывать по уроку.
Вместе мы будем разрабатывать небольшое приложение для маленькой кофейни, с бонусной картой и системой лояльности ☕️.

Это самая универсальная идея для дальнейшей кастомизации. Каждый сможет потом сделать практически идентичное приложение, но не для кофейни, а для салона красоты, пекарни, автомойки и тд.

Мы напишем приложение на Spring Boot с авторизацией, блэк-джеком и хостингом.

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

И как я сказал - это моя первая итерация и первый курс. Неизбежны какие-то шероховатости.

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

Но есть и плюшки.

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

От каждого ученика я слышал слова, что то, что я им дал, на рынке стоит в разы дороже. Это так, и им обошлось это не так дорого, потому что это был мой первый опыт наставничества. Сейчас у вас есть такая же возможность залететь на мой первый курс.

По подробностями залетайте в лс, или ставьте + в коментах, я с вами свяжусь.

До 28 апреля действуют самые вкусные условия
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥6🤩2
🔓 Принцип KISS в программировании

Принцип KISS (Keep It Simple, Stupid) гласит: "Делай проще, глупыш(ка)". Это означает, что программы лучше работают, когда они просты в понимании, создании и использовании.

🔍 Как придерживаться принципа KISS при разработке на Java:

1. Разбивайте код на маленькие части: Пишите небольшие кусочки кода, которые легко читать и понимать. Это поможет другим разработчикам легко разбираться в вашем коде.
2. Давайте понятные имена: Используйте имена переменных и функций, которые описывают, что они делают. Это сделает ваш код понятнее для всех.
3. Избегайте многоуровневой вложенности: Не создавайте несколько уровней вложенности, таких как вложенные циклы или ветвления. Это может усложнить ваш код и сделать его трудным для понимания.
4. Тестируйте свой код: Напишите тесты, чтобы убедиться, что ваш код работает правильно. Это поможет избежать ошибок.
5. Не усложняйте зависимости: Используйте только те библиотеки, которые вам действительно нужны. Это сделает ваше приложение проще и быстрее.
6. Документируйте свой код: Пишите комментарии к коду, чтобы другие разработчики могли быстрее разобраться в нем.
7. Разрабатывайте постепенно: Начните с простой версии вашего приложения и добавляйте новые функции постепенно.


Надеюсь эти простые рекомендации помогут вам делать все проще и создавать более понятные программы на Java!
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🤔3
Java Mentor pinned «Что самое важное в изучении Java? Пет-проекты. По нескольким причинам. 🏜 В пет-проекте ты учишься делать цельное приложение. Тебе приходится решать комплекс взаимосвязанных друг с другом задач, а не решать задачки в отрыве от реальности 🏜 В отличии от…»
Короче, что не так с ООП?

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

Контент, который вызывает эмоции - крутой контент. 🔥

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

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

Это все круто, но с ООП то что не так?

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

А во вторых, в ООП количество ссылок на объекты распределенных по всей системе растет такими же темпами, как количество разрывающихся от негодования пуканчиков в постах из примера выше.

По просту говоря - взрывными темпами.

Из-за чего возникают проблемы с потреблением ресурсов.

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

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

Оно потребляло всю память и умирало, его реанимировали, а оно снова падало. Из-за огромного размера кодовой базы вырезать опухоль оперативно было невозможно. Приходилось судорожно прикладывать подорожники, слушая во сколько тысяч долларов обходятся минуты простоев 🗡.

Второй опыт был эталонным примером обращения внимания на эту проблему 🛡.

Я работал в команде харденинга. От английского закаливать (а может и нет, уже хз). Все что делала эта команда - получала один из существующих сервисов и занималась только одним. Оптимизацией. Конкретно в моем случае мы разгружали память приложения вынося его кэш в Reddis.

Какая у всего этого мораль?

Одной из самых сложных для меня тем на собесах (когда собесят меня) является потребление памяти.

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

Затушите огонь благого гнева изучением Java Memory Model, почитайте про различные сборщики мусора и алгоритмы их работы и получите +100 к привлекательности на собесах 📿🧣❤️‍🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍6👌1
Напомню, что запускаю курс по созданию пет-проекта на Spring-Boot 👍

Сегодня и завтра еще действуют очень привлекательные условия для входа 👉

В рамках курса мы создадим приложение для кофейни с веб-интерфейсом для работников и телеграмм ботом для клиентов ⭐️

Ребята, которые залетели на курс уже получили первые задания 🌡

Хочешь прокачаться с нами? Ставь + в комментах или пришли мне + в лс 🤕
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍31
Задачка

Поделюсь примером того, чем приходится заниматься 40 часов в неделю 🖥

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

Представим также, что фронты пожаловались, что им приходит большое количество координат, и попросили уменьшить объем передаваемых данных, но так, чтобы трек все еще можно было отрисовать 🤯

Одно из предложенных решений - передавать в фильтре дополнительный временной интервал - количество минут. Его задача отсеивать лишние координаты следующим образом:

Допустим, что у нас есть координаты транспорта за каждую секунду. Если значение этого фильтра равно 2, тогда передается первая координата, затем та, которая идет минимум через 2 минуты, затем та, которая идет минимум за 2 минуты и тд.

Т.е. в результате должен получиться список, в котором координаты идут минимум через 2 минуты друг за другом

🅰️🅰️🅰️

Для упрощения представим, что у нас есть класс с координатой x (другие опустим для упрощения), а также меткой времени, в которое эта координата измерена.

Необходимо реализовать тело метода filterCoordinates

class Scratch {
public static void main(String[] args) {
List<Coordinate> coordinates = getCoordinates();
List<Coordinate> filtered = filterCoordinates(coordinates, 1);
}

static class Coordinate {
int x;
LocalDateTime dateTime;
Coordinate(int x, LocalDateTime dateTime) {
this.x = x;
this.dateTime = dateTime;
}
}

static List<Coordinate> filterCoordinates(
List<Coordinate> coordinates,
int minutesInterval) {
// TODO реализовать фильтрацию
return coordinates;
}

static List<Coordinate> getCoordinates() {
List<Coordinate> coordinates = new ArrayList<>();
LocalDateTime now = LocalDateTime.now();
for (int i = 1; i <= 300; i++) {
coordinates.add(new Coordinate(i, now.plusSeconds(i)));
}
return coordinates;
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1
Моё мнение такое.

А вы как думаете, пора лошадку поменять?
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Коротко о том, что происходит на работе.
🤣121
Короче жили мы не тужили, пока реддис не внедрили

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

И вот мне кажется, что все кончится тем, что на картинке

Выпиливая редис из проекта, подбирая его световой меч, буду в слезах уходить, пытаясь заглушить его предсмертный вой: «ненавижуууу»
🤩63🌚1👾1
Media is too big
VIEW IN TELEGRAM
Привет, ребят!

Давненько ничего не писал.

Не писал по нескольким причинам.

Первая причина это ты, а главная причина - это отсутствие понимания какой контент я хочу генерить для себя и вас.

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

Но мне кажется, что полезный контент не нужен подавляющему большинству обитателей соц сетей. Он не нужен и мне.

Вот возьмем меня. Я подписан на каналы по джаве. В них постится полезный контент. Читаю ли я его? Нет. Отпишусь ли я? Нет. Потому что внутри мне хочется самому себе казаться человеком, который хочет развиваться, а не ржать и угарать над кринжовыми историями.

А по факту я хочу ржать и угарать над кринжовыми историями. Читать людей, которые делятся своими трудностями, болями. Читать о том, как настоящие, живые люди достигают успеха, иногда терпят неудачи.

Именно такой контент мне хочется делать самому. И при этом делать его так, чтобы он был полезным. И при этом делать его так, чтобы он выходил регулярно.

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

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

И я решил, а почему бы вам не рассказать о том, что у меня появились ученики?

Вот например сегодня я, кабардинец, из Санкт-Петербурга, рассказывал кыргызу в Ирландии о том, как работать с базой данных из IDEA на английском языке 🤯

Да что там рассказывать? Сами смотрите 📺.

Как думаете, это попадает под категорию весело и полезно? 🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥76👍3🤩1👨‍💻1
На случай, если вы не знали, JetBrains выпускает периодически EAP(Early Access Program) версии для своих продуктов.

Я пользовался Intellij IDEA EAP и не нашел никакой разницы между Ultimate версией и EAP, кроме того, что EAP бесплатная.

Она бесплатная, потому что может содержать какие-то баги.

Такие версии не всегда доступны для скачивания и доступ к ним предоставляется на время. Не помню какое, вроде бы месяц.

Конкретно сейчас EAP версия доступна для скачивания: https://www.jetbrains.com/ru-ru/idea/nextversion/

Если вам нужна Ultimate версия, но у вас проблемы с активацией лицензии, EAP - отличная альтернатива
5👍4🔥4👀1
Никак руки не доберутся написать, что в целом я люблю в лс отвечать на вопросы, да и просто болтать за джаву.

Это бесплатно, а иногда даже и прибыльно 😅

Так что если что, я тут)
🥰32👍1🔥1
Когда бот, которого ты разрабатываешь не хочет с тобой знакомиться((

Вообще я только что осознал что всех своих учеников (целых двух), учу на разных языках. Первого на английском, а второго на Kotlin 😂

Хотел сказать что меня к такому жизнь не готовила, а оказалось, что готовила 🌚

Скрин про бота типа затравочка к чему-то мега-полезному, следите за апдейтами.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3
28 августа 2023 года, Миша написал мне, что ему было бы интересно узнать о моем наставничестве подробнее.

И это стало отправной точкой еще одного путешествия, в котором мне посчастливилось быть навигатором.

Миша работал на заводе, у него маленький ребенок и жена. 3 вещи, которые сильно бустили его мотивацию в изучении Java 🚀. Если у вас проблемы с мотивацией, берите на заметку)

Мне кажется, его семья проживала не обособленно. Кажется потому, что во время занятий, в комнату иногда заглядывала бабушка. Я бы не стал писать про такие личные детали, если бы это не было так важно для меня. Почему важно, я объясню ниже. Миша, прости, если что)

У Миши была мечта, устроиться в СБЕР. И я понял, что это мечта серьезная, когда он отказался от оффера от других ребят, потому что ждал решения от ребят из СБЕРа.

Мы закончили наше наставничество еще зимой. А сегодня, спустя 11 месяцев после нашего знакомства, я получил от него письмо счастья:

Анзор, привет!
Пришел похвалиться)) У меня закончился испытательный срок!

Работа разработчиком намного круче моей прежней работы и отношение тебе человечное и работа интересная. По началу было непонятно, но в Сбере первые 2 недели ты посвещаешь буткемпу на котором тебя учат пользоваться сберовскими инструментами и даже запускаешь небольшой проект на java.

Параллельно еще написал бота который парсит авито по ссылке поиска и скидывает новые объявления и он мне уже принес профит. Суть в том что в Рязани какой-то дикий спрос на квартиры, особенно если она дешевая. И если ты звонишь по поводу квартиры через минут 30, то ты уже в очереди находится. А бот смотрел объявления каждую минуту и когда появилось новое мне скинул в телегу и уже через пару минут я звонил и так оказался первым в очереди. В итоге переехали с семьей в более дешевую квартиру, правда не сильно хороший ремонт, но зато недалеко от садика.

В итоге я сейчас нахожусь в начале своего карьерного пути java разработчика, мне вкатывает данная работа и готов двигаться дальше. Спасибо тебе Анзор за то, что помог к этому прийти!


Почему же мне так важна бабушка, которая иногда мелькала в кадре?

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

У Миши большие планы и амбиции, и отдельный город - лишь малая их часть.

Я очень благодарен ему за то, что он доверился и позволил пройти с ним часть его большого пути. И желаю ему исполнения всех его больших замыслов. По правде сказать, я желаю этого каждому из вас. А если у вас проблемы с мотивацией, то вот три простых шага по тому, как ее забустить: жена, ребенок и работа на заводе)
Please open Telegram to view this post
VIEW IN TELEGRAM
👏13🔥54❤‍🔥1
Привет! В мае я запустил свой курс по созданию пет-проекта на Spring Boot.

Для меня это первый опыт. Было тяжело начать, потому что я никогда не делал такого раньше.

Труднее всего было озвучить эту идею в мир: Я продаю курс по спрингу. Я откладывал это несколько месяцев. Боролся с общественным осуждением, которое существовало лишь в моем сознании.

А когда я все же решился, то получил первую оплату менее чем за 15 минут после публикации.

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

В моём курсе не все идет супер гладко и идеально. Но теперь я точно знаю что можно улучшить, а самое главное - точно понимаю как это можно сделать.

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

90% вещей, о которых я переживаю - нереальны. Но страх, который я испытываю вполне себе осязаем.

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

Но никто не сделает за меня мою жизнь лучше. Поэтому я желаю вам того, чего желаю себе самому.

PS Вообще, хотел написать про то, что мы успели сделать на курсе, но мои пальчики понесло не на те клавиши. Картинка в посте - логика ТГ бота, который мы на данный момент внедряем в наш проект. О ТГ ботах я еще напишу, но следующий пост будет про 📿🦊BDSM🤐
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥123❤‍🔥3👍3
В одной из контор где я работал был отдел: 🔠usiness 🔠evelopment, 🔠ales and 🔠arketing

А в офисе того же БЦ где располагались мы, располагалась комната, где проводили шибари сессии(кажется). 📿

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

Одна из вещей, на которых я тормозил - это стоп слова.👎
Как придумать стоп слово, от которого не тянет поржать?

Стандартный светофор использовать как-то скучно, а все остальное вызывает жуткий приступ кринжа. Ну что я случайно не назову во время сессии в порыве возбуждения? Фалафель? Фамилию бывшего начальника?🗿

Но вчера меня осенило. Я ж программист. В программировании столько терминов, которые идеально легли бы на стоп слова.

Например:
Rollback - откат изменений.

Или же коды ответов HTTP:
200-ОК
300-Redirect
400-Bad Request
500-Server Error

Или же уровни изоляции транзакций в бд, или же различные ошибки выполнения. 🚫

А сколько exception-ов в Java…

Только представьте, сабмисив кричит:
-Ошибка, Ошибка!
Мастер спрашивает:
-Какая ошибка?
-Ввода-вывода…
И мастер сразу понимает, что подход к вводу выводу посторонних предметов в организм подопечного нужно как-то пересмотреть. 🤐

Объявляю конкурс на лучшее стоп слово из IT терминологии.

Победитель получит народную любовь 😈 и мой гайд по созданию телеграм ботов.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7🍓3😈321