Java Developer
6.45K subscribers
235 photos
8 videos
12 files
279 links
MAKE JAVA GREAT AGAIN

Мемы: @java_memes
加入频道
Алиса научилась рисовать по запросам. В целом правдиво

#мемы в @java_memes
Вот это прям неплохо

#мемы в @java_memes
Google Developer Experts

Google Developer Expert - это такая ачивка от гугла за крутое знание технологии и ее продвижение в комьюнити. Статус GDE даётся в определенной области: Android, Flutter, Angular, Go и других. Сейчас на оффициальном сайте всего 11 экспертов от России. Мой друг Саша взял интервью у двух экспертов по Android и Flutter. Расспросил о том, как они стали знатоками в своей области и что это им дает. Энджой https://yangx.top/android_live/401
Java Developer pinned «Мюнхен. Facebook. Java Собрал все посты, в которых описана работа в разных компаниях • Старт карьеры в Custis https://yangx.top/java_developer/374 • Работа в Мюнхене https://yangx.top/java_developer/146 • Работа в EPAM https://yangx.top/java_developer/363 • Работа в…»
Заморозка повышений

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

В принципе, даже те компании, которые не сильно пострадали от коронакризиса, могут сейчас своим сотрудникам сказать, что повышения не будет с аргументацией «ну вы же понимаете». И все всё поймут.

Короч, как и раньше, лучший способ повысить зарплату — устроиться в другую компанию.
Я недавно написал, что у меня коллега перешел c Java на ФПшный проект на Scala https://yangx.top/java_developer/545. Решил его спросить, как лучше всего врываться в Скалу.
Как учить Scala

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

Основательное изучение
Первый путь для усидчивых людей, кто не знает лени и имеет кучу свободного времени.
1. Курс с Курсеры от Мартина Одерски (основатель Scala)
https://www.coursera.org/specializations/scala
2. Книга Одерски Programming in Scala
3. Красная книга Functional Programming in Scala (теория и задачи)
4. Вы готовы к бою

Быстрый путь
Второй путь для людей, у кого есть на изучение немного времени. Максимум полгода-год в расслабленном режиме или пару месяцев в хардкор режиме.
1. Курсы Rock the JVM с Udemy
https://www.udemy.com/course/rock-the-jvm-scala-for-beginners
https://www.udemy.com/course/advanced-scala
2. Книга Одерски в фоне
3. Красная книга хотя бы 70%
4. Между Udemy и красной книгой можно впихнуть курс Тинька, но это чисто для закрепления, прощёлкать тесты. Если нет времени, не стоит.
https://stepik.org/course/16243

Вне зависимости от выбранного варианта, нужно будет полистать мануалы котов (Cats) и, например, Monix. Так же много нового узнаешь на интервью. Про Tagless-Final и ZIO спрашивают уже сеньоров скалистов. И то, в Москве проекты с TF и ZIO большая редкость пока что. Когда попадете на такой проект, тогда и учите)

#scala
​​Ещё чутка про Scala. Мне же зашел курс по основам Scala на Степике. В смысле, после него конечно сразу не устроишься скалистом, но изучить синтаксис и основные концепции самое то. Там на каждую тему есть тесты, задачи, конспекты. Продублирую ссылку:
https://stepik.org/course/16243

upd.: курс норм для знакомства с языком. Если у вас настрой перейти из Java в Scala, то надо смотреть предыдущий пост
Programming in Scala.epub
6.4 MB
Книга Одерски #книги
Java Developer
Депутаты Госдумы подготовили законопроект о прекращении блокировки Telegram tvrain.ru/s/CZb
Telegram разблокирован

Роскомнадзор объявил, что снимает ограничения. Telegram в РФ был заблокирован больше двух лет, с апреля 2018 года.
​​Средние зарплаты в IT по Москве от Superjob
Что посмотреть на выходных — 15

Сегодня публикую три видео с ютуб-канала Сергея Немчинского. Сергей(@nemchinskiyOnBusiness) — опытный разработчик, архитектор, тимлид, бизнесмен, учитель целой армии джавистов.

Внутренний маркетинг для программиста
https://youtu.be/Gji1CU9hdPE

Софтскиллы для разработчиков
https://youtu.be/4_5OifxrYSc

Что на работе делает Junior, Middle, Senior
https://youtu.be/MoKkYb3h6Qo

#чтопосмотреть
Не знаю, как сейчас, но два года назад Сбер рекламировал выборы мэра Москвы. Лочишь комп — получаешь такую заставку
Льготы для IT-компаний

Скоро ИТ-компании РФ получат налоговые льготы. Ставка страховых взносов станет 7.6%, вместо 14%. Налог на прибыль - 3%, вместо 20%. Это относится к компаниям, у которых не менее 90% доходов приходится на продажу софта и услуг по его разработке, внедрению и поддержке. То есть Яндекс (акции которого за последние 10 дней выросли на 20%) под эти условия пока не попадает, так как основной заработок компании приходится на рекламу. Зато Люксофты и Епамы в теме. Ну что, какие ставки, вырастут ли зарплаты в айти?
Несколько вопросов по многопоточности

1. Каким образом можно создать поток?
2. Чем различаются Thread и Runnable?
3. В чём заключается разница между методами start() и run()?

#вопрос_на_собеседовании
Каким образом можно создать поток?
- Создать потомка класса Thread и переопределить его метод run();
- Создать объект класса Thread, передав ему в конструкторе экземпляр класса, реализующего интерфейс Runnable. Этот интерфейс содержит метод run(), который будет выполняться в новом потоке. Поток закончит выполнение, когда завершится его метод run().
- Вызвать метод submit() у экземпляра класса, реализующего интерфейс ExecutorService, передав ему в качестве параметра экземпляр класса, реализующего интерфейс Runnable или Callable (содержит метод call(), в котором описывается логика выполнения).

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

В чём заключается разница между методами start() и run()?
Несмотря на то, что start() вызывает метод run() внутри себя, это не то же самое, что просто вызов run(). Если run() вызывается как обычный метод, то он вызывается в том же потоке и никакой новый поток не запускается, как это происходит в случае, когда вы вызываете метод start().