Как стать программистом java
Перейти к содержимому

Как стать программистом java

  • автор:

Как стать Java разработчиком — путь специалиста Leantech с нуля до уровня Middle

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Я собрал небольшой рейтинг языков программирования по количеству вакансий на 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-индустрии. Также в группе можно следить за актуальными вакансиями.

Как стать хорошим Java-разработчиком с нуля: максимально подробная инструкция для начинающих

Работодатели много ожидают от тех, кто подается на позицию Junior Developer: отличное владение языком программирования и некоторыми базовыми инструментами, хорошие софт-скилы и хороший уровень английского языка.

К счастью для современных новичков, существует отличная дорожная карта (и не одна), которая показывает, как пройти от базового до уровня профессионального разработчика. Ещё одна хорошая новость: в мире создано огромное количество учебных ресурсов, которые помогают овладеть любой технологией. Учеба сегодня — настоящий бизнес с жесткой конкуренцией, есть из чего выбирать среди платных и бесплатных ресурсов. Чтобы учиться эффективнее, советую прочесть книгу Барбары Окли «Научиться учиться. Как запустить свой мозг по полной».

С чего начать

Рассмотрим карту, приведенную выше, и определим, с чего начать. Она не полна, да и составить полную универсальную карту невозможно. В будущем ваше личное развитие и характер проектов, на которых вы будете работать, будет её дополнять.

  1. Путь на карте начинается с базовых навыков: Java, Maven/Gradle, SQL и общих навыков, необходимых каждому (Git, HTTP, Data structures и т. д.).
  2. Далее карта ведет нас к базам данных, фреймворкам и ORM. Ещё дальше — тестирование, разнообразные библиотеки, микросервисы и многое другое.
  3. Когда освоите базовые навыки в Java, можно параллельно заниматься SQL и разбираться с основами Maven или Gradle. Для тех, кому нужно начинать совсем с нуля, я бы посоветовал Kathy Sierra, Bert Bates «Head First. Java».
  4. 4) Далее можно перейти к более серьезной литературе — Herbert Schildt «Java: A Beginner’s Guide» или «Java: The Complete Reference» или Cay S. Horstmann «Core Java». Кстати, у обоих авторов есть другие книги по Java (и не только), на которые стоит обратить внимание. А когда уже почувствуете себя совершенно уверенно, беритесь за следующий уровень сложность: книги Bruce Eckel «Thinking in Java» и Joshua Bloch «Effective Java».

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

Основные навыки

Кроме собственно Java, советуют освоить системы управления зависимостями, такими как Gradle и Maven.

  • Можно начать с быстрого курса на Udemy — Maven Quick Start: A Fast Introduction to Maven by Example.
  • Но впоследствии стоит прочесть что-то более основательное, например, Tim O’Brien «Maven: The Complete Reference».
  • Изучение Gradle можно начать с курса на Linkedin — Learning Gradle, а затем углубиться в официальную документацию — Gradle Guides gradle.org/guides.

Третьим компонентом фундамента Backend-разработчика является, конечно, работа с базами данных. И здесь не обойдешься без знания SQL. Для начала могу посоветовать книгу Thomas Nield «Getting Started with SQL».

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

  • Книги дают хорошую основу для знаний по определенной технологии или теме. Однако следует помнить, что они выходят с некоторым опозданием. Впрочем, всегда есть книги обязательные для чтения в любом стеке технологий. Начните с литературы для начинающих и уже позже, когда наберётесь опыта, переходите на книги для профессионалов.
  • Учебные курсы на Coursera, LinkedIn, Udemy и других подобных платформах тоже могут быть хорошим источником информации, особенно если у курса хорошие отзывы, есть практические задания и хороший темп.
  • Официальная документация, вероятно, единственный источник, который может предоставить исчерпывающую информацию о возможности технологии или инструмента (кроме исходного кода, конечно).
  • Разнообразные блоги, туториалы, статьи, Stackoverflow могут помочь решить какую-либо конкретную проблему или дать ответы на вопросы.

