Типичные задачи 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

---

Как собрать электрощит для частного дома?


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

Щит ABB: avselectro.ru/catalog/nizkovoltnoe-oborudovanie/shchitovoe-oborudovanie-i-nku/korpusa-shchitov-i-shkafov/1063350
Набор для крепления щита в полые стены: avselectro.ru/catalog/nizkovoltnoe-oborudovanie/shchitovoe-oborudovanie-i-nku/aksessuary-dlya-shchitov-i-shkafov/montazhnye-aksessuary-dlya-shkafov/1063328
Выключатель автоматический 2 полюсный 32A C 4,5kA ABB: avselectro.ru/catalog/nizkovoltnoe-oborudovanie/apparaty-i-ustroystva-zashchity/modulnye-avtomaticheskie-vyklyuchateli-avtomat/79988
Выключатель автоматический 1 полюсный 16A C 6kA ABB: avselectro.ru/catalog/nizkovoltnoe-oborudovanie/apparaty-i-ustroystva-zashchity/modulnye-avtomaticheskie-vyklyuchateli-avtomat/72174
Выключатель автоматический 1 полюсный 10A C 6kA ABB: avselectro.ru/catalog/nizkovoltnoe-oborudovanie/apparaty-i-ustroystva-zashchity/modulnye-avtomaticheskie-vyklyuchateli-avtomat/72172
Распределительный блок 100А 4х-полюсный 7 отверстий: avselectro.ru/catalog/nizkovoltnoe-oborudovanie/klemmy-i-klemmnye-bloki/klemmniki-shiny-zazhimy/63297
Выключатель автоматический 1 полюсный 25A C 6kA ABB: avselectro.ru/catalog/nizkovoltnoe-oborudovanie/apparaty-i-ustroystva-zashchity/modulnye-avtomaticheskie-vyklyuchateli-avtomat/72176
Шинная разводка 1-фазн. 12мод.63А: avselectro.ru/catalog/nizkovoltnoe-oborudovanie/shchitovoe-oborudovanie-i-nku/shiny-i-shinnye-razvodki/72300
Реле контроля напряжения RBUZ D63t: avselectro.ru/catalog/nizkovoltnoe-oborudovanie/shchitovye-pribory/kontrolnoe-rele/rele-kontrolya-napryazheniya/840415
Устройство защитного отключения 2 полюсный 25A 30mA тип AC ABB: avselectro.ru/catalog/nizkovoltnoe-oborudovanie/apparaty-i-ustroystva-zashchity/ustroystva-zashchitnogo-otklyucheniya-uzo/73031
Провод 6 мм кв. синий: avselectro.ru/catalog/kabeli-i-provoda/kabeli-i-provoda-odnozhilnye/provoda-ustanovochnye-povyshennoy-gibkosti/31680
Провод 6 мм кв. красный: avselectro.ru/catalog/kabeli-i-provoda/kabeli-i-provoda-odnozhilnye/provoda-ustanovochnye-povyshennoy-gibkosti/33392
Провод 10 мм кв. красный: avselectro.ru/catalog/kabeli-i-provoda/kabeli-i-provoda-odnozhilnye/provoda-ustanovochnye-povyshennoy-gibkosti/31644
Провод 10 мм кв. синий: avselectro.ru/catalog/kabeli-i-provoda/kabeli-i-provoda-odnozhilnye/provoda-ustanovochnye-povyshennoy-gibkosti/31643
Наконечник штыревой втулочный изолир. 10мм.кв. х12мм (уп.=100шт) КВТ: avselectro.ru/catalog/kabeli-i-provoda/aksessuary-dlya-kabelya/kabelnye-nakonechniki-i-soediniteli-gilzy/763105
Наконечник штыревой втулочный изолированный 6,0мм.кв. х 12мм желтый (уп.=100шт.) КВТ: avselectro.ru/catalog/kabeli-i-provoda/aksessuary-dlya-kabelya/kabelnye-nakonechniki-i-soediniteli-gilzy/400579
Ограничитель на DIN-рейку: avselectro.ru/catalog/nizkovoltnoe-oborudovanie/klemmy-i-klemmnye-bloki/izolyatory-i-ogranichiteli-dlya-klemmnykh-blokov/51955
Щипцы для зачистки электропроводов: vseinstrumenti.ru/ruchnoy_instrument/elektromontazhnyj/dlya_snyatiya_izolyacii/sparta/schiptsy_dlya_zachistki_elektroprovodov_matrix_sparta_177305/
Ножницы кабельные: avselectro.ru/catalog/ruchnoy-instrument/instrumenty-dlya-raboty-s-kabelem/nozhnitsy-kabelnye/759672
Инструмент для снятия изоляции КВТ WS-12 69476: voronezh.vseinstrumenti.ru/ruchnoy_instrument/elektromontazhnyj/dlya_snyatiya_izolyacii/kvt/instws-12_69476/
Пресс-клещи ПКВк-10у: avselectro.ru/catalog/ruchnoy-instrument/zazhimnoy-instrument/press-gidravlicheskiy/1167917
Пресс-клещи ПКВк- 6: avselectro.ru/catalog/ruchnoy-instrument/zazhimnoy-instrument/press-gidravlicheskiy/75118

