Какой язык программирования учить в 2020 году, чтобы быть востребованным специалистом еще долгое время? Какой язык программирования выбрать, чтобы в 2020 году успешно стартовать карьеру в IT? Эти вопросы волнуют многих начинающих, и на этой теме «наживаются» многие блогеры :) Давайте разберемся, есть ли смысл в советах такого рода.
В этом видео я подробно расскажу вам о том, какие задачи выполняет 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 в общем
Путь в IT. От пользователя к DevOps. С чего начать и что делать дальше. Основные темы IT.
Изучение IT Сферы. С чего начать изучение. Что стоит изучать дальше.
Путь в ИТ от простого пользователь к DevOps.
Что отличает Системного администратора (SysAdmin) и DevOps.
! НЕ СТОИТ ВОСПРИНИМАТЬ ДАННОЕ ВИДЕО КАК ПРАВИЛО, это всего лиш один из вариантов последовательности изучения.
Протокол DHCP позволяет назначать IP-адреса компьютерам в сети автоматически.
Протокол использует архитектуру клиент-сервер, которые обмениваются сообщениями в режиме запрос-ответ.
Сообщения DHCP:
— DISCOVER — Поиск DHCP сервера
— OFFER — Предложение IP-адреса DHCP сервером клиенту
— REQUEST — Запрос IP-адреса DHCP клиентом
— ACK — Подтверждение назначения IP-адреса DHCP клиенту
— NACK — Запрет использования запрошенного DHCP клиентом IP-адреса
— RELEASE — Освобождение IP-адреса
— INFORM — Запрос и передача дополнительной конфигурационной информации
Для получения IP-адреса используются следующие сообщения: DISCOVER, OFFER, REQUEST, ACK (сокращенно DORA).
DHCP сервер выдает IP-адрес DHCP клиенту на ограниченное время, которое называется время аренды (lease time). После его окончания IP-адрес освобождается, но
DHCP клиент может продлить использование IP-адреса при необходимости.
Кроме IP-адреса, по DHCP также назначаются дополнительные параметры конфигурации сети. Для передачи этих параметров служат DHCP опции. Примеры часто используемых опций:
— Маска подсети
— Маршрутизатор по умолчанию
— Адреса DNS-серверов
— Имя домена
— Адреса серверов времени
— Маршруты
Практические занятия по курсу «Компьютерные сети» — goo.gl/YP3l83
Практика «Протокол DHCP в Wireshark» -https://youtu.be/WaP4SZY0GJQ
Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках: goo.gl/kW93MA
В современных айти компаниях таск-менеждер привычный инструмент для организации работы труда, но многие ругаются на него и говорят это порождает большую бюрократию. Да и всякие scrum, agile, kanban мешаю продвигать твои довольно важные задачи. Но я застал те времена и побывал в организациях, где этого не было и в лицах решил показать как это происходило.
Недавно @АйТиБорода выпустил видео DevOps ЗДОРОВОГО ЧЕЛОВЕКА. Но не везде он такой. В этом выпуске вы максимально глубоко погрузитесь в мир девопса в некоторых нехороших компаниях. Я его называю Галерный DevOps.
В этих компаниях не понимают что такое ДевОпс и видят в DevOps инженере волшебную таблетку. Но как вы знаете волшебства не бывает. К чему приводит внедрения DevOps методологии в таких компаниях в этом юмористическом выпуске.
00:00 — Модель OSI
02:27 — Уровни модели OSI
03:10 — Физический уровень
03:36 — Канальный уровень
04:30 — Сетевой уровень
05:08 — Транспортный уровень
06:05 — Сеансовый уровень
07:25 — Уровень представления
08:57 — Прикладной уровень
09:21 — Названия единиц передаваемых данных на разных уровнях
09:48 — Сетевое оборудование, работающее на различных уровнях
10:26 — Итоги
Модель взаимодействия открытых систем (Open Systems Interconnection) — это одна из двух популярных эталонных моделей организации компьютерных сетей. Модель является юридическим стандартом, принятым Международной организацией по стандартизации (ISO) в 1983 г.
Модель включает 7 уровней:
1. Физический.
2. Канальный.
3. Сетевой.
4. Транспортный.
5. Сеансовый.
6. Представления.
7. Прикладной.
Кратко рассматривается назначение каждого уровня.
На практике модель OSI не используется, но с ее помощью удобно описывать, как должны быть устроены компьютерные сети.
Основные задачи канального уровня:
1. Передача сообщений по каналам связи – кадров (frame). Определение начала/конца кадра в потоке бит
2. Обнаружение и коррекция ошибок
3. Множественный доступ к каналу связи:
— Адресация
— Согласованный доступ к каналу связи
Методы выделения кадров:
— Указатель количества байт
— Вставка байтов (byte stuffing)
— Вставка битов (bit stuffing)
— Средства физического уровня
Обнаружение и исправление ошибок:
1. Обнаружение ошибок
— Контрольная сумма
2. Исправление ошибок
— Коды исправляющие ошибки (с избыточной информацией)
— Позволяют обнаруживать и исправлять ошибки
3. Повторная отправка данных
— Если в кадре обнаружена ошибка, его можно отправить заново.
— Повторная отправка кадра, который не дошел до получателя
Типы повторной отправки:
1. Остановка и ожидание.
2. Скользящее окно.
Канальный уровень в модели OSI состоит из двух подуровней:
1. Подуровень управления логическим каналом (LLC)
— Отвечает за передачу данных (создание кадров, обработка ошибок и т.д.)
— Общий для разных технологий
2. Подуровень управления доступом к среде (MAC):
— Совместное использование разделяемой среды
— Адресация
— Специфичный для разных технологий
— Не является обязательным
Модель OSI не случайно называют моделью сетевого взаимодействия, а также ее не случайно называют эталонной моделью. Модель OSI описывает то как должны взаимодействовать машины в компьютерной сети.
Если говорить в рамках определения, то OSI – это базовая или эталонная модель взаимодействия открытых систем.
Любое взаимодействие происходит по протоколу или определённому набору правил взаимодействия, например, взаимодействие между браузером и веб-сервером (например, сервером Apache) происходит по протоколу HTTP.
Модель OSI разработала международная организация стандартизации ISO.
Все мы помним Вавилонскую башню и как плачевно закончилось ее строительство, примерно такая же ситуация произошла в 70-ых годах XX века: компьютеры одной крупной организации стали не понимать или плохо понимать компьютеры другой организации.
В качестве выхода из сложившейся ситуации была разработка эталонной модели сетевого взаимодействия OSI. Естественно, модель OSI – это академический подход и ее разработка заняла около 7 лети. Заметим, что модель OSI лишь описывает принципы взаимодействия устройств в сети, но не говорит о том, как это должно быть реализовано физически.
Зачем нужна эталонная модель?
Для ответа на этот вопрос давайте посмотрим приблизительную структуру вашего Интернет-провайдера:
Есть монтажники и техники сервиса, которые работают с кабелем: укладывают его, диагностируют обрывы и прочее.
Есть отдел/отделы, занимающиеся проектированием, строительством и развитием сети. Инженерам этого отдела нужно понимать: принципы построения компьютерных сетей, физические свойства материалов, используемых в качестве среды передачи данных, а также знать, что ресурсы любой среды конечны и представлять как эти ресурсы делятся между абонентами.
Есть отдел, занимающийся администрированием сети провайдера. Инженерам из этого отдела в идеале вообще не интересно: что используется в качестве среды передачи. Этот отдел решает вопросы логической организации сети, маршрутизации и транспортировки данных.
Конечно же, у провайдера есть отделы или группы, которые занимаются разработкой различных приложений, например, биллинговых систем, которые определяют – давать абоненту доступ к сети Интернет или просить с него денег.
Но если отбросить инженеров, о которых мы говорили в п.4, то верхних три уровня целиком и полностью отданы компьютеру/смартфону абонента и серверу, на который этот абонент пытается попасть.
Композиция «All Good In The Wood» принадлежит исполнителю Audionautix. Лицензия: Creative Commons Attribution (https://creativecommons.org/licenses/by/4.0/).
Исполнитель: audionautix.com/