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

Мемы: @java_memes
加入频道
Clean code

Не создавайте переменные, которые не будут потом переиспользоваться

Плохо
boolean removed = myItems.remove(item);
return removed;

Хорошо
return myItems.remove(item);
Хорошо — Плохо

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

Плохо
List list;

Хорошо
List<User> users;
5 тысяч Джавистов

Всем привет! Количество подписчиков на канале перевалило за 5 тысяч, и это кайф. Кайф, что так много людей интересуются Джавой.

Для тех, кто недавно присоединился, меня зовут Зыбкин Дмитрий, я работаю в Москве Java-разработчиком с 2016 года. Канал создал в марте 2018-го для того, чтобы простым языком писать о программировании и начинающим девелоперам было где черпать мотивацию и материалы. Но в процессе это превратилось во что-то большее.

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

— трудоустройство: как поднять зп, как составить резюме, как писать сопроводительное письмо;
— продуктивность: как воспитать привычку, 10 правил эффективных встреч, 5 принципов хорошего программиста;
— обучение: как освоить SQL, GIT, 5 ошибок при изучении программирования;
и конечно стараюсь не забывать о самой Джаве.
Если каждая компания в вакансии пишет, что у них работают крутые профессионалы, тогда где же все криворукие говнокодеры трудятся?
Подкасты

Слушаете ли вы подкасты? Какие подкасты самые лучшие? Где самые крутые ведущие? Самые интересные темы? Самый качественный звук?
Вопросы с собеседований. Git

— что такое git
— отличие git от svn
— как создать репозиторий
— как взять удаленные изменения
— что делает git stash
— зачем нужен .gitignore
— отличие git pull от git fetch
— отличие git merge от git rebase
— что делает git cherry-pick
— стратегия git flow
Сколько времени вы занимаетесь программированием?
anonymous poll

1-3 года – 570
👍👍👍👍👍👍👍 44%

Меньше года – 333
👍👍👍👍 25%

Больше шести лет – 192
👍👍 15%

4-6 лет – 141
👍👍 11%

Не прогаю – 72
👍 6%

👥 1308 people voted so far.
Посты о работе

Работа в банках
https://yangx.top/java_developer/80

Работа в Германии
https://yangx.top/java_developer/144

Работа в Facebook
https://yangx.top/java_developer/355

Работа в Epam
https://yangx.top/java_developer/363

Работа в Custis
https://yangx.top/java_developer/374
Пост для тех, кто обучается у нас на марафоне по Джаве и не только
Хорошо — Плохо

Не сравнивайте булеву переменную с true или false

Плохо
if (value == true) {
// do something
}

Хорошо
if (value) {
// do something
}
Хорошо — Плохо

Ставьте фигурные скобки с операторами if, else, for, do и while, даже когда тело пустое или содержит только одно утверждение.

Плохо
if (value) return x;
else return y;

Хорошо
if (value) {
return x;
} else {
return y;
}

Ещё лучше
return value ? x : y;
Хорошо — Плохо

Плохо
System.out.println("My Message");

Хорошо
logger.info("My Message");
​​Podlodka podcast

Вчера был на записи новогоднего подкаста Подлодки @podlodkanews. Это подкаст о мобильной разработке и не только. Многие темы раскрывают: проектирование, масштабирование, дизайн, управление, организация конференций.

Перед записью ведущие подготовили зрителям ДоДо пиццу, ящик мандаринов и теплую атмосферу. На самой трансляции подвели итоги 2018 года, поделились планами на 2019 и разыграли Яндекс.Станцию.

Топ выпусков Подлодки за 2018:

Профессиональное выгорание
https://soundcloud.com/podlodka/podlodka-72-professionalnoe-vygoranie

Управление памятью с Алексеем Шипилёвым
https://soundcloud.com/podlodka/podlodka-74-upravlenie-pamyatyu

Функциональное программирование
https://soundcloud.com/podlodka/podlodka-44-fp
Java Developer pinned «5 тысяч Джавистов Всем привет! Количество подписчиков на канале перевалило за 5 тысяч, и это кайф. Кайф, что так много людей интересуются Джавой. Для тех, кто недавно присоединился, меня зовут Зыбкин Дмитрий, я работаю в Москве Java-разработчиком с 2016…»
Что посмотреть на выходных — 12

IT-карьера в США от рекрутёра Виктории Бородиной
https://youtu.be/ZK87eIRUVVE

Обзор офиса VK
https://youtu.be/fz33Ix3XNpI?t=78

Интервью Егора Бугаенко — чем зарабатывает, соревнование по чистому коду, женщины в IT
https://youtu.be/ca9ou5t6yyY

#чтопосмотреть
Готовлю интервью с человеком, у которого я учился. Он больше 15-ти лет занимается Джавой, а сейчас работает тимлидом в Deutsche Bank в Сингапуре. Присылайте свои вопросы, которые вы бы хотели ему задать.
​​Шпаргалка по Java 8
Работа в Deutsche Bank

Как и обещал, публикую интервью с Эмином Мамедовым. В 2007 году он закончил Воронежский государственный университет. С 2013 работает тимлидом в Deutsche Bank, а два года назад переехал в Сингапур. Интервью вышло объёмным, поэтому я его разбил на несколько постов. Первая часть о внутреннем устройстве в Deutsche Bank и начале пути Эмина, как разработчика.

