В этом ролике я расскажу вам чем отличаются Junior, Middle, Senior и Team Lead. Какие обязанности они выполняют и какие роли у них в командах.
А также дам свою оценку тому, сколько времени нужно инвестировать для того, чтобы дойти до каждого из этих грейдов.
=========================
Ссылки на соц. сети:
В этом видео я подробно расскажу вам о том, какие задачи выполняет Junior разработчик в компании и что вам нужно уметь делать для того, чтобы претендовать на должность Junior.
Чтобы далеко не ходить, возьмем меня как конкретный пример, значит 2013 год, я прихожу в большую компанию работать Java Junior после практики, меня сажают на большой проект, который связан с индустрией healthcare т.е. писать софт для страховых компаний в США.
Я знакомлюсь с командой 3 разработчика (я, наш тимлид и еще один миддл), 2 тестировщика, бизнес аналитик на американской стороне и 2 разработчика тоже на американской стороне.
Мы работали по Scrum-у, это такой подход разработки когда мы определяем кол-во заданий на отрезок времени и делаем их, например в течении 2х недель. Если хотите подробное видео по Scrum то напишите в комментариях.
*Scrum — метод управления проектами
После планирования распределяются задачи согласно рубашке задач (монотонные легкие — junior-у, сложные задания для продвинутых миддлу и тимлиду). Я получаю свои задачи и начинаю с того, у которого самый высокий приоритет.
Проект состоял из 3х больших частей на которых нужно было работать, это Front End на Javascript, Backend на Java и реляционная база (SQL соответственно).
Так как я выполнял задачи на всех 3х уровнях, я дам вам пример по каждому из них.
Итак пример простого задания: Есть личный кабинет пользователя, где он должен быть в состоянии ввести свой контактный номер телефона, это новое поле, которого еще нет в системе. Поэтому оно должно быть добавленно в каждый из уровней приложения.
База данных
Начинаем с задачи на SQL: Нужно найти нужную таблицу, куда вставить это поле, расширить таблицу в базе данных так, чтобы она могла сохранять номер телефона, повесить на нее констреинты уникальности, просмотреть есть ли в этой таблице хранимые процедуры или триггеры настроеные на эту таблицу и если уместно — поправить запросы, чтобы они тоже отдавали номер телефона.
Также сделаем оговорку что это не пет проджект, а реальный проект, в котором часто самая простая задача может стать достаточно сложной для реализации. Например в базе про которую я говорю было пример 300 таблиц. Написали, протестировали, идем дальше.
*Pet project — небольшой проект для собственных, обучающих целей
Java Backend
Здесь уже уровень доступа к базе данных и бизнес логика. Сразу же представляем себе проект в котором несколько миллионов строчек и чтобы его установить и поднять локально уходило могло уйти пару дней.
*Бизнес логика — требования бизнеса переведенные на логический язык программирования.
Нужно найти модель которая соответствует таблице в базе расширить ее номером телефона, написать или расширить методы которые работают с этой таблицей чтобы можно было и сохранять и считывать информацию. Также обязательно нужно добавить валидаторы, которые проверяют номер телефона по определенном шаблона (я говорю сейчас о регулярном выражении. И конечно же потом проверить эту цепочку в обе стороны.
Front End
Тоже представляем огромный фронт проект на несколько сотен тысяч строк. Нужно добавить эту форму в личный кабинет, добавить валидацию по регулярному выражению, связать это все с запросами на бекенд в обе стороны и протестировать.
Конечно в процесс вовлечено гораздо больше действий чем просто написать код, это и прояснить у бизнес аналитика какие-то непонятные моменты, пройти код ревью процедуру у своей команды, помочь тестировщикам разобраться в логике, оценить задание во времени.
Примерами других заданий может быть например:
SQL
Написать sql запрос который покажет статистику покупок людей с помощью карты visa, а не мастеркард за сезон, или собрать полную информацию по юзерам у которые покупали страховку в прошлом году в текущее время года.
Java
Написать валидацию полей юзера используя регулярные выражения или например создать отдельный обработчик запроса, который отсылает всем пользователям в списке письмо с благодарностью.
Front End
Добавить фильтр по нескольким критериям на страницу покупки страховки, например фильтрация по компании, по стоимости, по длительности.
Также не забывайте что везде вам нужно придерживаться технологий и практик, которые уже используются на проекте, т.е. вам нужно хорошо знать стек технологий, чтобы быть в состоянии качественно сделать задание.
Тайм-коды:
00:00 Начало
0:31- мой опыт работы как Junior-а
1:01- по какой системе мы работали
1:25- распределение задач в команде
1:52- деления проекта на части
2:36- задача Junior-a
3:14- что я мог делать для выполнения этой задачи?
4:56- доработка логики на Java Backend
7:15- разработка логики на Front end
8:42- задачи для Junior-a в SQL
9:17- задачи для Junior-a на Java
10:15- задачи для Junior-a во Front End приложении
12:36- чего ожидают от Junior-a в общем
Hypertext Transfer Protocol (HTTP) – протокол передачи гипертекста, основа World Wide Web
Тим Бернерс-Ли в ЦЕРН предложил концепцию Web в 1989 году.
Uniform Resource Locator (URL) – уникальное положение ресурса.
В стеке TCP/IP протокол HTTP находится на прикладном уровне. Используется протокол транспортного уровня TCP, порт сервера 80. HTTP работает в режиме запрос-ответ.
Данные передаются в текстовом виде.
Версии протокола HTTP:
HTTP 0.9 – экспериментальная версия ЦЕРН, 1991
HTTP 1 – первая официальная версия протокола, 1996
HTTP 1.1 – расширение первой версии HTTP, 1997. Кэширование, постоянное соединение, аутентификация. Используется сейчас
HTTP 2 – современная версия HTTP, 2015. Вводится в эксплуатацию
Структура пакета HTTP:
— Метод запроса/статус ответа
— Заголовки (не обязательно)
— Тело сообщения (не обязательно)
Методы HTTP:
GET – запрос Web-страницы
POST – передача данных на Web-сервер
HEAD – запрос заголовка страницы
PUT – помещение страницы на Web-сервер
DELETE – удаление страницы с Web-сервера
TRACE – трассировка страницы
OPTIONS – запрос поддерживаемых методов HTTP для ресурса
CONNECT – подключение к Web-серверу через прокси
Статусы HTTP:
1XX – информация
2XX – успешное выполнение (200 ОК)
3ХХ – перенаправление (301 – постоянное перемещение, 307 – временное перенаправление)
4ХХ – Ошибка на стороне клиента (403 – доступ запрещен, 404 – страница не найдена)
5ХХ – Ошибка сервера (500 – внутренняя ошибка сервера)
Практические занятия по курсу «Компьютерные сети» — goo.gl/YP3l83
Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках: goo.gl/kW93MA
ytimg.preload(https://r14---sn-axq7sn7e.googlevideo.com/generate_204);ytimg.preload(https://r14---sn-axq7sn7e.googlevideo.com/generate_204?conn2);SCRUM — метод управления проектами. Обучающий мультик для вас и ваших сотрудников! — YouTube<link rel=«alternate» type=«application/json oembed» href=«www.youtube.com/oembed?format=json
Мир меняется. Высокая скорость изменений трансформирует бизнес-модели и сами организации. В новом мире решения надо принимать быстро и уметь синхронизировать работу большого количества людей. Важность по-настоящему командной работы растет. Появляются роли, главной задачей которых является построение эффективной команды.
— Речь идет о роли Scrum Master/Agile Coach. В докладе мы ответим на вопросы:
— Какое место они занимают в организации?
— Какими они должны быть?
— Что входит в их обязанности?
— Что они должны знать и уметь?
В современных айти компаниях таск-менеждер привычный инструмент для организации работы труда, но многие ругаются на него и говорят это порождает большую бюрократию. Да и всякие scrum, agile, kanban мешаю продвигать твои довольно важные задачи. Но я застал те времена и побывал в организациях, где этого не было и в лицах решил показать как это происходило.
Основные моменты:
00:00 О чем ролик?
02:00 Университет
08:20 Начало работы
10:47 Первое приложение
16:35 Работа в стартапе
20:16 Работа в EPAM
26:30 Как начал создавать курсы
30:25 Как стал Senior
32:08 Работа в аутсорсе как ИП
37:14 Как пришел к Youtube
42:35 Выводы