Java-разработчик: как выучиться и куда устроиться на работу

Содержание:

Программа курса

Урок 8. Собеседование и испытательный срок

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

Урок 9. Фриланс: первые шаги

Обзор площадок для фриланса; особенности регистрации; оформление аккаунта; как выделяться среди большинства исполнителей.

Урок 10. Фриланс: начало работы и поиск заказов

Стратегия поиска заказов; приоритет заказов: что брать в работу; ведение переговоров; задания и подводные камни ТЗ; методы обращения к клиенту; написание ответов и привлечение внимания клиентов; правильные вопросы.

Урок 11. Фриланс: выполнение заказа и оплата

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

Урок 12. Специальности в сфере IT

Как проходит разработка в крупных компаниях? Кто такие аналитики, дизайнеры, тестировщики, архитекторы, projectmanager-ы, team-lead-ы и пр.

Урок 13. Карьерная лестница в сфере IT

Как выглядит карьерная лестница в сфере IT? В каких специальностях проще начинать свой путь? Какие есть перспективы развития?

Опыт клиента

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

С чего начать будущему специалисту

1. Основы языка:

  • Установка и настройка IDE (среда разработки, где и будет происходить вся работа);

  • Базовый синтаксис;

  • Изучение переменных, типов переменных;

  • Простые алгоритмы;

  • Стандартные функции;

  • Написание собственных функций.

Обязательно на этом этапе нужно изучить систему контроля версий GIT. Без нее практически невозможно работать над средними и крупными проектами.

2. Изучение ООП

  • понятие классов;

  • понимание инкапсуляции, наследования, полиморфизма (слова страшные, но их суть довольно простая);

  • интерфейсы, абстрактные классы.

3. Структуры данных

  • Деревья, списки, графы;

  • Простые и сложные алгоритмы;

  • Временная сложность;

  • Скорость работы алгоритма.

4. Java Collections Framework (коллекция интерфейсов и классов для сохранения и обработки данных)

  • Коллекция элементов

  • Iterable

  • Списки

  • Очередь

  • Set

  • Карты

И это — только основы Java. Предстоит еще изучить паттерны проектирования, базы данных, многопоточность, основные фреймворки и библиотеки и еще много интересного для познания необъятного мира Java.

Востребованы ли Java-программисты

Джава входит в ТОП-3 распространенных языков программирования, поэтому спрос на разработчиков остается стабильно высоким. По данным hh.ру, на сегодняшний день в России около 3500 вакансий для Java-программистов. Работодатели готовы рассмотреть и опытных, и начинающих разработчиков, на условиях полной занятости и удаленной работы.

Опыт Количество вакансий
до 1 года 285
от 1 до 3 лет 1448
от 3 до 6 лет 1603
свыше 6 лет 157

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

Минимальные навыки и обучение с нуля

  1. Английский.
  2. Java Core (синтаксис, OOP возможности, многопоточность, стандартная библиотека).
  3. OOP и OOD (парадигмы, основные паттерны проектирования).
  4. Базы данных (Hibernate, JDBC, язык SQL).
  5. Языки разметки (HTML, XML и другие).
  6. Технологии и фреймворк (веб-сервисы и Spring).

Мидл понимает и знает:

  1. Английский.
  2. OOP, различные архитектуры.
  3. Алгоритмы и структуры данных.
  4. Системы управления версиями (GIT).
  5. Сокеты и многопоточность.
  6. Понятный и короткий код (KISS, DRY).
  7. Базы данных (PostgreSQL или MySql).
  8. SQL запросы.

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

  1. Веб-службы на основе Java.
  2. Реляционные базы данных, SQL и ORM.
  3. Фреймворк J2EE.
  4. Объектно-ориентированный анализ и проектирование.
  5. EJB (Enterprise Java Beans).
  6. XML, X-запрос, XSL.

Структура специализации

Java-программист начального уровня

Юниор-разработчик:

  1. Создает информационные решения для пользователей, разрабатывая и поддерживая приложения.
  2. Определяет цели сайта, анализируя требования пользователей.
  3. Проектирует и разрабатывает пользовательские интерфейсы для приложений.
  4. Интегрирует приложения, разрабатывая архитектуру базы данных и серверные сценарии.
  5. Изучает и устанавливает связи с сетевыми системами, поисковыми системами и информационными серверами.
  6. Создает мультимедийные приложения с помощью средств разработки.
  7. Завершает разработку приложений, участвуя в командной работе; устраняет неполадки при разработке и производстве.
  8. Осуществляет поддержку пользователей, разрабатывая документацию и вспомогательные инструменты.