— В LinkedIn у тебя написано "Lead Application Developer | VP". Что это значит?
В банках принято назначать title сотрудникам. Линейка тайтлов от банка к банку может варьироваться. Например, в Дойче Банке это Graduate - Associate - Assistant Vice President - Vice President - Director - Managing Director. В Goldman Sachs отсутствует AVP. В Citi есть еще SVP - Senior Vice President. Тайтл назначается за крупные достижения.

— Чем VP отличается от AVP?
Общий паттерн у нас в ДБ:
Graduate - стажер, только закончил внутреннюю школу
Associate - первый уровень, за человеком нужен контроль, давать ему задачи
AVP - сотруднику выдают задачу, но дальнейший контроль не требуется. Он сам взаимодействует с остальными командами и решает все проблемы
VP - сотрудник сам определяет фронт работы для себя и своей команды.
D - в подчинении несколько десятков человек или ответственен за крупную часть бизнеса
MD - ответственен за целое подразделение/ответвление

— Как ты перешёл из AVP в VP?
Здесь не могу ответить детально — соглашение о неразглашении. Общими словами — спроектировал и реализовал систему расчета цен финансовых продуктов.

— Класс! Этого достаточно. Чем у вас должен заниматься Lead Application Developer?
Как минимум, быть техническим лидом команды или одним из технических специалистов в области ответственности команды. Так сказать, point of first contact на случай каких-то вопросов. Часто эту роль совмещают с ролью Тим Лида, но это необязательно.

— Какой состав команд обычно?
​Здесь все по разному. В предыдущем проекте нас было 8 человек - 7 разработчиков и 1 тестировщик. В текущем проекте - 2 разработчика и 1 тестировщик в "аренде", взят у отдельной команды тестировщиков. То есть его могут поменять в любой момент. Есть команды, где работают 30 человек. Так что все индивидуально.

Аналитики тоже имеются, но они могут не привязываться жестко к команде, а работать на несколько. Может быть выделенный аналитик, а может и без него. В последнем случае задачи напрямую ставятся бизнесом.
— Чуть назад перенесёмся. Расскажи, как начал программировать?
У меня родители программисты. Папа часто приносил компьютеры/ноутбуки домой, чтобы поработать. И вот когда мне было 5-6 лет, он принес очередной компьютер и посадил нас с братом играть в Принц Персии. Это повторилось несколько раз, причем я ни разу не видел, чтобы он работал на них. Вероятнее всего он делал это ночами, когда мы уже спали. И у меня построилась ассоциация — программисты играют в игрушки на работе :)

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

— Первый опыт работы программистом. Как это было?
Это как-то прошло плавно и не особо заметно, так как два месяца на первом рабочем месте не было проекта. Мы приходили с ребятами на работу и писали совместный проект, который сами себе и придумали. Поэтому когда дали настоящую работу, мы даже этого не заметили.

— Что это была за компания?
Siemens. Заняв первое место в олимпиаде по программированию, которую они проводили, я попал в их школу. После года обучения в этой школе они всех выпускников брали к себе на работу.

— Как получилось, что теперь работаешь в Сингапуре?
Здесь все просто. Как-то со мной связались через LinkedIn рекрутеры из Лондона и стали предлагать различные вакансии из различных стран Европы. Но уровень зарплат за вычетом налогов/цен по сравнению с Россией были не особо впечатляющими. Единственное место, где более или менее можно было позволить себе такую же жизнь, как в Москве, был Амстердам. Я прошел собеседование и получил оттуда оффер. Когда принес его в Дойче Банк, мне напомнили о программе мобилити с возможной релокацией, которая там есть. Я посмотрел открытые позиции и выбрал проект в Сингапуре. После этого прошел собеседование в этот проект и решил остаться в Дойче Банке, так как работа мне нравилась, банк крупнее, стаж не прерывается, да еще и климат получше, чем в Амстердаме.
Работа в банках. Java, Scala, ML

Во второй части Эмин рассказал о том, какие языки и технологии применяют в Дойче. И ответы на вопросы о перспективах модных направлений: AI, ML, Big Data.

— «Большинство банковских проектов унылые и неинтересные». Согласен с этим утверждением?
Нет, не согласен) По двум причинам. Первая — это дело вкуса. Одному приятно тюнить скорость работы программы, чтобы она укладывалась в наносекунды. Кому-то приятнее UI разрабатывать.

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

— Можешь подробнее расписать, какие задачи решаете? Какие используете технологии?
По технологиям у нас Java Core, Grails, Spring/Spring Boot, Multithreading. На frontend AngularJS, Angular 6, React.

По задачам: опять же особо ничего сказать не могу, нельзя разглашать :)

— Как относишься к модным направлениям типа ML, Big Data, Blockchain?
К сожалению, ни разу не приходилось работать с ними. Но приходилось убирать Big Data техники из проекта, где они были совсем не нужны и прикручены из-за модности. Это основная проблема с "модными" подходами. Их стараются прикрутить хоть куда- нибудь, за частую делая только хуже и усложняя систему. Областей применения этих подходов не так много и работать в таких проектах еще не приходилось.