60
Заголовок презентации Имя и фамилия автора доклада Компания Контактные данные 1 Контактные данные 2 Контактные данные 3 Контактные данные 4 Пути развития Java разработчика Dmytro Sokolov BecomeJavaSenior fb.com/dimafedd twitter.com/SokolovDmytro fb.com/becomejavasenior [email protected]

"Пути развития Java разработчика" Дмитрий Соколов

  • Upload
    fwdays

  • View
    1.835

  • Download
    3

Embed Size (px)

Citation preview

Page 1: "Пути развития Java разработчика" Дмитрий Соколов

Заголовок презентации

Имя и фамилия автора докладаКомпания

Контактные данные 1Контактные данные 2Контактные данные 3Контактные данные 4

Пути развития Java разработчикаDmytro SokolovBecomeJavaSenior

fb.com/dimafeddtwitter.com/SokolovDmytrofb.com/[email protected]

Page 2: "Пути развития Java разработчика" Дмитрий Соколов

Dmytro Sokolov▷ 9 years Java Developer▷ 3 years Trainer & Mentor▷ Java Trainer / Lead Software

Engineer▷ Full-stack experience▷ Project: BecomeJavaSenior.com▷ email: [email protected]

Hello!

Page 4: "Пути развития Java разработчика" Дмитрий Соколов

Уровни Java разработчика- Intern- (Strong) Junior- Java Automation- (Strong) Middle/Regular- Senior- Tech Lead- Team Lead- Project Manager- Scrum Master- Architector

Page 5: "Пути развития Java разработчика" Дмитрий Соколов

Уровни Java разработчика

Давайте определим какой у вас уровень!

Page 7: "Пути развития Java разработчика" Дмитрий Соколов

Junior Java developer

Junior'ом обычно называют разработчика, который только начинает серьезно работать в определенной области технологий.

Page 8: "Пути развития Java разработчика" Дмитрий Соколов

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

Page 9: "Пути развития Java разработчика" Дмитрий Соколов

Требования - Junior Java developer▷ Программирование (системы исчисления, чем оператор отличается от операции, некоторые алгоритмы)

▷ Язык Java (синтаксис, OOP возможности, многопоточность, стандартная библиотека)

Page 10: "Пути развития Java разработчика" Дмитрий Соколов

Требования - Junior Java developer▷ OOP и OOD (парадигмы, основные паттерны проектирования)

▷ Базы данных (JDBC, язык SQL)

Page 11: "Пути развития Java разработчика" Дмитрий Соколов

Поведение - Junior Java developer▷ Нуждается в постоянном контроле

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

Page 12: "Пути развития Java разработчика" Дмитрий Соколов

Поведение - Junior Java developerТо есть в результате его деятельности может появиться что-то работающее. Мыслит в рамках языка и технологий.

Page 13: "Пути развития Java разработчика" Дмитрий Соколов

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

Page 14: "Пути развития Java разработчика" Дмитрий Соколов

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

Page 15: "Пути развития Java разработчика" Дмитрий Соколов

Поведение - Junior Java developer▷ Стоит больше прислушиваться к мнению старших коллег.

▷ Стараться делать свою работу как можно качественнее.

▷ Проявлять инициативу, но в пределах поставленных Вам задач.

▷ Стараться изучить сначала вещи, необходимые для текущей работы.

Page 16: "Пути развития Java разработчика" Дмитрий Соколов

Junior Java developerПрежде чем двигатсья дальше - убедиться что хорошо знаешь JavaCore

Page 18: "Пути развития Java разработчика" Дмитрий Соколов

Middle/Regular Java developerПрограммист является лицом, ответственным за качественное и своевременное исполнение порученной ему работы в проекте разработки информационно-программных систем, основанных на применении современных технологий.

Page 19: "Пути развития Java разработчика" Дмитрий Соколов

Middle/Regular Java developerПрограммист выполняет задачи по программированию и первоначальному тестированию порученных ему компонент системы и работает по внешним спецификациям.

Page 20: "Пути развития Java разработчика" Дмитрий Соколов

Требования - Middle Java developer▷ Образование — законченное высшее.

▷ Наличие практического опыта: стаж работы не менее одного года.

▷ Владение Software Engineering Process?

Page 21: "Пути развития Java разработчика" Дмитрий Соколов

Требования - Middle Java developerSoftware Engineering Process:

1. Waterfall development2. Prototyping3. Incremental development4. Spiral development5. Rapid application development6. Agile development (Scrum,

Kanban)

