Всем привет! Хочу поделиться с вами подробностями работы middle java программиста, рассказать, чем junior отличается от middle что должен знать и какие задачи перед вами будет ставить начальство.
О себе: я работаю программистом больше двух лет, сменил три компании, множество проектов и технологий.
Я постоянно изучаю программирование, и продолжаю изучать также как на javarush.
Уровень задач становился все сложнее и сложнее, но обо всем по порядку...
Выходя на первую работу многие переживают, смогут ли разобраться, справиться. Скажу коротко - переживать не стоит. Работодатель понимает кого он берет и многово не ожидает.
Вам будут давать задачи с которыми можете справиться. Отношение к джунам всегда снисходительное.
Проект скорее всего уже написан. Конечно, после учебных проектов, коммерческий кажется нереально сложным.
Но никто не будет требовать написать такой же. От вас требуется разобраться в чужом коде и сделать по аналогии. Иногда добавить небольшую фичу. Исправить баг.
Причем все задачи будут объяснять как делать. По буквам диктовать конечно не станут, но по шагам скажут как ее решать. В непонятной ситуации подскажут.
Короче, ничего сверх сложного, да и ответственности мало. Каждую строчку будут проверять, следить чтобы ничего не сломали.
В основном вы будете разбираться с java кодом, а работать с другими технологиями редко. Да и всегда можно сказать, я это не знаю. Это нормально.
Вообще джунов неохотно берут на работу по двум причинам. Первая - непонятно чего от него ожидать, какой его уровень, сможет ли он что-то сделать. И глядя на темы форума начинаешь понимать, что такие опасения не напрасны. Один раз я слышал про человека, который на собесседовании не мог 'Hello world' написать.
Вторая причина в том, что работы для джунов не так много. Вы не можете дать джуну сделать новый сервис, интеграцию, оптимизацию, не типовую задачу, автоматизацию процесса сборки и т.п.
Джун без опыта и с опытом - совершенно разный уровень и работодатель это понимает. Задачи в реальных проектах очень сильно прокачивают, ведь они координально отличаются от учебных. Постепенно код становится понятным, фремворки знакомыми. И вот вы уже программист.
Здесь у многих складывается впечатление что программирование не такое уж и сложное занятие. Но все меняется когда вы становитесь мидлом.
Прежде всего от мидла ждут самостоятельности. Впринципе других программистов в команде может и не быть. Подсказать как работает код бывает некому.
Предполагается что миддл способен выполнить любую задачу.
Можно выделить следущие категории:
Интеграция. Системы взаимодействуют между собой по различным протоколам: http, mq, soap, а также через файловую систему и базу. Нужно сделать подключение и наладить обмен сообщениями определенного формата.
Требует знание протоколов и соответствующих фремворков. А фремворков существует много.
Исправление бага. Требует понимание работы вашей системы, а также внутреннего устройства фремворков, которые вы используете.
Фича. Может быть что угодно, но java разработчики чаще всего имеют дело с данными: взять откуда-то объекты, поменять значения, положить в другое место.
Поменять поля у объекта и т.п.
Развертывание проекта на серверах. Вообще для администрирования приложений как своих так и сторонних есть специальный человек - DevOps.
Но он есть далеко не во всех командах. Угадайте, кто это будет делать? Да, джавы станет меньше. Нужно подучить системы автоматизации. Для управления конфигурацией серверов используются такие программы как Puppet и Ansible. Но сейчас тенденция идет в сторону виртуальных серверов, где используют Kubernetes, OpenShift, AWS.
Также есть различные системы логгирования и мониторинга, которые тоже нужно настраивать.
Создание микросервиса. Все выше описанное собрать вместе. И для этого есть свои фремвоки.
Доработка кода на другом языке. Да-да. Рано или поздно вы с этим сталкнетесь. Различные части системы написаны на разных языках. Вам нужно будет сначала разобраться с синтаксисом и фремворком, а потом делать само задание. Фронт пишут на javascript или typescript, автоматическое развертывание на серверах - скриптами groovy, а сами сервера на linux и там bash скрипты.
Нетипичные задачи. Самое сложное что может быть. Бывают не часто, но если попадется - то держитесь. Из команды никто подобной задачи раньше не делал, спросить помощи не у кого.
Приходится разбираться с редкими технологиями.
Во вторых от мидла требуется знание технологий, необходимых для решения задач описаных выше. И тут на вас сваливается весь зоопарк фреймворков, библиотек, программ.
Слова 'не знаю' уже нет. Можно сказать, 'я это не делал, буду изучать'. В отличии от джуна, нужно не только знать много технологий, но и понимать тонкости работы. А также иметь представление о создании сервисов с нуля до выхода в прод. Вам предстоит практически постоянно читать документацию.
В третьих от мидла требуется писать качественный код. По стилю и чистоте уже можно говорить об уровне разработчика. Код должен быть логически разбит на классы, между которыми понятно взаимодействие, они сгруппированы в пакеты, а в самих классах методы легко читаются. Об этом можно долго рассказывать.
Короче, относитесь ответственно к каждой строчке.
В четвертых ответственность. Никто особо ваш код проверять не будет, вернее разбираться как он работает. Все ваши косяки будут вылезать на тесте или в проде.
Нужно проявлять инициативу в решении задач. Где-то придется погрузиться в бизнес процесс, переписываться с другими людьми, проводить встречи.
От вас ждут результат, независимо от трудностей.
Итак, как идет процесс. Главный человек в команде - владелец продукта - ставит бизнес задание, которое принесет прибыль продутку. Системный аналитик прорабатывает задачу: продумывает процесс в системе, составляет требования, пишет документацию.
Далее задание отдается техлиду, а он дает вам. Никто не будет говорить как его решать, у вас есть только требование как должно работать. Почти всегда нужно подучить новую библиотеку.
Накидаю примеров заданий:
- Сделать авторизацию с помощью jwt токена.
- Принять запрос по http, сохранить в базу, сделать из него xml определенного формата и отправить в mq.
- Переделать запросы к базе под новое поле в объекте.
- На фронте сделать кнопку которая из бэка получает данные. Отобразить новое поле объекта.
- Отправлять логи в определенном формате в другую систему через kafka.
- Написать тесты для всего выше описанного.
- Развернуть ваше приложение в OpenShift
Скажу что сложность скрывается в мелочах. Вроде все должно работать, но не работает. И вот сидишь и буквально по строчке проверяешь правильность создаешь прототип кода, сравниваешь. И все из-за того что код, который ты используешь делает не то что ты ожидаешь.
Вот и все что я хотел написать. Надеюсь, после прочитанного у вас появилось представление о работе java программиста. Стать разработчиком вполне реально, но нужно потратить достаточно времени и сил на изучение. Задавайте вопросы.
Что на работе делает Middle Java Разработчик
Комментарии (42)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
vladimir
4 марта, 09:50
От себя могу добавить то, что всё гораздо проще чем кажется. Достаточно попотеть один год и получить немного реального опыта. Потом можно уже в своё удовольствие писать код неспеша ,так как вас уволят только если реально забивать начали на работу. Да и если уволят не заморачивайтесь, работы много и вы получите только плюсы от этого.
0
QukKly
27 декабря 2022, 09:34
ffsdfsdf
0
Vlad Lipski
8 декабря 2022, 19:47
чет перехотелось после прочитанного)))
+1
Qafarov Vuqar Backend Developer
15 ноября 2022, 07:01
занимательный пост :)
0
Фарид Гулиев
28 мая 2022, 21:51
Сергей, здравствуйте. Статья ещё не прочитал, мне тоже кстати нравится иконка Fireblast :-). Да и Огр-маг неплохой, с мидасом...
+4
Зигмунд Фрейд
15 апреля 2022, 09:20
В 45 лет стоит в это все суваться или уже поздновато?
0
Сергей Java Developer в Сбер Expert
15 мая 2022, 15:49
могут быть проблемы с поиском работы, но научиться программировать можно в любом возрасте.
0
Марат Абдрахманов
9 марта 2021, 04:20
Всем привет. Почитал статью, почитал комменты. Возник вопрос - хотя бы некоторые из перечисленных технологий и протоколов затрагиваются на Джавараш? Или столкнёшься с ними только устроившись на работу? А то реально чёт страшно стало :)))
+4
VioletJam Java Backend Developer в Геонавигация
27 апреля 2021, 18:39
На ДжаваРаш изучается только Java, всё остальное самостоятельно :)
+2
Уpовень 302
23 декабря 2022, 15:56
javarush только для задач а не теории
0
alex_us
1 января 2021, 18:59
красава, продолжай. Очень увлекательно
+1
Ренат Сибаев
9 декабря 2020, 13:54
Может нужна кому работа на jave (se) middle+? Программер срочно нужен, высылайте резюме на почту, кому интересно. Туда же вопросы, если будут. Можете товарищам каким рассказать)
renat.sibaev@mail.ru
0
wan-derer.ru
1 января 2021, 20:06
Мидлов здесь нет :)
Есть джуностажёры, зато много! :)
+3
Стас Пасинков Software Developer в Zipy Master
1 января 2021, 20:32
мне кажется на форуме как-раз бОльшую активность ведут те люди, которые уже давно как работают ;) сам автор первоначального поста пишет, что имеет опыт 2+ года, так что можно предположить, что он носит лычку мидла)
другой вопрос, что человек решил дать свое "объявление" совершенно не в том месте. да и честно говоря, такими объявлениями разве что джунов без опыта искать. если же человека с опытом пытаться ставить в позу "тебе надо - ты мне и пиши" - то скорее всего, человек на такое скажет что ему такое не надо, и никто Ренату писать не станет)
+9
llllllllll
5 ноября 2020, 17:54
В целом даже стандартный флоу мидла, который пришёл на проект не просто посидеть, а расти.
Нехватает правда таких заданий как, сделать что-то без указания контретного тула или технологии.
Общения с заказчиком, демо, менторинг, доклад. - хотя это уже сигналы приближения к Sr.
+1