Я вам не скажу за все айти, оно большое. Могу рассказать, куда можно пойти, как я это вижу со своей колокольни начинающего автоматизатора тестирования веб-разработки (у меня такое впечатление, что вся разработка для не-айти компаний сосредоточена именно там, но я работаю в аггрегаторе, поэтому вижу ситуацию только с одной стороны). Как тут уже сказали, в первую очередь нужно знать английский хотя бы на B1-B2, это в разы повышает шанс найти хорошую работу.
Разработчики:
Пишут код на основе требований, полученных от аналитиков.
- Фронтэнд-разработчики. Разработчики клиентской части приложения, делают то, что мы потом видим в браузере. Javascript, фреймворки типа React'a или Vue, HTTP, HTML. SOAP, REST - для обмена данными с бэкэндом.
- Бэкэнд-разработчики. Видел на Java и Node.js. Python вроде как тоже популярен, но я пока не встречал. Базы данных и HTTP обязательно. На них лежит вся серверная часть - занимаются обработкой данных, полученных от фронтэнда, отправкой данных фронтэнду, их структурированием и хранением в базе данных.
- DevOps. Системный администратор на максималках. Не тот, который делает черную работу, тянет волокно и меняет картриджи, а тот, который продумывает и организует все вычислительные и сетевые ресурсы, касающиеся работы проекта. Сейчас обычно не работает руками с железом, все уже в облаках. Linux, контейнеризация (Docker, Kubernetes), собственно облака - AWS, Azure, Google Cloud.
Не программисты: собственно код приложения не пишут, но без них разработчики не разберутся.
- Бизнес-аналитики. Не требует навыков программирования (но общее понимание того, как все работает, все равно нужно) - главное связующее звено с заказчиком, отвечает за понимание того, что этому заказчику, собственно, нужно. Нужно понимание требований, из чего они состоят и какими должны быть, знание методологий разработки, умение общаться с разными людьми и их понимать, много здравого смысла. Основной конечный продукт - собственно, требования, по которым потом пишется и тестируется ПО.
- Тестировщики (ручные тестировщики, мануальщики) - люди, которые отвечают за то, чтоб конечный продукт как можно лучше соответствовал требованиям, вытащенным из заказчика бизнес-аналитиком и реализованным разработчиками. Вопреки стереотипам, перед ним нет задачи "сломать программу" или "найти все баги". Не просто тыкает в кнопки, чтоб посмотреть, что получится - тестировщик организует весь процесс тестирования, разрабатывает план и подход тестирования, по требованиям пишет тест-кейсы (т.е. четкий набор действий от начала до конечного результата с описанием нужного результата), собирает наборы входных данных для максимальной вариативности тестов и только потом собственно тыкает в кнопочки на сайте или в мобильном приложении, следуя этим тест-кейсам, сверяет результат и заводит баги.
- Автоматизаторы тестирования - подвид тестировщика. То, чем я занимаюсь последний год, поэтому хоть что-то в этом понимаю. На основе тест-кейсов пишут программы, тыкающие кнопочки за мануальщиков. Так же могут тестировать API, т.е. взаимодействие между фронтэндом и бэкэндом. Я пишу на Java + Selenium для UI и Java + RestAssured для API.
Вот в первом приближении все. Как всегда, все намного сложнее, чем тут описано, но когда только приходишь в айти, выбираешь примерно из этого. Чтоб бы не выбрал - придется много учиться все время, гуглить, читать документацию, сидеть и вникать во все, собирать информацию везде, где можно.