Java-программист продвинутого уровня

  1. Архитектура программного обеспечения.
  2. Сетевой дизайн и его реализация.
  3. Основы JavaB
  4. Сервлеты Java.
  5. Представление технической информации.

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

  1. Менеджера (project-manager), который несет общую ответственность за инициирование, управление и укомплектование персоналом проекта. Принимает решения по проекту и передает их деловым партнерам и команде.
  2. Руководителя разработки (development lead), который отвечает за планирование и выполнение разработки ПО. Наставляет менее опытных разработчиков и консультирует руководство по техническим вопросам и требованиям программы.
  3. Одного или нескольких программистов Java, которые выполняют ряд обязанностей, от концепции и дизайна до тестирования, на протяжении всего жизненного цикла разработки. Информируют руководителя разработки о ходе выполнения проекта.
  1. Технический архитектор – преобразует требования к проекту в набор технических спецификаций, которые могут использоваться программистами для выполнения своей работы.
  2. Предметный эксперт (SME) – имеет глубокое понимание того, что нужно достичь, и часто представляет тех, кто будет бенефициаром результата проекта разработки.
  3. Аналитик по обеспечению качества – отвечает за тестирование ПО в процессе его разработки и сообщает об ошибках команде разработчиков, чтобы их можно было устранить и исправить.

При активном обучении следующие 1-3 года работы – мидл.

Специалист с опытом работы 4-6 лет – сеньор.

Как одновременно изучать Java, работать и учиться в магистратуре

— На первом курсе магистратуры ты устроился разработчиком С# («си шарп») в компанию, которая производит телекоммуникационные системы. Когда же ты успел освоить С#?

— Ещё на втором курсе бакалавриата мне захотелось заняться Java, но я не нашёл хороших ресурсов. Поэтому я стал изучать С#, делая это уже самостоятельно, и какие-то знания по языку у меня были.

Но на собеседовании в телекоммуникационную компанию мне просто повезло. Попросили написать пользовательский интерфейс для управления антенным комплексом, на что я честно ответил: «Я не знаю, как это сделать, но могу попробовать». Мне сказали: «Отлично, ты подходишь!» И меня взяли. В итоге я поддерживал и дорабатывал устройство, управлявшее системой обнаружения и подавления беспилотников.

— А почему в Skillbox ты начал изучать Java? Кажется, было бы логичнее и дальше развиваться как разработчик С#.

— Мысль заниматься Java из моей головы никуда не ушла. А как С#-разработчик я рос медленно — и не был уверен, что верно: мне не хватало наставника и системных знаний. Я сидел в техническом отделе среди инженеров и был там единственным айтишником. От меня требовали решать задачи, но то, как они были выполнены, никого не волновало.

Я часто спрашивал самого себя: «Эта штука работает, но правильно ли я её реализовал?» Понимал, что можно было сделать систему гармоничнее, но не знал как.

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

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


Михаил в магистратуре

— Как ты успевал всё сразу — проходить курс, учиться в магистратуре и работать?

— До середины ноября 2019-го я занимался регулярно: по вечерам в будние дни смотрел лекции, а в выходные делал домашние задания. Затем случилась сессия, которая прервала этот процесс. С февраля по апрель 2020-го я снова проходил уроки, а потом прервался, чтобы написать магистерский диплом. Из компании, где работал C#-разработчиком, я уволился уже в марте.

— Пока ты делал магистерский диплом, тебе, наверное, не до Java было?

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

Собрать приложение мне помогли знания, которые я получил в Skillbox, а также то, что я владел C#. Всё-таки C# и Java немного похожи. Но чтобы вникнуть в разработку под Android, мне пришлось потратить достаточно времени.

— Получается, к курсу Skillbox ты вернулся уже после защиты диплома?

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

Установка среды разработки IntelliJ IDEA Community (Windows)

Intellij IDEA — это интегрированная среда разработки (IDE), то есть система программных средств для создания проектов на разных языках программирования.

Сегодня это самая популярная IDE для языка Java. А ещё есть Eclipse, NetBeans и немало других, но мы рекомендуем именно IDEA, потому что даже её бесплатная версия обладает широкой функциональностью, подходит для профессиональной разработки и вообще делает Java проще в использовании.

В IDE обязательно входят:

  • текстовый редактор для написания кода (он знает синтаксис нужных языков);
  • компилятор;
  • отладчик.

1. Какую версию (редакцию) выбрать

Intellij IDEA доступна в бесплатной (Community) и платной (Ultimate) версиях. Чем они различаются, видно на скрине ниже:

Пока что нам хватит возможностей бесплатной версии.

IntelliJ предлагает студентам и преподавателям к своим продуктам.

2. Сама установка

Заходим сюда и качаем версию для Windows.

Запускаем скачанный файл .exe:

Жмём Next (Далее) и выбираем путь для установки:

Снова Next, и настраиваем параметры установки:

