В IT после 30
1.92K subscribers
36 photos
1 video
49 links
Личный блог, где я делюсь своим опытом входа в IT после 30 лет.

👨‍💻 Связь со мной: @wkpman
Download Telegram
👨‍💻 Куда я пропал?

Почти месяц я не выходил на связь. Как только я прошел свой путь от обучения до трудоустройства эмоции просто били из меня фонтаном. Хотелось делиться опытом, радостью, поддерживать тех, кто пока ещё в пути. Поэтому выходило много постов на этом канале. Спустя время эмоции поутихли, к работе привык и теперь она стала частью ежедневной рутины. Возможно это прозвучало немного грустно, но на самом деле это не так)

Рабочие задачи

В компании меня позиционируют, как разработчика уровня миддл, дают интересные задачи, на которых я постепенно набираюсь опыта. На этой неделе дали задание разработать с нуля небольшой микросервис, который будет ходить в базу данных, собирать данные, компоновать и ежедневно отправлять их на сторонний сервис по REST API. Звучит несложно, но это первый рабочий проект, который разрабатываю самостоятельно с нуля. Процесс очень схож с написанием пет-проектов во время обучения, то есть не замечаю как быстро проходит рабочий день. Бывает пропускаю обед или работаю после 18:00, потому что уж очень увлечен и хочется довести дело до логического коммита. Уже давно не испытываю этого поганого чувства: "Блин, завтра понедельник, опять на работу". На выходных стараюсь хорошо отдохнуть, а в понедельник с удовольствием вновь окунаюсь в рабочие задачи. Никто не торопит, не стоит над душой - красота.

Помимо нового проекта, над которым я работаю самостоятельно, у меня есть ещё 4 микросервиса, на которых я исправляю баги, пишу тесты, делаю доработки и даже оптимизирую CI/CD-пайплайн (по собственной инициативе). Это прям мини-повод для гордости, ведь мне удалось сократить время от пуша проекта в Gitlab до деплоя на сервер с 12 минут до 3! Результатами моих трудов будет пользоваться вся команда, что безусловно радует.

Если вы ещё учитесь или в поисках первой работы

Никогда не опускайте руки, если вам нравится учиться, программировать, писать пет-проекты. Работу рано или поздно вы найдете, станет проще, придет некоторая стабильность. Пробелы в знаниях постепенно будут заполняться уже в процессе работы. К примеру свой первый Unit-тест я написал только на работе. А после - интеграционный, контрактный и end-to-end.

Сейчас собираю паззл (подарили друзья на ДР) и провожу аналогию с обучением. В начале вообще не представляешь как собрать цельную картину из 1000 элементов. Но постепенно, шаг за шагом соединяешь элементы, в первую очередь собираешь периметр, затем фильтруешь элементы по цветам. Несколько вечеров и уже что-то вырисовывается.

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

Успехов всем, кто ещё в пути. Путь непростой, но это определенно того стоит 😉
👍8615🔥5🐳2
🤖 Когда есть нерешаемая проблема...

Как обычно проходит рабочий день? Я с утра прикидываю план на день, отмечаю в таск-трекере задачи, которые планирую выполнить и к концу рабочего дня делаю коммит, пушу свой код в репозиторий. Но вчера я пол рабочего дня просидел над проблемой дублирования кода. Быстро избавиться не получилось, но я не сдавался, не могу спокойно оставить то, что работает, но сделано не оптимально. Переработав один час, так и не найдя способ написать "красиво", вышел на улицу. Но мозговая деятельность продолжилась. В уме я составлял интерфейсы, делал наследования, но даже мой внутренний компилятор говорил: "Парень, ты сочиняешь фигню, ну не могу я создать объект абстрактного класса". В итоге на прогулке с женой и ребенком я был достаточно хмурый отстраненный, весь в своих мыслях.