Music:
by Guggenz: soundcloud.com/guggenz

Добро пожаловать на мой канал, друзья! Здесь я делюсь информацией в разных областях жизни — от технологий до путешествий! Надеюсь Вам понравиться!
Подписаться на канал: www.youtube.com/channel/UCJHS22_QyRowmNAaxoUd4dA
Если Вам нравится информация на канале, Вы можете поддержать меня: clck.ru/LBRYB
— Я вконтакте ► vk.com/artyom2503
Я в instagram► www.instagram.com/amatyashov/

Как мониторить сетевые устройства?


В этом ролике посмотрим на один вариант мониторинговой системы, написанной на Python.

Навигация:
00:00 — Постановка задачи
05:19 — Разбор кода
19:30 — Демонстрация на ноутбуке
20:55 — Регистрация на TimeWeb
21:33 — Создание виртуальной машины
23:15 — Настройка сервера
24:40 — Настройка домена
28:25 — Демонстрация на сервере
29:27 — Плюшка от TimeWeb

GitHub репозиторий: github.com/amatiashov/YT-Device-Monitoring
Docker image: hub.docker.com/repository/docker/artemprojects/device-monitoring

TimeWeb регистрация (если нужны виртуальные машины, выбираем VDS-хостинг, если нужен хостинг — выбираем Виртуальный хостинг): timeweb.com/ru/?i=52533
DNS TimeWeb для переноса домена: timeweb.com/ru/support/faq/domains/transfer/kakie-ns-servery-neobkhodimo-ukazyvat-dlya-domena/#answer
Lets Encrypt в Ubuntu 18.04 www.digitalocean.com/community/tutorials/nginx-let-s-encrypt-ubuntu-18-04-ru

Друзья, только при монтаже заметил, что на видео пропущены два момента:
1. Что это за строки на 26:45
Если потребуется добавить хотя бы какую-то аутентификацию, то можно использовать basic authorization. Как это сделать, можно почитать здесь:
www.tecmint.com/password-protect-web-directories-in-nginx/

2. Ничего не сказано про Notification Service
В моем случае — это отдельный микросервис, который я не стал рассматривать на видео, чтобы не делать его слишком длинным. К нему поступают запросы через REST API и отправляется нотификации через email, sms и еще через один мессенджер))) На видео в репозитории в качестве Notification Server лежит по сути вывод в консоль. Если интересно как все это работает, напишите, пожалуйста в комментариях)))

