Привет! На связи Елена Платковская, занимаюсь построением и оптимизацией ИТ-процессов.
Когда к нам в команду добавились новые коллеги, которые не очень много соприкасались с IT, стало понятно, что нужно выровняться в терминологии, чтобы лучше понимать друг друга на встречах. Сделали это в рамках клуба LUC, подробно о котором я рассказала здесь.
Задача состояла в том, чтобы дать базовые знания о работе в IT, предложить хорошо структурированную основу, на которую коллеги могли бы нагугливать сверху больше деталей. Цель - дать отправную точку для дальнейших бессонных ночей, проведенных в обнимку с поисковиками. Получилась короткая презентация с универсальной информацией в картинках без привязки к функционалу сотрудника, который совершает стартовый шаг на пути к IT.
Когда я начала подготовку, столкнулась со сложностью. С одной стороны, в интернете полно материалов для новичков. С другой, не попалась та волшебная страница, одной лишь ссылки на которую было бы достаточно для первого знакомства. Именно поэтому была замешана своя микстура, которая подошла для экспресс-погружения в IT.
Делюсь с вами слайдами, которые получились и которые мы включили для обязательного изучения в программу онбординга новичков без опыта работы в IT.
Виды IT
IT везде, вокруг нас и мы погружены в него. Кстати, не только когда заказываем такси или слушаем музыку. Собрала некоторые виды на картинке:
![](https://habrastorage.org/getpro/habr/upload_files/502/a4c/ddd/502a4cddda5e9a320e0a78885387c6c3.png)
В конце этого списка ставлю жирное многоточие, потому что перечислено далеко не все.
Для удобства в публикации я буду использовать термин ПО (программное обеспечение) для обозначения любого цифрового продукта.
Архитектура ПО
Давайте разберем внутреннее устройство практически любого ПО. Разработчики пишут код, затем строки кода объединяют в функции, функции в классы, а классы в модули. В итоге получается сервис. Сложные IT-продукты состоят из множества таких сервисов — например, большие корпоративные порталы. Это сильно похоже на дома, состоящие из стен, дверей, мебели. При этом внешне строения могут выглядеть одинаково, но внутри у каждого будет индивидуальный интерьер, отражающий задумки его владельца. Так и с IT-разработкой: что будет внутри конечного продукта — зависит от потребностей.
![](https://habrastorage.org/getpro/habr/upload_files/76e/357/658/76e357658403325370286dc6286a0a7c.png)
В самом начале, еще до написания кода, создается общий план будущего ПО — архитектура системы. То есть формируется упрощённое представление о будущем продукте, то есть о доме, но пока без мебели. Этот план также отображает то, как внутренние сервисы будут взаимодействовать друг с другом и внешним миром. Например, как интернет-магазин будет связываться с платёжными системами или социальными сетями через API. API (англ., application programming interface) — специальный набор правил, который позволяет разным частям системы взаимодействовать между собой.
Следующий этап — детализация, при которой прорабатываются конкретные технические требования к продукту. В результате разработки архитектуры системы у команды должно появиться представление о том, что нужно разработать: какой IT-продукт и какие функции он должен выполнять.
Два подхода к проектированию
В зависимости от потребностей и сложности будущего ПО различают два подхода к его проектированию на уровне архитектуры – монолитный и микросервисный. Это не имеет отношение к внешнему виду и речь идет только о внутреннем устройстве.
![](https://habrastorage.org/getpro/habr/upload_files/6c8/9ec/fae/6c89ecfaeddeb2013b9ac870ce0ff25f.png)
SDLC
Жизненный цикл ПО – этапы, через которые проходит любое ПО, начиная от зарождения первоначальной идеи до его непосредственного «выхода в свет», то есть релиза. Его еще называют SDLC - англ., Software Development Life Cycle.
По сути, это последовательность процессов создания ПО, который состоит из 6 этапов и охватывает период с момента принятия решения о его разработке и заканчивается, когда его перестают использовать. Каждый этап опирается на результат предыдущего. Подробнее каждый этап я отобразила на инфографике:
![](https://habrastorage.org/getpro/habr/upload_files/7f9/2cc/6b5/7f92cc6b5d7059dbaa2a11e417d9440c.png)
PDLC
PDLC (англ., Program Development Life Cycle) - итерационный цикл постоянного совершенствования и оптимизации продукта. Совокупность процессов создания продукта от идеи до выпуск на рынок.
Состоит из семи этапов, которые на своей картинке я оптимизировала, сократив до 6-ти:
1. Генерация идеи
2. Исследование рынка
3. Разработка концепта продукта
4. Непосредственно сама Разработка
5. Тестирование
6. Вывод на рынок
7. Период после запуска
Взаимосвязь SDLC и PDLC схематично выглядит следующим образом:
![](https://habrastorage.org/getpro/habr/upload_files/c4b/df6/102/c4bdf6102e83aec1fdee815baffa2f14.png)
Например, компания планирует в будущем выпустить на рынок сверхсовременный холодильник – продукт, работа над которым пройдет все этапы PDLC. При этом разработка «начинки», то есть ПО, станет частью этого цикла и будет вестись по SDLC.
Роли в IT
В IT очень и очень много профессий. Вот некоторые из них:
-
Разработчики/программисты/ девелоперы создают, пишут и поддерживают ПО, приложения, сервисы. Три основных вида:
Frontend-разработчики создают то, что мы видим снаружи любого ПО
Backend ведут разработку того, что находится «под капотом», обычный пользователь не видит эту часть, но благодаря именно ей любое приложение – это не просто красивая картинка, а работающий сервис.
Full-stack – совмещают функционал первых двух категорий.
Тестировщики. Специалисты, которые проверяют готовое ПО на соответствие требованиям, исследуют работоспособность, находят ошибки (баги). Делятся на автоматизаторов и ручников.
Бизнес-аналитик – это мостик между заказчиком и разработчиками. Он собирает требования, анализирует, фиксирует их в понятном для разработчиков виде. Отвечает на вопрос «Что разрабатываем?», «Что пользователи будут делать в готовой системе?».
Системный аналитик тоже разрабатывает требования к ПО, но отвечает на вопрос «Каким образом нужно настроить систему, чтобы пользователь смог выполнить в ней определенный набор действий?».
Специалисты по информационной безопасности/ безопасники. Профессионалы, которые занимаются защитой информации от цифровых угроз.
DevOps-инженер (англ., deveopment operations) - многопрофильные специалисты, которые умеют автоматизировать процессы и знают, как работают разработчики, QA и менеджеры.
Менеджеры проектов решают управленческие задачи: организуют команду, выстраивают процессы, планируют работу, следят за исполнением, контролируют ход работ, много общаются с заказчиками и собирают от них обратную связь.
И еще много-много-много других специалистов.
Методологии разработки
О том, что содержится в этом блоке, часто спрашивают в том числе и на собеседованиях, поэтому о тех основах, которые отображены на картинке, нужно детальнее поресерчить самим.
Если коротко, то методология представляет собой подход к разработке. Важно запомнить, что нет плохих и хороших – есть подходящие и не подходящие для разработки конкретного IT-продукта. Их много, рассмотрим самые распространенные.
Существуют каскадные (Waterfall) и гибкие (Agile) методологии, работа по которым сильно различается.
![](https://habrastorage.org/getpro/habr/upload_files/557/690/121/557690121385efc5c0c766d2996bb8df.png)
В свою очередь гибкие тоже делятся на подвиды. Самые популярные: Scrum, Kanban и SAFe для компаний с большим количеством проектов и команд, работу которых стараются синхронизировать и структурировать.
![](https://habrastorage.org/getpro/habr/upload_files/ce4/442/0de/ce44420deaee7f81e531bc4b407c157b.png)
Вот такая получилась карта ориентиров, которую можно использовать как основу для подготовки к вхождению в огромный мир IT.
Комментарии (10)
Samidara
01.08.2024 11:35+4Если новичок не может понять чем финтех отличается от геймдева и не знает аббревиатур БД, ПО, то тут вопрос к ответственным за найм.
КОГО вы вообще на работу взяли?
Samidara
01.08.2024 11:35+1А за вопросы, которые легко гуглятся вообще прописывать с ноги нужно (не в прямом смысле конечно, но все же).
Я лично всегда посылаю куда подальше с такими вопросами. Вопросы должны быть только касательно внутренней бизнес логики и архитектуры, то есть то, что в интернете просто так не гуглится.
Elena_Platkovskaja Автор
01.08.2024 11:35Иногда компании готовы сами обучать и нанимают потенциал и старания, а не уже готовый скилл. Поэтому я отметила, что материал собран без привязки к функционалу новичка.
Моя ценность как специалиста, помимо наличия определенных скиллов и опыта, еще и в том, что мне есть чем поделиться и что рассказать. Всегда с огромной вовлеченностью делюсь знаниями с теми, кому они нужны и кто готов их воспринимать.
Samidara
01.08.2024 11:35Спорное решение на мой взгляд.
Обучать сотрудников без опыта - это хорошее дело. Но если сотрудник не знает элементарных вещей и не умеет самостоятельно добывать информацию, то долгосрочные перспективы такого сотрудника вызывают некоторый скепсис.
Elena_Platkovskaja Автор
01.08.2024 11:35Ваш скепсис мне понятен и имеет под собой рациональное зерно. Поэтому нет ответа на вопрос "брать сотрудника без опыта или нет". Есть соотношение цели к рискам и ожидаемому профиту. Ну и пирамида синьорности при правильном внедрении не подводит.
А от фейлов никто не застрахован, как и от успеха.
itoolsy
01.08.2024 11:35Вроде про ИТ, но нет никого из сетевых инженеров, никого из сисадминов, никого из архитекторов. Я доживу до тех пор, когда перестанут называть ИТ только программистов и, тем более, менеджеров проектов.
say_mokc_no
01.08.2024 11:35Не понял как новичок с отсутствием таких знаний попал в компанию? Статья для студентов?
Насмешило определение девопса- что за многорукая Шива такая?
bezboroda
01.08.2024 11:35Я думал хабр, это про тех, кто уже айти. На худой конец курьезы и новости из мира айти. Так можно и до хелловордов на питоне дойти.
laisto
как-то неоднозначно. и как справочник нельзя использовать, т.к. все наборы заканчиваются "и т.д.", и воды хватает. если вам человеку надо объяснять, в чем отличие между веб, мобильной и игровой разработкой, объясните заодно ему чем синий цвет от красного отличается.
Elena_Platkovskaja Автор
Спасибо за коммент, интересная мысль.
В публикации даны опорные точки. IT - сфера большая и чтобы новичок не потерялся, со старта начав гуглить, например, о CI/ CD, ему даются те ключевые слова, на которые можно опираться. Поэтому нет цели объяснять, в чем отличие между разным ПО, цель в том, чтобы сказать, что оно бывает разным. А дальше должна подключиться самостоятельная работа новичка.
Эта информация содержит лишь ориентиры и поводы для дальнейшего поиска, а не учебное пособие. Хотя последнее было бы интересно, конечно, написать))