Дополнительные навыки

  1. Сюда можно включить системы контроля версий (Git, SVN), HTTPS, REST, web (basic, OAuth, SSO, JWT), Scrum, Kanban, структуры данных, алгоритмы и многое другое.
  2. Знакомство со смежными специальностями, чтобы понимать суть работы своих коллег. Мой список рекомендуемой литературы:

Теория:

  • SOLID, DRY, YAGNI;
  • Clean Code: A Handbook of Agile Software Craftsmanship 1st Edition by Robert C. Martin;
  • Code Craft: The Practice of Writing Excellent Code 1st Edition by Pete Goodliffe

Практика:

  • https://codingdojo.org/practices/
  • https://www.codewars.com/
  • https://leetcode.com/
  • https://codegym.cc/tasks

Куда двигаться дальше

После того, как вы освоили фундаментальные вещи, можно переходить к следующим пунктам на нашей карте: CLI tools, Web frameworks, Databases и так далее. Выбирайте хорошую книгу или онлайн-курс для каждого инструмента, которым вы хотите овладеть.

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

  • 20+ Trending and Popular Java Open Source Project
  • Help out your favorite open source projects and become a better developer while doing it.

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

Выводы

Что ж, был рад поделиться своими мыслями. Путь от новичка до первого признания — довольно сложный. Требуется много времени, терпения и мотивации. Но хорошая дорожная карта и эффективные учебные ресурсы помогут избежать острых углов и значительно облегчат вашу работу. Не забывайте про мои рекомендации в начале статьи — вам пригодится дорожная карта и её переодические обновления, понимание фундаментальных вещей из книг, практика и реальный опыт.

Полезные ссылки

Как научиться:

  • Java learning in general
  • Java Developer Roadmap
  • Making Java easy to learn

Паттерны проектирования разными языками программирования

  • Java Design Patterns and Architecture на Udemy
  • 10 Free Courses to Learn Data Structure and Algorithms in Java, Python, and C++
  • Java Interview Questions You Need To Know
  • Don’t call it a comeback: Why Java is still champ
  • The 25 greatest Java apps ever written
  • awesome-java

Общие навыки:

  • Одна книга для кожного напрямку: Java, DevOps, BA, та ще сім професій
  • Head First Java by Kathy Sierra & Bert Bates
  • The Phoenix Project by Gene Kim, Kevin Behr, and George Spafford
  • Business Analysis For Dummies by Kate McGoey, Kupe Kupersmith
  • 100 Things Every Designer Needs to Know About People by Susan Weinschenk
  • Making Things Happen: Mastering Project Management by Scott Berkun
  • Beautiful Testing: Leading Professionals Reveal How They Improve Software by Tim Riley, Adam Goucher
  • Database Internals: A Deep Dive into How Distributed Data Systems Work +
  • SQL Antipatterns: Avoiding the Pitfalls of Database Programming
    Clean Code — A Handbook of Agile Software Craftsmanship by Robert Cecil Martin
  • Design Patterns: Elements of Reusable Object-Oriented Software

Тестирование ПО

Ещё больше про Java:

  • Top 5 Free Apache Maven eBooks for Java Developers
  • SSH Basics for Cloud Security
  • Build Secure APIs with Auth0 and Postman
  • Welcome to SQL
  • The Complete SQL Bootcamp 2022: Go from Zero to Hero
  • SQL for Data Science
  • Database Design Fundamentals for Software Engineers
  • Top 5 Courses to Learn SQL and Database in 2022 — Best of Lot
  • A handy new Google Cloud, AWS, and Azure product map

Написание кода

  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Best Java courses online to study

Open source

  • 20+ Trending and Popular Java Open Source Project
  • Help out your favorite open source projects and become a better developer while doing it.

