Карьера JAVA программиста

Вы твердо решили связать свою жизнь с ИТ и в качестве карьерного пути выбрали направление  -  программирование на JAVA. К чему нужно быть готовым, что вам предстоит изучить и освоить, какие этапы предстоит пройти — рассмотрим в этом материале.

Что делает JAVA программист

Типичный функционал:

  • разработка архитектуры платформенного решения и программных модулей на Java;
  • разработка интеграционных приложений;
  • составление технической документации по разработанному программному обеспечению;
  • поддержка работы приложений, программное сопровождение проекта.
Технический профиль
  •  Operating Systems: Windows / *nix
  • Internet Technologies: HTML → CSS → JavaScript → XML and related concepts (serialization, parsing, XSLT, XPath) → AJAX
  •  Programming Languages: Core Java (Java SE) → Java EE
  •  Databases: SQL / JDBC / MySQL / Oracle Database
  •  Integrated Development Environment: Eclipse / IntelliJ IDEA
  • Web: Servlet → JSP → JSF
  • Build Tools: Ant / Maven
  • Test Tools: JUnit / TestNG → Mock frameworks
  •  HTTP Servers, Application Servers / Servlet Containers: Apache Server → Tomcat → JBoss
  • Bug Tracking / Version Control Systems: JIRA / ClearQuest / ClearCase
  •  Frameworks: Logging / Hibernate (ORM → AOP) / Struts / Spring (IoC →  AOP → MVC)
  •  Other: Patterns, EJB, …
Карьерный путь
Карьерный путь JAVA программиста
Начало карьеры

Java Junior Developer

Junior'ом обычно называют разработчика, который только начинает серьезно работать в определенной области технологий. У такого разработчика есть знания, позволяющие ему работать над реальным проектом, но очень мало (или нет) опыта такой разработки. Поэтому, зачастую в технических аспектах он советуется с более опытным разработчиком.

Основные требования позиции:

  • Язык Java (синтаксис, ООП возможности, многопоточность, стандартная библиотека)
  • OOP и OOD (парадигмы, основные паттерны проектирования)
  •  Базы данных (JDBC, язык SQL)

Большим плюсом для Java Junior'а будет знание какой-либо конкретной технологии или фреймворка (например веб-сервисов или Spring). И конечно нужно знать, зачем та или иная технология нужна, какие задачи с помощью нее решают, преимущества/недостатки в сравнении с похожими технологиями.

На этом этапе нужно изучать технологии, которые понадобятся вам, как Java Developer’у.

Цель в первый год работы Java Junior’ом — это дорасти до уровня Java Developer. Никто не говорит что это очень легко, но вполне возможно для целеустремлённого человека.

Java Developer

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

Основные требования позиции:

  • Наличие практического опыта (стаж работы не менее одного года).
  • Иностранный язык — английский технический, в том числе: умение читать техническую литературу IT профиля (без словаря); умение комментировать тексты программ (без словаря); умениеобщаться на профессиональные темы (Pre Intermediate).
  • Владение Software Engineering Process.
  • Владение методами и инструментами анализа и проектирования
  • Знание: языков разметки, web-серверов и серверов приложений, клиентских технологий, серверных технологий, СУБД, операционных систем, средствофисной работы.Цель на этом этапе — выбрать несколько технологий, в которых вы будете специализироваться как Senior разработчик.

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

Java Senior Developer

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

Основные требования позиции:

  • Наличие практического опыта (стаж работы не менее двух лет в качестве программиста).
  • Иностранный язык — английский технический, в том числе: умение читать техническую литературу IT профиля (без словаря); умение комментировать тексты программ (без словаря); умение разрабатывать документацию (со словарем); умение общаться на профессиональные темы (Intermediate).
  • Владение Software Engineering Process.
  • Владение методами и инструментами анализа и проектирования.
  • Знание: языков разметки, web-серверов и серверов приложений, клиентских технологий, серверных технологий, СУБД, операционных систем, средств офисной работы.

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

Горизонтальное развитие карьеры (развитие как специалиста)

Lead JAVA Developer

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

