Дмитрий

Java Developer

Привет! Меня зовут Дима, я Java-разработчик. Хочу рассказать как я пришел в профессию, вырос до мидла и перешел из госучреждений в аутсорс компанию по разработке приложений. Рассказ будет полезен джунам и тем, кто хочет изучать Java, но боится потратить время впустую.

Я стараюсь следить за трендами в разработке, чтобы знать какие технологии набирают популярность и не отставать от коллег. Так вот, судя по статистике от Github, Java до сих пор находится в топ-3 самых востребованных языков разработки, хоть и немного сдала позиции за последние пару лет. На первом месте JavaScript, а на втором Python.

Неудивительно, что сейчас многие выпускники и студенты-программисты думают о том, чтобы учить Java. Я этот путь уже прошел, поэтому решил помочь новичкам и рассказать про свой опыт. 

Почему я решил стать программистом

Интерес к технологиям у меня был с детства — в 7-8 лет у меня появился плейстейшен, я много играл в игры и мне была интересна сфера IT. В школе мне нравилась математика, и в старших классах я подумал, почему бы не пойти учиться на программиста.

Я не очень хорошо сдал ЕГЭ, у меня было около 150 баллов, но на техническую специальность мне хватило. Сначала я хотел на информатику и вычислительную технику, но решил подать документы на все специальности, связанные с программной инженерией, чтобы наверняка попасть на программирование. В итоге я поступил в ОмГТУ АСОИУ — универ меня заинтересовал агитацией по разработке роботов, сайтов и стажировками в крупных компаниях.

Универ или самообучение?

Для меня главным приоритетом в учебе было получить профессию и стать хорошим специалистом. Я понимал, что для этого нужно много усилий и старался все курсовые и рефераты сдавать сам — это все равно дает какой-то опыт и развивает самостоятельность. У нас в группе была здоровая конкуренция, это тоже помогало нам развиваться.

Универ давал базовые знания, но я понимал, что этого недостаточно. Я старался самостоятельно учиться через YouTube, но в процессе понял, что лучше начать изучение с классических книг по языкам. Потом можно комбинировать с роликами на YouTube, чтобы закрепить информацию. Дело в том, большинство роликов основано именно на этих книгах, а авторы каналов часто пропускают важную информацию — с первоисточником можно заполнить эти пробелы.

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

Лучше всего смотреть разные источники информации, черпать знания отовсюду — учеба, книги, статьи и видео экспертов, потом все это пробовать на практике.

Вот мой топ книг и каналов для обучения для Java-разработчиков:

- Java. Полное руководство | Шилдт Герберт

- SQL. Сборник рецептов | Молинаро Энтони

- Oracle PL/SQL. Для профессионалов | Прибыл Билл, Фейерштейн Стивен

- Изучаем Java

- Уроки Java

- Eugene Suleimanov

- Connor McDonald

- Java

Как новичку выбрать язык?

Я не сразу определился, на каком языке хочу писать, поэтому пробовал себя в разных направлениях. Попробовал верстку, PHP, изучил базовый синтаксис C++, и понял, что это все не мое. На втором курсе я начал изучать Java и меня зацепило. У джавы простой синтаксис, она легкая для понимания, выражения мыслей и реализации кода. Если вы не знаете, с чего начать, можно попробовать языки разметки HTML и CSS, потом потестить JavaScript, посмотреть приятно ли на нем писать. Тут нет универсальной формулы, все делается методом проб и ошибок.

Кроме того, нужно опираться на рынок труда в вашем городе. Посмотрите, какие языки и технологии используют компании, куда вы хотели бы попасть, и какие языки вообще востребованы. Попробуйте поизучать их, но если синтаксис не нравится, не нужно себя мучать — лучше переключиться на другой язык. Я с первого курса интересовался компаниями, чтобы выбрать, где проходить практику. Когда я пробовал C++, я посмотрел рынок и оказалось, что тогда язык был не актуальным, это тоже повлияло на меня и я решил сменить направление.

