Консультация
Работаем с 8:30 до 19:00Выходной: суббота и воскресенье


Сообщение об ошибке

Обучение

Сообщение об ошибке

Карьера в ИТ: Карьера JAVA программиста

 Карьера 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, …

Карьерный путь

karjera_JAVA.jpg

Карьерный путь 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  до позиций топ-менеджеров и топ-разработчиков.