В общем случае это:

  • 64-bit launcher — для запуска 64-разрядной версии приложения (будет создан ярлык на рабочем столе);
  • Add ”Open Folder as Project“» — позволяет открывать папки с исходниками как проекты прямо через контекстное меню;
  • .java — файлы такого типа (с таким расширением) будет открывать IDEA (по умолчанию и через контекстное меню).

Кликаем Next (Далее) и выбираем папку для ярлыков IDEA (оставляем по умолчанию):

Нажимаем Install (Установить), после чего стартует установка:

Дожидаемся её окончания и жмём Finish (Завершить):

3. Запуск IntelliJ IDEA и настройка параметров

При первом запуске принимаем пользовательское соглашение и нажимаем Continue (Продолжить):

Далее выбираем тему оформления (доступны тёмная и светлая):

Жмём Next: Default plugins и переходим к выбору устанавливаемых плагинов:

Если не знаете, что вам точно пригодится, — оставляйте всё как есть. А если, например, с Андроидом вам не работать — выключите соответствующий пункт.

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

После чего нажмите на кнопку Next: featured plugins и выберите другие нужные плагины (или оставляйте всё по умолчанию):

И наконец, нажимаем Start using Intellij IDEA.

Вас встретит начальный экран среды разработки (Welcome screen). Здесь можно создать новый проект, открыть или импортировать существующий, а также скачать проект из системы контроля версий:

Почему именно Java

Крупные бизнесы и компании из сектора b2b часто используют для своих сервисов именно Java: функциональность этого языка уже устоялась, вокруг него сложилось большое сообщество, а ещё есть стабильная поддержка и множество библиотек под разные задачи. Всё это означает, что язык вряд ли изменится настолько, что написанные на нём программы «сломаются» и их нужно будет переписывать заново.Java — это довольно простой язык, однако порог входа в разработку на нём выше, чем в случае Python. Зато Java устроен так, что сам уберегает пользователей от некоторых ошибок, не позволяет их сделать благодаря встроенным подсказкам и другим функциям. У Java долгая история: первая официальная версия вышла в 1995 году. Поэтому всё, что может пойти не так у новичка в Java, уже кем-то описано в интернете — на старте это помогает быстрее сориентироваться в языке и не бояться ошибаться.

Что нужно знать, чтобы стать Java-разработчиком

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

  • Фреймворк для Джава – Spring.
  • Система контроля версий Git.
  • Алгоритмы и структуры данных.
  • Объектно-ориентированное программирование.
  • Принципы SOLID – набор правил и подходов, которых следует придерживаться для написания чистого лаконичного кода.
  • Шаблоны проектирования – проверенные решения распространенных проблем, образцы архитектурных конструкций.
  • Unit-тестирование – используется для проверки отдельных элементов кода.
  • Верстка с помощью языка разметки HTML и каскадных таблиц стилей CSS.
  • JavaScript и библиотека jQuery для фронтенд-разработки.
  • Основы работы с базами данных SQL.

Java-разработчик: кто это и что делает

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

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

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

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

До Java

Первый вопрос: как думаете, где родился Гослинг? Напрашивается ответ «в США», но на самом деле в канадском городе Калгари (в 1955-м). И ещё тинейджером в Канаде он впервые задумался о вещах, впоследствии сказавшихся на Java.

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

В текстовом редакторе TECO он подсмотрел идею макросов: с помощью встроенного интерпретируемого языка пользователи могли делать собственные мини-программы (так, например, появился Emacs). Это навело его на мысль «Если я тоже встрою простенький интерпретатор, то люди смогут решать свои задачи макросами и перестанут дёргать меня по мелочам, заставляя постоянно перекомпилировать всю систему». Это сработало — так Гослинг сделал свою первую платформу для исполнения чужого кода.

Затем, перебравшись в США, в университете Карнеги-Меллона он ближе подобрался к идее JVM. Перед ним встала задача портирования софта с рабочих станций PERQ на VAX, и начал он с эмулятора, но в итоге глубже погрузился в вопросы, позволяющие разработчикам софта вообще абстрагироваться от железа.

А самым громким проектом Гослинга до Java стал Gosling Emacs (он же Gosmacks). После взлёта популярности Emacs стали появляться сторонние реализации этого редактора для разных ОС и архитектур, и в 1981-м Гослинг представил свою имплементацию для UNIX. Со временем она стала второй по популярности разновидностью Emacs после основной версии Ричарда Столлмана.

Джеймс распространял Gosmacks бесплатно и охотно принимал в проект чужие улучшения, но сохранял единоличную власть над ним и указывал своё имя в копирайте. А в 1983-м решил, что больше не готов тратить на него много сил, и продал его компании UniPress. Которая стала распространять его уже коммерческим образом:

Неудивительно, что Ричард Столлман воспринял это в штыки: производную версию его детища продали корпорации, оставляя UNIX без свободной реализации. К тому моменту он уже вынашивал идею GNU Project. Но собирался начать с «низов» ОС — а из-за этой истории поменял очерёдность действий. В итоге флагманом всего движения за свободный софт стал GNU Emacs, и получается, что этому ненамеренно поспособствовал Гослинг.

В первую версию GNU Emacs даже входило немного кода из Gosmacks. Но затем UniPress предъявили претензии к тому, что используется код их коммерческого продукта, и в более поздних версиях GNU Emacs всё было переписано. Отдельная забавная деталь: часть кода у Гослинга была помечена черепом и костями («тут лучше ничего не трогайте, не разберётесь»), но Столлмана таким не остановить.

На тот момент представления об авторских правах в софте только формировались, и людям было совершенно неочевидно, что вообще можно и что нельзя. История с Gosmacks сама и сказалась на становлении норм, став прецедентом — и теперь её в книгах вроде «Making and Unmaking Intellectual Property».

А в 1984-м Гослинг устроился в Sun Microsystems. Среди вещей, которыми он занимался там до Java, можно назвать оконную систему NeWS. У неё были некоторые преимущества перед X11, но она не стала массово распространённой — отчасти из-за того, что Sun запрашивали деньги за её исходный код, в то время как X распространялась открыто.

Из каких этапов состоит общение с клиентом?

Открытие

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

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

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

Жизненный цикл 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 программист» в других городах

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

Открывайте двери в мир престижной, высокооплачиваемой работы и
воплощайте свои мечты в жизнь!

Java: что за зверь?

Java — мультифункциональный объектно-ориентированный язык со строгой типизацией.

Что это значит?

С мультифункциональностью всё достаточно просто: Java действительно почти «волшебная таблетка» — на ней можно разрабатывать десктопные приложения, приложения под Android, заниматься веб-разработкой… Подробнее об этом ниже.

Строгая (сильная) типизация не позволяет смешивать в выражениях разные типы и не выполняет автоматически неявные преобразования. Это добавляет мороки: какие-то части приходится прописывать самому, а свободы у вас меньше, — зато в обмен на это вы получаете надёжность.

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

Сколько зарабатывает специалист

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

Начинающий специалист со стандартным набором функций может получать до 50-60 тысяч рублей в месяц. При наличии практического опыта от года, разработчик может рассчитывать на доход до 100 тысяч рублей. Чем выше уровень специалиста, тем выше его зарплата:  разработчик уровня middle  может рассчитывать на доход до 140 тысяч рублей, а тимлид – 200 тысяч рублей и более. В иностранных компаниях или на международных биржах фриланса, Java-разработчик может найти работу с более высокими ставками.

Дистрибутивы Java

Существует множество сайтов, предлагающих загрузку Java (читай: JDK), и неясно, «кто что предлагает и с каким лицензированием». Этот раздел проливает свет на это.

Проект OpenJDK

Однако это всего лишь исходный код, а не распространяемая сборка (представьте: ваш файл .zip со скомпилированной командой java для вашей конкретной операционной системы). Теоретически вы и я могли бы создать сборку из этого исходного кода, назвать ее, скажем, MarcoJDK, и начать ее дистрибуцию. Но наш дистрибутив не будет сертифицирован, чтобы можно было называть этот дистрибутив совместимым с Java SE.

И хотя поставщики не могут, скажем, удалить метод из класса String перед созданием новой сборки Java, они могут добавить брэндинг (вay!) или добавить некоторые другие утилиты (например, CLI), которые они считают полезными. Но в остальном исходный код одинаков для всех дистрибутивов Java.

Сборки OpenJDK (от Oracle) и OracleJDK

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

Впрочем все сводится к тому, требуется ли вам коммерческая поддержка (номер телефона) для используемой версии Java.

Полный обзор дистрибутива OpenJDK

Рафаэль Винтерхальтер (Rafael Winterhalter) собрал большой список всех доступных сборок OpenJDK, включая их описания: ОС, архитектуру, окна лицензирования, поддержки и обслуживания.

Заключение

Я начал изучать Java в 2014 году, рассказывает Александр Макеев. Сперва нужно познакомиться с синтаксисом языка и Java Core. Рекомендую начать с YouTube обучающих курсов, с ними будет не так скучно нежели сразу погружаться в книги

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

После получения первых знаний, их нужно закрепить литературой для заполнения пробелов (хорошо подойдет Thinking in Java by Bruce Eckel). Далее нужно изучить SQL и актуальные фреймворки для DI и персистентности данных (Spring, Hibernate/MyBatis)

По мере изучения технологий важно применять их на практике — придумывать и писать свои проекты. Можно найти друга/ментора и написать что-то сложное вместе

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

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

Adblock
detector