Основные требования позиции:

  • Наличие практического опыта (стаж работы не менее двух лет в качестве программиста).
  • Иностранный язык — английский технический, в том числе: умение читать техническую литературу IT профиля (без словаря); умение комментировать тексты программ (без словаря); умение разрабатывать документацию (со словарем); умение общаться на профессиональные темы (Intermediate).
  • Владение Software Engineering Process.
  • Владение методами и инструментами анализа и проектирования.
  • Знание: языков разметки, web-серверов и серверов приложений, клиентских технологий, серверных технологий, СУБД, операционных систем, средств офисной работы.

Ваша цель - выбрать направление, в котором вы могли бы развиваться и совершенствоваться.

System Architect

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

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

Основные требования позиции:

  • Наличие практического опыта (стаж работы не менее трех лет в качестве проектировщика).
  • Иностранный язык — английский технический, в том числе: умение свободно читать техническую литературу; умение разрабатывать техническую документацию; умение общаться на профессиональные темы (уровень Intermediate).
  • Навыки управления: умение идентифицировать проблемы и эскалировать их; знание MS Project.
  • Владение Software Engineering Process.
  • Владение методами и инструментами анализа и проектирования.
  • Знание языков разметки.
  • Способность выбирать платформу и разрабатывать протоколы взаимодействия между компонентами.
  • Знание: протоколов, web-серверов и серверов приложений, клиентских технологий, серверных технологий, технологий и инструментов построения распределенных систем, СУБД, операционных систем, средств офисной работы.

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

Вертикальное развитие карьеры (развитие как руководителя)

Team Lead

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

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

Основные требования позиции:

  • Опыт работы: опыт руководства проектной группой, состоящей не менее чем из 2 участников в течении не менее чем 3 месяцев.
  • Иностранный язык (английский): чтение технической литературы без словаря; разработка проектной документации; ведение деловой переписки; общение на произвольные темы (уровень Upper Intermediate).
  • Навыки управления: владение основами управления проектами; подготовка и проведение технических презентаций; развитые или природные навыки общения; умение идентифицировать проблемы и эскалировать их; умение вести учет в системе проектного учета, понимание статей затрат; практическое владение инструментом планирования и управления работами MS Project.
  • Владение Software Engineering Process.
  • Владение методами и языками структурного анализа и проектирования.
  • Знание концепций и технологий проектирования и разработки информационных систем.
  • Библиотеки и языковые технологии.
  • Языки разметки.
  • Enterprise Systems / Java 2 EE.
  • Кластерная архитектура.
  • Знание СУБД.

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

Project Manager

Ответственен за качественное и своевременное исполнение проектов разработки (внедрения) программного обеспечения.

Менеджер проектов, осуществляет руководство небольшими или средними проектами.

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

Основные требования позиции:

  • наличие успешно выполненных проектов; опыт руководства проектной группой, состоящей не менее чем из 5 участников; минимальный стаж в должности руководителя группы — 1 год; стаж работы не менее двух лет в качестве менеджера проектов или на аналогичной должности.
  • Иностранный язык (английский): чтение технической литературы без словаря; чтение бизнес — литературы без словаря; разработка проектной документации; ведение деловой переписки; общение на произвольные темы (уровень Fluent).
  • Навыки управления: практическое владение всеми инструментами управления проектом; проведение технических презентаций и участие в подготовке бизнес- презентаций; навыки ведения коммуникаций на уровне своей компетенции; умение идентифицировать и решать проблемы внутренних взаимоотношений в проектном коллективе; умение рассчитывать и обосновывать сроки и бюджет проекта, идентифицировать и управлять рисками; практическое владение инструментом планирования и управления работами MS Project.
  • Владение Software Engineering Process.
  • Владение методами и языками структурного анализа и проектирования.
  • Знание концепций и технологий проектирования и разработки (внедрения) информационных систем.
  • Владение языками программирования.
  • Владение языками разметки.
  • Знание основ одной из следующих СУБД: Oracle (MS SQL Server); Sybase Enterprise, DB2.

 Ваша цель – Максимальная планка проектов, лучшие компании, международный уровень.

Дальнейший карьерный путь

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