Работа в Германии ч.2
Часть 1 https://yangx.top/java_developer/144
Часть 3 https://yangx.top/java_developer/149
— Расскажи, как искал работу в Мюнхене?
Создал профили в LinkedIn и Xing (немецкий аналог), набросал простенькое резюме, и отправил в несколько фирм. Обычно интервью назначали на рабочее время, да ещё и по телефону. Приходилось бродить по парку и разговаривать, что было очень неудобно да и по телефону связь не очень. Парочка отпали именно по этой причине, приходилось переспрашивать всё время, с одной фирмой я не захотел продолжать т.к. предложили низкую зп и работу в деревне.
Потом со мной связалась через LinkedIn знакомая одного из разработчиков в моей нынешней компании. Он так же начинал в Харьковском ЭПАМ, и знал что там есть люди с опытом в АЕМ фреймворке и с хорошей базой. Свела меня с HRом, быстро поговорили на стандартные темы, какая хорошая фирма, и как я хочу в ней расти.
Техническое интервью по скайпу проводили после работы. Я и интервьюеры были уставшие. Плюс не подключил веб-камеру, поэтому интервью прошло неважно.
Спрашивали вопросы без подвохов в формате «с чем работал» и «что делал на проектах». Задали пару сложных вопросов - я ответил не на все. Длилось около часа.
Но для них этого хватило, видимо ещё и рекомендация сыграла роль, парень пригласивший меня - хороший работник.
Через пару дней сказали что я прошёл интервью. Хоть я был мидлом в Епам, предложили должность джуниора, т.к. у меня был год опыта в продакшене. Здесь разработчики получают должность мидла после 3-х лет работы, сеньора - к восьми годам.
Поэтому я согласился. Мне оплатили перелёт и отель в Мюнхене, чтобы пообщаться лично. Сделал тур. визу, слетал, поговорил с парочкой программистов о жизни и планах, погулял 3 дня. Очень впечатлился городом и особенно офисом.
— Тяжело было на джуниора перейти после Епама?
Сначала - нет. Была куча забот по переезду и обустройству, поэтому комфортно работал без особой ответственности над не самыми сложными задачами.
Коллеги гораздо опытнее, чем в Епаме, большинству в районе 40 лет. Многие из них скорее учёные, чем формошлёпы, но в то же время просто миддлы пусть и с высокими зарплатами. Поэтому я понимал что должность джуна - это справедливо и не позорно.
— Что самое сложное было при трудоустройстве и поиске работы?
Сделать нормальное резюме, и находить время для общения с рекрутёрами. Но сам переезд гораздо сложнее.
— На что стоит обращать внимание при выборе компании?
Если рекрутеры косячат с самого начала, прерывай общение сразу.
В Германии стоит идти в фирмы, где большинство немцы или европейцы.
Стоит изучить офис и его обитателей. Там будешь проводить 40 часов в неделю. Если люди довольны жизнью и работой, это заметишь сразу.
Контракты простые и короткие, т.к. всё регламентируется законом. Но стоит уделить внимание бенефитам, которые предоставляет компания. Например, если фирма организует курсы немецкого, то это экономит 300 евро/месяц. Большая фирма и жёнам оплачивает. Каждая подобная плюшка экономит много денег.
— Расскажи немного о самой компании
Компании 5 лет, 500 сотрудников. Работаем по системе Holacracy - маленькие группки ответственны сами за себя, и сами принимают решения.
— Какие задачи выполняешь на работе?
Ничего сверхъестественного - делаем новые фичи, расширяя готовые решения. Сложной логики практически нет. Задания после бизнес-аналитиков уже готовые спускаются, так что особой свободы тоже нет.
Всё происходит гораздо спокойнее, чем в Епам: больше свободного времени, а работа как хобби воспринимается.
— Какие технологии используете кроме AEM?
Другие продукты из Adobe Marketing Cloud, частью которого является AEM. Это что-то вроде фотошопа, но для разработчиков - очень мощная, дорогая и массивная платформа. Практически все из Fortune Global 500 с её помощью внутренние и внешние порталы создают. АЕМ по сути состоит из множества технологий: Sling, OSGI, JCR + 2 UI фреймворка: touch и классический.
Часть 1 https://yangx.top/java_developer/144
Часть 3 https://yangx.top/java_developer/149
#интервью #переезд #компании
Часть 1 https://yangx.top/java_developer/144
Часть 3 https://yangx.top/java_developer/149
— Расскажи, как искал работу в Мюнхене?
Создал профили в LinkedIn и Xing (немецкий аналог), набросал простенькое резюме, и отправил в несколько фирм. Обычно интервью назначали на рабочее время, да ещё и по телефону. Приходилось бродить по парку и разговаривать, что было очень неудобно да и по телефону связь не очень. Парочка отпали именно по этой причине, приходилось переспрашивать всё время, с одной фирмой я не захотел продолжать т.к. предложили низкую зп и работу в деревне.
Потом со мной связалась через LinkedIn знакомая одного из разработчиков в моей нынешней компании. Он так же начинал в Харьковском ЭПАМ, и знал что там есть люди с опытом в АЕМ фреймворке и с хорошей базой. Свела меня с HRом, быстро поговорили на стандартные темы, какая хорошая фирма, и как я хочу в ней расти.
Техническое интервью по скайпу проводили после работы. Я и интервьюеры были уставшие. Плюс не подключил веб-камеру, поэтому интервью прошло неважно.
Спрашивали вопросы без подвохов в формате «с чем работал» и «что делал на проектах». Задали пару сложных вопросов - я ответил не на все. Длилось около часа.
Но для них этого хватило, видимо ещё и рекомендация сыграла роль, парень пригласивший меня - хороший работник.
Через пару дней сказали что я прошёл интервью. Хоть я был мидлом в Епам, предложили должность джуниора, т.к. у меня был год опыта в продакшене. Здесь разработчики получают должность мидла после 3-х лет работы, сеньора - к восьми годам.
Поэтому я согласился. Мне оплатили перелёт и отель в Мюнхене, чтобы пообщаться лично. Сделал тур. визу, слетал, поговорил с парочкой программистов о жизни и планах, погулял 3 дня. Очень впечатлился городом и особенно офисом.
— Тяжело было на джуниора перейти после Епама?
Сначала - нет. Была куча забот по переезду и обустройству, поэтому комфортно работал без особой ответственности над не самыми сложными задачами.
Коллеги гораздо опытнее, чем в Епаме, большинству в районе 40 лет. Многие из них скорее учёные, чем формошлёпы, но в то же время просто миддлы пусть и с высокими зарплатами. Поэтому я понимал что должность джуна - это справедливо и не позорно.
— Что самое сложное было при трудоустройстве и поиске работы?
Сделать нормальное резюме, и находить время для общения с рекрутёрами. Но сам переезд гораздо сложнее.
— На что стоит обращать внимание при выборе компании?
Если рекрутеры косячат с самого начала, прерывай общение сразу.
В Германии стоит идти в фирмы, где большинство немцы или европейцы.
Стоит изучить офис и его обитателей. Там будешь проводить 40 часов в неделю. Если люди довольны жизнью и работой, это заметишь сразу.
Контракты простые и короткие, т.к. всё регламентируется законом. Но стоит уделить внимание бенефитам, которые предоставляет компания. Например, если фирма организует курсы немецкого, то это экономит 300 евро/месяц. Большая фирма и жёнам оплачивает. Каждая подобная плюшка экономит много денег.
— Расскажи немного о самой компании
Компании 5 лет, 500 сотрудников. Работаем по системе Holacracy - маленькие группки ответственны сами за себя, и сами принимают решения.
— Какие задачи выполняешь на работе?
Ничего сверхъестественного - делаем новые фичи, расширяя готовые решения. Сложной логики практически нет. Задания после бизнес-аналитиков уже готовые спускаются, так что особой свободы тоже нет.
Всё происходит гораздо спокойнее, чем в Епам: больше свободного времени, а работа как хобби воспринимается.
— Какие технологии используете кроме AEM?
Другие продукты из Adobe Marketing Cloud, частью которого является AEM. Это что-то вроде фотошопа, но для разработчиков - очень мощная, дорогая и массивная платформа. Практически все из Fortune Global 500 с её помощью внутренние и внешние порталы создают. АЕМ по сути состоит из множества технологий: Sling, OSGI, JCR + 2 UI фреймворка: touch и классический.
Часть 1 https://yangx.top/java_developer/144
Часть 3 https://yangx.top/java_developer/149
#интервью #переезд #компании
Вопрос про исключения. Какие из этих фраз верны?
A. Checked исключения могут быть обработаны или проброшены.
B. Checked исключения должны быть обработаны или проброшены.
C. Errors могут быть обработаны или проброшены.
D. Errors исключения должны быть обработаны или проброшены.
E. Runtime исключения могут быть обработаны или проброшены.
F. Runtime исключения должны быть обработаны или проброшены.
A. Checked исключения могут быть обработаны или проброшены.
B. Checked исключения должны быть обработаны или проброшены.
C. Errors могут быть обработаны или проброшены.
D. Errors исключения должны быть обработаны или проброшены.
E. Runtime исключения могут быть обработаны или проброшены.
F. Runtime исключения должны быть обработаны или проброшены.
Правильные ответы: A, B, C, E. Checked исключения обязательно должны быть обработаны в try-catch или проброшены выше, то есть объявлены в сигнатуре метода с помощью ключевого слова throws. Runtime исключения, как и любые unchecked исключения, можно обрабатывать или пробрасывать. Error можно обработать или пробросить, но это считается бэд практис.
Работа в Германии ч.3
Заключительная часть интервью с Александром, Джава-разработчиком, который перебрался с женой в Мюнхен. Последняя часть состоит из двух постов. В ней Саша рассказывает про то, как работает и как отдыхает, сколько тратит и сколько зарабатывает.
Часть 1 https://yangx.top/java_developer/144
Часть 2 https://yangx.top/java_developer/146
— Что нравится на твоей работе?
Всё практически. Разница с Епам колоссальна. У нас, например, полностью гибкое время и место работы. Т.е. можно работать из дома, или из любого другого места и не обязательно 8 часов. Все понимают, что не всегда есть настроение или достаточное количество задач. А иногда нужно наоборот задержаться, чтобы доделать задачу, или поучаствовать в ивенте.
Зимой фирма оплачивает пару дней покатушек на лыжах в Альпах, весной вся фирма собирается дней на 5 на саммит в гостинничный комплекс, летом - один день на природе, осенью - 4 дня на яхтах по морю и рождественский ужин.
Еще командировки, локальные мини-ивенты, проектные тимбилдинги, походы в биргартен, беслпатное пиво в офисах и многое другое.
Из-за этого работа ощущается, как часть жизни, и ходишь на неё с удовольствием. Все очень дружны и сплочённы, и всегда помогают по любому вопросу.
К тому же у нас есть немало гуру, которые знают очень много, и сами развивают технологии, а не просто ими пользуются (например у нас есть несколько Apache Committers).
Ну и за счёт Holacracy нету ощущения что над тобой есть начальник, 95% организационных задач решаются самостоятельно.
— Вот это очень круто! Есть то, что хочется улучшить? Чего не хватает в работе?
Иногда жёсткого и прямолинейного начальника таки не хватает)
Если кто-то накосячил, то его никто ругать не будет. Сначала будут закрывать глаза, а потом вежливо и долго будут пытаться обьяснить какие навыки ему следует улучшить.
Не все могут сами себя мотивировать хорошо и ответственно работать. Но совсем лентяев, естественно, увольняют со временем. Выплачивая зарплату за 3 месяца 😂
— Нужно ли знать немецкий язык?
В большинстве фирм можно без немецкого. Но в фирмах где немецкий обязателен зп обычно выше.
Для жизни немецкий практически не нужен, поэтому можно учить без спешки. Я вот хочу остаться жить здесь, а с немецким можно быстрее получить ПМЖ и паспорт.
— Ты с начала года Java Middle. Как у вас происходит повышение?
У нас в фирме ввели систему баджей. И для повышения нужно собрать определённые баджи разного уровня. Для миддла их около 30 штук. 1 бадж - это 1 навык или технология, например: Git, HTML, JS.
Некоторые можно получить с помощью сертификатов, например: английский В2 и выше, Oracle Certified Professional Java SE 8 Programmer, Adobe Certified Expert - AEM Lead Developer и т.д. Можно прочитать короткую лекцию для коллег, предоставить ссылку на сделанную задачу в Jira или на написанную документацию.
Бэдж киперы проверяют твои доказательства, и подтверждают бадж. Время на это есть, но процесс долгий. Такая история не во всех компаниях. Просто у нас любят внедрить что-нибудь новенькое. Раньше требовалось собрать пару сертификатов и отзыв от тимлида.
— Как изменилась зарплата?
Была 47к€ в год. Стала 57к€.
Часть 1 https://yangx.top/java_developer/144
Часть 2 https://yangx.top/java_developer/146
#интервью #Германия #компании #зп
Заключительная часть интервью с Александром, Джава-разработчиком, который перебрался с женой в Мюнхен. Последняя часть состоит из двух постов. В ней Саша рассказывает про то, как работает и как отдыхает, сколько тратит и сколько зарабатывает.
Часть 1 https://yangx.top/java_developer/144
Часть 2 https://yangx.top/java_developer/146
— Что нравится на твоей работе?
Всё практически. Разница с Епам колоссальна. У нас, например, полностью гибкое время и место работы. Т.е. можно работать из дома, или из любого другого места и не обязательно 8 часов. Все понимают, что не всегда есть настроение или достаточное количество задач. А иногда нужно наоборот задержаться, чтобы доделать задачу, или поучаствовать в ивенте.
Зимой фирма оплачивает пару дней покатушек на лыжах в Альпах, весной вся фирма собирается дней на 5 на саммит в гостинничный комплекс, летом - один день на природе, осенью - 4 дня на яхтах по морю и рождественский ужин.
Еще командировки, локальные мини-ивенты, проектные тимбилдинги, походы в биргартен, беслпатное пиво в офисах и многое другое.
Из-за этого работа ощущается, как часть жизни, и ходишь на неё с удовольствием. Все очень дружны и сплочённы, и всегда помогают по любому вопросу.
К тому же у нас есть немало гуру, которые знают очень много, и сами развивают технологии, а не просто ими пользуются (например у нас есть несколько Apache Committers).
Ну и за счёт Holacracy нету ощущения что над тобой есть начальник, 95% организационных задач решаются самостоятельно.
— Вот это очень круто! Есть то, что хочется улучшить? Чего не хватает в работе?
Иногда жёсткого и прямолинейного начальника таки не хватает)
Если кто-то накосячил, то его никто ругать не будет. Сначала будут закрывать глаза, а потом вежливо и долго будут пытаться обьяснить какие навыки ему следует улучшить.
Не все могут сами себя мотивировать хорошо и ответственно работать. Но совсем лентяев, естественно, увольняют со временем. Выплачивая зарплату за 3 месяца 😂
— Нужно ли знать немецкий язык?
В большинстве фирм можно без немецкого. Но в фирмах где немецкий обязателен зп обычно выше.
Для жизни немецкий практически не нужен, поэтому можно учить без спешки. Я вот хочу остаться жить здесь, а с немецким можно быстрее получить ПМЖ и паспорт.
— Ты с начала года Java Middle. Как у вас происходит повышение?
У нас в фирме ввели систему баджей. И для повышения нужно собрать определённые баджи разного уровня. Для миддла их около 30 штук. 1 бадж - это 1 навык или технология, например: Git, HTML, JS.
Некоторые можно получить с помощью сертификатов, например: английский В2 и выше, Oracle Certified Professional Java SE 8 Programmer, Adobe Certified Expert - AEM Lead Developer и т.д. Можно прочитать короткую лекцию для коллег, предоставить ссылку на сделанную задачу в Jira или на написанную документацию.
Бэдж киперы проверяют твои доказательства, и подтверждают бадж. Время на это есть, но процесс долгий. Такая история не во всех компаниях. Просто у нас любят внедрить что-нибудь новенькое. Раньше требовалось собрать пару сертификатов и отзыв от тимлида.
— Как изменилась зарплата?
Была 47к€ в год. Стала 57к€.
Часть 1 https://yangx.top/java_developer/144
Часть 2 https://yangx.top/java_developer/146
#интервью #Германия #компании #зп
— Допустим, у меня 2 года разработки. На какой контракт я могу рассчитывать, если буду аплаиться?
В зависимости от компании 40к - 50к. Немцу после ВУЗа и практики могут 50к дать. В идеале можно получить и 60к. Но многие переезжают на любую зарплату, а потом ищут новую работу. 6 месяцев испытательный срок. Если хочешь уйти на испытательном, нужно уведомлять за 2 недели, после испытательного – за 6 месяцев.
— А если у меня нет профильного образования?
Некоторые требуют. У меня знакомый с Украины работал без. Основной минус – без профильного ВО не получишь Blue Card.
— Расскажи для тех, кто не в теме, что такое Blue Card.
Это программа для привлечения cпециалистов в ЕС. Если есть контракт с ЗП от 42к в год (для программиста) и профильное высшее образование, то гораздо проще переехать. Можешь раньше получить ПМЖ Германии и европейский ПМЖ. Жена получает возможность работать и переехать с тобой.
— Что будешь делать, когда получишь ПМЖ?
Ну, какая-то ведь стабильность будет. Кредит на жильё смогу получить. Плюс с ПМЖ уже из страны не выгонят, даже если перестать работать.
— Как вы проводите свободное время?
Летом гриллим, ходим в горы, ездим на озера. Природа кругом шикарная! Зимой стараемся улететь в тёплые края либо собираемся с друзьями: играем в настолки, пьём глинтвейн, ходим в сауну.
В целом, много путешествуем, благо всё рядом и куча лоукостеров летает. За 2 года посетили 23 страны. Могу сказать, что эти 2 года лучшие в нашей жизни. До переезда как будто и не жили совсем.
— Сколько тратишь в месяц? Съем жилья, еда, курсы, слетать отдохнуть
Квартира 1150€, еда 400, обед с коллегами 6-13, интернет 35, електричество 70, радио 17, проездной 65, инет+звонки 10, тренажёрка 20.
Курсы 300€ за 1 подуровень (А1.1, А1.2, А2.1 и т.д.), длятся в 2 месяца. Но что-то фирма компенсирует, что-то государство. Плюс в конце года можно вернуть неплохую сумму с налогов. Мы за 1-ый год из-за переезда вернули 3000€.
Отдых по-разному. 2 недели за 2-их 1500€ в среднем, если не лететь через океан.
— О, расскажи ещё, как рассчитывается налог в Германии
Есть несколько налоговых классов. Без жены – 1-ый класс и 41% налога. Если с женой и у неё зп меньше, то 3-ий класс и 33% налога. Всё зависит от самой зарплаты, плюс много тонкостей и нюансов.
Вот здесь можно посчитать точно и глянуть, на что идут налоги https://www.brutto-netto-rechner.info/gehalt/gross_net_calculator_germany.php
— Можешь дать совет начинающим? Тем, кто хочет переехать, но ещё сомневается?
Советую всем попробовать, всегда ведь можно вернуться назад. Да, дома или в США можно быстрее заработать денег и купить дом, но это не самое главное в жизни.
В зависимости от компании 40к - 50к. Немцу после ВУЗа и практики могут 50к дать. В идеале можно получить и 60к. Но многие переезжают на любую зарплату, а потом ищут новую работу. 6 месяцев испытательный срок. Если хочешь уйти на испытательном, нужно уведомлять за 2 недели, после испытательного – за 6 месяцев.
— А если у меня нет профильного образования?
Некоторые требуют. У меня знакомый с Украины работал без. Основной минус – без профильного ВО не получишь Blue Card.
— Расскажи для тех, кто не в теме, что такое Blue Card.
Это программа для привлечения cпециалистов в ЕС. Если есть контракт с ЗП от 42к в год (для программиста) и профильное высшее образование, то гораздо проще переехать. Можешь раньше получить ПМЖ Германии и европейский ПМЖ. Жена получает возможность работать и переехать с тобой.
— Что будешь делать, когда получишь ПМЖ?
Ну, какая-то ведь стабильность будет. Кредит на жильё смогу получить. Плюс с ПМЖ уже из страны не выгонят, даже если перестать работать.
— Как вы проводите свободное время?
Летом гриллим, ходим в горы, ездим на озера. Природа кругом шикарная! Зимой стараемся улететь в тёплые края либо собираемся с друзьями: играем в настолки, пьём глинтвейн, ходим в сауну.
В целом, много путешествуем, благо всё рядом и куча лоукостеров летает. За 2 года посетили 23 страны. Могу сказать, что эти 2 года лучшие в нашей жизни. До переезда как будто и не жили совсем.
— Сколько тратишь в месяц? Съем жилья, еда, курсы, слетать отдохнуть
Квартира 1150€, еда 400, обед с коллегами 6-13, интернет 35, електричество 70, радио 17, проездной 65, инет+звонки 10, тренажёрка 20.
Курсы 300€ за 1 подуровень (А1.1, А1.2, А2.1 и т.д.), длятся в 2 месяца. Но что-то фирма компенсирует, что-то государство. Плюс в конце года можно вернуть неплохую сумму с налогов. Мы за 1-ый год из-за переезда вернули 3000€.
Отдых по-разному. 2 недели за 2-их 1500€ в среднем, если не лететь через океан.
— О, расскажи ещё, как рассчитывается налог в Германии
Есть несколько налоговых классов. Без жены – 1-ый класс и 41% налога. Если с женой и у неё зп меньше, то 3-ий класс и 33% налога. Всё зависит от самой зарплаты, плюс много тонкостей и нюансов.
Вот здесь можно посчитать точно и глянуть, на что идут налоги https://www.brutto-netto-rechner.info/gehalt/gross_net_calculator_germany.php
— Можешь дать совет начинающим? Тем, кто хочет переехать, но ещё сомневается?
Советую всем попробовать, всегда ведь можно вернуться назад. Да, дома или в США можно быстрее заработать денег и купить дом, но это не самое главное в жизни.
Что посмотреть на выходных
Мини-курс по основам Spring от Юрия Ткача
https://www.youtube.com/playlist?list=PL6jg6AGdCNaWF-sUH2QDudBRXo54zuN1t
Доклад Вячеслава Круглова «Введение в Hibernate»
https://youtu.be/C-wEZjEOhWc
Интервью с девушкой-программистом о том, чему учат в американских университетах на Computer Science
https://youtu.be/_6fI4f26O14
#чтопосмотреть
Мини-курс по основам Spring от Юрия Ткача
https://www.youtube.com/playlist?list=PL6jg6AGdCNaWF-sUH2QDudBRXo54zuN1t
Доклад Вячеслава Круглова «Введение в Hibernate»
https://youtu.be/C-wEZjEOhWc
Интервью с девушкой-программистом о том, чему учат в американских университетах на Computer Science
https://youtu.be/_6fI4f26O14
#чтопосмотреть
Правильный ответ: 2. Почему: это не многопоточная программа. Мы создаем объект типа
Что прочитать: у Шилдта про многопоточное программирование. Здесь я описывал его книгу https://yangx.top/java_developer/48
Что загуглить: запуск нового потока, synchronized на статическом методе
Thread
, но не запускаем его с помощью метода start
. Вместо этого основной поток вызывает метод run
экземпляра Thread
, который выполняется синхронно в основном потоке. Так как одному объекту разрешено повторно получать один и тот же монитор, основной поток получает монитор на BlackWhite.class
, когда метод run вызывает метод printBlack
. Чтобы запустить новый поток, нужно вызвать метод start
класса Thread
. Если в программе заменить t.run
на t.start
, то программа всегда будет печатать "WhiteBlack", так как новый поток не сможет приступить к выполнению, пока главный поток не завершится и не отпустит блокировку. Что прочитать: у Шилдта про многопоточное программирование. Здесь я описывал его книгу https://yangx.top/java_developer/48
Что загуглить: запуск нового потока, synchronized на статическом методе
Конструкторы
Для создания нового инстанса класса нужно написать new перед названием класса. Вот пример:
Конструктор – специальный метод, который создает новый объект. Создадим свой конструктор:
Два ключевых момента, которые нужно знать о конструкторах. Имя конструктора совпадает с именем класса. Возвращаемый тип у конструктора не указывается. То есть строка
Цель конструктора – инициализация полей. Но мы также можем присвоить значения полям. Здесь представлены оба способа:
Дефолтный конструктор – конструктор, который не имеет входных аргументов. Если мы не напишем в классе конструктор, то компилятор за нас создаст дефолтный.
Для создания нового инстанса класса нужно написать new перед названием класса. Вот пример:
Random r = new Random();
Переменная r ссылается на новый объект типа Random. Запись Random()
, которая используется вместе с ключевым словом new, выглядит как метод и является конструктором.Конструктор – специальный метод, который создает новый объект. Создадим свой конструктор:
public class JavaDev {
public JavaDev() {
// constructor
}
}
Два ключевых момента, которые нужно знать о конструкторах. Имя конструктора совпадает с именем класса. Возвращаемый тип у конструктора не указывается. То есть строка
public void JavaDev() { }
является методом, но не конструктором. И такой метод не вызовется, если написать new JavaDev()
.Цель конструктора – инициализация полей. Но мы также можем присвоить значения полям. Здесь представлены оба способа:
class Student {
int age = 16;
String name;
public Student(String name) {
this.name = name;
}
}
Дефолтный конструктор – конструктор, который не имеет входных аргументов. Если мы не напишем в классе конструктор, то компилятор за нас создаст дефолтный.
Примитивные типы
В Джаве есть 8 примитивных типов. Целочисленные, числа с плавающей запятой, символьный и буленовский. Подробнее описал типы в прикрепленной таблице.
Числа, которые мы пишем в коде, называются литералами. Например в строке
Записываю в переменную типа long значение, которое превыщающает максимальное интовое
Для удобства большие числа можно разделять нижними подчёркиваниями
Целые числа можно записывать в десятичной, двоичной, восьмиричной и шестнадцатеричной системах счисления. Вот примеры:
В Джаве есть 8 примитивных типов. Целочисленные, числа с плавающей запятой, символьный и буленовский. Подробнее описал типы в прикрепленной таблице.
Числа, которые мы пишем в коде, называются литералами. Например в строке
int i = 123;
литералом будет число 123. По умолчанию целочисленные литералы в Джаве определены типом int. Поэтому нужно быть аккуратным при записи чисел, которые выходят за диапазоны int. Например, максимальное значение int равно 2,147,483,647. Проверить это можно следующей строкой System.out.println(Integer.MAX_VALUE);
Записываю в переменную типа long значение, которое превыщающает максимальное интовое
long max = 3123456789;
И получаю ошибку компиляции. Чтобы Джава поняла, что литерал не int, а long, нужно в конце числа написать дописать букву L: long max = 3123456789L;
Для удобства большие числа можно разделять нижними подчёркиваниями
long max = 3_123_456_789L;
Целые числа можно записывать в десятичной, двоичной, восьмиричной и шестнадцатеричной системах счисления. Вот примеры:
System.out.println(56); // 56
System.out.println(0b11); // 3
System.out.println(017); // 15
System.out.println(0x1F); // 31
Вопросы с собеседований
Отличие HashMap от TreeMap
Кэширование в Hibernate
Наследование в Hibernate
Скоупы Spring бинов
Отличие singletone от prototype
Жизненный цикл в Maven
Отличие install от deploy
Минусы TDD
Отличие HashMap от TreeMap
Кэширование в Hibernate
Наследование в Hibernate
Скоупы Spring бинов
Отличие singletone от prototype
Жизненный цикл в Maven
Отличие install от deploy
Минусы TDD
Что посмотреть на выходных
Евгений Борисов о Spring на JPoint 2017
https://youtu.be/nGfeSo52_8A
Два сильных вопроса, которые может задать разработчик на собеседовании
https://youtu.be/ebaDjwr0lw8
Орел и решка в Сан-Франциско. Про силиконовую долину начинается на 30:38
https://youtu.be/r8GFqmbopE4
#чтопосмотреть
Евгений Борисов о Spring на JPoint 2017
https://youtu.be/nGfeSo52_8A
Два сильных вопроса, которые может задать разработчик на собеседовании
https://youtu.be/ebaDjwr0lw8
Орел и решка в Сан-Франциско. Про силиконовую долину начинается на 30:38
https://youtu.be/r8GFqmbopE4
#чтопосмотреть
Вопросы с собеседований
Неделю назад проходил первый этап собеседования на проект крупного банка. Держите новую пачку вопросов.
— Collection – основные интерфейсы
— Зачем нужно красно-черное дерево в Джаве
— Есть одна таблица в БД и три сущности. Как осуществить маппинг с помощью JPA/Hibernate
— Уровни кэширования в Hibernate. Чем они отличаются
— Какие есть сторонние решения для кэширования
— Рассказать про Inversion of Control Containers и Dependency Injection
— Spring – какие есть скоупы и для чего используются
— TDD и BDD
— Для чего нужен Mockito
— Отличие Mock от Spy
— Этапы сборки проекта
Присылайте задачи и вопросы с собеседований в личку, буду публиковать @zybkin
Неделю назад проходил первый этап собеседования на проект крупного банка. Держите новую пачку вопросов.
— Collection – основные интерфейсы
— Зачем нужно красно-черное дерево в Джаве
— Есть одна таблица в БД и три сущности. Как осуществить маппинг с помощью JPA/Hibernate
— Уровни кэширования в Hibernate. Чем они отличаются
— Какие есть сторонние решения для кэширования
— Рассказать про Inversion of Control Containers и Dependency Injection
— Spring – какие есть скоупы и для чего используются
— TDD и BDD
— Для чего нужен Mockito
— Отличие Mock от Spy
— Этапы сборки проекта
Присылайте задачи и вопросы с собеседований в личку, буду публиковать @zybkin
Дикие имена
Джава разрешает разработчикам давать нечитаемые имена переменным. По соглашениям такие имена нельзя давать методам, переменным или классам, но код будет компилироваться.
Примеры компилирующихся имен:
normname
НормИмя
$NORM2Name
_tozheNorm3Name
__EtoTozheNormName$
А эти имена не скомпилируются:
3DCircleClass
takSebe@Name
*$coffee
public
Три правила нейминга переменных, которые нужно знать:
— имена должны начинаться с буквы, знака нижнего подчеркивания «_» или знака доллара «$»;
— в имени могут присутствовать цифры;
— нельзя использовать в качестве имени зарезервированные слова. Например: abstract, private, static.
Джава разрешает разработчикам давать нечитаемые имена переменным. По соглашениям такие имена нельзя давать методам, переменным или классам, но код будет компилироваться.
Примеры компилирующихся имен:
normname
НормИмя
$NORM2Name
_tozheNorm3Name
__EtoTozheNormName$
А эти имена не скомпилируются:
3DCircleClass
takSebe@Name
*$coffee
public
Три правила нейминга переменных, которые нужно знать:
— имена должны начинаться с буквы, знака нижнего подчеркивания «_» или знака доллара «$»;
— в имени могут присутствовать цифры;
— нельзя использовать в качестве имени зарезервированные слова. Например: abstract, private, static.
Ситуация. Вы руководитель проекта
Ваша команда работала над большой функциональностью в течение трех месяцев. Релиз через 2 недели, но вы не готовы к нему из-за ряда ошибок. Сейчас нет времени проводить анализ ошибок, нужно принимать решение. Возможные варианты:
1. Попытаться договориться с заказчиком и сдвинуть сроки на 2 месяца. По расчетам их достаточно для полной доработки.
2. Добавить ресурсов – взять разработчиков и тестировщиков из другой команды. И большей командой попробовать добить проект в срок.
3. Уменьшить функциональность. Убрать часть, которая еще не реализована, и выкатить только ту, которая готова и точно работает.
Ваша команда работала над большой функциональностью в течение трех месяцев. Релиз через 2 недели, но вы не готовы к нему из-за ряда ошибок. Сейчас нет времени проводить анализ ошибок, нужно принимать решение. Возможные варианты:
1. Попытаться договориться с заказчиком и сдвинуть сроки на 2 месяца. По расчетам их достаточно для полной доработки.
2. Добавить ресурсов – взять разработчиков и тестировщиков из другой команды. И большей командой попробовать добить проект в срок.
3. Уменьшить функциональность. Убрать часть, которая еще не реализована, и выкатить только ту, которая готова и точно работает.
Java Developer via @vote
Как вы поступите?
anonymous poll
Уменьшу функционал – 354
👍👍👍👍👍👍👍 68%
Сдвину сроки – 82
👍👍 16%
Добавлю ресурсов – 82
👍👍 16%
👥 518 people voted so far.
anonymous poll
Уменьшу функционал – 354
👍👍👍👍👍👍👍 68%
Сдвину сроки – 82
👍👍 16%
Добавлю ресурсов – 82
👍👍 16%
👥 518 people voted so far.
Продукт vs. Проект
Есть продуктовая разработка, и есть проектная разработка. В одной важно уметь смотреть в будущее и брать ответственность за конечный продукт. В другой – быстро работать и переключаться между задачами. В обеих разработках ценится работа в команде и профессионализм в целом.
Есть продуктовая разработка, и есть проектная разработка. В одной важно уметь смотреть в будущее и брать ответственность за конечный продукт. В другой – быстро работать и переключаться между задачами. В обеих разработках ценится работа в команде и профессионализм в целом.
Agile
11 февраля 2001 года в США на горнолыжном курорте собрались 17 человек. Это были известные приверженцы разных методологий разработки: инженеры, разработчики и менеджеры. Некоторые из них были конкурентами. На встрече собравшиеся поняли, что у них много общего и выделили общие ценности, которым должны следовать успешные команды. Уже после встречи в течение двух месяцев шла бурная переписка между участниками. В её результате появилась страничка вики с 12 принципами айти команды. Так зародился Agile.
Agile – ценности и принципы, которыми руководствуются успешные команды. Их определяет Agile Manifesto. Манифест содержит 4 основные идеи и 12 принципов. Причем в нем нет практических советов.
Принципы Agile:
— Люди и взаимодействие важнее процессов и инструментов
— Работающий продукт важнее исчерпывающей документации
— Сотрудничество с заказчиком важнее согласования условий контракта
— Готовность к изменениям важнее следования первоначальному плану
И не отрицая важности того, что справа, мы всё-таки больше ценим то, что слева.
http://agilemanifesto.org
11 февраля 2001 года в США на горнолыжном курорте собрались 17 человек. Это были известные приверженцы разных методологий разработки: инженеры, разработчики и менеджеры. Некоторые из них были конкурентами. На встрече собравшиеся поняли, что у них много общего и выделили общие ценности, которым должны следовать успешные команды. Уже после встречи в течение двух месяцев шла бурная переписка между участниками. В её результате появилась страничка вики с 12 принципами айти команды. Так зародился Agile.
Agile – ценности и принципы, которыми руководствуются успешные команды. Их определяет Agile Manifesto. Манифест содержит 4 основные идеи и 12 принципов. Причем в нем нет практических советов.
Принципы Agile:
— Люди и взаимодействие важнее процессов и инструментов
— Работающий продукт важнее исчерпывающей документации
— Сотрудничество с заказчиком важнее согласования условий контракта
— Готовность к изменениям важнее следования первоначальному плану
И не отрицая важности того, что справа, мы всё-таки больше ценим то, что слева.
http://agilemanifesto.org
Модификаторы доступа
private – доступ открыт только внутри класса
default или package-private – класс, методы или переменные будут видны только внутри пакета
protected – члены класса доступны внутри пакета и в наследниках
public – доступны всем
В наследниках можно менять модификаторы доступа в сторону большей видимости. Например, метод
private – доступ открыт только внутри класса
default или package-private – класс, методы или переменные будут видны только внутри пакета
protected – члены класса доступны внутри пакета и в наследниках
public – доступны всем
В наследниках можно менять модификаторы доступа в сторону большей видимости. Например, метод
protected Object clone()
можно сделать public, но нельзя сделать default.