Page 22: "Пути развития Java разработчика" Дмитрий Соколов

Требования - Middle Java developerИностранный язык — английский технический, в том числе:

▷ умение читать техническую литературу IT профиля (без словаря);

▷ умение комментировать тексты программ (без словаря);

▷ умение общаться на профессиональные темы (Pre Intermediate).

Page 23: "Пути развития Java разработчика" Дмитрий Соколов

Требования - Middle Java developer▷ Владение методами и инструментами анализа и проектирования.

▷ Знание: языков разметки, web-серверов и серверов приложений, клиентских технологий, серверных технологий, СУБД, ОС, средств офисной работы.

Page 24: "Пути развития Java разработчика" Дмитрий Соколов

Требования - Junior/Middle Java developer

Page 25: "Пути развития Java разработчика" Дмитрий Соколов

Поведение - Middle Java developer▷ Контроля не требует - отвечает за отдельные функции или модули и т.п.

▷ Не надо учить, умеет решать поставленные задачи самостоятельно в рамках подготовленной архитектуры.

Page 26: "Пути развития Java разработчика" Дмитрий Соколов

Поведение - Middle Java developer▷ Наконец научился абстрагироваться от языка и технологий, голова забита не деталями языка, а понятиями предметной области.

▷ Научился писать структурно, кратко, поддерживаемо, без копирования.

▷ Перестает писать плохой код. Код получается поддерживать.

Page 27: "Пути развития Java разработчика" Дмитрий Соколов

Middle Java developer

Если в резюме нет выше перечисленного опыта - не оценят как Middle Java Developer

Page 28: "Пути развития Java разработчика" Дмитрий Соколов

Middle Java developerПрежде чем двигатсья дальше - убедиться что хорошо знаешь JavaCore и самые популярные технологии

Page 30: "Пути развития Java разработчика" Дмитрий Соколов

Senior Java developerВедущий программист является лицом, ответственным за качественное и своевременное исполнение порученной ему работы в проекте разработки информационно-программных систем, основанных на применении современных технологий.

Page 31: "Пути развития Java разработчика" Дмитрий Соколов

Senior Java developerОн обладает глубокими знаниями используемых технологий и работает внутри проектной команды без необходимости контактировать с представителями менеджмента заказчика.

Page 32: "Пути развития Java разработчика" Дмитрий Соколов

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

Page 33: "Пути развития Java разработчика" Дмитрий Соколов

Senior Java developerВедущий программист также выполняет работы по программированию и первоначальному тестированию порученных компонентов.

Page 34: "Пути развития Java разработчика" Дмитрий Соколов

Требования - Senior Java developer▷ Наличие практического опыта: стаж работы не менее двух-трех лет в качестве программиста.

▷ Владение Software Engineering Process.

▷ Владение методами и инструментами анализа и проектирования.

Page 35: "Пути развития Java разработчика" Дмитрий Соколов

Требования - Senior Java developer▷ Знание: языков разметки, web-серверов и серверов приложений, клиентских технологий, серверных технологий, СУБД, ОС (Linux)

Page 36: "Пути развития Java разработчика" Дмитрий Соколов

Требования - Senior Java developer▷ английский технический

(Intermediate): умение читать техническую литературу IT профиля (без словаря);

▷ умение комментировать тексты программ (без словаря);

▷ умение разрабатывать документацию (со словарем); умение общаться на профессиональные темы

Page 37: "Пути развития Java разработчика" Дмитрий Соколов

Поведение - Senior Java developer▷ Может контролировать других, отвечает за проект.

▷ Умеет подготавливать инфраструктуру, решать сложные задачи. Наставляет и ведет junior'ов.

Page 38: "Пути развития Java разработчика" Дмитрий Соколов

Поведение - Senior Java developerЗа годы опыта выработал best practices в решении конкретных задач. За счет чего на большом промежутке времени способен демонстрировать бешеную производительность в сравнении с юниорами и миддлами.

Page 39: "Пути развития Java разработчика" Дмитрий Соколов

Поведение - Senior Java developer▷ Производительность заключается в том, что делает гораздо меньше ошибок, а если и делает, то ошибки легко устраняются, ибо локализованы в конкретном месте.

▷ Держит cроки, которые он дает.

Page 40: "Пути развития Java разработчика" Дмитрий Соколов

Fake - Senior Java developer/Team Lead

Проработал на проекте с самого начала, получил титул, так как знает проект больше всего

Возраст ~ 23 года

