DMdev talks
3.24K subscribers
156 photos
13 videos
89 links
Авторский канал Дениса Матвеенко, создателя DMdev - обучение Java программированию

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

P.S. Когда не программирую - я бегаю:
https://t.iss.one/dmdev_pro_run
Download Telegram
Channel created
👋Привет! 

Рад каждого видеть на этом канале!

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

Поэтому начну хоть как-то 🙂

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

Скорее, в этом канале я планирую делиться своим опытом, знаниями, идеями, своим видением мира и своими мыслями, которые могут быть интересны разработчикам любого уровня и не только.
👍61🔥211
Все чаще слышу такие вопросы:
- Вдруг не тот язык программирования выберу?
- Все никак не могу определиться: Python или Java?
- Я хочу получать удовольствие от работы, а вдруг не туда сверну?

Здесь я вижу два основных момента и недопонимания:

1. Не стоит полагать, что первый выбранный для изучения язык программирования играет решающую роль в дальнейшей карьере.
Например, до того, как прийти к Java, я изучал C/C++, Lisp и даже Assembler.

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

2. Наивно полагать, что программирование - это сплошное удовольствие. Очень много рутинной работы в реальных приложениях.
Думаю, что так в любой сфере.
Лично я ничего не ожидаю от этого мира и тогда действительно получаю удовольствие от всего, не только от работы.
Даже не смотря на то, что с 10 летним опытом, работая в огромной компании, приходится, например, часами править csv файлы или мучиться с текстовыми переводами на десятки языков.
👍54🔥4👏4
Многих интересует вопрос зарплат в IT, хотя примерная информация об этом давно лежит в открытом доступе в интернете. Например, IT в Беларуси: https://salaries.devby.io/

Расскажу свой путь зарплат начиная с 2012 года:
- заканчиваю курсы компании EPAM и иду в ее лабораторию за 300$
На сколько я знаю, сейчас лаборатория не оплачивается там

- через 4 месяца увольняюсь и иду в компанию IBA за 700$
Здесь я проходил распределение после университета и сборы в армию (резерв)
Повышали зарплату раз в полгода в среднем на 200$

- через 3.5 года увольняюсь и иду в компанию Godel Technologies за 1800$
- через 9 месяцев повысили зарплату до 2500$

- через год и 3 месяца увольняюсь и иду в компанию Red Alpha за 3500$

- через месяц увольняюсь и иду в компанию Synesis за 4000$
- через год повышают зарплату до 4400$

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

И эта дополнительная часть зависит от твоей производительности и может быть даже больше фиксированной оплаты в месяц. У меня сейчас так и выходит
Это своего рода мотивация сотрудников хорошо работать и показывать результат.
👍43🔥10🥰3
UPD. К посту выше:
1. Как видно, в 2012, когда я начинал, зарплаты в IT были не такие большие, как сейчас.
Думаю, многие слышали про надувшийся пузырь зарплат в IT сейчас

2. 1000$ сейчас и 10 лет назад - это разные деньги.
Инфляцию даже в долларах никто не отменял
👍22🔥3
Все чаще стал замечать в других каналах, что прямо в Telegram интегрированы оплаты.

Заинтересовался этим вопросом, и, как оказалось, Telegram уже давненько имеет платежную платформу, с которой можно интегрироваться через Bot Payments API.

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

Причем можно интегрироваться с очень многими платежными системами. Даже с российскими Сбербанк и ЮKassa, что сейчас очень кстати!

Мне вот интересно лишь, пользователи уже привыкли к оплате через Telegram или все еще рассматривается это как нечто странное?)
👍24
Вчера готовил домашнее задание для курса по JUnit 5. И даже подумать не мог, что потрачу целый час просто чтобы решить одну, казалось бы, маленькую проблему:
Cannot resolve plugin org.apache.maven.plugins:maven-failsafe-plugin

Я запускал задачи через IntelliJ IDEA. Там по умолчанию есть встроенный Apache Maven и не нужно устанавливать его отдельно.
Поэтому первым делом проверял настройки в IntelliJ Build Tools → Maven: версии, соединения с репозиториями, где лежат settings.xml и многое другое.
Даже стандартное Invalidate Caches and Restart не помогало.

В итоге закончилось тем, что просто интегрировал в проект Maven Wrapper и все команды осуществлял через него. Тем более что недавно он официально зарелизился как Apache Maven Project: https://maven.apache.org/wrapper

Кто помнит, то в прошлом году его можно было использовать только с https://github.com/takari/maven-wrapper (я это еще в своем курсе демонстрировал по Maven)

Отсюда делаем очередной вывод: нужно использовать wrapper (как в Maven, так и в Gradle).
Добавился очередной большой плюс в его копилочку :)
👍36🔥7
Почему я предпочитаю инженерный подход в программировании?

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

От этого моя уверенность падала: а смогу ли я вообще осилить все это?
Еще я часто задумывался о том, почему профессия называлась именно инженер-программист, а не просто программист, например.

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

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

Таким образом не нужно запоминать столько информации, ибо каждая последующая базируется на совокупности более простых.
А при сложных ситуациях или даже нестандартных, ты всегда придумаешь или изобретешь решение.
👍69🔥26👏2
Возвращаясь к посту выше, я хотел бы добавить, что умение декомпозировать задачи нужно развивать постоянно.
Это не тот навык, который ты приобрел и теперь знаешь все - нет.
В чем ты можешь быть точно уверен, так это в том, что такой подход можно применять для решения абсолютно любой задачи в программировании.

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

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

Ведь мне нравится сам процесс разработки приложений!
🔥20👍4