Добро пожаловать на мой канал, друзья! Здесь я делюсь информацией в разных областях жизни — от технологий до путешествий! Надеюсь Вам понравиться!
Подписаться на канал: www.youtube.com/channel/UCJHS22_QyRowmNAaxoUd4dA
Если Вам нравится информация на канале, Вы можете поддержать меня: clck.ru/LBRYB
— Я вконтакте ► vk.com/artyom2503
Я в instagram► www.instagram.com/amatyashov/

На машине "Японским Гаваям" - Почему Окинава не так популярна как Гавайи?


На машина по главному острову архипелага Окинава. Дороги и автомобили. Американская военная база и как к ней относятся местные жители? Почему Окинава не такая популярная как Гавайи и чего там не хватает туристу?

Обучение в Японии: easytravel.jp/

**********
Станьте спонсором канала и получите возможность смотреть видео первым, смотреть стримы в записи и задавать вопросы и получить доступ к экслюзивному контенту.
www.youtube.com/channel/UC1AhzkpXFX6_kAc7niTcc3w/join
**********

Влог о Японии — Все что вы хотели знать о жизни в Японии

На что я снимаю видео: www.youtube.com/watch?v=r4-gUVKIxjI

Все видео о Японии: www.youtube.com/watch?v=Ke626LW_AX4

Повелся на большую зарплату


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

Поддержать канал: www.patreon.com/seniorsoftwarevlogger
Сайт: seniorsoftwarevlogger.com
Футболки: teespring.com/stores/senior-software-vlogger
Моя техника и другие штуки kit.co/seniorsoftwarevlogger/my-setup

Чем плоха удаленная работа?


Мысли по поводу удаленной работы и профессионального роста.

Поддержать канал: www.patreon.com/seniorsoftwarevlogger
Сайт: seniorsoftwarevlogger.com
Футболки: teespring.com/stores/senior-software-vlogger
Моя техника и другие штуки kit.co/seniorsoftwarevlogger/my-setup

10 вопросов инженеру DevOps


Короткое интервью с DevOps-инженером компании iSpring:
00:00 Начало
00:13 Кто ты?
00:35 Что такое DevOps?
03:16 Как ты до этого докатился?
04:28 Чем занимаешься на работе?
05:27 У нас звонят в полицию, если что-то не работает?
05:42 Что тебе нравится в работе?
06:29 Что не нравится в работе?
07:34 Последний раз, когда нужно было вставать по тревоге
09:08 Как стать DevOps-инженером?
09:59 Как начать практиковать DevOps в компании?
12:07 Топ 3 качества DevOps-инженера
Рубрика «Глупый Блиц»:
12:57 Почему работаешь стоя?
13:56 Кто круче — девопсы или фиксики?
14:10 Мы умеем вызывать Пиковую Даму. А как вызвать девопса?

Kubernetes для тех, кому за 30 / Николай Сивко (okmeter.io)


Приглашаем на DevOpsConf live! — профессиональную конференцию по интеграции процессов разработки, тестирования и эксплуатации
29 -30 сентября и 6-7 октября 2020
Подробности и билеты bit.ly/2NGn8Tt
— DevOpsConf Russia 2018

Тезисы и презентация:
devopsconf.io/moscow/2018/abstracts/4005

Про kubernetes сейчас говорят часто, громко и восхищенно.

Мы в okmeter.io в какой-то момент поняли, что нам тоже нужен k8s в production, хотя у нас нет даже CI/CD, но есть задача делить общий пул серверов между приложениями и достаточно легко добавлять мощности в кластер. При этом был ряд обстоятельств, которые усложняли внедрение k8s:
* мы очень заботимся об отказоустойчивости (мы не притаскиваем новые технологии в prod, пока не разберемся в них на достаточном уровне);
* у нас есть сервисы со временем ответа меньше 10ms;
* у нас очень мало человеческих ресурсов на эту задачу (узнать 10 новых терминов ОК, 50 — уже нет).

— Нашли ошибку в видео? Пишите нам на support@ontico.ru