Page 41: "Пути развития Java разработчика" Дмитрий Соколов

Знания Java разработчика

На каждом уровне (Junior/Middle/Senior)

нужно знать все технологии и фреймворки

Page 42: "Пути развития Java разработчика" Дмитрий Соколов

Знания Java разработчика

Разница между уровнями - глубина и ширина знаний в каждой области

Page 43: "Пути развития Java разработчика" Дмитрий Соколов

Инструменты для Senior Java Developer

Какими инструментами, знаниями и навыками должен владеть Senior Java Developer?

Page 44: "Пути развития Java разработчика" Дмитрий Соколов

Инструменты для Senior Java Developer

▷ Jenkins, TeamCity▷ Администрирование БД▷ SonarQube (сатический анализ кода)

▷ Linux

Page 45: "Пути развития Java разработчика" Дмитрий Соколов

Знания и навыки для Senior Java Developer

▷ Design Patterns (Java, Web, DB)▷ Security▷ Asynchronous programming▷ Enterprise Patterns▷ Advance Multithreading

Page 46: "Пути развития Java разработчика" Дмитрий Соколов

Знания и навыки для Senior Java Developer

▷ Scrum▷ Interviewing▷ Internal training, mentoring and

coaching▷ Customer negotiation▷ Reporting▷ Планирование, коммуникация, решение конфликтов

▷ Сертифицированние

Page 47: "Пути развития Java разработчика" Дмитрий Соколов

Знания и навыки для Senior Java Developer

▷ Spring▷ Hibernate▷ NoSQL▷ Caching (Redis, Ehcache)▷ RESTful (HATEOAS)

Page 48: "Пути развития Java разработчика" Дмитрий Соколов

Что мешает стать Middle/Senior?

Page 49: "Пути развития Java разработчика" Дмитрий Соколов

Что мешает стать Middle/Senior?▷ плохие базовые знания (Java

Core)▷ отсуствие мотивации на текущем месте работы

▷ не умение говорить высокоуровневым языком (абстракциями), не знание архитектурных терминов

▷ плохой английский язык

Page 50: "Пути развития Java разработчика" Дмитрий Соколов

Что поможет стать Middle/Senior?

Page 51: "Пути развития Java разработчика" Дмитрий Соколов

Что поможет стать Middle/Senior?▷ мотивация▷ посещение конференций, выступление на конференциях,

▷ чтение книг по soft скилам, персональной эффективности, коммуникативные, командообразованию

▷ посещению тренингов по soft скилам: ораторскому искуству, тайм-менеджменту.

Page 52: "Пути развития Java разработчика" Дмитрий Соколов

Что поможет стать Middle/Senior?▷ активная работа в команде▷ общение с более опытными разработчиками/менторами

Page 53: "Пути развития Java разработчика" Дмитрий Соколов

Что поможет стать Middle/Senior?▷ Хорошее знание английского -

upper-intermediate▷ Уменее прохождение собеседований: уметь себя продать, решать интревьюшные задачи

▷ Глубокое понимание (теория) языка Java и фреймворков

Page 54: "Пути развития Java разработчика" Дмитрий Соколов

Как изучать технологииРекомендуемый подход, лучшее соотношение время/качество (теория и практика)

Page 55: "Пути развития Java разработчика" Дмитрий Соколов

Как изучать технологии1. Выполнить несколько tutorials 2. Посмотреть видео,

объясняющее общий принцип работы

3. Прочитать официальную спецификацию/guides

4. Пролистать по диагонале книгу5. Написать свой проект с нуля6. Пройти тренинг

(структурировать знания)

Page 56: "Пути развития Java разработчика" Дмитрий Соколов

Что всегда спрашивают на interview у Java Middle/ Senior?

Page 57: "Пути развития Java разработчика" Дмитрий Соколов

▷ JavaCore▷ Multithreading▷ Collections▷ JDBC▷ Servlet API▷ Spring IoC▷ SQL, Транзакции, уровни изолирования

Что всегда спрашивают на interview у Java Middle/ Senior?

Page 58: "Пути развития Java разработчика" Дмитрий Соколов

Почитать

Карьера в IT: должность Team Lead http://dou.ua/lenta/articles/team-lead-position/

Карьера в IT: должность Software Architect

http://dou.ua/lenta/articles/software-architect-position/

Page 60: "Пути развития Java разработчика" Дмитрий Соколов

Thanks!Any questions?

You can find me at:

http://becomejavasenior.com