Вы знаете какую роль в ИТ-компании хотели бы занимать через год? А через 5 лет? А может и не в компании, а свой проект, бизнес?
На докладе раскроем тему: что и как учить, чтобы вырасти от младшего Java разработчика до ведущих должностей:
стандарты компаний, кто такой Junior/Middle/Senior.
каким видят настоящего Junior/Middle/Senior разработчика outsource компании.
рекомендуемые навыки, знания, чтобы начать слать резюме и ходить по собеседованиям для Middle/Senior.
как развиваться Junior/Middle/Senior Java разработчику.
что точно не нужно учить Java разработчику.
что может быть полезным из нестандартного стека.
как изучать технологии. Способы изучения одного и того же фреймворка/технологии. Рекомендуемый подход.
что всегда спрашивают на собеседованиях Java, Middle и Senior разработчиков.
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"Пути развития Java разработчика" Дмитрий Соколов
1. Заголовок презентации
Имя и фамилия автора доклада
Компания
Контактные данные 1
Контактные данные 2
Контактные данные 3
Контактные данные 4
Пути развития Java
разработчика
Dmytro Sokolov
BecomeJavaSenior
fb.com/dimafedd
twitter.com/SokolovDmytro
fb.com/becomejavasenior
becomejavasenior@gmail.com
7. Junior Java developer
Junior'ом обычно называют
разработчика, который только
начинает серьезно работать в
определенной области
технологий.
8. Junior Java developer
У такого разработчика есть
знания, позволяющие ему
работать над реальным проектом,
но очень мало (или нет) опыта
такой разработки. Зачастую в
технических аспектах он
советуется с более опытным
разработчиком.
9. Требования - Junior Java developer
▷ Программирование (системы
исчисления, чем оператор
отличается от операции,
некоторые алгоритмы)
▷ Язык Java (синтаксис, OOP
возможности, многопоточность,
стандартная библиотека)
10. Требования - Junior Java developer
▷ OOP и OOD (парадигмы,
основные паттерны
проектирования)
▷ Базы данных (JDBC, язык SQL)
11. Поведение - Junior Java developer
▷ Нуждается в постоянном
контроле
▷ Не отвечает за свой код.
▷ Важно показать, что умеешь
учиться и стремление решать
поставленные задачи в
назначенные сроки.
12. Поведение - Junior Java developer
То есть в результате его
деятельности может появиться
что-то работающее. Мыслит в
рамках языка и технологий.
13. Поведение - Junior Java developer
Знает язык программирования на
уровне получения сертификата и
прочитал книжку по конкретным
технологиям. При этом
программировать не умеет,
постоянно пишет плохой код по
причине отсутствия опыта, код
тяжел в поддержке.
14. Поведение - Junior Java developer
Быстро пишет прототип, но очень
долго доводит его до
работоспособности по причине
неумения программировать. Как
результат, за ним нужно следить,
постоянно поправлять, просить
все переписать и говорить, как
нужно переписать.
15. Поведение - Junior Java developer
▷ Стоит больше прислушиваться к
мнению старших коллег.
▷ Стараться делать свою работу
как можно качественнее.
▷ Проявлять инициативу, но в
пределах поставленных Вам
задач.
▷ Стараться изучить сначала
вещи, необходимые для текущей
работы.
18. Middle/Regular Java developer
Программист является лицом,
ответственным за качественное и
своевременное исполнение
порученной ему работы в проекте
разработки информационно-
программных систем, основанных
на применении современных
технологий.
19. Middle/Regular Java developer
Программист выполняет задачи по
программированию и
первоначальному тестированию
порученных ему компонент
системы и работает по внешним
спецификациям.
20. Требования - Middle Java developer
▷ Образование — законченное
высшее.
▷ Наличие практического опыта:
стаж работы не менее одного
года.
▷ Владение Software Engineering
Process?
21. Требования - Middle Java developer
Software Engineering Process:
1. Waterfall development
2. Prototyping
3. Incremental development
4. Spiral development
5. Rapid application development
6. Agile development (Scrum,
Kanban)
22. Требования - Middle Java developer
Иностранный язык — английский
технический, в том числе:
▷ умение читать техническую
литературу IT профиля (без словаря);
▷ умение комментировать тексты
программ (без словаря);
▷ умение общаться на
профессиональные темы (Pre
Intermediate).
23. Требования - Middle Java developer
▷ Владение методами и
инструментами анализа и
проектирования.
▷ Знание: языков разметки, web-
серверов и серверов
приложений, клиентских
технологий, серверных
технологий, СУБД, ОС, средств
офисной работы.
25. Поведение - Middle Java developer
▷ Контроля не требует - отвечает
за отдельные функции или
модули и т.п.
▷ Не надо учить, умеет решать
поставленные задачи
самостоятельно в рамках
подготовленной архитектуры.
26. Поведение - Middle Java developer
▷ Наконец научился
абстрагироваться от языка и
технологий, голова забита не
деталями языка, а понятиями
предметной области.
▷ Научился писать структурно,
кратко, поддерживаемо, без
копирования.
▷ Перестает писать плохой код.
Код получается поддерживать.
30. Senior Java developer
Ведущий программист является
лицом, ответственным за
качественное и своевременное
исполнение порученной ему
работы в проекте разработки
информационно-программных
систем, основанных на применении
современных технологий.
31. Senior Java developer
Он обладает глубокими знаниями
используемых технологий и
работает внутри проектной
команды без необходимости
контактировать с представителями
менеджмента заказчика.
32. Senior Java developer
Ведущий программист выполняет
работы по детальному
проектированию (созданию
спецификаций) компонентов на
основе предоставленных общих
спецификаций для крупных проектов
А для мелких проектов выполняет
проектирование полностью
самостоятельно.
33. Senior Java developer
Ведущий программист также
выполняет работы по
программированию и
первоначальному тестированию
порученных компонентов.
34. Требования - Senior Java developer
▷ Наличие практического опыта:
стаж работы не менее двух-трех
лет в качестве программиста.
▷ Владение Software Engineering
Process.
▷ Владение методами и
инструментами анализа и
проектирования.
35. Требования - Senior Java developer
▷ Знание: языков разметки, web-
серверов и серверов
приложений, клиентских
технологий, серверных
технологий, СУБД, ОС (Linux)
36. Требования - Senior Java developer
▷ английский технический
(Intermediate): умение читать
техническую литературу IT
профиля (без словаря);
▷ умение комментировать тексты
программ (без словаря);
▷ умение разрабатывать
документацию (со словарем);
умение общаться на
профессиональные темы
37. Поведение - Senior Java developer
▷ Может контролировать других,
отвечает за проект.
▷ Умеет подготавливать
инфраструктуру, решать
сложные задачи. Наставляет и
ведет junior'ов.
38. Поведение - Senior Java developer
За годы опыта выработал best
practices в решении конкретных
задач. За счет чего на большом
промежутке времени способен
демонстрировать бешеную
производительность в сравнении
с юниорами и миддлами.
39. Поведение - Senior Java developer
▷ Производительность
заключается в том, что делает
гораздо меньше ошибок, а
если и делает, то ошибки легко
устраняются, ибо локализованы
в конкретном месте.
▷ Держит cроки, которые он дает.
40. Fake - Senior Java developer/Team
Lead
Проработал на проекте с самого
начала, получил титул, так как
знает проект больше всего
Возраст ~ 23 года
49. Что мешает стать Middle/Senior?
▷ плохие базовые знания (Java
Core)
▷ отсуствие мотивации на
текущем месте работы
▷ не умение говорить
высокоуровневым языком
(абстракциями), не знание
архитектурных терминов
▷ плохой английский язык
51. Что поможет стать Middle/Senior?
▷ мотивация
▷ посещение конференций,
выступление на конференциях,
▷ чтение книг по soft скилам,
персональной эффективности,
коммуникативные,
командообразованию
▷ посещению тренингов по soft
скилам: ораторскому искуству,
тайм-менеджменту.
52. Что поможет стать Middle/Senior?
▷ активная работа в команде
▷ общение с более опытными
разработчиками/менторами
53. Что поможет стать Middle/Senior?
▷ Хорошее знание английского -
upper-intermediate
▷ Уменее прохождение
собеседований: уметь себя
продать, решать интревьюшные
задачи
▷ Глубокое понимание (теория)
языка Java и фреймворков
55. Как изучать технологии
1. Выполнить несколько tutorials
2. Посмотреть видео,
объясняющее общий принцип
работы
3. Прочитать официальную
спецификацию/guides
4. Пролистать по диагонале книгу
5. Написать свой проект с нуля
6. Пройти тренинг
(структурировать знания)
57. ▷ JavaCore
▷ Multithreading
▷ Collections
▷ JDBC
▷ Servlet API
▷ Spring IoC
▷ SQL, Транзакции, уровни
изолирования
Что всегда спрашивают на interview у
Java Middle/ Senior?
58. Почитать
Карьера в IT: должность Team Lead
http://dou.ua/lenta/articles/team-
lead-position/
Карьера в IT: должность Software
Architect
http://dou.
ua/lenta/articles/software-architect-
position/
59. Почитать
Пособие для будущего Java
разработчика
http://dou.ua/lenta/articles/java-
beginner-guide-1/
http://dou.ua/lenta/articles/kakie-
kachestva-nuzhny-senior-
razrabotchiku-ili-kak-zarabatyvat-na-
1000-dollarov-bolshe/
(комментарии)