Даже когда ложился спать, думал над вариантами решения. Уже почти смирился с тем, что придется оставить свой дублирующийся "говнокод". Сегодня с утра пришла светлая мысль попробовать прогнать свою проблему через ChatGPT. И что вы думаете? Нейросеть прислала мне с виду то, что нужно, хотя обилие дженериков меня немного пугало. Вставил этот участок кода - ошибка компиляции. Отправил ChatGPT, в ответ получаю "Да, извините, я была не права, сейчас отправлю вам исправленный вариант". Вставляю, запускаю - работает!

Пишу тест, чтобы проверить функциональность, тест проходит. Супер! Нет дублирования, но есть непонятный код для меня. Я настолько погрузился во всякие смежные темы вроде логирования, ci/cd, интеграционные тесты, что подзабыл Java Core. Пришлось уделить час времени, чтобы пересмотреть раздел курса по дженерикам и освежить в памяти различные моменты.

ChatGPT стал для меня одновременно джуном-помощником, на которого можно скинуть рутину, вроде написания Javadoc, и сеньером, которого можно бесконечно заваливать вопросами и не чувствовать себя неудобно из-за траты чужого времени. Мой коллега переживает, что скоро нас всех уволят и заменят нейросетью. А Сергей (ментор) считает, что это всего лишь поисковик нового поколения, который облегчает поиск информации и избавляет от рутины.

Скажите, а если у вас не получается решить какую-то проблему в разработке, вы тоже продолжаете придумывать в уме решение, даже не находясь за рабочим местом?
👍43
Вроде только вчера получил оффер, а уже сегодня у меня второй день отпуска :) Есть всё-таки прелести работы в найме.
🔥44🐳63❤‍🔥2👏1
Список вопросов, которые можно задать HR'у компании на этапе собеседования.
👍43❤‍🔥10
👨‍🏫 Прохождение собеседований

Слышал от разных айти-блогеров (Антон Назаров, Александр Ильин), что хорошо бы менять работу хотя бы раз в год, ведь это отличный способ получить существенное увеличение зарплаты + новый опыт на новом проекте, где возможно применяются технологии, с которыми ты ещё не работал. В текущей компании я работаю уже 9 месяцев и пока что не планировал менять работу, но время от времени в Telegram мне пишут HR'ы компаний и предлагают пройти собеседование в их компанию на позицию Java-разработчик. По описанию вакансий понимаю, что ищут разработчиков уровня Middle и даже Senior.

И если год назад я с огромным желанием готов был проходить собеседования даже не в самые хорошие (с точки зрения стека) компании, лишь бы получить хоть какой-нибудь опыт, то сейчас нужно заставлять себя это делать. Почему заставлять? Потому что на текущем месте нравится почти все: проект, задачи, коллектив, условия работы и даже зарплата (как мне кажется она даже немного опережает мой уровень знаний и опыта). Но ведь прохождение собеседований - это тоже навык, который утрачивается, если долго их не проходить.

В одну из компаний были серьезные требования, я прекрасно понимал, что на собесе меня "разорвут". Поэтому открыто написал HR, что не готов в данный момент собеседоваться и что мне необходимо набраться больше опыта. Но где этот опыт брать, если на текущем месте работы рост опыта если и не прекратился полностью, то точно я получаю его гораздо меньше, чем в первые несколько месяцев работы. Именно поэтому я практически через силу заставил себя пройти собеседование в другую компанию из которой поступило предложение.

Отзывы IT-сотрудников в интернете только положительные, в вакансии заявлен актуальный стек. То есть в теории, если я успешно пройду собеседование, то ради расширения области знаний и получения нового опыта можно и подумать о смене работы. А если завалю собеседование, то практически ничего не теряю, а только приобретаю опыт прохождения собесов. 3 дня отпуска посвятил повторению теории, так как все это выветривается из моей головы достаточно быстро (Java Core, SQL, Hibernate, Spring, Kafka).