About Spring Boot

  • What Is Spring Boot?
  • Spring Boot For Beginners
  • Spring REST API for Beginners
  • The Complete Guide to Spring 5 and Spring Boot 2
  • Learn Spring Boot — Rapid Spring Application Development
  • Master Microservices with Spring Boot and Spring Cloud
  • Top 5 Courses to Learn Spring Boot in 2022 for Java Developers — Best of Lot
  • Spring Boot: Complete guide from development to deployment
  • Top 5 Books to Learn Spring framework and Spring MVC for Java Programmers
  • Spring Framework — Bean Creation — A Practical Approach
  • Student Management System Project — FullStack Java + Spring Boot + React.js Example Tutorial

Как стать Java-программистом с нуля?

Как стать Java-программистом с нуля?

Артур Куприянов

Артур Куприянов Эксперт в Java, Spring Boot.

Java стабильно входит в тройку самых популярных языков по индексу TIOBE и нужен везде: от популярных игр до финансового сектора, от смартфонов до серверов крупных компаний. Вместе с Java-разработчиком Артуром Куприяновым разобрались, что нужно знать и уметь, чтобы начать программировать на нем.

Немного о языке Java

Java появился в 1995 году благодаря инженерам компании Sun Microsystems и, в частности, Джеймсу Гослингу. Инженеры разработали его как язык программирования для управления бытовой и домашней техникой. Но в итоге язык оказался нужен всем.

Для чего нужен Java?

Любая программа на смартфоне или компьютере состоит из двух частей: frontend и backend. Чтобы лучше понять, что это такое, представьте, что программа — это автомобиль.

Java-разработчик

Java уже 20 лет в мировом топе языков программирования. На нем создают сложные финансовые сервисы, стриминги и маркетплейсы. Освойте технологии, которые нужны для backend-разработки, за 14 месяцев.

картинка (93)

Профессия / 14 месяцев
Java-разработчик
Освойте востребованный язык
4 290 ₽/мес 7 150 ₽/мес

Group 1321314345 (5)

Frontend — это все, что вы видите перед креслом водителя: руль, кнопки, рычаги, стрелки приборов. Backend — это все то, что находится под капотом и на самом деле заставляет автомобиль двигаться. Java — это язык backend-разработки, на котором собирают «двигатель» приложения, чтобы он был мощным, надежным, безопасным, быстрым, универсальным и просто красивым. Java используют системы с тысячами пользователей. Вот только несколько примеров: Финансовая сфера и банки — Сбер, Тинькофф, Альфабанк. Социальные сети — Twitter, LinkedIn, Одноклассники. Маркетплейсы — Ozon, Яндекс.Маркет, Amazon. Онлайн-кинотеатры и видеохостинги — YouTube, Кинопоиск, Netflix. Игры — Minecraft, Assasin’s Creed, The Sims 3 (мобильная версия). Android-приложения — WhatsApp * , Telegram, Viber. Другие быстрорастущие компании, например Apple, Microsoft, Google, также используют Java, Читайте также: Кому и зачем нужен Java Одна из причин популярности языка — кроссплатформенность: программы на Java одинаково хорошо работают на разных устройствах. Это выгодно для бизнеса: во-первых, стоимость разработки ниже; во-вторых, чем больше устройств, на которые можно установить ПО, тем больше его аудитория.

Станьте Java-разработчиком
и создавайте сложные сервисы
на востребованном языке

Кто такой Java-программист?

  • Проверил, есть ли в Telegram такой функционал.
  • Нашел несколько библиотек, посмотрел документацию по ним и, сравнив, подключил одну через Maven — фреймворк для автоматизации сборки проектов.
  • Создал тестового бота и попробовал сделать простой пример, который показывал, как работает Inline Keyboard.
  • Начал продумывать архитектуру приложения: выделил модули, создал пакеты.
  • Выбрал стиль разработки.
  • Реализовал бота в соответствии с задачей.

Как стать Java-разработчиком?

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

На курсе SkillFactory «Java-разработчик» вы за 14 месяцев освоите профессию с нуля до уровня junior+. Для этого вам необязательно будет жертвовать основной работой или учебой, достаточно будет посвящать курсу 10−12 часов в неделю.