Я собрал небольшой рейтинг языков программирования по количеству вакансий на HH на первую половину апреля 2022.
Я собрал небольшой рейтинг языков программирования по количеству вакансий на HH на первую половину апреля 2022.

Что делать если после стажировок и тестовых не берут на работу?

Первая моя стажировка была в IT компании и прошла она не очень успешно. Я пришел туда с однокурсниками, нам дали проект — нужно было сделать систему опроса сотрудников на Java. Я не понимал, как это сделать, не знал многих функций и инструментов. Уже на половине практики я понял, что не вытягиваю, для меня это был полный фейл. А друг, с которым я практиковался, знал хорошо и начал делать большую часть работы. В итоге этот провал меня мотивировал совершенствоваться и начать изучать Java глубже. Я читал книжки, смотрел ютуб и понял, что я знаю только базовый синтаксис языка, а там есть еще фреймворки, библиотеки для работы с сетью, форматами передачи данных и т.д.

На второй стажировке я познакомился с паттернами проектирования на Java и научился правильно верстать страницы по макету. Было очень сложно, но очень интересно. Я не пропустил ни одного занятия и не жалею, потому что после этой стажировки у меня остались очень хорошие знания и навыки.

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

Если вы учитесь или работаете, вы все равно можете пойти стажироваться. Помните, что работодатели тоже люди и обо всем можно договориться. Можно, например, попросить дать больше времени на задачу. На стажировках и при выполнении тестовых не стесняйтесь задавать вопросы, даже самые дурацкие — главное разобраться в задании. У меня была ситуация, когда в тестовом было 4 задачи, я сделал две и остальные не понимал из-за ТЗ. Я спросил как это делать, и мне все объяснили, в итоге с задачами я справился.

Многие переживают, что им нечего писать в резюме, так как нет опыта. Напишите, какие курсы и стажировки вы проходили, может быть вы ходили на воркшопы или выполняли тестовые задания — подойдет любой релевантный опыт. Также пишите сопроводительные письма к откликам, HR-ы их читают и они на самом деле даже важнее резюме. Большинство кандидатов просто откликаются на вакансии, поэтому сопроводительное письмо будет вашим преимуществом. В письме можно написать, почему вы хотите работать в этой компании и чем вы будете им полезны.

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

Как я вырос до Middle и попал в крутую аутсорс компанию

На третьем курсе я искал работу, ходил по собеседованиям, ориентировался на Java и базы данных. Я хорошо оформил резюме, но работу удалось найти только к концу четвертого курса — в областной клинической больнице. Там я работал с Oracle и базами данных. Самыми крупными проектами там для меня были система электронных заявок на тех.поддержку и командная разработка онкологической карточки пациента, также мне очень нравилось решать баги в отчетах. В государственных учреждениях особо развития нет, поэтому я начал искать коммерческие компании.

Потом я перешел в единую службу такси (EST) на специалиста по базам данных, также под Oracle. У меня это хорошо получалось, но все равно хотел перейти в Java разработчика. Компании нужно было реализовать один проект на Java, у них не было джавистов и предложили мне это сделать. Я испугался, потому что не представлял как без наставника самому реализовать проект — там была огромная кодовая база, а у меня не было коммерческого опыта с Java, только учебные проекты. Сначала я отказался, но в итоге меня убедили, что все получится и команда будет поддерживать на новой позиции. Первую неделю я изучал ту часть кода, с которой мне предстояло работать, потом мне стали прилетать задачи от мобильного подразделения. В целом, все оказалось не так страшно, как я думал сначала.