Сегодня был собес (1,5 часа) и меня спросили по всем этим разделам + лайвкодинг, так что не зря повторял :) Не на все вопросы я смог хорошо и уверенно ответить, но в целом всё прошло достаточно неплохо. Контраст собеседований на инженера ПТО (прошлая профессия) и на Java-разработчика колоссальный. На инженера ПТО самый сложный в моей практике вопрос на собеседовании - это расчет объема песка и щебня, которыми необходимо засыпать траншею. Пример из математики 5-го класса плюс рассказ о выполненных проектах и я принят. На Java-разработчика собеседование похоже на полноценный экзамен при поступлении в вуз, где на одно место претендует несколько человек (или несколько десятков человек). Уровень стресса и процесс подготовки соответствующий. Как ни странно, на самом собеседовании стресса никакого не испытываю, но вот ожидание предстоящего собеседования всегда волнительно, хотя для меня это уже не вопрос "жизни и смерти", как это было при поиске первой работы.

Каждый раз, когда совершаю что-то сквозь страх или лень, это приводит меня к удивительным результатам. Возможно стоило бы остановиться и наслаждаться текущими достижениями, но ведь всегда хочется большего...
👍61🔥84
📝 Вопросы на собеседовании Java Developer

В комментариях к прошлому посту просили дать список вопросов, которые мне задавали на собеседовании. Запись своих собеседований не веду, поэтому всё что смог вспомнить - перечислил ниже.

Java

▪️Расскажите про коллекции.
▪️Как устроена hashmap?
▪️Сложность операций вставки, чтения, удаления элементов из коллекций.
▪️Расскажите про иерархию исключений.
▪️Какие типы операторов в Stream API вы знаете? Приведите примеры.
▪️Что такое Atomic типы, для чего они нужны?
▪️Атомарны ли операции инициализации double и float?
▪️Что такое volatile?
▪️Что такое функциональные интерфейсы, назовите стандартные функциональные интерфейсы Java.
▪️Что такое дженерики, зачем они нужны?
▪️Что такое wildcards?
▪️Расскажите про Producer Extends Consumer Super.
▪️Если есть 2 return'а: один в блоке try, другой в блоке finally, какой из return'ов сработает?
▪️Принципы SOLID

Spring / Hibernate

▪️Что такое Inversion of Control и Dependency Injection? Зачем это нужно?
▪️Какие ещё реализации Inversion of Control вы знаете (паттерн фабрика).
▪️Какие наследники @Component существуют?
▪️Чем отличается @Bean от @Component?
▪️Чем отличается @Repository от @Component?
▪️Какие варианты создания бинов вы знаете?
▪️Что включается в себя аннотация @SpringBootApplication?
▪️Что делает аннотация @ComponentScan, где её нужно размещать, можно ли задавать свой путь для сканирования?
▪️Какие области видимости бинов существуют?
▪️Напишите реализацию паттерна Singleton.
▪️Расскажите про жизненный цикл бина
▪️Расскажите про уровни изоляций транзакций.
▪️Что из себя представляет под капотом аннотация @Transactional, как она работает?
▪️Какие способы взаимодействия с БД с помощью Spring Data JPA вы знаете? Расскажите о каждом из них.

БД

▪️Какие способы оптимизации запроса в БД вы знаете?
▪️Как на практике оценить что можно улучшить в запросе (это про оператор explain).
▪️Что из себя представляет индекс?
▪️В каком случае наличие индекса замедляет выполнение запроса? (вставка в таблицу)

Kafka

▪️Расскажите что такое Kafka.
▪️Если у нас есть 4 consumer'а и 3 партиции, будут ли читать сообщения все 4 consumer'а?

К собеседованиям готовлюсь по списку вопросов на канале Java Kid. Автор этого канала также проводит мок-собесы (тренировочные собеседования) для того, чтобы подготовить новичков к реальным собеседованиям. Когда я искал свою первую работу, проходил такое интервью. Очень крутой опыт, снижает страх и неуверенность перед реальным собеседованием.
32👍61🔥1
Forwarded from Движение FIRE
🏔 Вторая работа

В то время, как коллеги по цеху пишут посты о том, как уходят с работы и пробуют на вкус в демо-режиме тот самый FIRE, я устраиваюсь на вторую работу и испытываю себя на устойчивость к выгоранию.

В марте 2022 года я решил внести серьезные изменения в свою жизнь и начал изучать программирование. Учеба заняла 7,5 месяцев, 6 из которых я не работал. Семью кормила накопленная финансовая подушка, а её постепенное истощение служило мотивацией побыстрее закончить обучение и найти работу в новой для меня IT-сфере.