У курса есть ряд преимуществ, которые позволят вам не только успешно пройти обучение, но и получить работу:

  • Актуальная программа, составленная экспертами на основе вакансий разных компаний, чтобы вы точно были востребованы на рынке.
  • Индивидуальная поддержка — личные созвоны с ментором (экспертом-консультантом) для обсуждения всех вопросов, и даже когда вы не знаете, как задать вопрос.
  • Постоянная поддержка ментора — в любой момент можно написать в чат и получить помощь.
  • 20% теории, 80% практики — 20+ тренажеров и заданий каждую неделю помогают развивать навыки программирования.
  • Уже через 7 месяцев вы станете junior-специалистом — сможете откликаться на вакансии, Карьерный центр проведет консультацию, а ментор — даст советы по прохождению собеседований.

Как изучить Java самостоятельно?

Шаг 1

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

Шаг 2

Разобравшись с основными понятиями, установите программное обеспечение для кодинга и запуска программ — JDK (Java Development Kit).

Исходный код пишется в текстовом формате. Скачайте и установите одну из IDE (Integrated Development Environment) — это среда для разработки программного обеспечения (интерфейс, в котором пишут код).

Самая популярная среда — IntelliJ IDEA. Это удобный инструмент с подсказками, возможностью проверки и отладки кода, удобной интеграцией с базой данных и серверами. Подробная документация о классах и инструментах языка доступна на сайте Oracle.

Шаг 3

Научитесь работать с базами данных. Для этого нужно освоить систему управления базами данных (СУБД), например SQL. Посмотрите, как действуют операторы и функции, научитесь манипулировать структурой таблиц и писать сложные запросы.

Шаг 4

Спроектируйте первое приложение. Разберитесь в принципах построения архитектуры, научитесь проектировать. Освойте фреймворки (готовые программные продукты, которые упрощают создание и поддержку проектов) для создания веб-проектов, например Spring.

Полезные ссылки

Книги:
  • Java How to Program П. Дейтел и Х. Дейтел.
  • «Изучаем Java» К. Сьерра и Б. Бейтс.
  • «Java 8. Руководство для начинающих» Г. Шилдт.
  • Java. Эффективное программирование — Дж. Блох.
  • Java. Библиотека профессионала — К. Хорстманн.

Можно посмотреть бесплатные курсы на Stepik или вебинары. Видеоуроки по Java есть на YouTube — например, канал Java Brains (если у вас хорошо с английским). На канале «Уроки Java» размещено около 300 бесплатных видеоуроков, а на «Онлайн уроки по Java» можно, среди прочего, найти курсы для тестировщиков.

Много информации о том, как начать кодить на Java, есть в хабе Java на Хабре. Полезно прокачивать свои навыки и участвуя в хакатонах. Узнавать о митапах и конференциях по Java можно на сайте jugru — это сайт российского сообщества Java-разработчиков. Вопросы по митапам можно задать в их Telegram-канале.

Практические навыки

  • Лучший способ получить навык программирования — писать проекты. Начните с простых программ, которые увидите в книгах или видео. Затем попробуйте их немного модифицировать и усложнить.
  • Создайте собственное приложение. Параллельно стоит практиковаться выполнять задачи и писать код на ресурсах для программистов, например HackerRank. Работодатели часто начинают процесс поиска разработчиков именно на таких платформах.
  • Заведите аккаунт на GitHub или GitLab, выложите туда код, который готовы показать другим программистам и будущим работодателям.

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

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

Как искать работу?

Чтобы стать Java-разработчиком уровня junior, мы советуем написать небольшой, но коммерческий проект, даже с минимальным количеством активных пользователей. Страница на GitHub с кодом ваших проектов также будет плюсом и поможет компаниям лучше понять ваш уровень владения языком.