Моей основной мотивацией в основном были даже не деньги, а развитие, я мечтал стать Java разработчиком. В EST были отличные инженеры и мне было с кем обмениваться опытом, но компания не выдержала конкуренции с крупными агрегаторами и у них начались финансовые трудности. Тогда мне написали из Leantech и в 2020 году я пришел туда одним из первых джавистов. Это мой первый опыт в аутсорсе, и я могу сказать, что там развития гораздо больше, чем в продуктовых компаниях. Продуктовые компании хоть и развиваются, но у них может быть устаревший стек и база. А в аутсорс компании есть возможность поработать с разными технологиями и улучшить свои знания. Плюс это возможность работать в команде с разными людьми, а обмен знаниями и опытом это самое важное.

Для меня каждый проект в Leantech становится толчком для развития. Например, у меня была возможность позаниматься небольшим pet-проектом по выгрузке данных из Jira — там я предложил использовать Spark, так как хотел поработать с этим инструментом. В аутсорс компаниях ты можешь предлагать новые инструменты и технологии, а не только пользоваться основным стеком компании — даже если в итоге инструмент не подойдет для задачи.

У меня есть наставники, но я также стараюсь решать задачи самостоятельно и отстаивать свою точку зрения на ревью кода. Сейчас я себя оцениваю как мидл плюс и развиваюсь дальше, компания это приветствует и предоставляет нужные ресурсы.

Подписывайтесь на Leantech в ВК, там мы делимся знаниями, полезными штуками для разработчиков и новостями IT-индустрии. Также в группе можно следить за актуальными вакансиями.

Комментарии (6)


  1. JordanCpp
    03.05.2022 01:00

    Не хватает тега: Пацан к успеху шёл!))


  1. JordanCpp
    03.05.2022 01:08

    Зашёл к вам на сайт посмотреть, где вы зарегистрированы, не нашел.

    Нашел используемые технологии.

    +100500 технологий и языков. Зачем вам на frontend'e столько дублирующих фреймворков?


  1. LeshaRB
    03.05.2022 09:36
    +1

    Интерес к технологиям у меня был с детства — в 7-8 лет у меня появился плейстейшен, я много играл в игры

    Так сейчас куда не плюнь, у всех интерес к технологиям, и в метро и в кафе, в ТЦ


  1. Timon_Omsk
    03.05.2022 14:45

    <старческие_ворчания_mode=on>

    Вообще выбирать язык программирования по его востребованности на основе статистики кажется слегка близоруким. Действительно существует огромная куча проектов написанных на Джаве. Но вопрос в том что это за проекты? Хочется ли тебе над ними работать? Омский рынок "больших"(по Омским меркам естественно) компаний действительно крутится вокруг Джавы. Но это "заслуга"(или проклятие :) ) того что в Омске есть филиал Люксофта.

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

    Всё вышесказанное не значит что нет интересных вакансий\проектов\компаний для джавистов. Я хотел сказать что статистика вот так в чистом виде нерелевантна :)

    P.S.

    EST еще живое чтоли? Боже мой боже мой...

    P.P.S.

    Не расстраивайся что статью заминусили. Обязательно пиши дальше статьи если хочется писать!


  1. Nichls
    04.05.2022 09:30
    -1

    Всё статья сводится к одному "Ищите и обрящете". Так наверно оно и есть.

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

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

    Так как есть опыт коммерческой разработки на Delphi + SQL, то принял решение переписать ряд проектов на Java, что с моей точки зрения должно мне помочь в освоение нового языка. Плюс книги и видеокурсы.

    За автора статьи рад, что от достаточно быстро смог выйти на уровень middle.


  1. aukau
    04.05.2022 14:04
    -1

    Всем привет!

    Всю жизнь был еникейщиком и 2 года назад начал изучать Java, в свои 43 года.
    Сейчас уже год работаю джава джуном и опыт коммерческой разработки на Java .

    Мой путь:
    1. Сначала "Java. Полное руководство | Герберт Шилдт "

    2. Далее видео уроки плюс pet-проект.

    3. Потом пошёл на собесы, примерно после 10-ти тех. интервью стал более уверенно себя чувствовать, что помогло получить мой первый оффер.

    P.S.
    сейчас смотрю на свой pet-проект и понимаю, какой же тут говнокод ))