Желающих вкатиться в IT огромное количество, поэтому устройство на первую работу без профильного образования, без коммерческого опыта и в возрасте 32 лет — тот ещё квест. Только спустя 700 отправленных откликов и несколько собеседований, я получил приглашение на работу в офис в другом городе на зарплату, которая составляла 50% от стандартных расходов нашей семьи. Предлагаемая зарплата была в 4 раза меньше того, что я зарабатывал до этого в строительной сфере. Несмотря на все очевидные минусы, предложение было принято.

Проработав 3 недели, я не написал ни одной строчки кода. Задачи на проекте были максимально скучные и никак не развивали меня, как разработчика. Всё это время я не переставал откликаться на вакансии и спустя 3 недели с момента начала работы, меня приглашают пройти собеседование в другую местную компанию. Успешно его прохожу и получаю оффер с зарплатой в 2 раза выше текущей. На следующий же день пишу заявление на увольнение и ухожу без отработки двух недель.

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

После прохождения испытательного срока (то есть спустя 3 месяца) в один из дней мне пишет рекрутер одного крупного банка с предложением пройти собеседование. Я не стал отказываться, так как прохождение IT-собеседований — это отдельный навык, который нужно развивать на практике. Это бесплатно, я ничего не теряю, так почему бы и не попробовать свои силы? Прохожу 2 этапа (техническое интервью, где задают кучу теоретических вопросов и общение с руководителем) и через несколько дней получаю оффер с зарплатой почти в 2,5 раза больше текущей. Я не верил своим глазам, когда открыл pdf файл с предложением о работе и условиями.

Новая работа подразумевала переезд в Сочи и, в принципе, я был к этому готов. Пообщавшись с руководителем на текущем месте и сообщив о предложении из другой компании, я получаю встречное предложение: такая же зарплата плюс возможность удаленной работы. И это было идеальным предложением для меня, ведь я наконец-то мог вернуться с семьей домой и продолжить свою карьеру в качестве разработчика в дистанционном формате.

И вот уже сидя в Геленджике, я получаю очередное приглашение от HR пройти собеседование в новую компанию. Вакансия заинтересовала тем, что на проекте используются технологии, опыт работы с которыми я не могу получить на текущем месте, а также вовсю используется более современный и удобный язык программирования. Это хорошая возможность кратно вырасти, как специалист. 3 этапа собеседования и новый оффер, который я принимаю. На старой работе договариваюсь о переводе на частичную занятость с понижением зарплаты, чтобы довести свои проекты до логической точки.

🔥 И вот пока полыхает Геленджик, пока кто-то выходит на FIRE, я пытаюсь не выгореть на двух работах. Снова приходится изучать что-то новое для себя, в том числе и в нерабочее время. Конечно, в таком режиме невозможно преодолевать длинные дистанции, да и work-life balance никто не отменял, но пока есть силы и, самое главное, желание — почему бы и не поучаствовать в этом спринте?

@wkpbro
👍71👏7🔥5🍾4🤯1🏆1
Давненько не мониторил рынок вакансий. Если такое количество откликов на позицию middle, то что там у джунов сейчас происходит?
😢18👀1
👨‍💻 Новая работа

Кажется, я попал в коллектив, где все прожженные сеньоры, на фоне которых я зеленый джуниор. Если честно, то не очень комфортное состояние, когда берешь таску и представления не имеешь как её сделать. Открываешь код и не понимаешь с какой стороны вообще подступиться к нему. Проект в разы сложнее и масштабнее, чем на прошлой работе. Всерьез переживаю за успешное прохождение испытательного срока. Неделя у меня ушла только на то, чтобы запустить проект на локальной машине 😅 По вечерам смотрю курсы и уроки на YouTube по неизвестным для меня технологиям.

На самом деле, пока что всё нравится, несмотря на все трудности. Находиться в коллективе, где есть возможность профессионального роста - это круто. Возможно коллективу не очень повезло со мной, но я достаточно быстро учусь и думаю всё будет в порядке.