Не стоит бояться откликаться на вакансии, даже если вы чего-то не знаете, — предложений на рынке достаточно и многие ищут junior-разработчиков. На момент написания статьи на сайте hh.ru было 3445 вакансий по запросу «Java-разработчик».

Вакансии для Java-специалистов размещают и на других крупных сервисах поиска работы: SuperJob, Работа.ру — и на специализированных сервисах, например «Хабр Карьера».

Попробовать свои силы и набрать портфолио можно на биржах фриланса — например, на русской Freelance.ru или американской Upwork или Guru. Кроме того, поискать вакансии или стажировки можно в Telegram-каналах, например, Фриланс Таверна, Jobs Code: IT вакансии, Finder.vc.

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

Востребованность и зарплата

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

  • Медианная зарплата по данным за 2020 год — 140 тыс. рублей («Хабр Карьера»).
  • Java-разработчики входят в топ самых востребованных IT-профессий на удаленке (CNews).
  • Работодатели в Москве готовы предложить программисту со знанием Java до 350 тыс. рублей в месяц (Superjob).
  • Работодатели в России ищут свыше 10 тысяч программистов с разным уровнем владения Java (hh.ru).
  • 59% опрошенных HR-менеджеров сталкиваются с нехваткой специалистов на Java (CodingGame:).

* Принадлежит компании Meta, деятельность которой признана экстремистской в России.

Артур Куприянов Эксперт в Java, Spring Boot.

Как стать программистом java

1. Английский язык

Почему это важно:

  • Вся документация пишется на английском языке.
  • Работая в международной компании, все митинги, созвоны будут проводиться на английском языке. Поэтому вам необходимо иметь уровень хотя бы elementary или beginner. Во многих компаниях есть курсы английского языка, но эти курсы предназначены для увеличения вашего скила, а не для старта с нуля.

2. Git

☕ Дорожная карта Java-разработчика в 2022 году

Что нужно знать:

  • git clone
  • git pull
  • git commit
  • git push
  • gist stash

☕ Подтянуть свои знания по Java вы можете на нашем телеграм-канале «Библиотека Java для собеса»

3. Операционная система

Определитесь, с какой ОС вам предстоит работать. Для автоматизации действий вам придется писать скрипты: в случае Linux — bash-скрипты, а на Windows — bat-скрипты.

4. Алгоритмы и структуры данных

☕ Дорожная карта Java-разработчика в 2022 году

Что нужно знать:

  • Алгоритмы сортировки.
  • Как работать с деревьями.
  • Понимать списки, очередь и стек.
  • Сортировки: сортировка пузырьком, сортировка слиянием и так далее.
  • Алгоритмы поиска.
  • Математика: как считать среднее арифметическое, среднее геометрическое и т. д.

5. Java Core

Java Core — база языка программирования, в которую включены структуры данных, синтаксис и все прочее.

☕ Дорожная карта Java-разработчика в 2022 году

Java Basic

  • Базовый синтаксис.
  • ООП.
  • Дженерики – шаблонные классы, которые подстраиваются под то, что вам необходимо; хранят и обрабатывают любые типы данных, которые вы укажите при их объявлении.
  • Строки. Понимать, как делать сверку по шаблону, производить поиск в строках и т. д.
  • Коллекции для хранения данных: Map, List, Array, Set (часто спрашивают на собеседованиях).

��☕ Интересные задачи по Java для практики можно найти на нашем телеграм-канале «Библиотека задач по Java»

Потоки (Concurrency)

  • Thread.
  • Thread Pool.
  • Паттерны многопоточных приложений.

Java 8 Features

  • Lambda-функции (анонимные функции).
  • Stream.
  • Класс Optional.
  • Функциональное программирование и прочее.

IO

  • Понимать, как работать с файлами.
  • Networking (Socket).
  • Java NIO/NIO2 (часто встречается в вакансиях).

6. Tools

☕ Дорожная карта Java-разработчика в 2022 году

