Если каждая компания в вакансии пишет, что у них работают крутые профессионалы, тогда где же все криворукие говнокодеры трудятся?
Подкасты
Слушаете ли вы подкасты? Какие подкасты самые лучшие? Где самые крутые ведущие? Самые интересные темы? Самый качественный звук?
Слушаете ли вы подкасты? Какие подкасты самые лучшие? Где самые крутые ведущие? Самые интересные темы? Самый качественный звук?
Вопросы с собеседований. Git
— что такое git
— отличие git от svn
— как создать репозиторий
— как взять удаленные изменения
— что делает
— зачем нужен
— отличие
— отличие
— что делает
— стратегия git flow
— что такое git
— отличие git от svn
— как создать репозиторий
— как взять удаленные изменения
— что делает
git stash
— зачем нужен
.gitignore
— отличие
git pull
от git fetch
— отличие
git merge
от git rebase
— что делает
git cherry-pick
— стратегия git flow
Java Developer via @vote
Сколько времени вы занимаетесь программированием?
anonymous poll
1-3 года – 570
👍👍👍👍👍👍👍 44%
Меньше года – 333
👍👍👍👍 25%
Больше шести лет – 192
👍👍 15%
4-6 лет – 141
👍👍 11%
Не прогаю – 72
👍 6%
👥 1308 people voted so far.
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
Работа в банках
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
Плохо
Хорошо
Не сравнивайте булеву переменную с 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 долларов в месяц.
Друзей завел, благо я не первый переехавший из знакомых, а потом сеть русскоязычных знакомых быстро развилась за счет периодических встреч у общих друзей. Английского языка очень даже достаточно. Так как английский один из государственных, и на нем разговаривают все. Другого я и не знаю :)
Пенсии тут нет как таковой, только накопительная. Все что накопил и передал в пенсионный фонд в процессе работы, то тебе и будут выдавать равными суммами после выхода на пенсию. Но насчет таких вопросов рекомендую почитать в интернете.