Типичные задачи junior разработчика в компании | Как работают джуниоры? (мой опыт)


В этом видео я подробно расскажу вам о том, какие задачи выполняет 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 в общем

Соцсети:
www.instagram.com/itwithvitaly/
www.facebook.com/itwithvitaly

#itcвиталиемкарнаухом #чтоделаетjunior #работапрограммистом

Асинхронный Python-код медленнее обычного кода! Ааа!!1один. Aiohttp VS синхронные фреймворки


Запускаем мощную платную обучающую программу, интересно принять участие? Пройдите опрос — simpoll.ru/run/survey/c44b6a04

Сказать спасибо можно здесь — boosty.to/digitalize.team

А точно ли вообще асинхронность в питоне нам нужна? Есть мнение, что старые добрые синхронные веб-фреймворки на Python таки работают быстрее и надёжнее. Давайте проверять!

Две упоминаемые статьи:
habr.com/ru/post/440282/
habr.com/ru/company/ruvds/blog/507570/

0:00 Популярные тесты производительности Python веб-фреймворков
3:49 Разворачиваем проект под тесты
6:39 Запуск тестов Aiohttp
9:05 Запуск тестов Meinheld с Falcon
10:40 Aiohttp сливает, асинхронность отстой:(
11:22 Или нет?
12:02 Изменим тесты и проведём их снова
14:38 Ёлочки-палочки, что происходит? Почему?
17:15 Мультипроцессинг, мультипоточность, асинхронность — когда что использовать?

/****************** about ******************/

Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:

— Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
— Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.

Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.

С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.

Мои соц сети:
www.facebook.com/a.goloburdin
www.instagram.com/alexeygoloburdin/
vk.com/a.goloburdin

---

Один день из жизни DevOps // Бесплатный урок OTUS


На вебинаре мы:
— рассмотрим 4 основных инструмента современного DevOps-инженера, каждый из которых реализует базовые практики: инфраструктура как код, CI/CD, обратная связь;
— научимся не ломать историю в Git и хорошо работать в команде;
— обсудим, чем Ansible отличается от других систем и почему именно его мы изучаем на курсе;
— рассмотрим Docker и расскажем, почему контейнеры и микросервисы чаще побеждают монолитные архитектуры.

Преподаватель: Лев Николаев — DevOps и тренер в компании Экспресс 42

Подключайтесь к обсуждению в чате — otus.pw/WcuH/

Пройдите опрос по итогам мероприятия — otus.pw/6Lxs/

Учитесь у профессионалов — otus.pw/28Ln/

Следите за новостями проекта:

— Facebook: otus.pw/3hO2
— Telegram: t.me/Otusjava
— ВКонтакте: otus.pw/850t
— LinkedIn: otus.pw/yQwQ/
— Хабр: otus.pw/S0nM/

Анализ исходного кода Redux | Функциональная композиция | Middleware


#soer #ityoutubersru
В этом видео речь пойдет о применении в Redux таких техника как:
— функциональная композиция
— каррирование
— чистые функции
— функции высшего поряка
— рекурсии
Чат для программистов — discord.gg/3UVJWAs
Спонсорская помощь — www.patreon.com/soersoft

Группа ВК — vk.com/codeartblog
Github — github.com/soersoft
Веб-сайт — codeart.ru

Что делать если задают некорректные вопросы на собеседовании


#soer #влог #ityoutubersru
В этом видео я рассказываю о том как можно набрать дополнительные очки на собеседовании, если вам задают стандартные, да еще и некорректные вопросы.

Чат для программистов — discord.gg/3UVJWAs
Спонсорская помощь — www.patreon.com/soersoft

Группа ВК — vk.com/codeartblog
Github — github.com/soersoft
Веб-сайт — codeart.ru

FizzBuzz четыре варианта решения на JS


#soer #ityoutubersru #Fizzbuzz

00:00 Введение
01:10 Структурное программирование
04:20 Программирование с флагами
07:15 Функциональное программирование
10:22 Архитектура решения
18:00 ООП

Исходники — www.patreon.com/posts/41484631

Спонсорство — www.youtube.com/channel/UCe_TcJarfs-HKy3NySy8Kng/join
Чат для программистов — discord.gg/3UVJWAs
Спонсорская помощь — www.patreon.com/soersoft

Группа ВК — vk.com/codeartblog
Github — github.com/soersoft
Веб-сайт — codeart.ru
Instagram — www.instagram.com/fact0rial/

Протокол HTTP | Курс "Компьютерные сети"


Протокол передачи гипертекста HTTP.
Страница курса — www.asozykin.ru/courses/networks_online

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

Борис Вольфсон, Основы Agile


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

Я расскажу базовые вещи о ценностях и принципах Agile, на основе которых развиваются современные Agile-методологии Scrum и Kanban. Мы рассмотрим вопрос, почему появилась гибкая разработка (на Западе и у нас), чем она отличается от традиционного подхода к разработке программного обеспечения и почему итеративные методологии стали фактически стандартом дефакто в софтверном мире.

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

Также будет затронута тема внедрения Agile и типичные проблемы, с которыми приходится сталкиваться на этом пути.

Борис Вольфсон. Почему Agile больше не работает


Гибкие подходы перестали работать! По крайне мере, если судить по многочисленным публикациям, которые все чаще и чаще стали появляться. У кого-то не работает Scrum, у кого-то не прижился Канбан и, вообще, Agile не работает. В своем докладе я также приведу несколько примеров критики Agile в виде статей и докладов, разберу типичные заблуждения и ошибки, которыми оперируют критики.

Если использовать модель жизненного цикла принятия инноваций, можно спрогнозировать, что число такого негатива будет расти, потому что в России Agile начинают использовать не только инноваторы и ранние последователи, но и раннее большинство, которому трудно грамотно внедрить Agile и стать действительно гибкими.

Опытные управленцы, которые владеют гибкими подходами, обычно посмеиваются над этим негативом и пересказывают друг другу как анекдоты, а это как раз и есть та пропасть, которую Джеффри Мур описал в своей книге. Дополнительно мы обсудим, где сейчас находится Agile с точки зрения цикла зрелости технологий, так как эта модель тоже объясняет неудачный опыт использования Agile.

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

Слайды по ссылке www.slideshare.net/ScrumTrek/agile-68867577

Гибкое управление продуктом в двух словах (русская версия)


Перевод на русский язык видео-презентации Хенрика Книберга «Agile Product Ownership in a nutshell) — blog.crisp.se/2012/10/25/henrikkniberg/agile-product-ownership-in-a-nutshell

Оригинал видео — www.youtube.com/watch?v=502ILHjX9EE