Хорошо — Плохо
Не сравнивайте булеву переменную с true или false
Плохо
Хорошо
Не сравнивайте булеву переменную с 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
Вчера был на записи новогоднего подкаста Подлодки @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
#чтопосмотреть
IT-карьера в США от рекрутёра Виктории Бородиной
https://youtu.be/ZK87eIRUVVE
Обзор офиса VK
https://youtu.be/fz33Ix3XNpI?t=78
Интервью Егора Бугаенко — чем зарабатывает, соревнование по чистому коду, женщины в IT
https://youtu.be/ca9ou5t6yyY
#чтопосмотреть
Готовлю интервью с человеком, у которого я учился. Он больше 15-ти лет занимается Джавой, а сейчас работает тимлидом в Deutsche Bank в Сингапуре. Присылайте свои вопросы, которые вы бы хотели ему задать.
Работа в 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 человек. Так что все индивидуально.
Аналитики тоже имеются, но они могут не привязываться жестко к команде, а работать на несколько. Может быть выделенный аналитик, а может и без него. В последнем случае задачи напрямую ставятся бизнесом.
Как и обещал, публикую интервью с Эмином Мамедовым. В 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 рекрутеры из Лондона и стали предлагать различные вакансии из различных стран Европы. Но уровень зарплат за вычетом налогов/цен по сравнению с Россией были не особо впечатляющими. Единственное место, где более или менее можно было позволить себе такую же жизнь, как в Москве, был Амстердам. Я прошел собеседование и получил оттуда оффер. Когда принес его в Дойче Банк, мне напомнили о программе мобилити с возможной релокацией, которая там есть. Я посмотрел открытые позиции и выбрал проект в Сингапуре. После этого прошел собеседование в этот проект и решил остаться в Дойче Банке, так как работа мне нравилась, банк крупнее, стаж не прерывается, да еще и климат получше, чем в Амстердаме.
У меня родители программисты. Папа часто приносил компьютеры/ноутбуки домой, чтобы поработать. И вот когда мне было 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 техники из проекта, где они были совсем не нужны и прикручены из-за модности. Это основная проблема с "модными" подходами. Их стараются прикрутить хоть куда- нибудь, за частую делая только хуже и усложняя систему. Областей применения этих подходов не так много и работать в таких проектах еще не приходилось.
Во второй части Эмин рассказал о том, какие языки и технологии применяют в Дойче. И ответы на вопросы о перспективах модных направлений: AI, ML, Big Data.
— «Большинство банковских проектов унылые и неинтересные». Согласен с этим утверждением?
Нет, не согласен) По двум причинам. Первая — это дело вкуса. Одному приятно тюнить скорость работы программы, чтобы она укладывалась в наносекунды. Кому-то приятнее UI разрабатывать.
Второе — все зависит от проекта. В банке большое количество направлений. Это и лоу леттенси, многопоточность, биг дата, грид вычисления, блокчейны, разработка для мобильных устройств и многое другое. Тяжело найти организацию, которая в себе так же объединяет различные технические сферы. Все банки предлагают мобилити - вы можете перейти в другие проекты если там есть открытая позиция. Конечно, не получится делать это каждый день, но в разумных пределах допустимо.
— Можешь подробнее расписать, какие задачи решаете? Какие используете технологии?
По технологиям у нас Java Core, Grails, Spring/Spring Boot, Multithreading. На frontend AngularJS, Angular 6, React.
По задачам: опять же особо ничего сказать не могу, нельзя разглашать :)
— Как относишься к модным направлениям типа ML, Big Data, Blockchain?
К сожалению, ни разу не приходилось работать с ними. Но приходилось убирать Big Data техники из проекта, где они были совсем не нужны и прикручены из-за модности. Это основная проблема с "модными" подходами. Их стараются прикрутить хоть куда- нибудь, за частую делая только хуже и усложняя систему. Областей применения этих подходов не так много и работать в таких проектах еще не приходилось.
— С чем из этого всего хотелось бы поработать? В чём видишь перспективу?
АI и ML мне кажется очень перспективным направлением. Мы уже сейчас видим широкое использование его во многих сферах жизни и мне кажется, что скоро настанет день, когда программисты станут не нужны). Что уж, не только программисты, многие профессии уйдут в историю, а на замену придет AI.
Недавно ехал в поезде с врачом. И он поведал, что уже сейчас основная задача врача - назначить анализы. Если раньше опыт, интуиция, талант играли роль, то сейчас диагноз ставится программой, в которую вбивают результаты анализов. Так что лечение через интернет - с развитием AI это перестанет быть чем-то фантастическим. То же самое касается и многих других профессий: юристы, экономисты, бухгалтеры и т.д.
— Звучит как-то страшно
Перемены всегда страшны. Но если вспомнить историю, это всегда происходило. С изобретением двигателя внутреннего сгорания с улиц пропали повозки. Кучеров сейчас увидишь разве что только на свадьбах. С изобретением огнестрельного оружия работы у кузнецов поубавилось. Всегда будут перемены и всегда какие-то профессии будут исчезать, но на замену будут появляться что-то другое :)
— Как относишься к Scala и Kotlin. Какие перспективы у этих языков?
Ни то, ни другое не использовал. Оба языка появились для сокращения программного кода Java и упрощения его конструкций, которые уже считаются устаревшими и неудобными. Но тут я надеюсь, что Oracle таки решится и выпустит Java 3, разово отказавшись от обратной совместимости. Этим самым закрыв накопленные за 20 лет долги.
В Дойче Банке я знаю, что некоторые маленькие проекты разрабатывали на Scala и на Kotlin для проверки технологий, но дальше маленьких проектов это не прошло и пару проектов переписывали потом со Scala на Java. Все, кто работал с ними, говорят, что языки удобны для быстрого написания маленьких программ. Но программы тяжелее поддерживать, так как у каждого свой стиль разработки и код получается плохо читаемым. Но повторюсь, сам не работал, так что собственного мнения нет.
— То есть, есть такая мысль, что хайп вокруг Scala и Kotlin в бэкенд тусовке поубавится, а Java так и останется лидером в своём направлении?
Java точно останется лидером еще очень надолго. На мой век точно хватит :) Слишком много уже на ней написано и работает и никто не будет вкладываться, чтобы просто это переписать на другом языке. Java специалистов гораздо легче найти на рынке, что тоже порой перевешивает чашу весов в пользу Java при выборе языка реализации даже для новых проектов.
Но совсем отказываться от новых языков тоже нельзя. Всегда надо пробовать и смотреть. Смотреть на задачи, которые ты решаешь. Когда-то и Java была новым языком. Кто знает, может лет через 20 JS, Kotlin, Scala или Go ее вытеснят.
АI и ML мне кажется очень перспективным направлением. Мы уже сейчас видим широкое использование его во многих сферах жизни и мне кажется, что скоро настанет день, когда программисты станут не нужны). Что уж, не только программисты, многие профессии уйдут в историю, а на замену придет AI.
Недавно ехал в поезде с врачом. И он поведал, что уже сейчас основная задача врача - назначить анализы. Если раньше опыт, интуиция, талант играли роль, то сейчас диагноз ставится программой, в которую вбивают результаты анализов. Так что лечение через интернет - с развитием AI это перестанет быть чем-то фантастическим. То же самое касается и многих других профессий: юристы, экономисты, бухгалтеры и т.д.
— Звучит как-то страшно
Перемены всегда страшны. Но если вспомнить историю, это всегда происходило. С изобретением двигателя внутреннего сгорания с улиц пропали повозки. Кучеров сейчас увидишь разве что только на свадьбах. С изобретением огнестрельного оружия работы у кузнецов поубавилось. Всегда будут перемены и всегда какие-то профессии будут исчезать, но на замену будут появляться что-то другое :)
— Как относишься к Scala и Kotlin. Какие перспективы у этих языков?
Ни то, ни другое не использовал. Оба языка появились для сокращения программного кода Java и упрощения его конструкций, которые уже считаются устаревшими и неудобными. Но тут я надеюсь, что Oracle таки решится и выпустит Java 3, разово отказавшись от обратной совместимости. Этим самым закрыв накопленные за 20 лет долги.
В Дойче Банке я знаю, что некоторые маленькие проекты разрабатывали на Scala и на Kotlin для проверки технологий, но дальше маленьких проектов это не прошло и пару проектов переписывали потом со Scala на Java. Все, кто работал с ними, говорят, что языки удобны для быстрого написания маленьких программ. Но программы тяжелее поддерживать, так как у каждого свой стиль разработки и код получается плохо читаемым. Но повторюсь, сам не работал, так что собственного мнения нет.
— То есть, есть такая мысль, что хайп вокруг Scala и Kotlin в бэкенд тусовке поубавится, а Java так и останется лидером в своём направлении?
Java точно останется лидером еще очень надолго. На мой век точно хватит :) Слишком много уже на ней написано и работает и никто не будет вкладываться, чтобы просто это переписать на другом языке. Java специалистов гораздо легче найти на рынке, что тоже порой перевешивает чашу весов в пользу Java при выборе языка реализации даже для новых проектов.
Но совсем отказываться от новых языков тоже нельзя. Всегда надо пробовать и смотреть. Смотреть на задачи, которые ты решаешь. Когда-то и Java была новым языком. Кто знает, может лет через 20 JS, Kotlin, Scala или Go ее вытеснят.
Собеседования
Третья часть интервью с Эмином о скилах разработчика. Начало интервью — https://yangx.top/java_developer/417.
— Что спрашивают на собеседованиях в Deutsche Bank? Какие хард скилы и софт скилы ценятся?
Здесь, наверное, как везде. Вопросы по языку программирования, на который идешь (Java, C++). Только Core, редко про фреймворки, потому что фреймворки учатся за неделю-две. Но именно язык, его принципы, основные классы, плюсы/минусы нужно знать хорошо. Задачи на сообразительность/логику. Вопросы на умение работать в команде, управлять (если позиция тим лида).
— Много интервью провёл? Какая основная проблема интервьюируемых? По какой причине обычно делаешь отказ?
Интервью провел много. В основном алгоритмическая база подводит или логика. Выучить циклы, ифы, базовые классы просто. Но потом объяснить, почему ты выбрал именно эту коллекцию при реализации алгоритма, или попытаться найти более оптимальное решение задачи, могут далеко не все. Тюринг доказал, что любую программу можно реализовать бесконечным числом вариантом, но найти оптимальный вариант и объяснить/доказать, почему он оптимальный, могут не все.
Правда хочется отметить, что в этом плане специалисты из СНГ еще могут дать фору, например, специалистам из Азии, где я сейчас провожу собеседования. Там видно, что ребят учат в университетах исключительно языкам программирования, не давая никакой математической и алгоритмической базы. Еще и обучают шаблоному способу решения задач, то есть что сортировать надо так, искать максимум так. В итоге их код — набор шаблонов, который можно зачастую схлопнуть в упрощенный алгоритм.
— Какого российского опыта будет достаточно для зарубежных IT-компаний, чтобы они могли всерьёз рассматривать кандидата?
По поводу организаций - мне кажется это не главное. Иметь любой практический опыт от 2-3х лет уже должно быть достаточно. В плане технологий: чем больше, тем лучше. Для Java мира это минимум Spring, Multithreading, Hibernate. JS тоже плюс.
Третья часть интервью с Эмином о скилах разработчика. Начало интервью — https://yangx.top/java_developer/417.
— Что спрашивают на собеседованиях в Deutsche Bank? Какие хард скилы и софт скилы ценятся?
Здесь, наверное, как везде. Вопросы по языку программирования, на который идешь (Java, C++). Только Core, редко про фреймворки, потому что фреймворки учатся за неделю-две. Но именно язык, его принципы, основные классы, плюсы/минусы нужно знать хорошо. Задачи на сообразительность/логику. Вопросы на умение работать в команде, управлять (если позиция тим лида).
— Много интервью провёл? Какая основная проблема интервьюируемых? По какой причине обычно делаешь отказ?
Интервью провел много. В основном алгоритмическая база подводит или логика. Выучить циклы, ифы, базовые классы просто. Но потом объяснить, почему ты выбрал именно эту коллекцию при реализации алгоритма, или попытаться найти более оптимальное решение задачи, могут далеко не все. Тюринг доказал, что любую программу можно реализовать бесконечным числом вариантом, но найти оптимальный вариант и объяснить/доказать, почему он оптимальный, могут не все.
Правда хочется отметить, что в этом плане специалисты из СНГ еще могут дать фору, например, специалистам из Азии, где я сейчас провожу собеседования. Там видно, что ребят учат в университетах исключительно языкам программирования, не давая никакой математической и алгоритмической базы. Еще и обучают шаблоному способу решения задач, то есть что сортировать надо так, искать максимум так. В итоге их код — набор шаблонов, который можно зачастую схлопнуть в упрощенный алгоритм.
— Какого российского опыта будет достаточно для зарубежных IT-компаний, чтобы они могли всерьёз рассматривать кандидата?
По поводу организаций - мне кажется это не главное. Иметь любой практический опыт от 2-3х лет уже должно быть достаточно. В плане технологий: чем больше, тем лучше. Для Java мира это минимум Spring, Multithreading, Hibernate. JS тоже плюс.
Обучение, самописные велосипеды в банке, жизнь в Сингапуре
— Как лучше обучаться самостоятельно или с ментором?
Тут все индивидуально, но с ментором получается значительно быстрее. Основная задача ментора - постоянно Вас подстегивать и заставлять продолжать развиваться. Это помогает удержать темп и не позволить человеческой лени одержать верх. Так же ментор может помочь быстро направить вектор ваших усилий в правильное направление, чтобы вы не тратили время на заведомо не нужные действия или заранее известные ошибки. Но с опытом необходимость в менторе отпадает. Сейчас что-то новое я изучаю на практике - если мне нужно что-то сделать по работе на новых технологиях, то волей-неволей приходится учить)
— Как относятся к "велосипедам" при кодинге в банке и в конторах в Сингапуре в целом?
Велосипеды нигде не приветствуются, если они не оправданы. Во всех организациях, где мне приходилось работать, мы сначала пытались найти уже готовое решение или фреймворк, чтобы не плодить велосипедов. Но иногда приходится их писать.
Например, мы разрабатывали проект с использованием open source проекта, пока не уперлись в требования производительности. Никакое из имеющихся решений требования не удовлетворяло. И после изучения исходников стало понятно, что текущий фреймворк нужно переписать полностью с нуля, так как изначальные архитектурные решения, сделанные при его проектировании и имплементации, не позволяли достичь необходимой нам скорости. Пришлось нам внутри организации писать свой велосипед.
Другим примером является collection framework от Goldman Sachs. Можно использовать стандартные коллекции Java, а можно использовать реализацию от GS, если вам важна производительность.
— Станет ли Docker в ближайшее время необходимым для входа в Java, как те же Spring & Hibernate? Стоит ли ожидать, что грань между разработчиками и DevOps со временем будет стерта или все же это останется отдельными направлениями?
То, что докер станет необходимым — точно нет. Докер просто один из возможных контейнеров, но далеко не везде они используются. Насчет грани между DevOps и программистами - скорее мы сейчас, наоборот, наблюдаем постепенное разделение их обязанностей. Раньше все это делали сами программисты. Я сам настраивал Git, CI, Jenkins/Teamcity, поднимал Nexus в то время, когда DevOps не было. Но с ростом объема проектов стало понятно, что для этого нужны отдельные специалисты.
— В каком возрасте и семейном положении он переехал в Сингапур? Были ли там знакомые? Удалось ли завести новых друзей, пристроить ребёнка в садик, жену на работу? Насколько достаточно только английского языка для жизни? На хорошую ли пенсию он может рассчитывать в качестве мигранта, если останется на ПМЖ и будет работать и дальше?
Переезжал я в Сингапур в возрасте 31 года, только с женой, детей у меня пока нет, так что вопрос с садиком и школами пока не стоял. Но здесь есть ребята, которые переезжали с детьми, они ходят в садики и школы, проблем с этим нет. Разве что удовольствие это не из дешевых. В зависимости от уровня учебного заведения, 1500-5000 долларов в месяц.
Друзей завел, благо я не первый переехавший из знакомых, а потом сеть русскоязычных знакомых быстро развилась за счет периодических встреч у общих друзей. Английского языка очень даже достаточно. Так как английский один из государственных, и на нем разговаривают все. Другого я и не знаю :)
Пенсии тут нет как таковой, только накопительная. Все что накопил и передал в пенсионный фонд в процессе работы, то тебе и будут выдавать равными суммами после выхода на пенсию. Но насчет таких вопросов рекомендую почитать в интернете.
— Как лучше обучаться самостоятельно или с ментором?
Тут все индивидуально, но с ментором получается значительно быстрее. Основная задача ментора - постоянно Вас подстегивать и заставлять продолжать развиваться. Это помогает удержать темп и не позволить человеческой лени одержать верх. Так же ментор может помочь быстро направить вектор ваших усилий в правильное направление, чтобы вы не тратили время на заведомо не нужные действия или заранее известные ошибки. Но с опытом необходимость в менторе отпадает. Сейчас что-то новое я изучаю на практике - если мне нужно что-то сделать по работе на новых технологиях, то волей-неволей приходится учить)
— Как относятся к "велосипедам" при кодинге в банке и в конторах в Сингапуре в целом?
Велосипеды нигде не приветствуются, если они не оправданы. Во всех организациях, где мне приходилось работать, мы сначала пытались найти уже готовое решение или фреймворк, чтобы не плодить велосипедов. Но иногда приходится их писать.
Например, мы разрабатывали проект с использованием open source проекта, пока не уперлись в требования производительности. Никакое из имеющихся решений требования не удовлетворяло. И после изучения исходников стало понятно, что текущий фреймворк нужно переписать полностью с нуля, так как изначальные архитектурные решения, сделанные при его проектировании и имплементации, не позволяли достичь необходимой нам скорости. Пришлось нам внутри организации писать свой велосипед.
Другим примером является collection framework от Goldman Sachs. Можно использовать стандартные коллекции Java, а можно использовать реализацию от GS, если вам важна производительность.
— Станет ли Docker в ближайшее время необходимым для входа в Java, как те же Spring & Hibernate? Стоит ли ожидать, что грань между разработчиками и DevOps со временем будет стерта или все же это останется отдельными направлениями?
То, что докер станет необходимым — точно нет. Докер просто один из возможных контейнеров, но далеко не везде они используются. Насчет грани между DevOps и программистами - скорее мы сейчас, наоборот, наблюдаем постепенное разделение их обязанностей. Раньше все это делали сами программисты. Я сам настраивал Git, CI, Jenkins/Teamcity, поднимал Nexus в то время, когда DevOps не было. Но с ростом объема проектов стало понятно, что для этого нужны отдельные специалисты.
— В каком возрасте и семейном положении он переехал в Сингапур? Были ли там знакомые? Удалось ли завести новых друзей, пристроить ребёнка в садик, жену на работу? Насколько достаточно только английского языка для жизни? На хорошую ли пенсию он может рассчитывать в качестве мигранта, если останется на ПМЖ и будет работать и дальше?
Переезжал я в Сингапур в возрасте 31 года, только с женой, детей у меня пока нет, так что вопрос с садиком и школами пока не стоял. Но здесь есть ребята, которые переезжали с детьми, они ходят в садики и школы, проблем с этим нет. Разве что удовольствие это не из дешевых. В зависимости от уровня учебного заведения, 1500-5000 долларов в месяц.
Друзей завел, благо я не первый переехавший из знакомых, а потом сеть русскоязычных знакомых быстро развилась за счет периодических встреч у общих друзей. Английского языка очень даже достаточно. Так как английский один из государственных, и на нем разговаривают все. Другого я и не знаю :)
Пенсии тут нет как таковой, только накопительная. Все что накопил и передал в пенсионный фонд в процессе работы, то тебе и будут выдавать равными суммами после выхода на пенсию. Но насчет таких вопросов рекомендую почитать в интернете.
Большой блиц: работа, хобби, советы себе молодому
Заключительная часть интервью. Первая часть — https://yangx.top/java_developer/417
— Что больше всего нравится в работе?
То, что я понимаю бизнес, что помогает мне видеть перспективу проекта и самому предлагать идеи для развития бизнесу. Это очень мотивирует и радует, когда ты реализуешь задачи, которые нужны и в то же время ты их придумал.
— Чем отличается рабочий процесс в России от рабочего процесса в Сингапуре?
В моем случае ничем, у меня даже все коллеги русскоговорящие. Только на улице теплее
— Ты говорил, что часто сыпятся предложения о работе из других компаний. Были, которые заинтересовали или удивили?
Никакое не заинтересовало, иначе бы я не был в Дойче Банке) Удивляют вакансии, которые я получаю через Линкедин, с предложениями работать в Омске или других городах России, в которых я маловероятно что буду даже проездом в силу своей географической удаленности. Не то, что жить или работать)
— От чего кайфуешь в Сингапуре?
От Погоды
— Что раздражает?
Еда. Очень сложно найти по-настоящему вкусные продукты или еду в кафе и ресторанах. Приезжая периодически в Россию, устраиваю себе гастрономические каникулы. Как же тут все вкусно!
— Хобби
Программирование. Мне повезло, у меня хобби совпадает с работой. Я стараюсь кодить в любую свободную минуту. Если что-то другое, то путешествия. Это одна из причин, почему я выбрал Сингапур — отсюда легко и дешево летать в страны Азии, в Австралию, Новую Зеландию.
— Сколько нужно зарабатывать, чтобы себя там комфортно чувствовать?
Сложно сказать, понятие комфорта у всех разное. Зависит от размера семьи. Но минимум - 4-5к сингапурских долларов в месяц, так как жилье тут дорогое.
— Скучаешь по родине?
Да) По снегу, зиме, еде, друзьям и родственникам. В Сингапуре круглый год одна и та же погода, температура с минимальными колебаниями. Жизнь превращается в поток абсолютно одинаковых дней. Даже одежда не меняется. Трёх рубашек и двух брюк достаточно.
Остров размером с Москву в пределах МКАД, так что за 2 недели он становится изученным вдоль и поперек. В России же каждый день новый и особенный) Выходишь из дома и не знаешь, замерзнешь ли, возвращаясь домой или, наоборот, потеплеет)
— Три любимых книги
Паттерны проектирования (GoF), Чистый код, Мартин Фаулер - Рефакторинг.
— Как будешь праздновать новый год?
С родителями и семьей)
— Если бы ты сейчас выбирал свой путь в Айти, что это было? Какой язык разработки? Направление?
То же самое, ничего бы не менял
— А если бы это было не Айти?
Если бы по какой-то причине АйТи было бы не доступно, то пошел бы врачом или учителем работать. Врачом - я люблю исправлять, чинить, находить причину поломки. Учителем — нравится преподавать :)
— Три совета себе молодому
Не пей, занимайся спортом, перестань играть в компьютерные игры
— Что ещё хочешь добавить от себя?
Никогда не бойтесь перемен. Если вы уже о них задумались, значит вы их хотите и единственное, что вас держит - стабильность текущего положения. Но стабильность превращает жизнь в аморфное существование. Пробуйте, меняйте, изучайте новое.
Заключительная часть интервью. Первая часть — https://yangx.top/java_developer/417
— Что больше всего нравится в работе?
То, что я понимаю бизнес, что помогает мне видеть перспективу проекта и самому предлагать идеи для развития бизнесу. Это очень мотивирует и радует, когда ты реализуешь задачи, которые нужны и в то же время ты их придумал.
— Чем отличается рабочий процесс в России от рабочего процесса в Сингапуре?
В моем случае ничем, у меня даже все коллеги русскоговорящие. Только на улице теплее
— Ты говорил, что часто сыпятся предложения о работе из других компаний. Были, которые заинтересовали или удивили?
Никакое не заинтересовало, иначе бы я не был в Дойче Банке) Удивляют вакансии, которые я получаю через Линкедин, с предложениями работать в Омске или других городах России, в которых я маловероятно что буду даже проездом в силу своей географической удаленности. Не то, что жить или работать)
— От чего кайфуешь в Сингапуре?
От Погоды
— Что раздражает?
Еда. Очень сложно найти по-настоящему вкусные продукты или еду в кафе и ресторанах. Приезжая периодически в Россию, устраиваю себе гастрономические каникулы. Как же тут все вкусно!
— Хобби
Программирование. Мне повезло, у меня хобби совпадает с работой. Я стараюсь кодить в любую свободную минуту. Если что-то другое, то путешествия. Это одна из причин, почему я выбрал Сингапур — отсюда легко и дешево летать в страны Азии, в Австралию, Новую Зеландию.
— Сколько нужно зарабатывать, чтобы себя там комфортно чувствовать?
Сложно сказать, понятие комфорта у всех разное. Зависит от размера семьи. Но минимум - 4-5к сингапурских долларов в месяц, так как жилье тут дорогое.
— Скучаешь по родине?
Да) По снегу, зиме, еде, друзьям и родственникам. В Сингапуре круглый год одна и та же погода, температура с минимальными колебаниями. Жизнь превращается в поток абсолютно одинаковых дней. Даже одежда не меняется. Трёх рубашек и двух брюк достаточно.
Остров размером с Москву в пределах МКАД, так что за 2 недели он становится изученным вдоль и поперек. В России же каждый день новый и особенный) Выходишь из дома и не знаешь, замерзнешь ли, возвращаясь домой или, наоборот, потеплеет)
— Три любимых книги
Паттерны проектирования (GoF), Чистый код, Мартин Фаулер - Рефакторинг.
— Как будешь праздновать новый год?
С родителями и семьей)
— Если бы ты сейчас выбирал свой путь в Айти, что это было? Какой язык разработки? Направление?
То же самое, ничего бы не менял
— А если бы это было не Айти?
Если бы по какой-то причине АйТи было бы не доступно, то пошел бы врачом или учителем работать. Врачом - я люблю исправлять, чинить, находить причину поломки. Учителем — нравится преподавать :)
— Три совета себе молодому
Не пей, занимайся спортом, перестань играть в компьютерные игры
— Что ещё хочешь добавить от себя?
Никогда не бойтесь перемен. Если вы уже о них задумались, значит вы их хотите и единственное, что вас держит - стабильность текущего положения. Но стабильность превращает жизнь в аморфное существование. Пробуйте, меняйте, изучайте новое.
Статистика по Java-марафону
3 ноября мы запустили обучающий марафон по Джаве. Марафон шёл два месяца. Всего зарегестрировалось 206 человек.
Кто-то слился, когда увидел задания и требования к ним. Кто-то просто скопировал их на комп, чтобы порешать потом в своём темпе. Кому-то задачи показались простыми. А кто-то понял, что не сможет уложиться в дедлайны. По итогам, после запуска сталось 82 участника.
Для того чтобы перейти на вторую неделю, нужно было как минимум прочитать несколько глав из Шилдта и Чистого кода, решить 8 задач, разобраться с Гитом, создать свой репозиторий и выложить их на БитБакет. Задачи первой недели были по темам «Типы данных, переменные и операторы». Первую неделю преодолело 59 человек.
Чтобы попасть на вторую неделю нужно было пройти ревью и исправить замечания по выполненным задачам первой недели. Кто-то из ребят проскочил вперёд, выполнив сразу задания на несколько недель вперёд. Тема второй части марафона — «Операторы». 48 начинающих кодеров перешли на следующий этап.
На третьей неделе нужно было разобраться, как работают строки в Джаве. Прошли серию жёстких ревью от тренеров и получили доступ к заданиям четвёртой недели только 30 человек.
Следующим сложным этапом были задачи на рекурсию. На них мы выделили не одну, а две недели. С рекурсией справились 25 участников.
И в итоге преодолев все дедлайны, пережив кучу ревью, переписав по несколько раз свои классы и проведя несколько дней не вылезая из-за компа, до финальной стадии добрались 19 марафонцев. В конце марафона их ждал итоговый тест в Гугл Формах по изученным темам и тестовое интервью по Скайпу.
Друзья, всем огромное спасибо за участие. Спасибо вам парни @pastukhovmi, @dgbezfamilnyi, @nemchinovrp, @rs_n4k за то, что выделили своё личное время на ревью. Первый марафон по Джаве объявляю закрытым. Это было круто!
3 ноября мы запустили обучающий марафон по Джаве. Марафон шёл два месяца. Всего зарегестрировалось 206 человек.
Кто-то слился, когда увидел задания и требования к ним. Кто-то просто скопировал их на комп, чтобы порешать потом в своём темпе. Кому-то задачи показались простыми. А кто-то понял, что не сможет уложиться в дедлайны. По итогам, после запуска сталось 82 участника.
Для того чтобы перейти на вторую неделю, нужно было как минимум прочитать несколько глав из Шилдта и Чистого кода, решить 8 задач, разобраться с Гитом, создать свой репозиторий и выложить их на БитБакет. Задачи первой недели были по темам «Типы данных, переменные и операторы». Первую неделю преодолело 59 человек.
Чтобы попасть на вторую неделю нужно было пройти ревью и исправить замечания по выполненным задачам первой недели. Кто-то из ребят проскочил вперёд, выполнив сразу задания на несколько недель вперёд. Тема второй части марафона — «Операторы». 48 начинающих кодеров перешли на следующий этап.
На третьей неделе нужно было разобраться, как работают строки в Джаве. Прошли серию жёстких ревью от тренеров и получили доступ к заданиям четвёртой недели только 30 человек.
Следующим сложным этапом были задачи на рекурсию. На них мы выделили не одну, а две недели. С рекурсией справились 25 участников.
И в итоге преодолев все дедлайны, пережив кучу ревью, переписав по несколько раз свои классы и проведя несколько дней не вылезая из-за компа, до финальной стадии добрались 19 марафонцев. В конце марафона их ждал итоговый тест в Гугл Формах по изученным темам и тестовое интервью по Скайпу.
Друзья, всем огромное спасибо за участие. Спасибо вам парни @pastukhovmi, @dgbezfamilnyi, @nemchinovrp, @rs_n4k за то, что выделили своё личное время на ревью. Первый марафон по Джаве объявляю закрытым. Это было круто!
Популярные посты
Публикую посты с наибольшим количеством просмотров. И статистику канала за год.
Кто такой CTO
https://yangx.top/java_developer/382
Когда горит проект
https://yangx.top/java_developer/175
5 тысяч Джавистов
https://yangx.top/java_developer/402
Спасибо вам, друзья, работаем дальше!
Публикую посты с наибольшим количеством просмотров. И статистику канала за год.
Кто такой CTO
https://yangx.top/java_developer/382
Когда горит проект
https://yangx.top/java_developer/175
5 тысяч Джавистов
https://yangx.top/java_developer/402
Спасибо вам, друзья, работаем дальше!
Книга года. Курс года. Человек года
Каждый день я стараюсь писать полезные посты, которые помогают лучше узнать Джаву, быть продуктивнее и развиваться в программировании. И пост об итогах года тоже хочу сделать полезным.
Книга года — Effective Java 3
В этом году вышел апдейт с главами про лямбды и прочие вкусности восьмой и девятой Джавы. Автор Джошуа Блох описал, как правильно применять возможности Java и писать читаемый и поддерживаемый код. Если коротко это best practices for java developers.
https://drive.google.com/file/d/12Ofo32rVexxXkISnyq_cJrMbDSXKyU8R/view
Курс года — Learn how to learn
Так как нам нужно постоянно изучать много нового, этот курс должен быть очень полезен. Добавил его к себе в чеклист «что посмотреть на каникулых».
https://www.coursera.org/learn/learning-how-to-learn
Человек года — Илон Маск
Прорыв с ракетами-носителями, электрокарами, тоннель для высокоскоростных трасс, и конечно интервью у Джо Рогана:
https://youtu.be/vphWtgpe0kk
Спасибо, что читаете меня, участвуете в обсуждении, поправляете, ругаете и хвалите: без вас этого бы не было.
Здоровья, счастья, кайфа, продуктивности вам в Новом году!
Каждый день я стараюсь писать полезные посты, которые помогают лучше узнать Джаву, быть продуктивнее и развиваться в программировании. И пост об итогах года тоже хочу сделать полезным.
Книга года — Effective Java 3
В этом году вышел апдейт с главами про лямбды и прочие вкусности восьмой и девятой Джавы. Автор Джошуа Блох описал, как правильно применять возможности Java и писать читаемый и поддерживаемый код. Если коротко это best practices for java developers.
https://drive.google.com/file/d/12Ofo32rVexxXkISnyq_cJrMbDSXKyU8R/view
Курс года — Learn how to learn
Так как нам нужно постоянно изучать много нового, этот курс должен быть очень полезен. Добавил его к себе в чеклист «что посмотреть на каникулых».
https://www.coursera.org/learn/learning-how-to-learn
Человек года — Илон Маск
Прорыв с ракетами-носителями, электрокарами, тоннель для высокоскоростных трасс, и конечно интервью у Джо Рогана:
https://youtu.be/vphWtgpe0kk
Спасибо, что читаете меня, участвуете в обсуждении, поправляете, ругаете и хвалите: без вас этого бы не было.
Здоровья, счастья, кайфа, продуктивности вам в Новом году!