В этом уроке мы поговорим о том, какие бывают компании и направления в разработке.
Компании делятся на две больших категории, исходя из ролей, которые в них играют программисты и разработка программного обеспечения. Первая группа — это те компании, в которых IT — это просто отдел, который не является основным бизнесом, а вторые — те, в которых бизнес построен вокруг IT.
С теми компаниями, в которых IT представлен в качестве отдела, всё достаточно просто. Это могут быть фабричные производства, банки, крупные строительные и любые другие компании, в которых нужна автоматизация. Чаще всего эти IT-отделы нужны именно для автоматизации документооборота или улучшения каких-то бизнес-процессов внутри компании, и от IT-отдела не требуется ничего сверхъестественного, кроме решения конкретных потребностей этого бизнеса.
Вторая категория компаний — это те компании, в которых бизнес построен вокруг IT. Они делятся еще на несколько типов, о которых нужно знать.
Виды разработки
Заказная разработка (outsourcing)
Первый тип — компании, занимающиеся заказной разработкой, или аутсорсингом. Такие компании имеют в своем штате разработчиков — иногда совершенно разных — и буквально продают их рабочее время заказчикам, у которых своих разработчиков нет, но им нужен какой-то софт. Большие аутсорсеры работают с представителями различных направлений бизнеса: промышленными предприятиями, страховыми компаниями, банками — теми, кому нужен серьёзный софт, в разработке которого задействовано много разработчиков.
Из-за особенностей бизнеса заказной разработки, по сути построенного в том или ином виде на продаже времени своих сотрудников, он стабилен, когда в нём много разработчиков — чем больше, тем лучше. По этой причине аутсорсеры стараются быть очень большими, у них работает очень много молодых разработчиков, они часто интегрируются с университетами, имеют кучу офисов по всему миру. В крупных компаниях, таких как EPAM, Luxoft и DataArt, работают тысячи девелоперов. Эти компании действительно зарабатывают много денег и очень стабильны. Помимо таких гигантов, в аутсорсинге работают очень много небольших компаний: от 1-2 до 50-100 разработчиков. Однако чем меньше компания, тем более она нестабильная: если у вас в одном месте где-то заказ не пошёл, освобождаются люди, которых надо чем-то занимать, иначе их зарплата не будет окупаться. С одной стороны, этому бизнесу присущи большие риски, но с другой, его очень легко начать — отсюда и большое количество компаний в нём. Можно просто позвать своих друзей и предложить им делать аутсорсинг. После этого нужно найти первых клиентов — и можно работать. А дальше по сарафанному радио о компании узнаёт все больше и больше клиентов, и при хорошем раскладе можно успешно зарабатывать. Некоторые компании, осуществляющие заказную разработку, именно так и начинали свою деятельность.
Продуктовая разработка
Другое большое направление — это продуктовая разработка, когда компании занимаются развитием какого-то продукта, интересного потребителям. Если у вас действительно получается сделать какой-то востребованный продукт, то соотношение заработка к затратам обычно несоизмеримо. В аутсорсинге все достаточно просто: вы берете человека, он обходится вам в такую-то сумму, зарабатываете вы с его помощью такую-то сумму, масштабируетесь и линейно растёте. В продуктовой разработке, если ваш продукт востребован, вы можете иметь команду в 4 человека, но при этом зарабатывать миллионы долларов и обслуживать миллионы пользователей. Эта модель немного интересней, потому что позволяет вам неограниченно масштабироваться, но создать такой продукт значительно сложнее, чем начать аутсорсинг. Кроме того, жизненные циклы некоторых продуктов время от времени подходят к концу из-за изменения конъюнктуры рынка, реалий или по иным причинам, и они перестают существовать, поэтому важно уделять внимание их диверсификации.
Классификация ПО
Теперь давайте разберёмся, какие виды программного обеспечения и направления разработки существуют, куда можно идти и чем заниматься.
Существует множество различных классификаций программного обеспечения, но при выборе направления работы программисты в первую очередь обращают внимание на платформу, которую затем меняют крайне редко. Классификация прикладного ПО по платформам:
- Web-программирование
- Мобильная разработка
- Десктоп
- Серверное ПО
Огромной популярностью пользуется мобильная и веб-разработка — в них больше вакансий, денег и возможностей. В разработке есть специальные направления, не связанные с одним типом платформы, такие как разработка игр (геймдев). Программисты пишут игровые движки, игры для веба и десктопа, и всё больше и больше игр портируется или разрабатывается для мобильных устройств. И скорее всего, созданием игр при текущих условиях будут заниматься именно те, кто работает в мобильной разработке, а не просто люди из области геймдева, которые просто возьмут и сменят платформу. Это лишь отвлеченный пример, связанный с трендами современности: всё уходит в веб и мобильные устройства, но в целом он прекрасно иллюстрирует взаимосвязь платформ и специализированных отраслей разработки, показывая важность первых при выборе направления своей деятельности.
Серверное ПО
В разработке серверного ПО могут использоваться абсолютно любые языки. Серверное ПО в конечном итоге пересекается и с мобильной разработкой, и с веб-разработкой, и вообще с любым видом разработки. Серверное программное обеспечение подразделяется на прикладное ПО, системное ПО и инструментарий.
Прикладное ПО
В программировании почти всегда есть фронтенд-часть — та, с которой непосредственно взаимодействует пользователь, и бэкенд-часть, которая находится где-то на сервере. Самостоятельная или связанная с фронтенд-частью — именно она и представляет собой прикладное ПО. Это могут быть и какие-либо расчеты, вычисления, аналитика, работа с большими объемами данных, анализ, биржи — всё что угодно.
Системное ПО
Это особый тип программного обеспечения, с помощью которого компьютеры выполняют полезные задачи — это операционные системы, драйверы и иные программы, связанные непосредственно с железом.
Инструментарий
Это всё, что помогает разработчикам: средства отладки, фреймворки, да и сами языки программирования. Это отдельное направление, которое требует очень серьёзного уровня разработчиков. Без базового фундаментального образования заниматься этим направлением очень сложно, но при большом желании и усердии возможно.
Десктоп (Desktop)
Теряющее популярность, но все еще очень активное направление — это десктоп. Это так называемые "толстые клиенты", когда программа запускается локально, чаще всего без подключения к интернету.
В этом направлении всегда были популярны такие языки, как С++, Java и C#, но на пятки признанным авторитетам наступают те языки, которые еще не так давно никто не планировал использовать для написания толстых клиентов.
Но современный мир диктует свои правила, и универсальным языком, который все глубже проникает абсолютно во все направления разработки и на котором появляется всё больше приложений, стал JavaScript. Даже представители компании Microsoft заявили, что в будущих операционных системах Windows все приложения будут использовать HTML и JavaScript. И действительно: на JavaScript уже пишут серьёзные толстые клиенты и приложения на десктопе. Яркий тому пример — VSCode, очень популярный редактор, который будет использоваться во многих наших уроках и который мы рекомендуем поставить. Этот редактор выпущен Microsoft и основан на Electron, который использует JavaScript, что позволяет строить кросс-платформенные приложения: то есть такие, которые пишутся один раз, но работают на всех платформах.
Языки в Mobile
Следующее направление — мобильное, и здесь есть две базовых ветви разработки: Android и iOS.
Android: Java, Kotlin
В Android раньше был только Java, но сейчас большие обороты набирает язык Kotlin. Люди, использующие его в своих проектах, говорят, что теперь разработка под Android стала действительно приятной.
iOS: Objective-C, Swift
Для разработки в iOS используется язык Swift, на который мигрировало большинство разработчиков, поскольку хотя Objective-C долго был главным и единственным языком, но уже морально устарел. Swift — это отличный свежий язык с правильными идеями, который Apple внезапно сделала open-source — а значит его скоро можно будет использовать вне iOS, что может быть весьма интересно, потому что этот язык обладает кучей полезных качеств.
Flutter, React Native
Кроме конкретных платформ, в мире мобильной разработки существуют кроссплатформенные решения, которые позволяют писать код сразу и для IOS и для Android, используя один инструмент. Из широко используемых решений можно выделить два: фреймворк Flutter, написанный на языке Dart, и React Native, написанный на JavaScript
Языки в Web
Веб делится на 2 подраздела: бэкенд и фронтенд. Любое веб-приложение в конечном итоге имеет ту часть, которая взаимодействует с пользователем, и почти всегда это тонкий клиент — браузер, в котором крутятся приложения. Если раньше это был просто HTML, и вся логика происходила на сервере, то сейчас логики в браузере становится все больше и больше, и он становится по-настоящему "толстым" и "тяжелым".
Backend
- PHP, Ruby, Python, JavaScript (Node), Perl
- Go, C#, Elixir, Rust, Java, Clojure, Kotlin, Scala
Утяжеление тонких клиентов не отменяет того, что на бэкенде все равно должны храниться данные и выполняться определенная логика. Для бэкенда в вебе существует огромное количество языков. Теоретически, можно использовать вообще любой, но на практике используются чаще всего именно те, которые указаны выше. Java, Clojure, Kotlin, Scala, Groovy — это всё языки, построенные вокруг JVM, платформы, которая позволяет использовать их все вместе сразу, по очереди и как-то соединять между собой, поэтому можно сказать, что это одно семейство. Язык Go появился недавно, но очень быстро занял определенную нишу, и используется всё чаще. И, конечно же, самый популярный язык веба — это PHP, который является лидером, несмотря на все свои недостатки, и на нём сделано очень много сайтов, и с каждым днём их число лишь растёт.
Frontend
JavaScript присутствует и в бэкенде, и во фронтенде, и он будет все больше проникать в незанятые ранее ниши. JavaScript сейчас очень активно развивается и становится всё более серьёзным и классным языком.
Что выбрать? Критерии
Итак, что же выбрать и по каким критериям ориентироваться? Этими вопросами часто задаются люди, которые хотят заниматься программированием.
Область, к которой лежит душа
Область, к которой лежит душа — в первую очередь. Не всегда это можно понять сразу, потому что людям иногда просто не с чем сравнить, пока они не попробовали поработать в том или ином направлении. Поэтому, если трудно определиться, чем хотелось бы заниматься, приходится ориентироваться на два других критерия.
Требуемая квалификация
По этому критерию можно понять, куда точно джуниором не попасть. Геймдев в любом направлении — будь то веб, десктоп или мобильная разработка — требует серьёзных знаний. Это можно увидеть, просто проанализировав вакансии по какому-то направлению. Если стоит задача как можно скорее стать разработчиком, то лучше выбирать то направление, в которое требуется то количество знаний, которое выучить можно в адекватное время, чтобы не затягивать с трудоустройством.
Количество вакансий
Очень важный критерий — это количество вакансий. Если говорить про Москву, Питер и другие большие города, то в целом там вакансий довольно много по любым направлениям, но если говорить о городах поменьше и подальше, то там будет значительно меньше вакансий, а некоторые направления и языки вообще не представлены на рынке или встречаются крайне редко.
Мы перечислили основные критерии, которые помогут выбрать направление в профессии. Очень важно сделать это с самого начала, потому что только сделав выбор, можно планомерно и поступательно двигаться к своей цели. Пока этого не будет сделано, можно долго перескакивать с одного на другое, в итоге потратить очень много времени, года на обучение, но так по-настоящему и не стать разработчиком. Не затягивайте, делайте свой выбор и начинайте писать код.
<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 22:41:31 UTC","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false};gon.token="tV9V57EZ-35bTcf1QtIuRVO2v3RR3tWj882LXeW6VO1ajp7QQ2dWHu0O421O3d4yk7-S3lnpKwFOLREJt72zgw";gon.locale="ru";gon.language="ru";gon.theme="light";gon.rails_env="production";gon.mobile=false;gon.google={"analytics_key":"UA-1360700-51","optimize_key":"GTM-5QDVFPF"};gon.captcha={"google_v3_site_key":"6LenGbgZAAAAAM7HbrDbn5JlizCSzPcS767c9vaY","yandex_site_key":"ysc1_Vyob5ZPPUdPBsu0ykt8bVFdzsfpoVjQChLGl2b4g19647a89","verification_failed":null};gon.social_signin=false;gon.typoreporter_google_form_id="1FAIpQLSeibfGq-KvWQ2Fyru-zkFFRVTLBuzXAHAoEyN1p49FtDmNoNA";
//]]>
</script>
<meta charset="utf-8">
<title>Виды компаний и разработки | Жизнь программиста</title>
<meta name="description" content="Виды компаний и разработки / Жизнь программиста: Обсуждает, какие бывают компании и виды разработки">
<link rel="canonical" href="https://ru.hexlet.io/courses/prog-life/lessons/kinds/theory_unit">
<meta name="robots" content="noarchive">
<meta property="og:title" content="Виды компаний и разработки">
<meta property="og:title" content="Жизнь программиста">
<meta property="og:description" content="Виды компаний и разработки / Жизнь программиста: Обсуждает, какие бывают компании и виды разработки">
<meta property="og:url" content="https://ru.hexlet.io/courses/prog-life/lessons/kinds/theory_unit">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="eSaTSn2mNvEZZ3Kd5UrTXj1M3KT8Q9ixXeSiosBHvo2W91h9j9ibka8kVgXpRSMp_UXxDvR0JhPgBDj2kkBZ4w" />
<script src="/vite/assets/inertia-DfXos102.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/preload-helper-BJ4cLWpC.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ahoy-DrlRQ-1D.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/analytics-cb8xch9l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Surface-DL2bpZA-.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/extends-C-EagtpE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/inheritsLoose-BBd-DCVI.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/objectWithoutPropertiesLoose-DRHXDhjp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/index.esm-DAqKOkZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Button-CGPUux8l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/CloseButton-D1euiPao.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Group-BX48WcuU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Loader-BQEY8g6v.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Modal-Cy3HByv7.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/OptionalPortal-1Hza5P2w.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Stack-CtjJzfw4.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Textarea-Ck64llAy.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/DirectionProvider-Dc9zdUke.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/events-DJQOhap0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-reduced-motion-D2owz4wa.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-disclosure-zKtK5W1r.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-hotkeys-Cnc_Rwkb.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/random-id-DOQyszCZ.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/exports-C_MrNx_T.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<link rel="stylesheet" href="/vite/assets/application-BqhCP46M.js" />
<script src="/vite/assets/application-Df9RExpe.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/autocomplete-VMNbxKGl.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/createPopper-C3aM9r1M.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/js.cookie-D1-O8zkX.js" as="script" crossorigin="anonymous"><link rel="stylesheet" href="/vite/assets/application-C8HjmMaq.css" media="screen" />
<script>
window.ym = function(){(ym.a=ym.a||[]).push(arguments)};
window.addEventListener('load', function() {
setTimeout(function() {
ym.l = 1*new Date();
ym(window.gon.ym_counter, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
// Загружаем скрипт
var k = document.createElement('script');
k.async = 1;
k.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(k);
ym(window.gon.ym_counter, 'getClientID', function(clientID) {
window.ymClientId = clientID;
});
}, 1500);
});
</script>
<!-- Google Tag Manager - deferred -->
<script>
// dataLayer stub сразу — пуши работают до загрузки скрипта
window.dataLayer = window.dataLayer || [];
// Сам скрипт — отложенно после load
window.addEventListener('load', function() {
setTimeout(function() {
dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var j = document.createElement('script');
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WK88TH';
document.head.appendChild(j);
}, 1500);
});
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<noscript>
<div>
<img alt="" src="https://mc.yandex.ru/watch/25559621" style="position:absolute; left:-9999px;">
</div>
</noscript>
<header class="sticky-top bg-body">
<nav class="navbar navbar-expand-lg">
<div class="container-xxl">
<a class="navbar-brand" href="/"><img alt="Логотип Хекслета" height="24" src="https://ru.hexlet.io/vite/assets/logo_ru_light-BpiEA1LT.svg" width="96">
</a><button aria-controls="collapsable" aria-expanded="false" aria-label="Меню" class="navbar-toggler border-0 mb-0 mt-1" data-bs-target="#collapsable" data-bs-toggle="collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsable">
<ul class="navbar-nav mb-lg-0 mt-lg-1">
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
Все курсы
<span class="bi bi-chevron-down align-middle ms-1"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item d-flex py-2" href="/courses"><div class="fw-bold me-auto">Все что есть</div>
<div class="text-muted">117</div>
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные категории</b>
</li>
<li>
<a class="dropdown-item py-2" href="/courses_devops">Курсы по DevOps
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_data_analytics">Курсы по аналитике данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_programming">Курсы по программированию
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_testing">Курсы по тестированию
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные курсы</b>
</li>
<li>
<a class="dropdown-item py-2" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/go">Go-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/java">Java-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/python">Python-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/qa-auto-engineer-java">Автоматизатор тестирования на Java
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/data-analytics">Аналитик данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/frontend">Фронтенд-разработчик
</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
О Хекслете
<span class="bi bi-chevron-down align-middle"></span>
</button>
<ul class="dropdown-menu bg-body">
<li>
<a class="dropdown-item py-2" href="/pages/about">О нас
</a></li>
<li>
<a class="dropdown-item py-2" href="/blog">Блог
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/hse-research" role="button">Результаты (Исследование)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://career.hexlet.io" role="button">Хекслет Карьера
</span></li>
<li>
<a class="dropdown-item py-2" href="/testimonials">Отзывы студентов
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://t.me/hexlet_help_bot" role="button">Поддержка (В ТГ)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/referal-program/?promo_creative=priglasite-druzei&promo_name=referal-program&promo_position=promo_position&promo_start=010724&promo_type=link" role="button">Реферальная программа
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/certificate" role="button">Подарочные сертификаты
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://hh.ru/employer/4307094" role="button">Вакансии
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://b2b.hexlet.io" data-target="_blank" role="button">Компаниям
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexly.ru/" data-target="_blank" role="button">Колледж
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexlyschool.ru/" data-target="_blank" role="button">Частная школа
</span></li>
</ul>
</li>
<li><a class="nav-link" href="/subscription/new">Подписка</a></li>
</ul>
<ul class="navbar-nav flex-lg-row align-items-lg-center gap-2 ms-auto">
<li>
<a class="nav-link" aria-label="Переключить тему" href="/theme/switch?new_theme=dark"><span aria-hidden="true" class="bi bi-moon"></span>
</a></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="/u/new" role="button"><span>Регистрация</span>
</span></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="https://ru.hexlet.io/session/new" role="button"><span>Вход</span>
</span></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="x-container-xxxl">
</div>
<main class="mb-6 min-vh-100 h-100">
<div id="app" data-page="{"component":"web/courses/lessons/theory_unit","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T22:41:31.063Z","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false}},"cloudflareTurnstileSiteKey":"0x4AAAAAAA15KmeFXzd2H0Xo","vkIdClientId":"51586979","yandexIdClientId":"88d071f1d3384eb4bd1deb37910235c7","formAuthToken":"RZEUJoVCmZKt25gzwVrQJAidlTPMFJGJ9iUJmQ2lRr2qQN8Rdzw08huYvKvNVSBTyJS4mcQjbytLxZPNX6Kh0w","topics":[{"id":47378,"title":"Спасибо за урок, очень познвательно","plain_title":"Спасибо за урок, очень познвательно ","creator":{"public_name":"Сергей","id":34934,"is_tutor":false},"comments":[{"creator":{"public_name":"Sergei Melodyn","id":162475,"is_tutor":true},"id":102086,"body":"**user-5b8205a4dc5dd1e2**, здорово что понравилось! Продолжайте в том же духе!","topic_id":47378},{"creator":{"public_name":"","id":315069,"is_tutor":false},"id":102023,"body":"Согласен","topic_id":47378}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Виды компаний и разработки","entity_url":null,"active":true}},{"id":18225,"title":"Здравствуйте! Узнал о вашем ресурсе в поисках информации по Java и всему, что с ней связано. После нескольких статей и видеоуроков я почувствовал себя полным тупнем, потому что помимо Java есть еще Javascript, а у вас он еще делится на Фронт и Бэк...Дальше в комментариях совсем стало невесело - учителя советуют не начинать с Java, потому что он деформирует сознание как первый язык... Я запутался. \nСуть: мне 35 лет, опыт разработки ПО - ассемблер для МК Атмел, немного С и базовое неплохое образование (магистратура РФ ННГУ). Устал от корпоративной политики и простой работы (сейчас занимаюсь в основном металлообработкой и 3Д моделированием - прикол, да?), и хотел бы заниматься тем, что действительно интересно, + мне бы хотелось получить хорошие знания в области мобильных приложений и создания полноценного сайта (именно полноценного, а не страничек-визиток). Причем, курс именно Java зацепил. Посоветуйте, куда мне рыть в плане профессии, чтобы не стать \"вечным обучающимся\", и я смог потом применять полученные знания на рынке труда? ","plain_title":"Здравствуйте! Узнал о вашем ресурсе в поисках информации по Java и всему, что с ней связано. После нескольких статей и видеоуроков я почувствовал себя полным тупнем, потому что помимо Java есть еще Javascript, а у вас он еще делится на Фронт и Бэк...Дальше в комментариях совсем стало невесело - учителя советуют не начинать с Java, потому что он деформирует сознание как первый язык... Я запутался. Суть: мне 35 лет, опыт разработки ПО - ассемблер для МК Атмел, немного С и базовое неплохое образование (магистратура РФ ННГУ). Устал от корпоративной политики и простой работы (сейчас занимаюсь в основном металлообработкой и 3Д моделированием - прикол, да?), и хотел бы заниматься тем, что действительно интересно, + мне бы хотелось получить хорошие знания в области мобильных приложений и создания полноценного сайта (именно полноценного, а не страничек-визиток). Причем, курс именно Java зацепил. Посоветуйте, куда мне рыть в плане профессии, чтобы не стать \"вечным обучающимся\", и я смог потом применять полученные знания на рынке труда? ","creator":{"public_name":"Peter Gavrilov","id":187688,"is_tutor":false},"comments":[{"creator":{"public_name":"Peter Gavrilov","id":187688,"is_tutor":false},"id":38560,"body":"Спасибо за честный ответ по 3 пункту. За 3 дня я уже покурил информацию тут, и понимаю, что мне нужен js, а не java, вернее, как один из инструментов, выше в 2 вы все написали. \nПо мотивации: основная отправная точка, это желание пилить инструменты для своего бизнеса самостоятельно, поскольку я по сути фрилансер (хоть и занимаюсь мет.обработкой). И второе - собственно, основное - это желание изучить инструмент для удаленной работы. Я не очень люблю корпоративную культуру, вернее сказать, терпеть ее не могу (если вы работали хоть в одной крупной аффилированной крупной госкорпорации аля Газпром, вы поймете, о чем я). Многие знакомые работают фрилансерами с иностранными заказчиками, или просто адекватными фирмами РФ. Меня это очень мотивирует, причем настолько, что я готов работать за небольшую ЗП, лишь бы расти и набираться опыта. Как вы думаете, это достаточно сильная мотивация?\n","topic_id":18225},{"creator":{"public_name":"Yuriy Kurenkov","id":48671,"is_tutor":false},"id":38794,"body":"(: По поводу мотивации это только вам решать. Опять же из личного опыта, более-менее годное что-то начинает получаться после наработки 2000+ часов. Это примерно по 8+ часов в день в течении года. У моих знакомых ребят в 18-25 лет в таком ритме учиться получалось. У 30+ ребят обычно это 2 часа в будни и 4-5 в выходные (ремонты, дети, семья). Т.е. на наработку 2000 часов уже уходит минимум в 2 раза больше. Соответственно, если возьмут на работу совсем нулевым, то дело быстрее пойдёт.","topic_id":18225},{"creator":{"public_name":"Yuriy Kurenkov","id":48671,"is_tutor":false},"id":38551,"body":"Здравствуйте. Проходил мимо, и решил обратить ваше внимание на кое-какие моменты:\n1. Полноценный сайт и странички визитки мало чем отличаются со стороны фронт-энда, мало того SPA (single page application), одностраничники намного сложнее. Но даже если не обращать внимание на них, сверстать визитку (лэндинг) зачастую куда сложнее, чем типовой портал, с более простыми и повторяющимися элементами. Короче говоря выкиньте из головы это предвзятое мнение, что чем меньше тем проще.\n2. Писать веб, как сказано в видео можно на чём угодно. Но будет проще начинать с базового стэка: html, css, js. С написанием веба на Java вам придётся знатно повозиться.\n3. И из личного опыта, освоить программирование можно в любом возрасте, мне самому 34 года, пришел из геймдева 3 года назад, сначала верстал, теперь осваиваю js, руковожу небольшим it-отделом. У меня в отделе 2 джуна тоже 30+. НО! Если вы в веб не потому, что нравиться, а за баблом, то не советую. Как показывает практика деньги не достаточно сильная мотивация, чтобы уделять программированию столько времени, сколько нужно чтобы адекватно расти в 30+ возрасте.\n","topic_id":18225}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Виды компаний и разработки","entity_url":null,"active":true}},{"id":2529,"title":"Хочу стать Веб-разработчиком, но от души ни как не отходит C++. Стоит ли учить C++, пригодиться ли он в будущем?","plain_title":"Хочу стать Веб-разработчиком, но от души ни как не отходит C++. Стоит ли учить C++, пригодиться ли он в будущем? ","creator":{"public_name":"Aleksey Pavlov","id":88187,"is_tutor":false},"comments":[{"creator":{"public_name":"Masyock Masyock","id":66253,"is_tutor":false},"id":4536,"body":"не грузится урок ","topic_id":2529},{"creator":{"public_name":"Алексей Ч.","id":52556,"is_tutor":false},"id":4131,"body":"Раз вам нравится C++, почему вы хотите стать web-developer'ом? Определенно пригодится, но не в web. \n\nСо временем заметил, что не количество заученных языков делает программистов профессионалами, а возможность быстро вникнуть в один из них и начать его использовать. \n\nВозможно С++ поможет вам в каких-то моментах лучше понять(быстрее) PHP или JS.","topic_id":2529},{"creator":{"public_name":"Хасан Безиров","id":257382,"is_tutor":false},"id":78235,"body":"Всем привет. Мне 49. Очень хочу научиться программированию. Начал осваивать подготовительный курс Java Script на вашем образовательном ресурсе Code Basics. Живу в маленьком городке, где о программировании вообще мало что кто знает. В нашей республике сообщество программистов отсутствует. Единомышленников по программированию пока нет. Подскажите,пожалуйста, в каком направлении мне двигаться дальше, чтобы стать классным специалистом в этой области, какую отрасль мне выбрать, если я в этом абсолютный ноль и новичок, и есть ли реальные шансы устроиться человеку моего возраста на работу программистом впоследствии? Буду благодарен за ответ. ","topic_id":2529},{"creator":{"public_name":"Хасан Безиров","id":257382,"is_tutor":false},"id":78230,"body":"Всем привет. Очень интересное и полезное видео. Мне 49. Очень хочу научиться программированию. Начал осваивать на вашем ресурсе бесплатный курс Java Script на Сode Basics. Хотел поинтересоваться, есть ли реально шансы устроиться на работу впоследствии, людям в моём возрасте? Спасибо.","topic_id":2529}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Виды компаний и разработки","entity_url":null,"active":true}},{"id":28729,"title":"Здравствуйте! Мне 47 лет. Слесарь. В школе учился хорошо)). Я решил провести эксперимент--освоить программирование. Вопрос: какой язык в моём случае стоит освоить, чтобы в будущем иметь больше шансов получить работу? Спасибо.","plain_title":"Здравствуйте! Мне 47 лет. Слесарь. В школе учился хорошо)). Я решил провести эксперимент--освоить программирование. Вопрос: какой язык в моём случае стоит освоить, чтобы в будущем иметь больше шансов получить работу? Спасибо. ","creator":{"public_name":"Юрий Храмов","id":229668,"is_tutor":false},"comments":[{"creator":{"public_name":"Илья Зубцов","id":196780,"is_tutor":false},"id":61963,"body":"**Юрий Храмов**, Здравствуйте:) Ну лично мое мнение, что сейчас очень активно развивается js и очень много работы предлагают с этим языком. Не знаю, изменится ли это через ближайшие лет 5 - 10) Во всяком случае, тру прогер в итоге будет знать много языков, после изучения первого к другому перейти проще)","topic_id":28729},{"creator":{"public_name":"Kirill Mokevnin","id":1,"is_tutor":false},"id":61983,"body":"По поводу java посмотрите вот это видео https://www.youtube.com/watch?v=oUO1ndhzLnU&t=1s","topic_id":28729},{"creator":{"public_name":"Артем Бычков","id":249189,"is_tutor":false},"id":71800,"body":"**Kirill Mokevnin**, Спасибо большое за ваше видео, мне как новичку разъяснили несколько важных вопросов по направлению обучения ","topic_id":28729},{"creator":{"public_name":"Юрий Храмов","id":229668,"is_tutor":false},"id":61985,"body":"**Kirill Mokevnin**, понял, спасибо!","topic_id":28729},{"creator":{"public_name":"Robert Kuznetsov","id":138381,"is_tutor":false},"id":98469,"body":"**Юрий Храмов**, добрый день!\nПросто интересно, какой язык или стек технологий выбрали? Начали программировать?","topic_id":28729},{"creator":{"public_name":"Юрий Храмов","id":229668,"is_tutor":false},"id":61975,"body":"**Илья Зубцов**, Спасибо за ответ, а мне вот советуют начать с просто Java. Или это не принципиально?","topic_id":28729}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Виды компаний и разработки","entity_url":null,"active":true}},{"id":6326,"title":"На vimeo никак скорость не увеличить? А то очень медленный темп.","plain_title":"На vimeo никак скорость не увеличить? А то очень медленный темп. ","creator":{"public_name":"Georgii Kolotov","id":122573,"is_tutor":false},"comments":[{"creator":{"public_name":"Sebastian Kristof","id":140879,"is_tutor":false},"id":15999,"body":"А мне очень нравится. С чувством, с толком, с расстановкой. Как будто сидишь с другом за чаем и он тебе вдумчиво и неторопливо объясняет, что к чему. :)","topic_id":6326},{"creator":{"public_name":"Kirill Mokevnin","id":1,"is_tutor":false},"id":11577,"body":"Попробуйте так: http://help.hexlet.io/article/17-videospeed","topic_id":6326},{"creator":{"public_name":"Владимир cssfish","id":101628,"is_tutor":false},"id":30431,"body":"для вебкитов (хроме опера и тп) есть [такой плагин](https://github.com/igrigorik/videospeed)","topic_id":6326}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Виды компаний и разработки","entity_url":null,"active":true}},{"id":2564,"title":"Здравствуйте, я стою перед выбором между веб и моб. разработкой. Ознакомился с HTML и СSS, сейчас учу Python. Знаю вопрос сложный, но можете посоветовать куда двигаться дальше ? :/","plain_title":"Здравствуйте, я стою перед выбором между веб и моб. разработкой. Ознакомился с HTML и СSS, сейчас учу Python. Знаю вопрос сложный, но можете посоветовать куда двигаться дальше ? :/ ","creator":{"public_name":"Teymur Gahramanov","id":94429,"is_tutor":false},"comments":[{"creator":{"public_name":"Kirill Mokevnin","id":1,"is_tutor":false},"id":4188,"body":"Вопрос не понятен. Куда двигаться после изучения питона? Найдите работу)","topic_id":2564}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Виды компаний и разработки","entity_url":null,"active":true}},{"id":49414,"title":"Мне 49 лет, и хотелось бы стартовать в том, в чем у меня будут реальные шансы достаточно быстро добиться успеха.\n\nПравильно я уловил из материала, что проще будет выбрать изучение PHP и js, имея цель стать web-разработчиком?\n\nС другой стороны, разработка мобильных приложений также видится перспективной. Но войти в нее будет дольше и сложнее? ","plain_title":"Мне 49 лет, и хотелось бы стартовать в том, в чем у меня будут реальные шансы достаточно быстро добиться успеха. Правильно я уловил из материала, что проще будет выбрать изучение PHP и js, имея цель стать web-разработчиком? С другой стороны, разработка мобильных приложений также видится перспективной. Но войти в нее будет дольше и сложнее? ","creator":{"public_name":"Юрий","id":327434,"is_tutor":false},"comments":[{"creator":{"public_name":"Sergei Melodyn","id":162475,"is_tutor":true},"id":105988,"body":"**Юрий**, приветствую.\n\nВ любой современной разработке требуется знание операционных систем, сетей и основ программирования. Если вы понимаете как соединить между собой несколько разных систем и при этом имеете крепкий фундамент программиста, то язык будет выступать инструментом для решения задачи. Можно написать веб-сайт и мобильное приложение, используя только JS на сервере, во фронтенде и в мобильной разработке. Но это не значит что оно будет легче и быстрее, объём информации будет усвоен примерно тот же.\n\nТак что реальные шансы достаточно быстро добиться успеха зависят от настроя в уме, а не от инструмента в руках. Вы можете для вдохновения почитать истории успехов наших студентов: https://ru.hexlet.io/blog/categories/success они часто говорят о том, что ничто не останавливает человека на пути к цели.","topic_id":49414}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Виды компаний и разработки","entity_url":null,"active":true}},{"id":5585,"title":"Не знаю ,что выбрать в веб или софт(мобилки или десктоп)","plain_title":"Не знаю ,что выбрать в веб или софт(мобилки или десктоп) ","creator":{"public_name":"","id":121599,"is_tutor":false},"comments":[{"creator":{"public_name":"Kirill Mokevnin","id":1,"is_tutor":false},"id":10039,"body":"Для начала стоит просто научиться писать код, без привязки к платформам.","topic_id":5585}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Виды компаний и разработки","entity_url":null,"active":true}},{"id":11091,"title":"Наверное уже стоит упомянуть в пункте языки в мобильной разработке о том что Javascript и туда пришел с React Native","plain_title":"Наверное уже стоит упомянуть в пункте языки в мобильной разработке о том что Javascript и туда пришел с React Native ","creator":{"public_name":"Вернат Хисамов","id":9502,"is_tutor":false},"comments":[{"creator":{"public_name":"Elena D","id":169917,"is_tutor":false},"id":30059,"body":"тоже интересен этот момент.","topic_id":11091},{"creator":{"public_name":"Вячеслав Савинов","id":159711,"is_tutor":false},"id":24584,"body":"Здравствуйте, есть один очень холиварный момент...\n1.Вот многие мне советуют учить node.js, а не php как бекенд яп, так как это javascript,который используется в frontend...Мой вопрос: сильно ли различается Фронтенд JS от Node.js?\n2.В интернете очень много спорной информации по поводу Node vs PHP, как по-вашему, что превосходит и что подходит больше для крупных и мелочных проектов?\n3. Если учить php, то js тоже же нужно учить, а если брать node.js & frontend JS, то php не нужно?\n\n","topic_id":11091}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Виды компаний и разработки","entity_url":null,"active":true}},{"id":49669,"title":"Здравствуйте. Прочёл урок \"Виды компаний и разработки\". Честно говоря, не смог понять из статьи, что же мне надо.\nВ сети наткнулся на такое пояснение :\n\n\"В процессе работы верстальщиком или тестировщиком придется волей-неволей сталкиваться со смежными профессиями и постигать их азы. Познакомившись с новыми направлениями, можно освоить более высокооплачиваемые специализации в соответствии со своими склонностями. Если нравится творчество, то можно уйти в сферу веб-дизайна, а если хочется самому создавать сайты и обслуживать их, то стоит подумать о карьере веб-разработчика. Люди взрослые и опытные, имеющие тягу к анализу происходящего, могут стать веб-аналитиками или, к примеру, Data Scientist – специалистами по работе с массивами данных\". \n\nСогласны ли вы с такими разделением? Не противоречит ли оно вашей концепции выбора направления работы программиста согласно приведённой в статье кассификации прикладного ПО.","plain_title":"Здравствуйте. Прочёл урок \"Виды компаний и разработки\". Честно говоря, не смог понять из статьи, что же мне надо. В сети наткнулся на такое пояснение : \"В процессе работы верстальщиком или тестировщиком придется волей-неволей сталкиваться со смежными профессиями и постигать их азы. Познакомившись с новыми направлениями, можно освоить более высокооплачиваемые специализации в соответствии со своими склонностями. Если нравится творчество, то можно уйти в сферу веб-дизайна, а если хочется самому создавать сайты и обслуживать их, то стоит подумать о карьере веб-разработчика. Люди взрослые и опытные, имеющие тягу к анализу происходящего, могут стать веб-аналитиками или, к примеру, Data Scientist – специалистами по работе с массивами данных\". Согласны ли вы с такими разделением? Не противоречит ли оно вашей концепции выбора направления работы программиста согласно приведённой в статье кассификации прикладного ПО. ","creator":{"public_name":"Олег","id":328777,"is_tutor":false},"comments":[{"creator":{"public_name":"Sergei Melodyn","id":162475,"is_tutor":true},"id":106592,"body":"**Олег**, приветствую.\n\nОдно другому не противоречит. Можно быть веб-аналитиком в продуктовой компании или дизайнером мобильных приложений. Просто это взгляд с разных углов на один и тот же вопрос, который невозможно раскрыть в рамках одного обзора.","topic_id":49669}],"communitable":{"parent_entity_name":null,"parent_entity_url":null,"entity_name":"Виды компаний и разработки","entity_url":null,"active":true}}],"lesson":{"exercise":null,"units":[{"id":1159,"name":"theory","url":"/courses/prog-life/lessons/kinds/theory_unit"},{"id":7448,"name":"quiz","url":"/courses/prog-life/lessons/kinds/quiz_unit"}],"links":[],"ordered_units":[{"id":1159,"name":"theory","url":"/courses/prog-life/lessons/kinds/theory_unit"},{"id":7448,"name":"quiz","url":"/courses/prog-life/lessons/kinds/quiz_unit"}],"id":603,"slug":"kinds","state":"approved","name":"Виды компаний и разработки","course_order":30,"goal":"Обсуждает, какие бывают компании и виды разработки","self_study":null,"theory_video_provider":"vimeo","theory_video_uid":"154169612","theory":"В этом уроке мы поговорим о том, какие бывают компании и направления в разработке.\n\nКомпании делятся на две больших категории, исходя из ролей, которые в них играют программисты и разработка программного обеспечения. Первая группа — это те компании, в которых IT — это просто отдел, который не является основным бизнесом, а вторые — те, в которых бизнес построен вокруг IT.\n\nС теми компаниями, в которых IT представлен в качестве отдела, всё достаточно просто. Это могут быть фабричные производства, банки, крупные строительные и любые другие компании, в которых нужна автоматизация. Чаще всего эти IT-отделы нужны именно для автоматизации документооборота или улучшения каких-то бизнес-процессов внутри компании, и от IT-отдела не требуется ничего сверхъестественного, кроме решения конкретных потребностей этого бизнеса.\n\nВторая категория компаний — это те компании, в которых бизнес построен вокруг IT. Они делятся еще на несколько типов, о которых нужно знать.\n\n## Виды разработки\n\n### Заказная разработка (outsourcing)\n\n\n\nПервый тип — компании, занимающиеся заказной разработкой, или аутсорсингом. Такие компании имеют в своем штате разработчиков — иногда совершенно разных — и буквально продают их рабочее время заказчикам, у которых своих разработчиков нет, но им нужен какой-то софт. Большие аутсорсеры работают с представителями различных направлений бизнеса: промышленными предприятиями, страховыми компаниями, банками — теми, кому нужен серьёзный софт, в разработке которого задействовано много разработчиков.\n\nИз-за особенностей бизнеса заказной разработки, по сути построенного в том или ином виде на продаже времени своих сотрудников, он стабилен, когда в нём много разработчиков — чем больше, тем лучше. По этой причине аутсорсеры стараются быть очень большими, у них работает очень много молодых разработчиков, они часто интегрируются с университетами, имеют кучу офисов по всему миру. В крупных компаниях, таких как EPAM, Luxoft и DataArt, работают тысячи девелоперов. Эти компании действительно зарабатывают много денег и очень стабильны. Помимо таких гигантов, в аутсорсинге работают очень много небольших компаний: от 1-2 до 50-100 разработчиков. Однако чем меньше компания, тем более она нестабильная: если у вас в одном месте где-то заказ не пошёл, освобождаются люди, которых надо чем-то занимать, иначе их зарплата не будет окупаться. С одной стороны, этому бизнесу присущи большие риски, но с другой, его очень легко начать — отсюда и большое количество компаний в нём. Можно просто позвать своих друзей и предложить им делать аутсорсинг. После этого нужно найти первых клиентов — и можно работать. А дальше по сарафанному радио о компании узнаёт все больше и больше клиентов, и при хорошем раскладе можно успешно зарабатывать. Некоторые компании, осуществляющие заказную разработку, именно так и начинали свою деятельность.\n\n### Продуктовая разработка\n\nДругое большое направление — это продуктовая разработка, когда компании занимаются развитием какого-то продукта, интересного потребителям. Если у вас действительно получается сделать какой-то востребованный продукт, то соотношение заработка к затратам обычно несоизмеримо. В аутсорсинге все достаточно просто: вы берете человека, он обходится вам в такую-то сумму, зарабатываете вы с его помощью такую-то сумму, масштабируетесь и линейно растёте. В продуктовой разработке, если ваш продукт востребован, вы можете иметь команду в 4 человека, но при этом зарабатывать миллионы долларов и обслуживать миллионы пользователей. Эта модель немного интересней, потому что позволяет вам неограниченно масштабироваться, но создать такой продукт значительно сложнее, чем начать аутсорсинг. Кроме того, жизненные циклы некоторых продуктов время от времени подходят к концу из-за изменения конъюнктуры рынка, реалий или по иным причинам, и они перестают существовать, поэтому важно уделять внимание их диверсификации.\n\n## Классификация ПО\n\n\n\nТеперь давайте разберёмся, какие виды программного обеспечения и направления разработки существуют, куда можно идти и чем заниматься.\n\nСуществует множество различных классификаций программного обеспечения, но при выборе направления работы программисты в первую очередь обращают внимание на платформу, которую затем меняют крайне редко. Классификация прикладного ПО по платформам:\n\n* Web-программирование\n* Мобильная разработка\n* Десктоп\n* Серверное ПО\n\nОгромной популярностью пользуется мобильная и веб-разработка — в них больше вакансий, денег и возможностей. В разработке есть специальные направления, не связанные с одним типом платформы, такие как разработка игр (геймдев). Программисты пишут игровые движки, игры для веба и десктопа, и всё больше и больше игр портируется или разрабатывается для мобильных устройств. И скорее всего, созданием игр при текущих условиях будут заниматься именно те, кто работает в мобильной разработке, а не просто люди из области геймдева, которые просто возьмут и сменят платформу. Это лишь отвлеченный пример, связанный с трендами современности: всё уходит в веб и мобильные устройства, но в целом он прекрасно иллюстрирует взаимосвязь платформ и специализированных отраслей разработки, показывая важность первых при выборе направления своей деятельности.\n\n### Серверное ПО\n\nВ разработке серверного ПО могут использоваться абсолютно любые языки. Серверное ПО в конечном итоге пересекается и с мобильной разработкой, и с веб-разработкой, и вообще с любым видом разработки. Серверное программное обеспечение подразделяется на прикладное ПО, системное ПО и инструментарий.\n\n### Прикладное ПО\n\nВ программировании почти всегда есть фронтенд-часть — та, с которой непосредственно взаимодействует пользователь, и бэкенд-часть, которая находится где-то на сервере. Самостоятельная или связанная с фронтенд-частью — именно она и представляет собой прикладное ПО. Это могут быть и какие-либо расчеты, вычисления, аналитика, работа с большими объемами данных, анализ, биржи — всё что угодно.\n\n### Системное ПО\n\nЭто особый тип программного обеспечения, с помощью которого компьютеры выполняют полезные задачи — это операционные системы, драйверы и иные программы, связанные непосредственно с железом.\n\n### Инструментарий\n\nЭто всё, что помогает разработчикам: средства отладки, фреймворки, да и сами языки программирования. Это отдельное направление, которое требует очень серьёзного уровня разработчиков. Без базового фундаментального образования заниматься этим направлением очень сложно, но при большом желании и усердии возможно.\n\n### Десктоп (Desktop)\n\nТеряющее популярность, но все еще очень активное направление — это десктоп. Это так называемые \"толстые клиенты\", когда программа запускается локально, чаще всего без подключения к интернету.\n\nВ этом направлении всегда были популярны такие языки, как С++, Java и C#, но на пятки признанным авторитетам наступают те языки, которые еще не так давно никто не планировал использовать для написания толстых клиентов.\n\nНо современный мир диктует свои правила, и универсальным языком, который все глубже проникает абсолютно во все направления разработки и на котором появляется всё больше приложений, стал JavaScript. Даже представители компании Microsoft заявили, что в будущих операционных системах Windows все приложения будут использовать HTML и JavaScript. И действительно: на JavaScript уже пишут серьёзные толстые клиенты и приложения на десктопе. Яркий тому пример — VSCode, очень популярный редактор, который будет использоваться во многих наших уроках и который мы рекомендуем поставить. Этот редактор выпущен Microsoft и основан на [Electron](https://www.electronjs.org/), который использует JavaScript, что позволяет строить кросс-платформенные приложения: то есть такие, которые пишутся один раз, но работают на всех платформах.\n\n## Языки в Mobile\n\nСледующее направление — мобильное, и здесь есть две базовых ветви разработки: Android и iOS.\n\n### Android: Java, Kotlin\n\nВ Android раньше был только Java, но сейчас большие обороты набирает язык Kotlin. Люди, использующие его в своих проектах, говорят, что теперь разработка под Android стала действительно приятной.\n\n### iOS: Objective-C, Swift\n\nДля разработки в iOS используется язык Swift, на который мигрировало большинство разработчиков, поскольку хотя Objective-C долго был главным и единственным языком, но уже морально устарел. Swift — это отличный свежий язык с правильными идеями, который Apple внезапно сделала open-source — а значит его скоро можно будет использовать вне iOS, что может быть весьма интересно, потому что этот язык обладает кучей полезных качеств.\n\n### Flutter, React Native\n\nКроме конкретных платформ, в мире мобильной разработки существуют кроссплатформенные решения, которые позволяют писать код сразу и для IOS и для Android, используя один инструмент. Из широко используемых решений можно выделить два: фреймворк Flutter, написанный на языке Dart, и React Native, написанный на JavaScript\n\n## Языки в Web\n\nВеб делится на 2 подраздела: бэкенд и фронтенд. Любое веб-приложение в конечном итоге имеет ту часть, которая взаимодействует с пользователем, и почти всегда это тонкий клиент — браузер, в котором крутятся приложения. Если раньше это был просто HTML, и вся логика происходила на сервере, то сейчас логики в браузере становится все больше и больше, и он становится по-настоящему \"толстым\" и \"тяжелым\".\n\n### Backend\n\n* PHP, Ruby, Python, JavaScript (Node), Perl\n* Go, C#, Elixir, Rust, Java, Clojure, Kotlin, Scala\n\nУтяжеление тонких клиентов не отменяет того, что на бэкенде все равно должны храниться данные и выполняться определенная логика. Для бэкенда в вебе существует огромное количество языков. Теоретически, можно использовать вообще любой, но на практике используются чаще всего именно те, которые указаны выше. Java, Clojure, Kotlin, Scala, Groovy — это всё языки, построенные вокруг JVM, платформы, которая позволяет использовать их все вместе сразу, по очереди и как-то соединять между собой, поэтому можно сказать, что это одно семейство. Язык Go появился недавно, но очень быстро занял определенную нишу, и используется всё чаще. И, конечно же, самый популярный язык веба — это PHP, который является лидером, несмотря на все свои недостатки, и на нём сделано очень много сайтов, и с каждым днём их число лишь растёт.\n\n### Frontend\n\n* JavaScript\n\n JavaScript присутствует и в бэкенде, и во фронтенде, и он будет все больше проникать в незанятые ранее ниши. JavaScript сейчас очень активно развивается и становится всё более серьёзным и классным языком.\n\n## Что выбрать? Критерии\n\nИтак, что же выбрать и по каким критериям ориентироваться? Этими вопросами часто задаются люди, которые хотят заниматься программированием.\n\n### Область, к которой лежит душа\n\nОбласть, к которой лежит душа — в первую очередь. Не всегда это можно понять сразу, потому что людям иногда просто не с чем сравнить, пока они не попробовали поработать в том или ином направлении. Поэтому, если трудно определиться, чем хотелось бы заниматься, приходится ориентироваться на два других критерия.\n\n### Требуемая квалификация\n\nПо этому критерию можно понять, куда точно джуниором не попасть. Геймдев в любом направлении — будь то веб, десктоп или мобильная разработка — требует серьёзных знаний. Это можно увидеть, просто проанализировав вакансии по какому-то направлению. Если стоит задача как можно скорее стать разработчиком, то лучше выбирать то направление, в которое требуется то количество знаний, которое выучить можно в адекватное время, чтобы не затягивать с трудоустройством.\n\n### Количество вакансий\n\nОчень важный критерий — это количество вакансий. Если говорить про Москву, Питер и другие большие города, то в целом там вакансий довольно много по любым направлениям, но если говорить о городах поменьше и подальше, то там будет значительно меньше вакансий, а некоторые направления и языки вообще не представлены на рынке или встречаются крайне редко.\n\nМы перечислили основные критерии, которые помогут выбрать направление в профессии. Очень важно сделать это с самого начала, потому что только сделав выбор, можно планомерно и поступательно двигаться к своей цели. Пока этого не будет сделано, можно долго перескакивать с одного на другое, в итоге потратить очень много времени, года на обучение, но так по-настоящему и не стать разработчиком. Не затягивайте, делайте свой выбор и начинайте писать код.\n"},"lessonMember":null,"courseMember":null,"course":{"start_lesson":{"exercise":null,"units":[{"id":1160,"name":"theory","url":"/courses/prog-life/lessons/requirements/theory_unit"}],"links":[],"ordered_units":[{"id":1160,"name":"theory","url":"/courses/prog-life/lessons/requirements/theory_unit"}],"id":604,"slug":"requirements","state":"approved","name":"Введение","course_order":10,"goal":"Выясняем, что значит «быть программистом» и как им стать","self_study":null,"theory_video_provider":"vimeo","theory_video_uid":"154169609","theory":"Добро пожаловать на Хекслет! Этим уроком мы открываем наш курс, посвященный профессии программиста. На протяжении нескольких уроков мы будем разговаривать о том, кто такие программисты, как ими становятся и что нужно для того, чтобы стать одним из них. Мы подготовили большое количество информации, и вас ждут пять объёмных уроков. Мы не будем писать код, устанавливать софт и делать практические задачи — вместо этого мы разберёмся во всех нюансах профессии.\n\n## На кого рассчитан этот курс\n\n* Школьники\n* Студенты\n* Те, кто хочет поменять профессию\n\nЭтот курс рассчитан на всех, кто хочет стать программистом. Студенты технической специальности почерпнут для себя что-то новое, поскольку далеко не всё, что преподается в институте, имеет отношение к промышленному программированию. Те же, кто не имеет к нему отношения, но хотят им заниматься, получат максимально подробный обзор этой профессии. Программирование открыто для всех, поэтому всё больше и больше людей становятся программистами.\n\n## Страхи\n\n\n\nПоговорим о страхах людей, которые хотят стать программистами. Мы получаем много писем от наших пользователей, в которых они рассказывают, почему они боятся, что у них не получится освоить эту профессию.\n\n### Я — взрослый\n\nИ на первом месте находится страх, который называется \"я — взрослый\". Такому \"взрослому\" может быть и 25, и 50 лет — это абсолютно субъективная оценка. На самом деле, возраст играет малую роль, а большинство программистов уже достаточно взрослые люди. В целом профессия с каждым днем становится старше, и это нормально. Некоторые думают, что чем старше вы становитесь, тем медленнее вы соображаете, но это совершенно не всегда так: если у вас гибкий, сообразительный мозг, и вы понимаете, что вы умеете решать различные задачи и принимать определённые решения, то программирование точно для вас, ведь такие навыки по жизни не теряются. Поэтому не нужно переживать по поводу своего возраста.\n\nДжуниор (младший разработчик) в 20 или даже в 30 лет — это нормально. Существует множество примеров, когда на работу приходили люди, которым под 40 и более лет — они спокойно устраивались и работали в коллективе с молодыми ребятами. Безусловно, у некоторых может возникнуть психологический барьер, когда твой начальник сильно тебя младше, но программирование — такая профессия, где в первую очередь ценится компетентность и то, что вы из себя представляете как профессионал. Поэтому, если вы успешно растете как программист, у вас не будет никаких проблем. Наоборот, накопленный вами опыт может помочь быстрее продвигаться по карьерной лестнице.\n\n### Я плохо знаю математику\n\nДругой частый страх, о котором говорят — \"я плохо знаю математику\".\n\nБыло бы нечестно скрывать, что математика играет важную роль в программировании. В нём много направлений, которые требуют глубоких знаний различных дисциплин. Для разработки сложных игр такой дисциплиной является физика. Существуют направления, где нужна серьёзная математика, но в целом базовое программирование, особенно веб-программирование, где люди создают и настраивают сайты и веб-приложения, требует лишь минимальных знаний.\n\nКогда говорят, что для программирования нужна математика, подразумевают в первую очередь не знание её как таковой — то есть конкретных дисциплин и математического аппарата — а знание математики как способа развития мышления и личности. Математика действительно хорошо помогает структурировать мозги и размышлять немного на другом уровне, раскачивать своё абстрактное мышление и делать многое другое. Поэтому знание математики никогда не повредит. Часто бывает так, что её начинают учить вместе с программированием, и это правильный подход.\n\nПри этом незнание математики не должно становиться причиной не заниматься программированием, но если вы начали им заниматься, то хотя бы на каком-то базовом уровне её можно тоже подтягивать. Вы сами почувствуете тот момент, когда она вам понадобится: при осуществлении каких-либо вычислений или работе с алгоритмами. Множество ресурсов, таких как Coursera, дают доступ к большим университетским и простым базовым курсам, которых достаточно, чтобы подтянуть свои знания по математике.\n\n### Я слишком туп / глуп\n\nНа третьем месте — страх, который называется \"я слишком туп или глуп\".\nЭтот страх часто проявляется у людей, мечтающих стать программистами, у которых есть знакомые, успешно работающие в этой профессии. На фоне таких знакомых им иногда кажется, что они ничего не понимают. Просто потому, что те используют специфические термины и в каких-то вещах разбираются лучше. Чаще всего этот страх не обоснован, и, как показывает практика, есть такой интересный эффект: начинающие и опытные разработчики обладают схожей характеристикой — они себя недооценивают. Это касается и зарплаты, и знаний, и способностей. Зачастую совершенно иная ситуация со средними разработчиками, которые себя переоценивают. Поэтому, если вы себя недооцениваете, возможно, вы уже достаточно профессиональны.\n\n## Всё-таки нужно\n\n\n\nТеперь поговорим о тех вещах, которые всё-таки нужны каждому начинающему программисту.\n\n### Английский язык (хотя бы со словарём)\n\nКогда заходит речь о том, какой нужно выучить язык для освоения программирования, то большинство разработчиков скажет, что это, конечно же, английский. Здесь всё примерно так же, как и с математикой. Отсутствие английского — это не повод для того, чтобы не заниматься программированием. Если вы изучаете программирование, уровень английского у вас растёт сам по себе, хотя бы на базовом уровне. Точно так же в конце девяностых и начале двухтысячных молодые ребята, игравшие в компьютерные игры, невольно выучивали английский. Его важность нельзя недооценивать, потому что даже если вы найдёте документацию на русском языке, она будет лишь переводом с языка оригинала — английского — и, зачастую, не самым качественным. Оригинальный контент на других языках появляется крайне редко, всё в первую очередь появляется на английском.\n\nДаже если вы нашли документацию на русском, при работе со своими программами вы будете получать ошибки на английском языке, и с этим нужно будет разбираться. Более того, когда вы начинаете изучать, как решать эти проблемы и исправлять ошибки, вы будете попадать на популярные англоязычные сервисы, где, собственно, все общаются на английском. Опять же, повторимся, это не означает, что незнание английского не позволит вам начать программировать, но нужно понимать, что без английского в принципе не получится делать это профессионально, и его нужно подтягивать с вашими первыми попытками писать программный код.\n\nПервый и самый простой шаг, который необходимо сделать любому начинающему разработчику, это переключить все интерфейсы на всех устройствах и во всех программах (в том числе сайтах) на английский язык. Так вы быстрее освоите профессиональную терминологию.\n\n### Желание\n\nНу и конечно же вам понадобится очень много желания, потому что научиться программированию — не так просто, как кажется на первый взгляд. Полки книжных магазинов завалены книгами с громкими названиями наподобие: \"Выучи С++ за 21 день\". Кто-то может из этого сделать вывод, что за это время можно научиться программированию. Это не совсем так, а если уж говорить честно — совсем не так. Программирование требует от вас достаточно много времени и упорства, потому что вы будете часто сталкиваться с ситуациями, когда будет непонятно, что делать и куда двигаться, и иногда вы будете испытывать даже полную безысходность. Поэтому программирование, кроме прочего, требует наличия либо ментора, либо команды, либо онлайн-сервисов, призванных вам помочь — одному бывает сложновато. В целом всё это решаемо, и как раз успешное преодоление всех преград и будет показателем того, что у вас всё в дальнейшем получится, потому что в первую очередь, когда нанимают разработчиков, хотят видеть в людях способность разбираться с проблемами самостоятельно.\n\n### Время\n\nЕсли говорить о времени, которое понадобится вам, чтобы овладеть этой профессией — здесь всё очень индивидуально. Как мы уже говорили в самом начале урока, есть разные категории людей. Студенты и школьники, у которых много времени, могут себе позволить потратить его на обучение программированию, но обычно в этом возрасте люди еще не так хорошо понимают, что конкретно им нужно. А вот люди постарше не имеют в своём распоряжении такого количества свободного времени, зато хорошо понимают, зачем им всё это надо, и что нужно учить.\n\n## Порог снижения эффективности обучения\n\nСуществует такой феномен — снижение эффективности обучения. Что он означает?\n\nВначале вам нужно заниматься самостоятельно, потому что вас вряд ли кто-то возьмёт на работу, когда вы еще ничего не знаете, и для вас это будет достаточно эффективно, особенно если вы будете использовать современные средства, которые всячески помогают обучению. Но в какой-то момент скорость освоения предмета у вас начнет резко падать. Нужно не пропустить этот момент и устроиться на работу — тогда обучение снова станет весьма эффективным, плюс вы начнете расти уже профессионально.\n\nЕсть категория людей, которые получают второе и третье образование, продолжают бесконечно учиться — такая ситуация опасна и вредна, и главное — не попасться в эту ловушку.\n\n## Сколько нужно учиться, чтобы начать работать\n\nНельзя рассчитывать на то, что обучение займёт меньше трёх месяцев, просто потому что это физически невозможно. Даже если вы будете очень быстро учиться, всё впитывать, читать правильные книги, делать всё верно и по минимуму ошибаться, всё равно мозгу нужно какое-то время для адаптации и усвоения большого количества разных аспектов, поэтому 3 месяца — это самый минимальный крайний срок, после которого вам может повезти, и вы устроитесь совсем-совсем джуниором делать какую-то очень простую работу. В целом не стоит на это рассчитывать.\n\nПоэтому приблизительно для изучения основ программирования потребуется **от 3 месяцев до 1 года**. Больше года обучения без практики — это уже перебор. Давайте считать, что в среднем при неполной занятости, но при постоянном упорном обучении, вы сможете устроиться на должность программиста где-то через полгода после старта.\n"},"id":107,"slug":"prog-life","challenges_count":0,"name":"Жизнь программиста","allow_indexing":true,"state":"approved","course_state":"finished","pricing_type":"free","description":"На этом курсе вы познакомитесь с жизнью программиста. Вы узнаете, что значит быть программистом и как им стать. В итоге вы научитесь правильно настраиваться на достижение своих целей. Курс пригодится, если вы решили стать программистом и хотите узнать о навыках, которые нужны для этого. Знания из этого курса помогут узнать о нюансах профессии, о видах компаний и разработки.","kind":"basic","updated_at":"2026-01-20T11:42:45.518Z","language":"other","duration_cache":5220,"skills":["Ориентироваться в программном обеспечении (серверное, прикладное, системное)","Представлять себе преимущества и недостатки продуктовой и заказной разработки","Применять фундаментальные знания для решения задач"],"keywords":["языки программирования","пути карьерного роста","терминология"],"lessons_count":5,"cover":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjYxMSwicHVyIjoiYmxvYl9pZCJ9fQ==--b77c7dceef8ae8eb0ba8266aea8ccb1208f4ae65/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fZmlsbCI6WzYwMCw0MDBdfSwicHVyIjoidmFyaWF0aW9uIn19--6067466c2912ca31a17eddee04b8cf2a38c6ad17/image.png"},"recommendedLandings":[],"lessonMemberUnit":null,"accessToLearnUnitExists":true,"accessToCourseExists":true},"url":"/courses/prog-life/lessons/kinds/theory_unit","version":"8f286f6358a90a7bef2263b3a6edf5a90a94fa42","encryptHistory":false,"clearHistory":false}"><style data-mantine-styles="true">:root, :host{--mantine-font-family: Arial, sans-serif;--mantine-font-family-headings: Arial, sans-serif;--mantine-heading-font-weight: normal;--mantine-radius-default: 0rem;--mantine-primary-color-filled: var(--mantine-color-indigo-filled);--mantine-primary-color-filled-hover: var(--mantine-color-indigo-filled-hover);--mantine-primary-color-light: var(--mantine-color-indigo-light);--mantine-primary-color-light-hover: var(--mantine-color-indigo-light-hover);--mantine-primary-color-light-color: var(--mantine-color-indigo-light-color);--mantine-spacing-xxl: calc(4rem * var(--mantine-scale));--mantine-font-size-xs: 12px;--mantine-font-size-sm: 14px;--mantine-font-size-md: 16px;--mantine-font-size-lg: clamp(16.0000px, calc(15.2727px + 0.2273vw), 18.0000px);--mantine-font-size-xl: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-display-3: clamp(32.0000px, calc(26.1818px + 1.8182vw), 48.0000px);--mantine-font-size-display-2: clamp(36.0000px, calc(25.8182px + 3.1818vw), 64.0000px);--mantine-font-size-display-1: clamp(40.0000px, calc(25.4545px + 4.5455vw), 80.0000px);--mantine-font-size-h1: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-font-size-h2: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-font-size-h3: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-font-size-h4: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-font-size-h5: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-h6: 1rem;--mantine-primary-color-0: var(--mantine-color-indigo-0);--mantine-primary-color-1: var(--mantine-color-indigo-1);--mantine-primary-color-2: var(--mantine-color-indigo-2);--mantine-primary-color-3: var(--mantine-color-indigo-3);--mantine-primary-color-4: var(--mantine-color-indigo-4);--mantine-primary-color-5: var(--mantine-color-indigo-5);--mantine-primary-color-6: var(--mantine-color-indigo-6);--mantine-primary-color-7: var(--mantine-color-indigo-7);--mantine-primary-color-8: var(--mantine-color-indigo-8);--mantine-primary-color-9: var(--mantine-color-indigo-9);--mantine-color-red-0: #ffeaea;--mantine-color-red-1: #fed4d4;--mantine-color-red-2: #f4a7a8;--mantine-color-red-3: #ec7878;--mantine-color-red-4: #e55050;--mantine-color-red-5: #e03131;--mantine-color-red-6: #e02829;--mantine-color-red-7: #c71a1c;--mantine-color-red-8: #b21218;--mantine-color-red-9: #9c0411;--mantine-color-violet-0: #fce9ff;--mantine-color-violet-1: #f1cfff;--mantine-color-violet-2: #e09bff;--mantine-color-violet-3: #d16fff;--mantine-color-violet-4: #be37fe;--mantine-color-violet-5: #b51afe;--mantine-color-violet-6: #b009ff;--mantine-color-violet-7: #9b00e4;--mantine-color-violet-8: #8a00cc;--mantine-color-violet-9: #7800b3;--mantine-color-indigo-0: #edecff;--mantine-color-indigo-1: #d6d5fe;--mantine-color-indigo-2: #aaa9f4;--mantine-color-indigo-3: #7b79eb;--mantine-color-indigo-4: #5451e4;--mantine-color-indigo-5: #3b37e0;--mantine-color-indigo-6: #2d2adf;--mantine-color-indigo-7: #1f1ec7;--mantine-color-indigo-8: #1819b2;--mantine-color-indigo-9: #0c149e;--mantine-color-cyan-0: #dffdff;--mantine-color-cyan-1: #caf5ff;--mantine-color-cyan-2: #99e8ff;--mantine-color-cyan-3: #64daff;--mantine-color-cyan-4: #3ccffe;--mantine-color-cyan-5: #24c8fe;--mantine-color-cyan-6: #00c2ff;--mantine-color-cyan-7: #00ade4;--mantine-color-cyan-8: #009acd;--mantine-color-cyan-9: #0085b5;--mantine-color-green-0: #e9fdec;--mantine-color-green-1: #d7f6dc;--mantine-color-green-2: #b0eab9;--mantine-color-green-3: #86df94;--mantine-color-green-4: #62d574;--mantine-color-green-5: #4ccf5f;--mantine-color-green-6: #3fcc54;--mantine-color-green-7: #2fb344;--mantine-color-green-8: #25a03b;--mantine-color-green-9: #138a2e;--mantine-color-yellow-0: #fff7e2;--mantine-color-yellow-1: #ffeecd;--mantine-color-yellow-2: #ffdc9c;--mantine-color-yellow-3: #ffc966;--mantine-color-yellow-4: #feb93a;--mantine-color-yellow-5: #feae1e;--mantine-color-yellow-6: #ffa90f;--mantine-color-yellow-8: #ca8200;--mantine-color-yellow-9: #af7000;--mantine-h1-font-size: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-h1-font-weight: normal;--mantine-h2-font-size: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-h2-font-weight: normal;--mantine-h3-font-size: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-h3-font-weight: normal;--mantine-h4-font-size: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-h4-font-weight: normal;--mantine-h5-font-size: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-h5-font-weight: normal;--mantine-h6-font-size: 1rem;--mantine-h6-font-weight: normal;}
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-dark-filled: var(--mantine-color-dark-5);--mantine-color-dark-filled-hover: var(--mantine-color-dark-6);--mantine-color-dark-light: rgba(105, 105, 105, 0.15);--mantine-color-dark-light-hover: rgba(105, 105, 105, 0.2);--mantine-color-dark-light-color: var(--mantine-color-dark-0);--mantine-color-dark-outline: var(--mantine-color-dark-1);--mantine-color-dark-outline-hover: rgba(184, 184, 184, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-5);--mantine-color-gray-filled-hover: var(--mantine-color-gray-6);--mantine-color-gray-light: rgba(222, 226, 230, 0.15);--mantine-color-gray-light-hover: rgba(222, 226, 230, 0.2);--mantine-color-gray-light-color: var(--mantine-color-gray-0);--mantine-color-gray-outline: var(--mantine-color-gray-1);--mantine-color-gray-outline-hover: rgba(241, 243, 245, 0.05);--mantine-color-red-filled: var(--mantine-color-red-5);--mantine-color-red-filled-hover: var(--mantine-color-red-6);--mantine-color-red-light: rgba(236, 120, 120, 0.15);--mantine-color-red-light-hover: rgba(236, 120, 120, 0.2);--mantine-color-red-light-color: var(--mantine-color-red-0);--mantine-color-red-outline: var(--mantine-color-red-1);--mantine-color-red-outline-hover: rgba(254, 212, 212, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-5);--mantine-color-pink-filled-hover: var(--mantine-color-pink-6);--mantine-color-pink-light: rgba(250, 162, 193, 0.15);--mantine-color-pink-light-hover: rgba(250, 162, 193, 0.2);--mantine-color-pink-light-color: var(--mantine-color-pink-0);--mantine-color-pink-outline: var(--mantine-color-pink-1);--mantine-color-pink-outline-hover: rgba(255, 222, 235, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-5);--mantine-color-grape-filled-hover: var(--mantine-color-grape-6);--mantine-color-grape-light: rgba(229, 153, 247, 0.15);--mantine-color-grape-light-hover: rgba(229, 153, 247, 0.2);--mantine-color-grape-light-color: var(--mantine-color-grape-0);--mantine-color-grape-outline: var(--mantine-color-grape-1);--mantine-color-grape-outline-hover: rgba(243, 217, 250, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-5);--mantine-color-violet-filled-hover: var(--mantine-color-violet-6);--mantine-color-violet-light: rgba(209, 111, 255, 0.15);--mantine-color-violet-light-hover: rgba(209, 111, 255, 0.2);--mantine-color-violet-light-color: var(--mantine-color-violet-0);--mantine-color-violet-outline: var(--mantine-color-violet-1);--mantine-color-violet-outline-hover: rgba(241, 207, 255, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-5);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-6);--mantine-color-indigo-light: rgba(123, 121, 235, 0.15);--mantine-color-indigo-light-hover: rgba(123, 121, 235, 0.2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-0);--mantine-color-indigo-outline: var(--mantine-color-indigo-1);--mantine-color-indigo-outline-hover: rgba(214, 213, 254, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-5);--mantine-color-blue-filled-hover: var(--mantine-color-blue-6);--mantine-color-blue-light: rgba(116, 192, 252, 0.15);--mantine-color-blue-light-hover: rgba(116, 192, 252, 0.2);--mantine-color-blue-light-color: var(--mantine-color-blue-0);--mantine-color-blue-outline: var(--mantine-color-blue-1);--mantine-color-blue-outline-hover: rgba(208, 235, 255, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-5);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-6);--mantine-color-cyan-light: rgba(100, 218, 255, 0.15);--mantine-color-cyan-light-hover: rgba(100, 218, 255, 0.2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-0);--mantine-color-cyan-outline: var(--mantine-color-cyan-1);--mantine-color-cyan-outline-hover: rgba(202, 245, 255, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-5);--mantine-color-teal-filled-hover: var(--mantine-color-teal-6);--mantine-color-teal-light: rgba(99, 230, 190, 0.15);--mantine-color-teal-light-hover: rgba(99, 230, 190, 0.2);--mantine-color-teal-light-color: var(--mantine-color-teal-0);--mantine-color-teal-outline: var(--mantine-color-teal-1);--mantine-color-teal-outline-hover: rgba(195, 250, 232, 0.05);--mantine-color-green-filled: var(--mantine-color-green-5);--mantine-color-green-filled-hover: var(--mantine-color-green-6);--mantine-color-green-light: rgba(134, 223, 148, 0.15);--mantine-color-green-light-hover: rgba(134, 223, 148, 0.2);--mantine-color-green-light-color: var(--mantine-color-green-0);--mantine-color-green-outline: var(--mantine-color-green-1);--mantine-color-green-outline-hover: rgba(215, 246, 220, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-5);--mantine-color-lime-filled-hover: var(--mantine-color-lime-6);--mantine-color-lime-light: rgba(192, 235, 117, 0.15);--mantine-color-lime-light-hover: rgba(192, 235, 117, 0.2);--mantine-color-lime-light-color: var(--mantine-color-lime-0);--mantine-color-lime-outline: var(--mantine-color-lime-1);--mantine-color-lime-outline-hover: rgba(233, 250, 200, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-5);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-6);--mantine-color-yellow-light: rgba(255, 201, 102, 0.15);--mantine-color-yellow-light-hover: rgba(255, 201, 102, 0.2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-0);--mantine-color-yellow-outline: var(--mantine-color-yellow-1);--mantine-color-yellow-outline-hover: rgba(255, 238, 205, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-5);--mantine-color-orange-filled-hover: var(--mantine-color-orange-6);--mantine-color-orange-light: rgba(255, 192, 120, 0.15);--mantine-color-orange-light-hover: rgba(255, 192, 120, 0.2);--mantine-color-orange-light-color: var(--mantine-color-orange-0);--mantine-color-orange-outline: var(--mantine-color-orange-1);--mantine-color-orange-outline-hover: rgba(255, 232, 204, 0.05);--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-cyan-7) 100%);--app-color-surface: #2e2e2e;}
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-red-light: rgba(224, 40, 41, 0.1);--mantine-color-red-light-hover: rgba(224, 40, 41, 0.12);--mantine-color-red-outline-hover: rgba(224, 40, 41, 0.05);--mantine-color-violet-light: rgba(176, 9, 255, 0.1);--mantine-color-violet-light-hover: rgba(176, 9, 255, 0.12);--mantine-color-violet-outline-hover: rgba(176, 9, 255, 0.05);--mantine-color-indigo-light: rgba(45, 42, 223, 0.1);--mantine-color-indigo-light-hover: rgba(45, 42, 223, 0.12);--mantine-color-indigo-outline-hover: rgba(45, 42, 223, 0.05);--mantine-color-cyan-light: rgba(0, 194, 255, 0.1);--mantine-color-cyan-light-hover: rgba(0, 194, 255, 0.12);--mantine-color-cyan-outline-hover: rgba(0, 194, 255, 0.05);--mantine-color-green-light: rgba(63, 204, 84, 0.1);--mantine-color-green-light-hover: rgba(63, 204, 84, 0.12);--mantine-color-green-outline-hover: rgba(63, 204, 84, 0.05);--mantine-color-yellow-light: rgba(255, 169, 15, 0.1);--mantine-color-yellow-light-hover: rgba(255, 169, 15, 0.12);--mantine-color-yellow-outline-hover: rgba(255, 169, 15, 0.05);--app-color-surface: #f1f3f5;--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-5) 100%);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><div style="position:absolute;top:0rem" class=""></div><div style="max-width:var(--container-size-xl);height:100%;min-height:0rem" class=""><style data-mantine-styles="inline">.__m__-_R_5ub_{--grid-gutter:0rem;}</style><div style="height:100%;min-height:0rem" class="m_410352e9 mantine-Grid-root __m__-_R_5ub_"><div class="m_dee7bd2f mantine-Grid-inner" style="height:100%"><style data-mantine-styles="inline">.__m__-_R_rdub_{--col-flex-grow:auto;--col-flex-basis:91.66666666666667%;--col-max-width:91.66666666666667%;}@media(min-width: 48em){.__m__-_R_rdub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}</style><div style="min-width:0rem;height:100%;min-height:0rem;display:flex" class="m_96bdd299 mantine-Grid-col __m__-_R_rdub_"><style data-mantine-styles="inline">.__m__-_R_6qrdub_{margin-top:0rem;padding-inline:var(--mantine-spacing-xs);width:100%;}@media(min-width: 48em){.__m__-_R_6qrdub_{margin-top:var(--mantine-spacing-xl);width:80%;}}@media(min-width: 62em){.__m__-_R_6qrdub_{padding-inline:var(--mantine-spacing-xl);}}</style><div style="margin-inline:auto;max-width:var(--mantine-breakpoint-xl)" class="__m__-_R_6qrdub_"><div style="color:var(--mantine-color-dimmed)" class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:calc(0.125rem * var(--mantine-scale));color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-lock "><path d="M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6"></path><path d="M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0"></path><path d="M8 11v-4a4 4 0 1 1 8 0v4"></path></svg></div><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Жизнь программиста</p></div><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size);margin-bottom:var(--mantine-spacing-xl)" class="m_8a5d1357 mantine-Title-root" data-order="1">Теория: Виды компаний и разработки</h1><script type="application/ld+json">{"@context":"https://schema.org","@type":"LearningResource","name":"Виды компаний и разработки","inLanguage":"ru","isPartOf":{"@type":"LearningResource","name":"Жизнь программиста"},"isAccessibleForFree":"False","hasPart":{"@type":"WebPageElement","isAccessibleForFree":"False","cssSelector":".paywalled"}}</script><div class=""><div style="--alert-color:var(--mantine-color-indigo-light-color);margin-bottom:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-lg)" class="m_66836ed3 mantine-Alert-root" id="mantine-_R_remqrdub_" role="alert" aria-describedby="mantine-_R_remqrdub_-body" aria-labelledby="mantine-_R_remqrdub_-title"><div class="m_a5d60502 mantine-Alert-wrapper"><div class="m_667f2a6a mantine-Alert-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-rocket "><path d="M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3 -5a9 9 0 0 0 6 -8a3 3 0 0 0 -3 -3a9 9 0 0 0 -8 6a6 6 0 0 0 -5 3"></path><path d="M7 14a6 6 0 0 0 -3 6a6 6 0 0 0 6 -3"></path><path d="M14 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path></svg></div><div class="m_667c2793 mantine-Alert-body"><div class="m_6a03f287 mantine-Alert-title"><span id="mantine-_R_remqrdub_-title" class="m_698f4f23 mantine-Alert-label">Полный доступ к материалам</span></div><div id="mantine-_R_remqrdub_-body" class="m_7fa78076 mantine-Alert-message"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Зарегистрируйтесь и получите доступ к этому и десяткам других курсов</p><a style="--button-height:var(--button-height-xs);--button-padding-x:var(--button-padding-x-xs);--button-fz:var(--mantine-font-size-xs);--button-bg:linear-gradient(45deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-filled) 100%);--button-hover:linear-gradient(45deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-filled) 100%);--button-color:var(--mantine-color-white);--button-bd:none" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="gradient" data-size="xs" href="/u/new"><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">Зарегистрироваться</span></span></a></div></div></div></div></div><div style="margin-bottom:var(--mantine-spacing-xl)" class=""><div class="ratio ratio-16x9"><iframe width="100%" height="auto" src="//player.vimeo.com/video/154169612" loading="lazy" allowFullScreen="" title="video"></iframe></div></div><div class="paywalled m_d08caa0 mantine-Typography-root"><p>В этом уроке мы поговорим о том, какие бывают компании и направления в разработке.</p>
<p>Компании делятся на две больших категории, исходя из ролей, которые в них играют программисты и разработка программного обеспечения. Первая группа — это те компании, в которых IT — это просто отдел, который не является основным бизнесом, а вторые — те, в которых бизнес построен вокруг IT.</p>
<p>С теми компаниями, в которых IT представлен в качестве отдела, всё достаточно просто. Это могут быть фабричные производства, банки, крупные строительные и любые другие компании, в которых нужна автоматизация. Чаще всего эти IT-отделы нужны именно для автоматизации документооборота или улучшения каких-то бизнес-процессов внутри компании, и от IT-отдела не требуется ничего сверхъестественного, кроме решения конкретных потребностей этого бизнеса.</p>
<p>Вторая категория компаний — это те компании, в которых бизнес построен вокруг IT. Они делятся еще на несколько типов, о которых нужно знать.</p>
<h2 id="heading-2-1">Виды разработки</h2>
<h3 id="heading-3-2">Заказная разработка (outsourcing)</h3>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjYyOCwicHVyIjoiYmxvYl9pZCJ9fQ==--1afc8d273a4640f1d2bc4a9697084653e28ac859/directions_in_development.jpg" alt="Направления в разработке" loading="lazy"/></p>
<p>Первый тип — компании, занимающиеся заказной разработкой, или аутсорсингом. Такие компании имеют в своем штате разработчиков — иногда совершенно разных — и буквально продают их рабочее время заказчикам, у которых своих разработчиков нет, но им нужен какой-то софт. Большие аутсорсеры работают с представителями различных направлений бизнеса: промышленными предприятиями, страховыми компаниями, банками — теми, кому нужен серьёзный софт, в разработке которого задействовано много разработчиков.</p>
<p>Из-за особенностей бизнеса заказной разработки, по сути построенного в том или ином виде на продаже времени своих сотрудников, он стабилен, когда в нём много разработчиков — чем больше, тем лучше. По этой причине аутсорсеры стараются быть очень большими, у них работает очень много молодых разработчиков, они часто интегрируются с университетами, имеют кучу офисов по всему миру. В крупных компаниях, таких как EPAM, Luxoft и DataArt, работают тысячи девелоперов. Эти компании действительно зарабатывают много денег и очень стабильны. Помимо таких гигантов, в аутсорсинге работают очень много небольших компаний: от 1-2 до 50-100 разработчиков. Однако чем меньше компания, тем более она нестабильная: если у вас в одном месте где-то заказ не пошёл, освобождаются люди, которых надо чем-то занимать, иначе их зарплата не будет окупаться. С одной стороны, этому бизнесу присущи большие риски, но с другой, его очень легко начать — отсюда и большое количество компаний в нём. Можно просто позвать своих друзей и предложить им делать аутсорсинг. После этого нужно найти первых клиентов — и можно работать. А дальше по сарафанному радио о компании узнаёт все больше и больше клиентов, и при хорошем раскладе можно успешно зарабатывать. Некоторые компании, осуществляющие заказную разработку, именно так и начинали свою деятельность.</p>
<h3 id="heading-3-3">Продуктовая разработка</h3>
<p>Другое большое направление — это продуктовая разработка, когда компании занимаются развитием какого-то продукта, интересного потребителям. Если у вас действительно получается сделать какой-то востребованный продукт, то соотношение заработка к затратам обычно несоизмеримо. В аутсорсинге все достаточно просто: вы берете человека, он обходится вам в такую-то сумму, зарабатываете вы с его помощью такую-то сумму, масштабируетесь и линейно растёте. В продуктовой разработке, если ваш продукт востребован, вы можете иметь команду в 4 человека, но при этом зарабатывать миллионы долларов и обслуживать миллионы пользователей. Эта модель немного интересней, потому что позволяет вам неограниченно масштабироваться, но создать такой продукт значительно сложнее, чем начать аутсорсинг. Кроме того, жизненные циклы некоторых продуктов время от времени подходят к концу из-за изменения конъюнктуры рынка, реалий или по иным причинам, и они перестают существовать, поэтому важно уделять внимание их диверсификации.</p>
<h2 id="heading-2-4">Классификация ПО</h2>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NjYzMCwicHVyIjoiYmxvYl9pZCJ9fQ==--a41aa7c824f4d1fcca404a18d9128bac95ea4547/types_of_software.jpg" alt="Виды программного обеспечения" loading="lazy"/></p>
<p>Теперь давайте разберёмся, какие виды программного обеспечения и направления разработки существуют, куда можно идти и чем заниматься.</p>
<p>Существует множество различных классификаций программного обеспечения, но при выборе направления работы программисты в первую очередь обращают внимание на платформу, которую затем меняют крайне редко. Классификация прикладного ПО по платформам:</p>
<ul>
<li>Web-программирование</li>
<li>Мобильная разработка</li>
<li>Десктоп</li>
<li>Серверное ПО</li>
</ul>
<p>Огромной популярностью пользуется мобильная и веб-разработка — в них больше вакансий, денег и возможностей. В разработке есть специальные направления, не связанные с одним типом платформы, такие как разработка игр (геймдев). Программисты пишут игровые движки, игры для веба и десктопа, и всё больше и больше игр портируется или разрабатывается для мобильных устройств. И скорее всего, созданием игр при текущих условиях будут заниматься именно те, кто работает в мобильной разработке, а не просто люди из области геймдева, которые просто возьмут и сменят платформу. Это лишь отвлеченный пример, связанный с трендами современности: всё уходит в веб и мобильные устройства, но в целом он прекрасно иллюстрирует взаимосвязь платформ и специализированных отраслей разработки, показывая важность первых при выборе направления своей деятельности.</p>
<h3 id="heading-3-5">Серверное ПО</h3>
<p>В разработке серверного ПО могут использоваться абсолютно любые языки. Серверное ПО в конечном итоге пересекается и с мобильной разработкой, и с веб-разработкой, и вообще с любым видом разработки. Серверное программное обеспечение подразделяется на прикладное ПО, системное ПО и инструментарий.</p>
<h3 id="heading-3-6">Прикладное ПО</h3>
<p>В программировании почти всегда есть фронтенд-часть — та, с которой непосредственно взаимодействует пользователь, и бэкенд-часть, которая находится где-то на сервере. Самостоятельная или связанная с фронтенд-частью — именно она и представляет собой прикладное ПО. Это могут быть и какие-либо расчеты, вычисления, аналитика, работа с большими объемами данных, анализ, биржи — всё что угодно.</p>
<h3 id="heading-3-7">Системное ПО</h3>
<p>Это особый тип программного обеспечения, с помощью которого компьютеры выполняют полезные задачи — это операционные системы, драйверы и иные программы, связанные непосредственно с железом.</p>
<h3 id="heading-3-8">Инструментарий</h3>
<p>Это всё, что помогает разработчикам: средства отладки, фреймворки, да и сами языки программирования. Это отдельное направление, которое требует очень серьёзного уровня разработчиков. Без базового фундаментального образования заниматься этим направлением очень сложно, но при большом желании и усердии возможно.</p>
<h3 id="heading-3-9">Десктоп (Desktop)</h3>
<p>Теряющее популярность, но все еще очень активное направление — это десктоп. Это так называемые "толстые клиенты", когда программа запускается локально, чаще всего без подключения к интернету.</p>
<p>В этом направлении всегда были популярны такие языки, как С++, Java и C#, но на пятки признанным авторитетам наступают те языки, которые еще не так давно никто не планировал использовать для написания толстых клиентов.</p>
<p>Но современный мир диктует свои правила, и универсальным языком, который все глубже проникает абсолютно во все направления разработки и на котором появляется всё больше приложений, стал JavaScript. Даже представители компании Microsoft заявили, что в будущих операционных системах Windows все приложения будут использовать HTML и JavaScript. И действительно: на JavaScript уже пишут серьёзные толстые клиенты и приложения на десктопе. Яркий тому пример — VSCode, очень популярный редактор, который будет использоваться во многих наших уроках и который мы рекомендуем поставить. Этот редактор выпущен Microsoft и основан на <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.electronjs.org/" rel="noopener noreferrer" target="_blank">Electron</a>, который использует JavaScript, что позволяет строить кросс-платформенные приложения: то есть такие, которые пишутся один раз, но работают на всех платформах.</p>
<h2 id="heading-2-10">Языки в Mobile</h2>
<p>Следующее направление — мобильное, и здесь есть две базовых ветви разработки: Android и iOS.</p>
<h3 id="heading-3-11">Android: Java, Kotlin</h3>
<p>В Android раньше был только Java, но сейчас большие обороты набирает язык Kotlin. Люди, использующие его в своих проектах, говорят, что теперь разработка под Android стала действительно приятной.</p>
<h3 id="heading-3-12">iOS: Objective-C, Swift</h3>
<p>Для разработки в iOS используется язык Swift, на который мигрировало большинство разработчиков, поскольку хотя Objective-C долго был главным и единственным языком, но уже морально устарел. Swift — это отличный свежий язык с правильными идеями, который Apple внезапно сделала open-source — а значит его скоро можно будет использовать вне iOS, что может быть весьма интересно, потому что этот язык обладает кучей полезных качеств.</p>
<h3 id="heading-3-13">Flutter, React Native</h3>
<p>Кроме конкретных платформ, в мире мобильной разработки существуют кроссплатформенные решения, которые позволяют писать код сразу и для IOS и для Android, используя один инструмент. Из широко используемых решений можно выделить два: фреймворк Flutter, написанный на языке Dart, и React Native, написанный на JavaScript</p>
<h2 id="heading-2-14">Языки в Web</h2>
<p>Веб делится на 2 подраздела: бэкенд и фронтенд. Любое веб-приложение в конечном итоге имеет ту часть, которая взаимодействует с пользователем, и почти всегда это тонкий клиент — браузер, в котором крутятся приложения. Если раньше это был просто HTML, и вся логика происходила на сервере, то сейчас логики в браузере становится все больше и больше, и он становится по-настоящему "толстым" и "тяжелым".</p>
<h3 id="heading-3-15">Backend</h3>
<ul>
<li>PHP, Ruby, Python, JavaScript (Node), Perl</li>
<li>Go, C#, Elixir, Rust, Java, Clojure, Kotlin, Scala</li>
</ul>
<p>Утяжеление тонких клиентов не отменяет того, что на бэкенде все равно должны храниться данные и выполняться определенная логика. Для бэкенда в вебе существует огромное количество языков. Теоретически, можно использовать вообще любой, но на практике используются чаще всего именно те, которые указаны выше. Java, Clojure, Kotlin, Scala, Groovy — это всё языки, построенные вокруг JVM, платформы, которая позволяет использовать их все вместе сразу, по очереди и как-то соединять между собой, поэтому можно сказать, что это одно семейство. Язык Go появился недавно, но очень быстро занял определенную нишу, и используется всё чаще. И, конечно же, самый популярный язык веба — это PHP, который является лидером, несмотря на все свои недостатки, и на нём сделано очень много сайтов, и с каждым днём их число лишь растёт.</p>
<h3 id="heading-3-16">Frontend</h3>
<ul>
<li>JavaScript</li>
</ul>
<p>JavaScript присутствует и в бэкенде, и во фронтенде, и он будет все больше проникать в незанятые ранее ниши. JavaScript сейчас очень активно развивается и становится всё более серьёзным и классным языком.</p>
<h2 id="heading-2-17">Что выбрать? Критерии</h2>
<p>Итак, что же выбрать и по каким критериям ориентироваться? Этими вопросами часто задаются люди, которые хотят заниматься программированием.</p>
<h3 id="heading-3-18">Область, к которой лежит душа</h3>
<p>Область, к которой лежит душа — в первую очередь. Не всегда это можно понять сразу, потому что людям иногда просто не с чем сравнить, пока они не попробовали поработать в том или ином направлении. Поэтому, если трудно определиться, чем хотелось бы заниматься, приходится ориентироваться на два других критерия.</p>
<h3 id="heading-3-19">Требуемая квалификация</h3>
<p>По этому критерию можно понять, куда точно джуниором не попасть. Геймдев в любом направлении — будь то веб, десктоп или мобильная разработка — требует серьёзных знаний. Это можно увидеть, просто проанализировав вакансии по какому-то направлению. Если стоит задача как можно скорее стать разработчиком, то лучше выбирать то направление, в которое требуется то количество знаний, которое выучить можно в адекватное время, чтобы не затягивать с трудоустройством.</p>
<h3 id="heading-3-20">Количество вакансий</h3>
<p>Очень важный критерий — это количество вакансий. Если говорить про Москву, Питер и другие большие города, то в целом там вакансий довольно много по любым направлениям, но если говорить о городах поменьше и подальше, то там будет значительно меньше вакансий, а некоторые направления и языки вообще не представлены на рынке или встречаются крайне редко.</p>
<p>Мы перечислили основные критерии, которые помогут выбрать направление в профессии. Очень важно сделать это с самого начала, потому что только сделав выбор, можно планомерно и поступательно двигаться к своей цели. Пока этого не будет сделано, можно долго перескакивать с одного на другое, в итоге потратить очень много времени, года на обучение, но так по-настоящему и не стать разработчиком. Не затягивайте, делайте свой выбор и начинайте писать код.</p></div></div></div></div><style data-mantine-styles="inline">.__m__-_R_1bdub_{--col-flex-grow:auto;--col-flex-basis:8.333333333333334%;--col-max-width:8.333333333333334%;}@media(min-width: 48em){.__m__-_R_1bdub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}</style><div style="min-width:0rem;height:100%;min-height:0rem" class="m_96bdd299 mantine-Grid-col __m__-_R_1bdub_"><div style="margin-inline:var(--mantine-spacing-xs)" class="mantine-visible-from-sm"><a style="--button-color:var(--mantine-color-white);margin-bottom:var(--mantine-spacing-lg);text-decoration:none" class="mantine-focus-auto m_849cf0da mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses/prog-life/lessons/kinds/finish_unit?unit=theory" data-disabled="true" data-block="true" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label"><span style="margin-inline-end:var(--mantine-spacing-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Дальше</span>→</span></span></a><a style="padding-inline:0rem" class="mantine-focus-auto m_f0824112 mantine-NavLink-root m_87cf2631 mantine-UnstyledButton-root"><span class="m_690090b5 mantine-NavLink-section" data-position="left"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-list-numbers "><path d="M11 6h9"></path><path d="M11 12h9"></path><path d="M12 18h8"></path><path d="M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4"></path><path d="M6 10v-6l-2 2"></path></svg></div></span><div class="m_f07af9d2 mantine-NavLink-body"><span class="m_1f6ac4c4 mantine-NavLink-label">Навигация по теме</span><span class="m_57492dcc mantine-NavLink-description">Теория</span></div><span class="m_690090b5 mantine-NavLink-section" data-position="right"></span></a><div style="margin-block:var(--mantine-spacing-lg)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div><div style="margin-block:var(--mantine-spacing-lg)" class=""><div style="justify-content:space-between;margin-bottom:calc(0.1875rem * var(--mantine-scale));color:var(--mantine-color-dimmed);font-size:var(--mantine-font-size-xs)" class="m_8bffd616 mantine-Flex-root __m__-_R_qimrbdub_"><p style="font-size:var(--mantine-font-size-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Завершено</p><p style="font-size:var(--mantine-font-size-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">0 / 5</p></div><div style="--progress-size:var(--progress-size-sm)" class="m_db6d6462 mantine-Progress-root" data-size="sm"><div style="--progress-section-size:0%;--progress-section-color:var(--mantine-color-gray-filled)" class="m_2242eb65 mantine-Progress-section" role="progressbar" aria-valuemax="100" aria-valuemin="0" aria-valuenow="0" aria-valuetext="0%"></div></div></div><button style="padding-inline:0rem" class="mantine-focus-auto m_f0824112 mantine-NavLink-root m_87cf2631 mantine-UnstyledButton-root" type="button"><span class="m_690090b5 mantine-NavLink-section" data-position="left"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message "><path d="M8 9h8"></path><path d="M8 13h6"></path><path d="M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12"></path></svg></div></span><div class="m_f07af9d2 mantine-NavLink-body"><span class="m_1f6ac4c4 mantine-NavLink-label">Обсуждения (архив)</span><span class="m_57492dcc mantine-NavLink-description"></span></div></button><div style="--toc-bg:var(--mantine-color-blue-light);--toc-color:var(--mantine-color-blue-light-color);--toc-size:var(--mantine-font-size-sm);--toc-radius:var(--mantine-radius-sm);margin-top:var(--mantine-spacing-xl)" class="m_bcaa9990 mantine-TableOfContents-root" data-variant="light" data-size="sm"></div></div><div class="mantine-hidden-from-sm"><div style="--stack-gap:0rem;--stack-align:stretch;--stack-justify:flex-start" class="m_6d731127 mantine-Stack-root"><a style="--button-color:var(--mantine-color-white);margin-bottom:var(--mantine-spacing-xs);padding:0rem;text-decoration:none" class="mantine-focus-auto m_849cf0da mantine-focus-auto m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses/prog-life/lessons/kinds/finish_unit?unit=theory" data-disabled="true" data-block="true" disabled=""><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label">→</span></span></a><button style="--ai-size:var(--ai-size-sm);--ai-bg:transparent;--ai-hover:var(--mantine-color-indigo-light-hover);--ai-color:var(--mantine-color-indigo-light-color);--ai-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-block:var(--mantine-spacing-lg);color:inherit;width:100%" class="mantine-focus-auto m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-disabled="true" type="button" disabled=""><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-list-numbers "><path d="M11 6h9"></path><path d="M11 12h9"></path><path d="M12 18h8"></path><path d="M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4"></path><path d="M6 10v-6l-2 2"></path></svg></span></button><button style="--ai-size:var(--ai-size-sm);--ai-bg:transparent;--ai-hover:var(--mantine-color-indigo-light-hover);--ai-color:var(--mantine-color-indigo-light-color);--ai-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-block:var(--mantine-spacing-lg);color:inherit;width:100%" class="mantine-focus-auto mantine-active m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" type="button"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message "><path d="M8 9h8"></path><path d="M8 13h6"></path><path d="M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12"></path></svg></span></button></div></div></div></div></div></div></div>
</main>
<footer class="bg-dark fw-light text-light px-3 py-5">
<div class="row small">
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 mb-3">Хекслет</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/about">О нас</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/testimonials">Отзывы</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://b2b.hexlet.io" role="button">Корпоративное обучение</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/blog">Блог</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/qna">Вопросы и ответы</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/glossary">Глоссарий</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://help.hexlet.io" data-target="_blank" role="button">Справка</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" target="_blank" rel="noopener noreferrer" href="/map">Карта сайта</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 fw-normal mb-3">Направления</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_devops">DevOps
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_data_analytics">Аналитика
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_backend_development">Бэкенд
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_programming">Программирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_testing">Тестирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_front_end_dev">Фронтенд
</a></li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Профессии</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/go">Go-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/java">Java-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python">Python-разработчик </a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/data-analytics">Аналитик данных</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/qa-engineer">Инженер по ручному тестированию</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php">РНР-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/frontend">Фронтенд-разработчик</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Навыки</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python-django-developer">Django</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/docker">Docker</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php-laravel-developer">Laravel</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/postman">Postman</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-react-developer">React</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-rest-api">REST API в Node.js</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/spring-boot">Spring Boot</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/typescript">Typescript</a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-12 col-sm-4 col-md-2">
<div class="fs-4">
<ul class="list-unstyled d-flex">
<li class="me-3">
<a aria-label="Telegram" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://t.me/hexlet_ru"><span class="bi bi-telegram"></span>
</a></li>
<li>
<a aria-label="Youtube" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://www.youtube.com/user/HexletUniversity"><span class="bi bi-youtube"></span>
</a></li>
</ul>
</div>
<div class="mb-2 d-flex flex-column">
<a class="link-light text-decoration-none" rel="nofollow" href="mailto:support@hexlet.io">support@hexlet.io</a>
<a class="link-light text-decoration-none py-2" target="_blank" href="https://t.me/hexlet_help_bot">t.me/hexlet_help_bot</a>
</div>
<ul class="list-unstyled d-flex">
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://hexlet.io/locale/switch?new_locale=en" data-target="_self" role="button"><span class="my-auto">EN</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 opacity-100 external-link" rel="nofollow" data-href="https://ru.hexlet.io/locale/switch?new_locale=ru" data-target="_self" role="button"><span class="my-auto">RU</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://kz.hexlet.io/locale/switch?new_locale=kz" data-target="_self" role="button"><span class="my-auto">KZ</span>
</span></li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<ul class="list-unstyled fs-4">
<li class="mb-3">
<a class="link-light text-decoration-none" href="tel:8%20800%20100%2022%2047">8 800 100 22 47</a>
<span class="d-block opacity-50 small">бесплатно по РФ</span>
</li>
<li>
<a class="link-light text-decoration-none" href="tel:%2B7%20495%20085%2021%2062">+7 495 085 21 62</a>
<span class="d-block opacity-50 small">бесплатно по Москве</span>
</li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<div class="small mb-3">Образовательные услуги оказываются на основании Л035-01298-77/01989008 от 14.03.2025</div>
<ul class="list-unstyled small">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/legal">Правовая информация</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/offer">Оферта</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/license">Лицензия</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/contacts">Контакты</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-12 col-md-4 small">
<div class="mb-2">
<div>ООО «<a href="/" class="text-decoration-none link-light">Хекслет Рус</a>»</div>
<div>108813 г. Москва, вн.тер.г. поселение Московский,</div>
<div>г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3</div>
<div>ОГРН 1217300010476</div>
<div>ИНН 7325174845</div>
</div>
<hr>
<div>АНО ДПО «<a href="/" class="text-decoration-none link-light">Учебный центр «Хекслет</a>»</div>
<div>119331 г. Москва, вн. тер. г. муниципальный округ</div>
<div>Ломоносовский, пр-кт Вернадского, д. 29</div>
<div>ОГРН 1247700712390</div>
<div>ИНН 7736364948</div>
</div>
</div>
</footer>
<div id="root-assistant-offcanvas"></div>
<script src="/vite/assets/assistant-Bukl1lYy.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/MarkdownBlock-DbyKWoR_.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/shiki-V011pkdv.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-XR8Qr8kR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dist-GCHh59xr.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useIsomorphicEffect-HJ6VK0D3.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-KSp6QbZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/classnames-l6ipYlLR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/debounce-jMQ_Cf4f.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v67327c56f0bb4ef8b305cae61679db8f1769101564043" integrity="sha512-rdcWY47ByXd76cbCFzznIcEaCN71jqkWBBqlwhF1SY7KubdLKZiEGeP7AyieKZlGP9hbY/MhGrwXzJC/HulNyg==" data-cf-beacon='{"version":"2024.11.0","token":"d11015b65d11429ea6b4a2ef37dd7e0b","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>