Куда пойти, если вы новичок в it? специальность java developer
Содержание:
- Минимальные навыки и обучение с нуля
- Кто такой Java-программист?
- Что должен знать и уметь Java программист?
- Где применяется Java?
- Как стать Джава-разработчиком самостоятельно
- Доход Java программиста
- Жизненный цикл Java-программы
- Сколько нужно учиться с нуля, чтобы стать хорошим разработчиком
- Программист Java: особенности работы
- Сколько зарабатывают программисты на Java?
- Что нужно знать и уметь на старте
- Преимущества Java
- JAVA-РАЗРАБОТЧИК – КТО ЭТО?
- Средняя зарплата Java-разработчика в Сбербанке
- Этапы работы и инструменты
- Интересные факты о профессии java-разработчик
- Сложно ли выучить Java?
- Итог. Так умрет ли Java?
Минимальные навыки и обучение с нуля
- Английский.
- Java Core (синтаксис, OOP возможности, многопоточность, стандартная библиотека).
- OOP и OOD (парадигмы, основные паттерны проектирования).
- Базы данных (Hibernate, JDBC, язык SQL).
- Языки разметки (HTML, XML и другие).
- Технологии и фреймворк (веб-сервисы и Spring).
Мидл понимает и знает:
- Английский.
- OOP, различные архитектуры.
- Алгоритмы и структуры данных.
- Системы управления версиями (GIT).
- Сокеты и многопоточность.
- Понятный и короткий код (KISS, DRY).
- Базы данных (PostgreSQL или MySql).
- SQL запросы.
Сеньор обладает всеми навыками из предыдущих пунктов и демонстрирует их на практике. Отличается также уровень и опыт владения сервисами и алгоритмами, которые используются в компании. Имеет опыт проектирования сложных систем и управления командой, а также отлично знает:
- Веб-службы на основе Java.
- Реляционные базы данных, SQL и ORM.
- Фреймворк J2EE.
- Объектно-ориентированный анализ и проектирование.
- EJB (Enterprise Java Beans).
- XML, X-запрос, XSL.
Кто такой Java-программист?
Перечислить все компании, которые используют Java, невозможно, но среди них множество топовых – Amazon, Facebook, Twitter, Netflix, Youtube, Ebay. Java – это основа операционной системы Android от Google.
Программист Java имеет множество обязанностей на протяжении всего цикла разработки ПО, начиная от концепции проекта и вплоть до тестирования. Если обобщить, разработчик должен:
- Использовать компьютерное программное и аппаратное обеспечение для написания и модификации кода.
- Проектировать, внедрять и обслуживать приложения.
- Участвовать в архитектурной деятельности и разработке программного обеспечения.
- Проводить анализ программного обеспечения, тестирование, программирование и отладку.
- Выявлять производственные и непроизводственные прикладные проблемы.
- Трансформировать требования заказчика в текущие условия.
- Уметь читать чужой код.
Что должен знать и уметь Java программист?
В этой части статьи мы расскажем, что нужно знать и уметь делать программисту на Джава, чтобы получить работу.
Базовые знания и навыки для Java программиста:
- Язык программирования Ява (синтаксис, команды, библиотеки, фреймворки).
- Знание принципов ООП (объектно-ориентированное программирование).
- Знание методологий разработки и их отличий (каскадная модель, гибкая разработка (Agile) и другие).
- Базы данных (MySQL и другие), уметь составлять SQL-запросы.
-
Умение работать с системами контроля версий Git.
Остальные знания и навыки зависят от сферы, где вы хотите работать. Например, для занятия веб-разработкой необходимо освоить язык разметки HTML, CSS, XML, Java Script, желательно знать PHP.
Где применяется Java?
Java — это язык широкого назначения. Его основной принцип: «Пиши один раз, запускай где угодно», или WORA (Write Once, Run Anywhere). Это значит, что скомпилированный (преобразованный в машинный код) Java-код можно можно запустить на всех поддерживающих Java платформах без необходимости повторной компиляции.
Java-приложения обычно компилируются в байт-код (набор инструкций, выполняемый виртуальной машиной Java). JVM устанавливается на платформу, на которой предстоит выполнение Java-программы. На Windows, к примеру, ее нужно устанавливать самостоятельно, а на Android JVM уже вшита.
Достоинство такого способа выполнения программ — это независимость байт-кода от операционной системы, что и позволяет выполнять Java-приложения на таком большом количестве устройств.
Сейчас Java остается универсальным языком программирования, который используют компании разного масштаба в своих продуктах. Вот где он применяется:
Android. Несмотря на популяризацию Kotlin в последнее время, на Java написано огромное количество приложений для платформы Android.
Серверные приложения. Часто на Java пишутся приложения, не имеющие интерфейса. Они используются для получения, обработки и передачи данных на сервере.
Десктопные приложения. В том числе и много IDE (интегрированная среда разработки — комплекс программных средств, используемый для разработки ПО) разработаны на Java — например, IntelliJ IDEA, Eclipse, Netbeans.
Веб-приложения. Например, большое количество RESTful-сервисов (REST — стиль архитектуры программного обеспечения для распределенных систем) и сервлетов (интерфейс Java, реализация которого расширяет функциональные возможности сервера) было создано с использованием Java.
Встраиваемые системы. От банкоматов, платежных терминалов и станков с ЧПУ до бытовой техники — Java может использоваться практически везде, как и обещали его создатели.
Большие данные. Java не доминирует в этой области, но применяться может.
Как стать Джава-разработчиком самостоятельно
Научиться программированию на Java можно и самому. Такой формат обучения не требует больших расходов, но вместе с тем имеет ряд недостатков:
- Сложно найти качественные уроки на русском языке. Видео с актуальной информацией и наглядными примерами чаще выкладывают англоязычные разработчики. На русскоязычных торрентах и сайтах-складчинах часто выкладывают вебинары с устаревшими данными.
- Вы научитесь решать шаблонные задачи, но реальные практические навыки останутся слабыми. Типовые задания из книг не дают глубокого понимания языка Джава. Вам придется потратить немало времени, чтобы найти на форумах ответы на вопросы или выяснить причины ошибок в коде.
- За несколько месяцев вы сможете самостоятельно изучить теорию и стать Java-разработчиком, но с трудоустройством будут проблемы. Работодатели отдают предпочтение кандидатам с дипломом либо с опытом. Можно работать на фриланс-биржах за небольшой доход.
Доход Java программиста
Как уже говорилось выше, Джава-разработчики одни из наиболее востребованных специалистов в сфере программирования. Учитывая, сколько всего существует направлений, на их долю приходится 14% от всех вакансий.
Уровень дохода зависит от профессионализма программиста и города, в котором он работает. Но смеем уверить, что даже младшему специалисту предлагают весьма неплохой оклад:
- Java Junior – в среднем 50-80 тыс. руб.;
- Java Middle – в среднем 90-150 тыс. руб.;
- Senior Java – в среднем 150-250 тыс. руб.;
- Team Lead – доход устанавливается в среднем от 100 до 320 тыс. руб.
Примечательно, что разработчики Джава очень востребованы не только в России, но и за границей. Талантливые специалисты нередко сотрудничают с западными организациями, получая доход в валюте, и он значительно превышает зарплаты российских программистов.
Жизненный цикл Java-программы
Жизненный цикл Java-программы начинается с момента написания исходного кода в текстовом формате. Как правило, обычно для решения этой задачи используют специальные среды разработки (IDE), хотя простейшие программы вы сможете набрать и в текстовом редакторе (в том же Notepad, поставляемым с Windows).
Итак, у нас создаётся исходный код, который сохраняется в файле с расширением .java.
Вот пример первой простейшей программы HelloWorld.java, с которой начинают многие из новичков:
public class HelloWorld { public static void main(String[] args) { System.out.println("Это моя первая программа"); } }
До того, как этот исходный код выполнится, произойдёт его компиляция в байт-код. Естественно, тут подключается компилятор, входящий в JDK. Благодаря его работе, мы получим файл, имеющий расширение .class. Этот файл содержит байт-код — то есть инструкции для JVM. Таким образом, написанная нами программа HelloWorld.java скомпилируется в файл HelloWorld.class.
При желании мы можем посмотреть байт-код, хотя платформа Java и не предусматривает наличие инструментов для редактирования такого кода. Тем не менее есть возможность использовать утилиту дизасcемблера javap, входящую в состав JDK. С её помощью мы увидим:
Compiled from "HelloWorld.java" public class HelloWorld { public HelloWorld(); Code aload_0 1 invokespecial #1 // Method java/lang/Object."<init>":()V 4 return public static void main(java.lang.String[]); Code getstatic #2//Fieldjava/lang/System.out:Ljava/io/PrintStream; 3 ldc #3// String This is my first program 5invokevirtual#4//Methodjava/io/PrintStream.println:(Ljava/lang/String;)V 8 return }
Идём дальше. После написания и компиляции наша программа хранится в файле HelloWorld.class. Чтобы выполнить эту программу на любой из платформ, потребуется установленная JRE. А переносимость Java-программ на нужную платформу обеспечивается за счёт JVM.
Итак, мы плавно подошли к исполнению программы — выполнению байт-кода JVM. Вот как это реализуется:
1. На компьютере происходит запуск JVM.
2. Начальный загрузчик классов JVM загружает, а потом инициализирует наш класс в памяти ПК (для нашего примера — это класс HelloWorld).
3. Далее в нашем классе JVM выполняет поиск метода public static void main(String[]).
4. Потом происходит выполнение кода метода main. Если нужно, осуществляется загрузка и инициализация прочих классов.
5. После выполнения кода производится уборка мусора (очистка памяти и закрытие программы JVM).
По результатам выполнения вышеописанных действий JVM интерпретирует байт-код в машинную инструкцию для процессора, учитывая тип ОС. Весь жизненный цикл программы на Java можно представить схематично:
Сколько нужно учиться с нуля, чтобы стать хорошим разработчиком
«На обучение нужно не меньше полугода. Если есть много свободного времени и желания, получится и быстрее. От тех, кто учился год и больше, я часто слышу, что если бы они не прерывали обучение и не прокрастинировали, то уложились бы в шесть месяцев.
Перед тем, как купить курс, я советую новичкам самим почитать, посмотреть, “поиграться” с Java и понять, нравится или нет. В интернете есть много бесплатных вводных курсов. Я прошел такой курс на Интуите еще в 2005 году, с тех пор возможностей стало намного больше. Например, на JavaRush первые занятия бесплатные – можно пробовать. У нас, в Java Online Projects, первые занятия тоже открытые.
Но по одним материалам научиться программировать невозможно. Необходима практика, причем не решение маленьких разрозненных задач, а написание полноценного большого Java-проекта. И нужна проверка заданий (ревью кода) и выявление в нем всех ошибок, то есть участие опытного ментора».
Программист Java: особенности работы
Язык Java был разработан в 90-е годы прошлого века, сразу завоевав бешеную популярность в мире программного обеспечения. По некоторым данным на сегодняшний день его активно используют примерно 10 миллионов IT-специалистов. Достаточно сказать, что с его помощью разрабатываются:
-
практически все приложения для операционной системы Android;
-
многие видеоигры (также главным образом мобильные);
-
приложения клиент-серверного типа.
Характерно, что в создании десктопных приложений и программ Java не особенно прижился, однако, буквально расцвел в век смартфонов. По этой причине большинство Java-разработчиков трудится именно в этом сегменте рынка.
Впрочем, работа Java-разработчика подразумевает не только, собственно, написание кода, но и регулярно общение с заказчиком, а также контролирование этапов создания продукта.
К последнему пункту относятся:
-
работы по разработке структуры;
-
тестирование и внедрение обновлений;
-
выявление багов и их исправление.
Задачи, как видим, крайне обширные, поэтому каждый программист Java проходит несколько ступеней в своей карьере:
- младший специалист – программист Java без опыта работы;
-
Java Junior программист – разработчик с минимальным опытом;
-
Java Middle разработчик – имеет практический опыт и занимается проектами средней сложности;
-
Senior (старший) разработчик – может работать с любыми проектами;
-
руководитель группы;
-
архитектор – это высшая ступень в классификации Java-программистов. Его обширные навыки позволяют ему создавать проект от начала и до самого конца.
Наиболее охотно по понятным причинам берут на работу разработчиков и старших разработчиков, то есть людей с опытом и портфолио успешных проектов. Архитекторы из-за своей высокой квалификации – штучный товар. Вакансии для них в свободном доступе практически не встречаются, поскольку потребность в таких специалистах есть только у крупных IT-компаний.
Характерная черта профессии в том, что удаленная работа Java-разработчиком негласно считается едва ли не стандартом. Многие её представители работают либо на фрилансе, либо без ежедневного посещения офиса.
Сколько зарабатывают программисты на Java?
Зарплата новичка, знающего язык Джава и владеющего минимальным набором других технологий, начинается от 50-70 тыс. рублей в месяц. Junior разработчики могут зарабатывать от 80-100 тыс. рублей в месяц. Чтобы ими стать, необходим опыт работы от 1 года.
По мере роста уровня знаний и опыта зарплата Ява программиста быстро увеличивается. Например, специалисты уровня Middle (опыт работы от 2 лет) могут зарабатывать от 120-140 тыс. рублей в месяц. Программисты на Java уровня Senior и Team-lead (руководители команд) обычно получают от 160-200 тыс. рублей в месяц, но чтобы ими стать, нужно многое уметь делать.
Важно понимать, что разработчики на Java могут работать удаленно, в том числе на иностранные компании, где зарплаты выше. Также они могут предлагать свои услуги на международных биржах фриланса, где хорошо платят квалифицированным кадрам
Что нужно знать и уметь на старте
Начинающий Java-разработчик может устроиться джуном или стажёром. Требования к кандидатам на эти позиции будут немного отличаться.
От стажёров ждут таких знаний:
- Java-core. Знать базовые конструкции языка: функции, переменные, типы данных. Помнить основные классы стандартной библиотеки.
- Базы данных. Знать, что это такое и как к ним обращаться.
А к джунам уже больше требований:
- Java-core. Уверенно ориентироваться в конструкциях языка, знать стандартные библиотеки и понимать, для каких задач они нужны.
- Фреймворки. Основной, который нужно освоить, — это Spring.
- Git. Система контроля версий, которая помогает совместно работать с кодом. Джуну нужно уметь ориентироваться в ней и вести разработку вместе с другими коллегами.
- Базы данных. Нужно уметь работать с базами данных: организовывать таблицы, писать более сложные запросы, чтобы получать и обновлять данные.
Самый очевидный путь в Java-разработчики — из выпускников профильного факультета. Но вообще прийти в Java может любой, кто заинтересовался программированием и приложил некоторые усилия к его изучению.
То, сколько придётся учиться, зависит от вашего прошлого опыта и знаний. Человек, который хотя бы немного знаком с разработкой, может изучить Java-core месяца за три. Если опыта нет, то на то, чтобы освоить базу, уйдёт около пяти месяцев. Изучение языка вместе со всеми инструментами займёт от 10 месяцев до года.
Поиск работы тоже может занять разное время. Однако сразу после изучения Java-core, если вам хватает задора и уверенности в себе, уже можно идти и пробовать искать работу стажёром. Возможно, новичок получит десяток отказов и два оффера с невысоким окладом, зато он получит и опыт собеседований, и больше информации о рынке. Это вариант для тех, кому очень хочется поскорее ворваться в профессию.
Преимущества Java
Java входит в первую тройку языков по индексу TIOBE (индекс, оценивающий популярность языков программирования) уже 20 лет.
Разработка через тестирование. Этот подход к программированию не является изобретением разработчиков языка, но создание библиотеки для модульного тестирования JUnit — это одно из самых больших достижений Java.
Объектно-ориентированное программирование. ООП позволяет программе быть более безопасной, так как объекты скрывают информацию, к которой доступа быть не должно. Также ООП упрощает обслуживание и модернизацию старого кода.
Простой синтаксис. Возможно, синтаксис Java не так дружелюбен, как синтаксис Python. Однако изучение Java происходит легче, чем C или C++, что позволяет новичкам быстрее его осваивать.
Независимость от платформы. Если программа не использует специфичные для какой-то операционной системы функции, то ее можно перенести полностью или частично.
Автоматическое управление памятью. Программистам не нужно писать дополнительный код для управления памятью, так как Java работает с ней самостоятельно. Поэтому в Java нет риска забыть выделить память, что могло бы привести к проблемам с производительностью.
Многопоточность. Java позволяет эффективно использовать время процессора, запуская потоки одновременно.
Большое сообщество. Помимо поддержки Oracle, на помощь разработчикам приходит большое сообщество.
JAVA-РАЗРАБОТЧИК – КТО ЭТО?
Java Developer или Джава-разработчик – это специалист, который выполняет задачи по созданию систем для обработки данных: корпоративных и мобильных приложений, веб-сервисов, сложных банковских систем. Примечательно, что сферы, в которых требуются разработчики, представлены широким списком, поэтому программист Java всегда сможет найти работу себе по душе.
Для того, чтобы стать Java-разработчиком, предстоит многому научиться. В частности, нужно выучить языки программирования, научиться писать чистый код. В зависимости от уровня знаний и профессионализма, всех Java-разработчиков делят на пять групп:
- Junior – минимальный опыт работы;
- Java Middle – специалист, способный выполнять задания средней сложности;
- Senior – старший разработчик;
- Teach Lead – руководитель группы разработчиков;
- Architect – высшая ступень. Специалист, способный в одиночку вести весь проект.
Обучение на Java-разработчика с нуля обычно занимает около 6 месяцев. Легче всего будет учиться людям с техническим складом ума и способностью к аналитическому мышлению. Я рекомендую делать выбор в пользу платных курсов с системой наставничества и индивидуальным подходом к студентам. Так вы точно получите актуальные знания и овладеете современными методиками Java-разработки.
Средняя зарплата Java-разработчика в Сбербанке
На данный момент в разные подразделения Сбербанка требуется 12 Джава-программистов. Данные о том, какую зарплату здесь получают Java-разработчики, мы подготовили в виде таблицы.
Junior Java-разработчик (Москва, Новосибирск, Екатеринбург, Омск, Самара) | от 60 000 до 80 000 руб. |
Главный инженер по Java-разработке Private Banking | от 110 000 до 140 000 руб. |
Системный аналитик DWH | до 150 000 руб. |
Разработчик ЦФТ | до 150 000 руб. |
Инженер нагрузочного тестирования | до 160 000 руб. |
Главный инженер по сопровождению | до 230 000 руб. |
Системный архитектор | до 300 000 руб. |
Senior Java Developer | до 310 000 руб. |
Этапы работы и инструменты
Обычно вся разработка ведётся в команде. Размер команды варьируется в зависимости от компании. В маленьких командах Java-разработчик может совмещать несколько ролей: например, выполнять некоторые задачи DevOps и работать над инфраструктурой или тесно работать с менеджерами продукта. В больших компаниях роли обычно чётко определены.
Java-разработчик пользуется теми же инструментами, что и любой другой инженер разработки:
- Jira или YouTrack: приложения, где можно получать и закрывать задачи.
- Git: система контроля версий, которая нужна для хранения истории изменений в коде и совместной разработки;
- IntelliJ IDEA: среда разработки, которая помогает работать с кодом и улучшать его. Она работает так же, как любой текстовый редактор, только обладает дополнительными инструментами для разработчиков. Например, в ней есть подсветка синтаксиса, возможность запускать и отлаживать код и выделение ошибок.
Процесс работы тоже зависит от компании. В больших командах он чаще всего устроен так: есть аналитик, который приносит задачи, и тимлид, который распределяет их между разработчиками. Обычно у новичков есть наставник — более опытный разработчик, который помогает решать задачи и отвечает на вопросы
Важно не бояться попросить его о помощи, если не удаётся найти решение самому
После того как разработчик получает задачу от тимлида, он начинает поиск решения: разбирается, что нужно сделать, где именно в коде проекта это должно быть реализовано, продумывает варианты работы этого решения (например, что будет, если пользователь ошибётся при вводе и тому подобное). Только после этого можно писать код.
Следующий этап после написания кода — это код-ревью: во время него другие разработчики читают и комментируют программу, предлагают, как можно её исправить или улучшить. Дальше — тестирование. Все допускают ошибки, а тестирование позволяет их обнаружить и устранить до того, как код начнёт работать у пользователей. Заключительный этап — развёртывание кода на сервере, после которого пользователь уже видит новую функциональность и может ей пользоваться.
Интересные факты о профессии java-разработчик
Предложения о работе чаще направлены на тип программистов, которые являются экспертами в языке Java. Чтобы найти работу по специальности разработчика Java, отсутствие опыта — не помеха. Кейсы и портфолио — эти вещи помогут продемонстрировать работодателю знания, умения и опыт.
Выпускники курсов и ВУЗов сталкиваются с проблемами в поиске работы — это заблуждение. Большинство находят работу в процессе обучения.
Язык Java подойдет тем, кто стремится создавать проекты, программы и приложения. Создание сложных кодов не проходит легко в начале пути профессиональной деятельности
Важно, чтобы Java программист стремился к получению знаний и навыков, осваивал другие языки программирования
Сложно ли выучить Java?
Сложно, но вполне реально даже для новичков. По сложности освоения Java находится где-то посередине между Python и C++, считает Владислав Мацкевич: «Начать изучение Java, как и любого другого языка программирования, лучше всего с Java Core — фундаментальных основ языка. А лучший способ закрепить навыки — самостоятельно написать какой-нибудь проект».
Курс
Профессия Java-разработчик
Освойте с нуля за 14 месяцев программирование, бэкенд-разработку и DevOps на самом востребованном языке. Скидка 5% по промокоду BLOG.
Узнать больше
Артур Куприянов тоже считает, что важно самостоятельно начать писать проект: «Джуну, как и любому Java-программисту, следует знать основные принципы ООП — это поможет понять саму философию Java. Также нужно знать синтаксис, основные конструкции, паттерны, управление зависимостями и немного о фреймворке или библиотеке, с которым ему предстоит работать
Практика — лучший способ обучения. Гораздо лучше, если удастся написать небольшой коммерческий проект. Это будет огромным плюсом при рассмотрении вашего резюме».
Все эксперты сходятся во мнении, что лучшей средой разработки на Java является IntelliJ IDEA от JetBrains — у нее есть встроенные фишки, которые значительно упрощают разработку. Хотя она платная, для студентов и новичков есть возможность получить бесплатную лицензию. Более слабой, но популярной бесплатной альтернативой является Eclipse.
Итог. Так умрет ли Java?
Если в Интернете где-то и всплывают слухи о том, что Java «загибается», что это мнение частное. Java до сих пор остается достаточно популярен, широко используется и будет использоваться. Каждые полгода выходят новые версии языка, крупные сообщества живут полной жизнью, а разделы помощи на официальном сайте регулярно обновляются в соответствии с популярными вопросами от пользователей.
Новые языки программирования — быстрые, комфортные в применении и просты в освоении. Более молодые языки, такие как Scala (2001 г) или Kotlin (2011 г) сегодня могут позволить себе конкурировать с Java в мобильной разработке — и кстати оба компилируются в JVM — и имеют немного больше различного «синтаксического сахара». Но в основной своей массе молодые языки ориентируются на решение узких задач.
В отличие от Java, который применяется почти во всех областях прикладной разработки. Java обладает колоссальным количеством фреймворков и библиотек, с помощью которых можно решить многие задачи: от простейшей игры «змейки» до разработки корпоративных приложений в облаке.