В совершенстве владеть своей IDE (Eclipse, IDEA, VSCode, vim) и понимать, как создавать приложения с нуля, как собирать приложения, какие плагины установить, пользоваться быстрыми клавишами и т. д.

Build (сборщики)

  • Maven — использует xml для описания проекта.
  • Gradle — использует язык программирования groovy для описания проекта.

Docker

  • Docker Compose.
  • Docker swarm.
  • Kubernetes.

Jenkins

Jenkins позволяет настроить непрерывную интеграцию, тестирование, публикацию ваших приложений.

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека джависта»

7. Фреймворки и библиотеки

Для бэкенда

☕ Дорожная карта Java-разработчика в 2022 году

  • Spring: Spring Core (основа для создания сервисов), Spring Data (работа с БД), Spring cloud (работа с микросервисами), Spring Security (защита приложений).
  • Hibernate — для работы с базой данных.
  • Quarkus и Micronaut — позволяют быстро писать реактивные приложения.
  • Vert.x — асинхронный веб-фреймворк.

Для десктопа

  • JavaFX, Swing, AWT — для создания графического интерфейса в считаные часы.

Web basic (для фулстек-разработки)

  • JavaScript: Angular, Vue.js или React.
  • HTML5.
  • Bootstrap.

8. Тестирование

☕ Дорожная карта Java-разработчика в 2022 году

Unit Testing — тестирование функционала вашей программы. Когда вы знаете, что должно быть на выходе, вы подаете метод и тесты сравнивают, удалось ли выполнить метод или нет, получили ожидаемый результат или нет.

  • Библиотеки Junit, Mockito для тестирования действий при работе с базой данных.
  • Auto Testing — Selenium позволяет создавать окна браузеров, заходить на веб-страницу, тестировать клики, поля ввода и т. д.
  • Integration Test тестирует, как приложение встраивается в инфраструктуру и как оно в ней работает. Используемые библиотеки для написания сценариев: Selenium, Robot.

9. Utils

Углубиться в оптимизацию процесса работы и разработки:

  • Log4j, SLF4j (логирование) — отслеживают действия клиентов.
  • JavaDoc — описывает классы и в дальнейшем генерирует из этого документацию в формате .html или .pdf.

Java Analyze

Утилиты, которые помогают понять, где произошла ошибка:

  • Heap Analyzer.
  • Thread Dump Analyzer.

Java Analyze

  • Jira для трекинга задач.
  • GitLab, GitHub, BitBucked — необходимо уметь использовать сервисы для хранения исходного кода.
  • AWS — важно знать, что такое микросервисы, как микросервисы разворачиваются и т. д.
  • HTTP — приложение Postman, генерирующая запросы к серверам.

10. Базы данных

☕ Дорожная карта Java-разработчика в 2022 году

  • SQL — DML (язык манипуляции с данными), DCL (язык дает доступ к определенным базам данных и таблицам), TCL (работа с транзакциями), DDL (язык определения данных).
  • Как происходит подключение к БД с помощью драйвера JBDC.
  • Hibernate.
  • NOSQL.
  • MySQL.
  • MSSQL.
  • PostgreSQL.
  • MongoDB.
  • ClickHouse.

11. Оптимизация приложений

  • JMH.
  • JIT.
  • warmup.
  • JVM (OpenJDK, AdoptOpenJDK, Zulu, GraalVm).

12. Куда расти

  • Менеджер — работа с людьми.
  • Архитектор — продумывать схемы работы приложений.
  • Product Owner — совмещать разработку и менеджмент.

Скачать дорожную карту

Диаграмма в формате .pdf.

Статья написана в рамках программы Proglib Boost, в которой «Библиотека программиста» бесплатно помогает IT-блогерам распространять их контент. Отправить заявку на участие можно по ссылке.

Материалы по теме

  • ТОП-6 алгоритмов сортировки на Java для новичков
  • ☕ ТОП-20 бесплатных учебных курсов по Java для новичков
  • ☕ 15 лучших каналов YouTube по Java для новичков и профессионалов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *