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

Мемы: @java_memes
加入频道
Книга по многопоточке

Если хотите прокачаться в многопоточке, то прочитайте Java Concurrency in Practice. В ней найдете основные концепции, которые актуальны и сейчас. Авторы книги - разработчики Java. Один из них, Даг Ли – создатель пакета java.util.concurrent. Книга на английском, но читается легко. Все примеры кода советую перепечатывать в Идее.

#книги
Вопросы по многопоточке

100 вопросов с ответами по Java Concurrency
https://github.com/arteam/100-Java-Concurrency-questions
Почему не стоит работать в банке

Недавно кинули пост, в котором разработчик объясняет, почему его не интересуют вакансии в банковской сфере. Вот эти причины:

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

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

3. Правила, ограничения и бюрократия. Даже если айтишникам в банке, действительно, вольготней, чем остальному персоналу, не бывает такого, что в многотысячной компании какой-то отдел живёт совсем по своим правилам. Многоуровневый менеджмент, корпоративные политики и т. п. - так или иначе всё равно есть; об атмосфере стартапа можно забыть. Важный фактор, что в банке всё измеряется деньгами, а это неизбежно приводит к характерному стилю менеджмента.

4. Офис. Для меня, к примеру, офис - второй дом. Помимо работы в комфортных условиях я там завтракаю и обедаю, отмечаю праздники, играю в игры, занимаюсь спортом, участвую в семинарах и т. д. В интернете немало прикольных статей на тему "офисы IT компаний". Покажите что-нибудь похожее про офисы банков!

5. Что делает банковский софт? Помогает банку зарабатывать деньги. Только и всего! А я не хочу тратить свою жизнь на то, чтобы писать софт, просто помогающий другим наживаться. В этом смысле даже работа на заводе привлекательней: ведь там производятся реальные блага для человечества. А я хочу делать мир лучше. Совершенствовать сети и протоколы связи, давать людям новые способы общения, улучшать алгоритмы хранения, передачи и поиска информации, автоматизировать повседневную деятельность, разрабатывать открытые решения, которые принесут пользу не только нашей компании, но и другим.

6. Наконец, инновации. Я хочу работать в компании, которая не только использует передовые технологии, но и сама двигает IT индустрию вперёд. Творить будущее. Это делают именно IT компании, банки лишь пользуются плодами их изобретений.

#компании #банки
О работе в банках

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

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

Итог. Для первой работы банк - гуд. Главное, чтобы были сильные коллеги, у которых можно учиться. Кто на опыте, кропотливее относитесь к выбору проекта.

#компании #банки
Павел Дуров ещё в 2013 году написал про большие компании

#компании
В марте был в Мюнхене и познакомился там с java разработчиком. Он переехал с семьёй в Германию из Украины два года назад.

Сейчас готовлю для канала интервью с Сашей (так его зовут). Он расскажет, как получил оффер в Мюнхене, как обустроился, сколько получают и сколько тратят разработчики в самом дорогом городе Германии.

Если хотите задать Саше вопрос, пишите мне в личку @zybkin
Проверка, является ли символ цифрой
Она же со стандартными средствами JDK
Есть таблица Post и таблица Tag. Как создать связь many-to-many с дополнительными колонками с помощью JPA/Hibernate?
Подробный ответ в статье, которую сам недавно заюзал https://vladmihalcea.com/the-best-way-to-map-a-many-to-many-association-with-extra-columns-when-using-jpa-and-hibernate/
Что такое JSON

Полное название JavaScript Object Notation. Джейсон нужен для представления объекта в виде строки. Такое представление часто используют разработчики для передачи данных с фронта на сервер и в обратную сторону.

Структура Джейсона - это набор пар ключ: значение. Простой пример: { "firstName": "Иван" }.

Значениями могут быть:
— Объект { ... }
— Массив [ ... ]
— Строка в двойных кавычках
— Число
— Логическое значение true/false
null
Пример посложнее:

{
"orderID": 123,
"shopperName": "Ваня Ибрагимов",
"shopperEmail": "[email protected]",
"contents": [
{
"productID": 34,
"productName": "Boroda",
"quantity": 1
},
{
"productID": 56,
"productName": "Giroskuter",
"quantity": 2
}
],
"orderCompleted": true,
"comment": null
}
Майский рейтинг языков программирования от TIOBE
Ситуация. Вы ходили по собеседованиям и получили три оффера. У каждой компании свой плюс: тимлид, зарплата, технологии. Что повлияет на ваш выбор?
anonymous poll

Крутые технологии – 223
👍👍👍👍👍👍👍 44%

Опытный тимлид – 171
👍👍👍👍👍 34%

Высокая зарплата – 113
👍👍👍👍 22%

👥 507 people voted so far.
Когда нужно преобразовать List в Map
5 принципов хорошего программиста

Два года назад прочитал крутую статью "как повысить продуктивность" [https://habr.com/post/299/]. Я переформулировал её в "5 принципов хорошего программиста", которым стараюсь постоянно следовать. Вот эти принципы:

1. Использовать поиск. Не ищите глазами нужный файл, текст, строку. Пользуйтесь функциями поиска везде, где это возможно.

2. Автоматизировать. Если какое-то действие повторяете больше 10 раз, его стоит автоматизировать.

3. Учить скриптовые языки. Python, Perl, Bash - эти парни облегчают жизнь программистам, если умеешь ими пользоваться.

4. Освоить IDE. IDE или среда разработки - оружие разработчика. А чтобы владеть ею мастерски, изучайте горячие клавиши.

5. Саморазвиваться. Выделять каждый день время на изучение новых технологий. Когда я не развиваюсь, то чувствую, что деградирую.

Хороший программист пишет код за минимальное время, отлично знает свою IDE, развивается и автоматизирует то, что приходится часто повторять.
Code Conventions

Code convetions или соглашения по написанию кода нужны для его читаемости. Любую строчку кода можно написать по-разному. Code conventions приводят проект к единому стилю, который известен каждому программисту. Не должно получиться так, что человек переходя с одного проекта на другой страдал, привыкая к новому стилю написания.

Для каждого языка программирования разработчики используют свои соглашения. На большинстве Java-проекта часто принимают за основу Google Java Style Guide https://google.github.io/styleguide/javaguide.html

IntelliJ IDEA умеет сама поправлять код по Code Style. Для этого используйте комбинацию CTRL+ALT+L

#CleanCode
Технический лидер

Есть множество терминов, которые обозначают технического руководителя разработчиков: Team Lead, Tech Lead, Lead Developer. Люди на этих должностях в зависимости от компании выполняют разные обязанности. Технический лидер всё это обобщает.

Технический лидер – это старший товарищ на проекте с большим опытом разработки. Часто он лучше всех знает проект и дольше всех на нём работают.

Чем техлид занимается:
- ведет техническую часть проекта
- принимает технические решения
- ответственен за качество кода, но не за продукт
- ревьюит код
- менторит джунов
- управляет кодом, который пишут участники проекта

Чем не занимается:
- не вмешивается в процесс создания продукта
- не занимается руководством командой
- не отвечает за сам продукт
Олег Мохов @olegmokhov (руководитель службы разработки интерфейсов Яндекса) писал в своём канале о частой ошибке в компаниях – назначении техлида руководителем. Он называет её «убийство разработчика».

Многие считают это логичным продолжением карьеры: разработчик –> старший разработчик –> техлид -> руководитель. Техлид не занимается руководством командой. Многие техлиды не хотят руководить, им нравится писать код и они эффективны именно в этом, но будут не эффективны как руководители или могут вообще уволиться через полгода, после «долгожданного повышения».