Я далеко не Insta-блогер, но если вам хочется, чтобы я публиковал контент почаще, можете проголосовать за этот канал (доступно только премиум пользователям Telegram) и у меня появится возможность публиковать сториз от лица канала о том, как я преодолеваю синдром самозванца и пытаюсь не вылететь с новой работы.

Отдать голос за этот канал можно по ссылке ниже (нужна последняя версия Telegram и Premium-подписка)👇
🔥492👍1
❝ Последние 20 лет я работаю в сфере IT, и почти каждый раз, когда я хотел повышения зарплаты, мне приходилось устраиваться на новую работу. Лишь дважды работодатель боролся за то, чтобы меня удержать. Мое резюме выглядит как влажная мечта рекрутера и все же мне приходится играть в эту ужасную игру, чтобы получить то, чего я стою❞.

Разные страны, но проблемы одни и те же. Хочешь повышения зарплаты - ищи новую работу, ведь рынок с большей вероятностью предложит столько, сколько текущий работодатель предложить не готов.
👍362🔥2
🌪 Накрутка опыта

Такой уж сейчас рынок вакансий, что резюме без коммерческого опыта не проходят автоматический фильтр, который выставляет HR при поиске кандидата. У меня есть знакомый, который в феврале этого года по знаниям и опыту работы с различными технологиям обгонял меня. В феврале он закончил стажировку в одной компании и принялся искать работу, так как после стажировки ему не предложили продолжить сотрудничество. С февраля месяца он до сих пор не устроился на работу, так как просто не зовут на собеседования. Резюме честное, без накруток.

Но не стоит думать, что накрутка опыта это серебряная пуля. Если вас берут на работу, а вы в реальности не обладаете теми навыками, которых от вас ждут, то будет тяжело. Придется очень быстро учиться и наверстывать пробелы. Из плюсов: вы получаете зарплату, из минусов: синдром самозванца, страх увольнения, неуверенность, неудобные моменты с коллегами, когда вы не решаетесь что-то спросить и т.д.

Я накручивал опыт в резюме, но не врал на счёт технологий, с которыми работал (которые использовал в пет-проектах). Первая работа не счёт (так как отработал всего 3 недели и я не написал ни строчки кода), на второй мне было максимально комфортно в плане соответствия ожиданиям работодателя, а на текущем (третьем) месте работы такое ощущение, что меня взяли на сеньора, а я только вчера закончил проходить курс. И это при том, что у меня уже год коммерческого опыта, а резюме совсем немного приукрашено только в части длительности работы на первом месте. Так что я могу предоставить насколько тяжело тем, кто за счёт накрутки опыта устраивается на миддла, не имея за плечами реального опыта.

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

Один из студентов моего ментора Сергея нашел работу без накрутки опыта и с абсолютно честным резюме, но у него также присутствует тревожность и неуверенность в том, что он оправдывает ожидания команды. А вот моему знакомому повезло меньше: с честным резюме он уже 10 месяцев после окончания стажировки не может попасть на собеседование.

Этим постом я хотел сказать, что в любом случае будет непросто на начальном этапе, хоть с накруткой, хоть без. Многое будет зависеть от проекта и от команды, в которую вы попадете. Может повезти с коллегами, а можете попасть к токсичным разрабам, которые будут ухмыляться, что не знаете "базу". Но все проблемы нужно решать по мере поступления. И если вы только учитесь, то цель номер один: попасть на собеседование. А что для этого нужно в 2023 году, думаю вы поняли.
👍1810😢32👎1🌭1
Прошел почти год с момента моего первого трудоустройства на должность Java-разработчика. Планирую написать пост на эту тему, поделиться своими мыслями и своим скромным опытом входа в IT после 30 лет.

Если вам интересно узнать что-то конкретное или есть вопрос - пишите в комментариях, постараюсь ответить в рамках следующего поста.
👍75🌭1
И вот попробуй объяснить человеку, далекому от программирования, что я не собирался ни над кем издеваться этой весной)
🤣16👍5🥱1
Как я стал программистом в 32 года. Отработал 1 год. Стоит ли оно того?⁠⁠

