Работа программистом в Германии: как пережить испытательный срок
Живу в Германии, работаю программистом в местной компании и хочу рассказать об одном из самых сложных и напряженных - по крайней мере, субъективно, - этапов работы - испытательном сроке (нем. Probezeit), о его особенностях, как формальных, так и неформальных и об отличие от российских реалий, с которыми мне довелось сталкиваться. Одним словом, если вы еще никогда не проходили испытательный срок на позиции разработчика junior'a, будь-то в Германии, России или какой либо другой стране, то этот текст точно для вас; ну а если же вы уже "тертый калач" и общее время пройденных вами испытательных сроков немногим короче, чем хвост у кометы Галлея, но вы никогда не взаимодействовали с немецкими фирмами, то и для вас этот небольшой экскурс в инокультурную корпоративную среду, надеюсь, также будет любопытен. Итак, погнали!
Первые шесть месяцев мы будем тебя «врабатывать»
Слово сие - "врабатывать" - на русском языке звучит до жути неудобоваримо, хотя на немецком ничего примечательного и необычного в нем нет, слово как слово - "Einarbeitung" и обозначает оно всего на всего процесс включения, или даже лучше сказать, "встраивания" человека в новый коллектив и в новые рабочие задачи. Очень часто - но не всегда! - этот процесс по длительности совпадает с испытательным сроком, иными словами продолжается шесть месяцев. Да-да, вы не ослышались (и не "очитались"), испытательный срок в Германии в большинстве случаев, если речь идет о так называемом бессрочном трудовом договоре, длится шесть месяцев. В это время вас могут уволить за две недели, но и вы со своей стороны в том случае, если что-то пойдет не так, также можете уволиться за две недели (т.е., после подачи заявления на увольнение вы должны отработать две недели, также компания, в том случае, если она была инициатором вашего ухода, не может выкинуть вас на улицу в течение двух недель после уведомления и обязана будет начислить вам зарплату за это время), по истечению же испытательного срока период увольнения с обоих сторон равен трем месяцам. Отсюда, кстати, и этот постоянно возникающий во время собеседований вопрос о том, когда вы сможете выйти на работу (подробнее см. вот тут), при этом ваши потенциальные немецкие работодатели готовы ждать вас эти три месяца без каких-то проблем (к примеру, я получил свой оффер в январе, а вышел работать в апреле, никто по этому поводу не беспокоился и не волновался, более того, мне даже сказали, что если я вдруг не успею приехать и оформить необходимые документы, то срок выхода на работу можно даже немного подвинуть; "немного" в немецком представлении это либо 15 дней, либо месяц).
Но вернемся к "врабатыванию". Немцы, наверное, не были бы немцами, если бы в первый же мой рабочий день не принесли мне бумагу, на которой по месяцам было расписано, когда и чем я буду заниматься. Два месяца я должен был знакомиться с проектами, написанными на Python и JavaScript, потом переходить к изучению Kubernetes (до того момента, я только слышал про эту технологию, но не имел никакого понятия как с ней работать на практике), ну и вишенкой на этом программистско-девопсовском торте являлись сервисы AWS (как вы понимаете, тут я тоже был полный нуль). За каждый этап назначался свой ответственный, тот специалист, который и будет меня доблестно "врабатывать" в рабочую проблематику, а также главный наставник (нем. Pate; любопытно, что это слово на немецком также значит "крестный отец"), человек, к которому можно обратиться по любому рабочему вопросы. В моем случае это был разработчик с 20 летним стажем работы в фирме (поверьте мне, я был удивлен не меньше вашего, потому что всегда думал, что программисты так долго не живут работают на одном месте) по имени Мартин.
Может быть, все это звучит очень интересно и воодушевляюще, мне так тогда по крайней мере казалось, но беда в том, что довольно быстро все пошло не по плану...
Как все (чуть было) не н@вернулось
Обычно, когда знакомишься с различными источниками информации по теме программирования и первой работы в этой области, то большинство материалов рассказывает тебе о том, как это круто и весело работать программистом и что у тебя непременно получится и ты наконец-то станешь царем горы, ну или как минимум правителем какого-нибудь карликового государства (ага, особенно после восьми или девяти месяцев обучения; неужели, действительно, мало кто принимает во внимание, что сама по себе профессия должна быть крайне низкоквалифицированной, а отсюда и низкооплачиваемой, чтобы ее на самом деле можно было освоить пусть даже и за девять месяцев?!). Так вот, в моем случае все было сложно. Причем сложно мне как правило до сих пор, но сейчас я с этим прекрасно справляюсь, а вот первое время все было иначе. Ниже попробую тезисно и местами на контрасте с моей первой работой Python-программистом в Москве показать, что же ставило меня в тупик и вызывало наибольшие трудности.
Работа со "старыми" проектами и "экзотическими" фреймверками. Дело в том, что в Москве я был сотрудником в веб-студии, где сайты выполнялись на заказ, отдавались заказчику и благополучно забывались, отсюда происходила довольно быстрая смена проектов: один проект два или три месяца, а потом переключение на новый, в котором всю бизнес-логику нужно было писать с нуля, постоянно взаимодействуя с дизайнером, фронтендером, а периодически и с заказчиком. В таком режиме с легаси-кодом я практически не сталкивался (хотя, теоретически, любая строчка кода, написанная вчера, да и минуту назад, уже может титуловаться "легаси-кодом"), но все изменилось, когда я стал работать в Германии. Здесь моя главная задача состояла в поддержке и развитии уже существующих проектов, причем существуют они как правило уже более 10 лет. Скажу вам правду, к такому жизнь меня не готовила... Ни один курс, который я проходил, ни одна лекция, которую слушал не учили тому, как грамотно разбираться в чужих проектах, написанных n-едениц времени назад. Скажу больше, один из этих проектов, да к тому же самый важный и объемный, написан на таком Python-фреймверке как Pyramid (если вы его вдруг не знаете, - я вот, к примеру, не знал, - то документацию можете почитать тут, однако в реальных проектах использовать не советую, он практически при смерти и единственные обновления за последние несколько лет - это обновления версии Python). Да и фронтенд часть переодически преподносила сюрпризы в виде фреймверка Ember (тоже не самый популярный инструмент, хотя тут в последнее время наблюдается определенная активность, даже была выпущенная пятая версия в июне 2023 года). Говоря коротко, я конкретно "завис" разбираясь во всех этих проектах и уложиться в обозначенное в немецком плане время по "врабатыванию" мог категорически не успеть.
Недостаточное знание Linux. Здесь мне, к сожалению, сказать в свое оправдание нечего. С линуксом я и правда на момент начала немецкой работы был знаком скверно. Разумеется, я владел базовыми командами, по типу ls, pwd, mkdir, touch, cd, rm и пр., но для подключения к базам данных, эффективного изучения логов и срочного исправления конфигураций на удаленных серверах этого явно было недостаточно. Все это лишь дополнительно тормозило мою и без того не особо быструю "врабатываемость".
Необходимость освоения ряда DevOps инструментов. В какой-то момент мне казалось, что беспрогляднее тьма быть уже не может и я наконец-то достиг дна программистской проф-дезориентации, но именно тогда ко мне подошел тимлид и сказал, что время пришло
в гости отправиться ждет меня старинный другбраться за изучение Kubernetes и сопутствующих ему технологий, таких как Helm Chart (если вы не сильно искушены в девопсе, то можете посмотреть пару статей на Хабре тут, и тут), потому как нам нужно мигрировать один из наших проектов на Kubernetes и я должен буду готовить этот самый проект. Беда, как мне на тот момент казалось, главным образом заключалась в том, что дальше Docker'а я в своих непревзойденных девопсовских практиках никогда не заходил (да и в них, если честно, на тот момент времени несильно преуспел; в Москве у нас была отдельная команда, которая отвечала за деплой проектов на сервер) и мой опыт девопс-мышления, не находится даже на уровне опыта мышления годовалого младенца в сравнении со взрослым человеком. Как вы понимаете, подобное предложение тимлида окунуться с головой в бурное море новых технологий в тот момент времени не вызвало во мне бурной радости (хотя, конечно, теперь я понимаю, что это было довольно глупо с моей стороны), но параллельно с ознакомлением с проектами, написанными на Python и JavaScript, я все же начал понемногу "врабатываться" в девопс, что вскрыло во мне бездны уже даже не синдрома, а комплекса самозванца, знакомого большинству джунов.
«Да мы и не ждали, что все пройдет быстро и без проблем» или как понять, что от тебя по‑настоящему ждут
Описанная ситуация, наверное, довела бы меня до резких действий, если бы я был человеком особо самомнительным и честолюбивым, но нет, я не такой и поэтому я просто окуклился и решил ждать пока меня сами уволят. Ну а если серьезно, то решающим фактором того, что в итоге мне все-таки удалось пройти этот пресловутый процесс "врабатывания", явилось то, что составной его частью были регулярные встречи и разговоры с тимлидом, который отслеживал как продвигаются мои дела. Это, по моего глубокому убеждению, реально очень полезный и классный формат: раз в две недели ты встречаешься со своим непосредственным руководителем и сообщаешь ему статус - что получается, что не получается, где тебе нужна помощь и совет, где тебе категорически не хватает скила и знаний; в конце концов, этот формат помогает тебе прежде всего задать вопросы самому себе, понять, насколько ты сам контролируешь ситуацию и видишь свои слабые места. И вот в одну из таких встреч и обсуждений, я внезапно понял, что от меня никто не требует уложиться в те формальные сроки, которые значились в плане "врабатывания", выданном мне в первый рабочий день!
Более того, тимлид поделился со мной простой и тривиальной мыслью, которая почему-то до меня самостоятельно никак не доходила, а именно то, что они и не искали человека, который все может и умеет (они бы его просто, скорее всего, в своем регионе все равно бы не нашли и поэтому действовали реалистично и прагматично), но искали человека, который готов учиться и которого комфортно обучать.
Дальше - больше: для изучения каких-то основ новых для меня технологий мне в принципе выдали целый месяц, свободный от других текучих задач, в ходе которого я проходил курсы по Kubernetes'у и в случае ступора и непонимания обращался за помощью к скиловым коллегам.
Я не знаю, как вы, но я в период своей работы в России не встречался ни с чем подобным (но тут, конечно, опыта у меня очень мало, была только одна работа питонистом), если у меня что-то не получалось, то в лучшем случае мне подсказывали, что в теории стоит делать, а как правило, просто забивали... Если честно, то и гипотетически представить себе, чтобы мне дали хотя бы неделю - не говоря уже о месяце - свободного времени для изучения какой-то новой для меня технологии я просто не могу. Может у вас есть такой опыт? Если да, то пишите в комментариях. При этом, хотелось бы отдельно отметить, что подобный подход не является чем-то экстраординарным в Германии и, напротив, существует на каждом углу. Так, к примеру, довольно многие немецкие вакансии содержат требование знания одного из языков ООП, при чем не уточняется какого именно. Если же вы попадаете на собеседование и выясняете, что речь идет о Java, а вы в Java'е не понимаете совершенно ничего, то это в принципе не проблема, поскольку - как и указывалось в вакансии - на позицию ищется человек, владеющий ООП языком. Все. Остальному, а именно той самой Java'е и сопутствующим этому языку технологиям вас непосредственно научат на самом рабочем месте. Неплохо, не правда ли? Сравните это с "зубастым" отечественным рынком, где зачастую можно встретить вакансии, в которых люди в простоте душевной прямо пишут, "джунам не откликаться". Мне даже трудно себе вообразить, насколько удивились бы эти ребята и девчата из российских компаний, узнай они о немецком подходе, который подразумевает, что человека на рабочем месте работодатель будет еще и обучать, да и зарплату полную платить. Одним словом (а точнее, тремя) не по-нашему...
В заключении, как и полагается любому уважающему себя рассказчику, который непременно должен стремиться к happy end'у, добавлю лишь то, что к настоящему времени, спустя немногим более года с момента начала работы, - что наряду с погружением в существующие рабочие проекты и освоением Kubernetes, Helm Chart, Rancher, стоило мне также изучения как минимум двух S3 хранилищ и целого ряда фишек в работе с линуксом и удаленными серверами, - с уверенностью могу сказать, что оно того стоило. Ну а коли и вам интересно попробовать стать it-шником в Германии, со всеми вытекающими отсюда последствиями, то можете отдельно познакомиться с двумя моими текстами о том как получить позицию разработчика в этой стране тут, и тут.
Изначально материал опубликован в моем Дзен канале. Там же можно найти другие публикации на тему немецкого it.