Ровно год назад в возрасте 32 лет я получил свой первый оффер и устроился в IT-компанию на должность Junior-разработчика на языке Java, где отработал 3 недели, после чего уволился. Вы мне накидали вопросов в комментариях, постарался на все ответить.

Пост опубликовал на Пикабу.
👍29🎉4🍓1
Ну что, будущие кнопкодавы, готовы после обучения пилить дырявый софт в МФЦ?

Сложилось ощущение, что чем больше у человека опыта в IT, тем больше у него негатива в сторону начинающих специалистов без высшего профильного образования.

Перед тем как начать обучение, я пообщался с Сергеем (ментором) на тему того, а возможно ли человеку без вышки стать программистом в 30+? И если бы я получил подобный ответ, возможно я бы и не решился на смену своей сферы.
22👍9😁4🌚42🌭1🍌1🍓1
🧗‍♂️ Испытательный срок

Как вы знаете, 3 месяца назад я прошел собеседование в новую компанию и был принят на должность Kotlin-разработчика, имея опыт написания только лишь небольшого пет-проекта на этом языке. На собеседовании был лайв-кодинг и я с трудом мог написать требуемую функцию. В процессе решения этой задачи мне разрешили гуглить, ведь в работе все мы гуглим и это не преступление. Так что функцию я все же написал. Что касается общих теоретических вопросов, я ответил на все хорошо, но вот вопросы по Kotlin я завалил. Не ответил даже на элементарный вопрос как называется аналог Object() в Kotlin'e. Речь шла про Any().

В итоге, видимо, положительные моменты перевесили пробелы и меня решили взять. И вот сегодня мне сообщают, что я успешно прошел испытательный срок и команда надеется, что я продолжу работать в компании ещё долгое время. Что ж, это приятно и добавляет уверенности в своих силах. Ожидания с обеих сторон оправдались. Если честно мне было очень боязно, что "в душе" я джун, а меня приняли в компанию на должность старшего разработчика. Это накладывает определенную ответственность и ограничения в плане пула вопросов, который будет уместно задать коллегам. Как устроен проект - нормальный вопрос, но вопрос как откатить запушенные изменения в публичный репозиторий и подобные я стеснялся задавать и практически во всех технических моментах мне приходилось гуглить, смотреть курсы или уроки на YouTube.

Практически все задачи я закрывал в срок или даже раньше срока. На код-ревью в начале работы было много замечаний по коду, но сейчас получаю approve почти без замечаний. К новому языку привык за месяц и когда мне необходимо переключиться обратно на Java - начинаю тупить, например забываю ставить точку с запятой. В общем после Kotlin писать на Java не очень хочется, к хорошему быстро привыкаешь.

В резюме у меня накручен опыт: указано 3 года, хотя реальный коммерческий опыт всего год. Я следовал принципу: Fake it till you make it (фраза, означающая имитацию уверенности с расчётом на то, что в случае успеха уверенность станет подлинной) и это сработало. Испытательный срок пройден, проект нравится, в команде я самый слабый по хард-скиллам, но это никак не мешает выполнению рабочих задач и лично для меня это плюс, так как есть возможность быстрого профессионального роста, есть у кого поучиться.

Планы на будущее: никак не могу решиться на изучение английского языка с целью прохождения собеседований и работы в иностранных компаниях, где уровень зарплат повыше, чем на рынке РФ. Наверное, после небольшого отдыха и восстановления work-life balance, я всё же начну работать в направлении этой цели.

Всем кто читает и кто учится - желаю успехов в обучении и скорейшем трудоустройстве. Всё более, чем реально, главное не сдаваться при возникающих трудностях. И не перестану благодарить Сергея за поддержку и помощь в обучении. Без его наставлений мой путь точно был бы более тернистым)
67👍29🎉184👌1
Что-то странное творится на рынке вакансий. На позицию стажёра конкурс меньше, чем на позицию middle разработчика. Ну или мало кто готов начинать работать за 15000р в месяц, даже не смотря на опыт.
🌭2