<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Для продвинутых</title>
    <description>Материалы для продвинутых разработчиков, тестировщиков, дата-сайентистов и других специалистов в IT.</description>
    <link>https://tproger.ru/tag/for-advanced</link>
    <atom:link href="https://tproger.ru/tag/for-advanced/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sun, 04 Oct 2026 22:42:57 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Для продвинутых</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Denwer SE: Возрождение легендарного локального веб-сервера на современном стеке</title>
      <link>https://tproger.ru/articles/denwer-se-vozrozhdenie-legendarnogo-lokalnogo-veb-servera-na-so</link>
      <comments>https://tproger.ru/articles/denwer-se-vozrozhdenie-legendarnogo-lokalnogo-veb-servera-na-so?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Александр Тишов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/denwer-se-vozrozhdenie-legendarnogo-lokalnogo-veb-servera-na-so</guid>
      <description><![CDATA[<p>Помните диск Z:, иконку джентльмена и магию Run.exe? Денвер вернулся. Denwer SE: Python вместо Perl, HTTPS без красных экранов, свежий PHP и портативность. И да, он всё ещё помещается на флешку.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/denwer-se-vozrozhdenie-legendarnogo-lokalnogo-veb-servera-na-so">Denwer SE: Возрождение легендарного локального веб-сервера на современном стеке</a>»</p>]]></description>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[MySQL]]></category>
      <category><![CDATA[PHP]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Браузеры]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[CMS]]></category>
      <category><![CDATA[Laravel]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 05 May 2026 10:11:34 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы начинали веб-разработку в середине 2000-х, то наверняка помните Denwer — «джентльменский набор веб-разработчика». Иконка в виде человека в шляпе, виртуальный диск Z:, папка <i>home/localhost/www</i> — всё это было ритуалом, который упрощал жизнь тысячам разработчиков. Но оригинальный Denwer безнадёжно устарел: Perl-скрипты, 32-битные сборки, поддержка только древних версий PHP и MySQL. Ему на смену пришли громоздкие комбайны вроде Open Server или сложные для новичков Docker-контейнеры.</p><p>Однако недавно проект получил второе дыхание. Разработчик Александр Тишов (Amro) — создатель <a href="https://seditio.org" rel="nofollow">CMS Seditio</a> и основатель веб-студии <a href="https://avego.org" rel="nofollow">«Авего»</a>  — выпустил <a href="https://seditio.org/dev/denwer-se-lokalnyj-veb-stek-dlya-windows-apache-php-mysql-mariadb" rel="nofollow">Denwer SE (Second Edition)</a>. Это не просто обновление, а полный реинжиниринг с сохранением классической философии: портативность, скорость работы и привычная структура каталогов.</p><p>В этой статье разберём, что изменилось под капотом, почему панель управления переехала с Perl на Python, как работает автоматический HTTPS с собственным корневым сертификатом и зачем нужен зоопарк версий PHP от 5.6 до 8.5.</p><h2>Краткий экскурс: от Denwer 3 до Denwer SE</h2><p>Оригинальный Denwer (сокращение от Джентельменский Набор Веб-разработчика) появился в начале 2000-х. Он представлял собой связку Apache + PHP + MySQL, упакованную в самораспаковывающийся архив. Главные фишки:</p><ul><li>Виртуальный диск (по умолчанию Z:), который монтировался через subst.</li><li>Автоматическое создание виртуальных хостов по именам папок в home.</li><li>Консольные exe-файлы (Run, Stop, Restart) без графического окна.</li></ul><p>Проблемы оригинала:</p><ul><li>Управление на Perl — медленно, тяжело поддерживать в Windows.</li><li>Только 32-битные компоненты.</li><li>Невозможно быстро переключать версии PHP или БД.</li><li>Отсутствие нормального HTTPS (только самоподписанные сертификаты с ошибками в браузере).</li><li>Поддержка прекратилась в 2016 году.</li></ul><p>Denwer SE решает все эти проблемы, оставаясь при этом таким же портативным — достаточно скопировать папку на флешку или в облачный каталог.</p><h2>Архитектура: Python вместо Perl</h2><p>Denwer SE — панель управления написана на Python и скомпилирована в один EXE-файл (через PyInstaller).</p><p>Внутри служебной папки <b>denwer\</b> лежат:</p><ul><li>DLL-версия Python — интерпретатор, который использует основной исполняемый файл.</li><li>Скомпилированные модули .pyd — в том числе GUI на базе Tcl/Tk для оконного интерфейса и системного трея.</li><li>Минимальный набор библиотек для управления службами, правки hosts и генерации сертификатов.</li></ul><p>Это даёт несколько преимуществ:</p><ul><li>Портативность — панель ищет соседние папки home и usr, поэтому каталог со стеком можно переносить куда угодно без переустановки.</li><li>Скорость — Python-скрипты запускаются быстрее, чем Perl, особенно на холодном старте.</li><li>Читаемость кода — разработчику проще поддерживать и расширять функционал.</li></ul><h2>Полный переход на x64</h2><p>Оригинальный Denwer навсегда остался 32-битным, что в современных реалиях просто неприемлемо. Denwer SE собирается исключительно под x64:</p><ul><li>Apache (версия 2.4.x) — 64-битный.</li><li>Все модули PHP (от 5.6 до 8.5) — Thread Safe x64.</li><li>MySQL / MariaDB — 64-битные сборки.</li></ul><p>Системные требования — Windows 7/8/10/11 (x64). Для работы компонентов потребуются Microsoft Visual C++ Redistributable (VC11, VC12, VC14, VC15). Разработчик положил установщики этих пакетов в папку <b>vcredist\</b> — при необходимости можно доустановить вручную.</p><h2>Структура каталогов: преемственность и гибкость</h2><p>Denwer SE сохранил классическую структуру, чтобы старые пользователи не ломали голову:</p><p>Главный конфиг — usr\configuration.txt. В нём задаются пути без жёсткой привязки к букве диска, например:</p><p>При старте панель монтирует виртуальный диск (по умолчанию Z:) и динамически подставляет путь через переменную <b>subst_drive</b>.</p><h2>Управление версиями PHP и БД без танцев с бубном</h2><p>В Denwer SE встроен менеджер версий. Вы просто выбираете из выпадающего списка нужную версию PHP (например, 8.3 или 5.6) — панель сама правит конфигурацию Apache.</p><p>Как это работает под капотом:</p><p>В папке usr/local/apache/php лежат подкаталоги php5.6, php7.4, php8.3 и т.д..</p><p>В каждом из них есть файл php-denwer.conf— шаблон для подключения модуля к Apache. При выборе версии этот файл копируется в <b>conf/extra/httpd-denwer.conf</b>, который затем включается в основной httpd.conf.</p><p>Если вы хотите добавить свою сборку PHP (например, PHP 8.4-rc), достаточно:</p><ul><li>Распаковать x64 Thread Safe версию в отдельный каталог внутри php\.</li><li>Создать php-denwer.conf по образцу.</li><li>Убедиться, что все DLL от VC++ установлены.</li></ul><p>Аналогично для баз данных: переключение между MySQL 5.7 и MariaDB 11.8 происходит через тот же интерфейс. В каталоге СУБД может лежать файл <b>db-denwer.conf</b>, который при старте копируется в <b>my.ini</b>.</p><h2>HTTPS, который не бесит: локальный Root CA</h2><p>Самое болезненное место при локальной разработке это самоподписанные сертификаты. Браузеры постоянно ругаются, приходится кликать «Принять риск». Для командной разработки это вообще катастрофа: каждый участник должен сгенерировать свой сертификат и добавить в исключения.</p><p>Denwer SE решает проблему элегантно — он создаёт собственный корневой центр сертификации (CA) и подписывает им сертификаты для всех ваших локальных доменов.</p><p>Как это работает:</p><ol><li>При первом запуске (если найден OpenSSL) панель генерирует ключи denwer-ca.key и сертификат denwer-ca.crt в папку usr/local/apache/conf/cert/denwer-ca/.</li><li>Для каждого виртуального хоста (папки в home/) автоматически создаётся сертификат в conf/cert/&lt;domain&gt;/.</li><li>Все сертификаты хостов подписаны локальным CA.</li></ol><p>Чтобы браузер доверял им, нужно один раз установить <b>denwer-ca.crt</b> в хранилище «Доверенные корневые центры сертификации» Windows. Для этого в панели есть специальная кнопка (требует прав администратора).</p><p>После этого любые HTTPS-запросы к локальным хостам работают без единого предупреждения.</p><h2>Удобства для разработчика (DX)</h2><p>В версии 1.2.4 добавили несколько фич, которые экономят время каждый день:</p><ul><li>Лог с таймштампами — каждая строка в окне панели имеет префикс [чч:мм:сс]. Теперь видно, сколько секунд сервер поднимается и где возможны задержки.</li><li>Прямой доступ к php.ini и my.cnf — рядом со списками версий появились кнопки, открывающие конфигурацию именно активной версии.</li><li>Автоматическое ведение hosts — панель в реальном времени сканирует home/, находит новые домены и прописывает их в C:\Windows\System32\drivers\etc\hosts. Журнал добавляемых записей сохраняется в usr\AddedHosts.txt. При остановке стека лишние строки удаляются.</li><li>Для смены версии PHP или базы данных панель требует полной остановки всех служб. Вы нажимаете «Стоп», меняете версию в списке, затем «Старт» — и стек поднимается уже с новыми настройками. Автоматический перезапуск без вашего участия работает только для Apache: когда вы добавляете новый домен в папку home/, панель сама переписывает vhosts.conf и перезапускает веб-сервер, не трогая БД.</li></ul><h2>Почему не Open Server или Docker?</h2><p>Этот вопрос закономерно возникает у всех, кто видит очередной локальный веб-сервер. Ведь есть уже давно Open Server Panel, Laragon, XAMPP, а для продвинутых — Docker. Зачем ещё один?</p><p><b>Open Server</b> — мощный и удобный комбайн с десятками версий PHP и настройками «на века». Но он разворачивается в системе не портативно: создаёт папки в ProgramData, пишет в реестр, а запуск может занимать 5–10 секунд. Denwer SE, напротив, полностью переносим: скопировал папку на флешку или в облачный каталог — и всё работает. Запуск стека — буквально 1–2 секунды, что критично, когда вы десятки раз за день перезапускаете сервер для тестов.</p><p><b>Docker</b> — индустриальный стандарт для изоляции и воспроизводимости окружений. Но для локальной разработки простого сайта он часто избыточен. Вам нужно разобраться в образах, контейнерах, пробросе портов, volume’ах и docker-compose.yml. А в Denwer SE вы просто создали папку в home/ — и готово. Никакой работы с командной строкой, никакого потребления гигабайт ОЗУ на фоновую службу Docker Desktop.</p><p><b>Laragon</b> — быстрый, портативный, поддерживает не только PHP, но и Node.js, Python, Go. Но он ориентирован на современные фреймворки, особенно Laravel. Denwer SE же сделан для тех, кто вырос на классическом Денвере: виртуальный диск Z:, папка home/имя_домена/www, минимум настроек. Не нужно переучиваться — просто распаковал и работаешь как 10 лет назад, но с новыми версиями PHP и HTTPS.</p><h2>Как начать пользоваться Denwer SE</h2><ol><li>Скачать архив с <a href="https://seditio.org/dev/denwer-se-lokalnyj-veb-stek-dlya-windows-apache-php-mysql-mariadb" rel="nofollow">официального сайта автора</a>.</li><li>Распаковать в любое место, например C:\web\DenwerSE\.</li><li>Запустить DenwerSE.exe — если нет прав администратора, попросит их для монтирования диска и правки hosts.</li><li>Нажать «Запустить» — появится виртуальный диск Z:, а в системном трее иконка.</li><li>Создать папку сайта — например, home\myproject.local и положить туда index.php.</li><li>Открыть в браузере http://myproject.local/ (или https://myproject.local/). HTTPS будет работать сразу после установки корневого сертификата (кнопка в панели).</li></ol><p>По умолчанию пароль к MySQL/MariaDB — пустая строка (пользователь <b>root</b>). При желании его можно сменить через phpMyAdmin.</p><h2>Заключение</h2><p>Denwer SE — это не просто ностальгический проект. Это действительно современный инструмент, который доказывает, что концепция «локального сервера в одну папку» всё ещё актуальна. Отказ от Perl в пользу Python, менеджер версий PHP/БД, нормальный HTTPS, портативность и мгновенный запуск — всё это делает его отличным выбором для быстрого прототипирования, тестирования легаси-кода или обучения веб-разработке.</p><p>Если вы устали ждать, пока Open Server применит настройки, или не хотите разбираться в Docker Compose — попробуйте <b>Denwer SE</b>. Вероятно, он напомнит вам старые добрые времена, но уже без боли устаревших технологий.</p><ul><li>Автор проекта: Александр Тишов
	(Amro), разработчик CMS Seditio.</li><li>Лицензия: Freeware.</li><li>Совместимость: Windows 7/8/10/11 x64.</li></ul><p>Исходники панели управления не открыты (распространяется скомпилированный EXE), но архитектура и конфиги полностью прозрачны. В планах — добавить поддержку Nginx в качестве альтернативы. Следите за обновлениями.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какой у тебя айтишный грех?</title>
      <link>https://tproger.ru/articles/kakoj-ty-ajtiwnyj-greh-</link>
      <comments>https://tproger.ru/articles/kakoj-ty-ajtiwnyj-greh-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kakoj-ty-ajtiwnyj-greh-</guid>
      <description><![CDATA[<p>Проектная исповедь: узнай свою темную сторону и получи билет на спасение</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kakoj-ty-ajtiwnyj-greh-">Какой у тебя айтишный грех?</a>»</p>]]></description>
      <category><![CDATA[Для мотивации]]></category>
      <category><![CDATA[Методологии разработки]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 07 Nov 2025 08:45:06 GMT</pubDate>
      <content:encoded><![CDATA[<p>Каждый разработчик грешен — кто-то гордится своим идеальным кодом, кто-то не может остановить рефакторинг, а кто-то тайно завидует зарплатам в соседней команде. Пришло время честно взглянуть в зеркало и понять, какой из семи айтишных грехов правит твоей душой.</p><p><b>Тест займет 3 минуты, но откроет то, о чем ты не подозревал годами... </b></p><p>В конце узнаешь не только свой главный грех, но и получишь персональный совет, как с ним справиться.</p><p>А если захочешь полного очищения — билет на <a href="https://tprg.ru/cDvf">Проектную исповедь</a> уже ждет тебя.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие приложения установить на Windows и macOS</title>
      <link>https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos</link>
      <comments>https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos</guid>
      <description><![CDATA[<p>Список разбит по категориям: от браузеров и гейминга до утилит безопасности и инструментов для продуктивности.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos">Какие приложения установить на Windows и macOS</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[.NET]]></category>
      <category><![CDATA[Браузеры]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Slack]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Windows 10]]></category>
      <category><![CDATA[Google Chrome]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[VPN]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Xbox]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Adobe]]></category>
      <category><![CDATA[Firefox]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Mozilla]]></category>
      <category><![CDATA[Avast]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[AMD]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Epic Games]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Бета]]></category>
      <category><![CDATA[Safari]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[PlayStation]]></category>
      <category><![CDATA[Microsoft Edge]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[RPA]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Figma]]></category>
      <category><![CDATA[Графы]]></category>
      <category><![CDATA[Markdown]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Notion]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Steam]]></category>
      <category><![CDATA[GPU]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[iPhone]]></category>
      <category><![CDATA[MacBook]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 26 Oct 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Итак, вы только что настроили новый компьютер. Операционная система установлена, драйверы обновлены, и теперь пора заняться самым интересным — установкой программ. Но с чего начать? Какие приложения действительно необходимы, а какие просто занимают место?</p><p>Редакция Tproger сделала и адаптировала <a href="https://www.techspot.com/article/2974-desktop-software-essentials/">перевод подборки  программ для Windows и macOS</a>. Здесь вы найдёте проверенные временем решения для работы, развлечений и повседневных задач. Мы сосредоточились на бесплатных и условно-бесплатных приложениях с отличной репутацией, которые решают реальные задачи без навязывания ненужных функций.</p><p>Список разбит по категориям: от браузеров и гейминга до утилит безопасности и инструментов для продуктивности.</p><p>Неважно, опытный вы пользователь или новичок — здесь найдётся что-то полезное для каждого.</p><h2>Браузеры</h2><p>Браузер — это, пожалуй, самое важное приложение на вашем компьютере. Именно через него проходит большая часть вашей цифровой жизни: работа, развлечения, коммуникации. Выбор браузера влияет не только на скорость загрузки страниц, но и на конфиденциальность, безопасность и удобство работы.</p><ul><li><b>Большинство пользователей:</b> Chrome, Edge или Safari</li><li><b>Защита приватности: </b>Firefox, Brave, Ungoogled Chromium</li><li><b>Опытные пользователи:</b> Vivaldi</li><li><b>Максимальная анонимность: </b>Tor Browser</li></ul><h3>Google Chrome</h3><p>Chrome остаётся самым популярным браузером в мире — и не просто так. Он быстрый, стабильный и отлично интегрируется с экосистемой Google. Огромная библиотека расширений из Chrome Web Store позволяет настроить браузер под любые задачи. Синхронизация между устройствами работает безупречно: вкладки, пароли, закладки и история всегда под рукой.</p><p>Минус один, но существенный: Chrome прожорлив. Если у вас открыто больше десятка вкладок, он может съесть несколько гигабайт оперативной памяти. На компьютерах с 8 ГБ RAM и меньше это становится проблемой.</p><h3>Mozilla Firefox</h3><p>Firefox — это выбор тех, кто ценит приватность и открытость. Mozilla не зарабатывает на продаже ваших данных, а сам браузер активно развивается сообществом. Встроенные инструменты защиты от трекинга работают из коробки, блокируя рекламные сети и скрипты слежения.</p><p>По скорости Firefox не уступает Chrome, а по потреблению памяти даже выигрывает. Библиотека расширений чуть меньше, чем у Chrome, но все основные инструменты доступны.</p><h3>Microsoft Edge</h3><p>Edge построен на том же движке Chromium, что и Chrome, но при этом лучше оптимизирован для Windows. Microsoft вложилась в производительность: браузер работает быстро, потребляет меньше ресурсов и отлично интегрируется с системой.</p><p>Особенно приятны функции вроде Collections (коллекции вкладок для организации исследований), режим чтения и встроенный скриншотер. Edge поддерживает все расширения Chrome, так что переход безболезненный.</p><h3>Brave</h3><p>Brave — это Chrome на стероидах приватности. Браузер блокирует рекламу и трекеры по умолчанию, что делает сёрфинг быстрее и безопаснее. При этом он полностью совместим с расширениями Chrome.</p><p>Есть интересная фишка: Brave Rewards позволяет зарабатывать криптовалюту за просмотр приватной рекламы (если захотите её включить). Спорная механика, но как опция — почему нет. Для тех, кто хочет Chrome без Google и с упором на приватность, Brave — отличный выбор.</p><h3>Safari (только macOS)</h3><p>Если у вас Mac, Safari заслуживает внимания. Это самый энергоэффективный браузер для macOS: на MacBook он даёт ощутимо больше автономности по сравнению с Chrome или Firefox. Интеграция с экосистемой Apple безупречна: Handoff, синхронизация через iCloud, Reading List, автозаполнение паролей.</p><p>Safari быстрый, безопасный и не перегружен функциями. Единственный минус — библиотека расширений заметно скромнее, чем у конкурентов. Но для большинства задач базового функционала хватает.</p><h3>Ungoogled Chromium</h3><p>Для ультраосторожных Ungoogled Chromium удаляет всё отслеживание и сервисы Google — но вам придётся настраивать всё самостоятельно, так как в нём нет автообновлений или встроенной синхронизации.</p><p>Для максимально осторожных пользователей — это Chrome, из которого убрали всю телеметрию Google, отслеживание и облачные сервисы. Браузер работает, но требует ручной настройки: отсутствуют автоматические обновления и встроенная синхронизация между устройствами.</p><h3>Tor Browser</h3><p>Выводя приватность на следующий уровень, Tor Browser маршрутизирует ваш трафик через сеть Tor, анонимизируя ваш IP и многократно шифруя соединение. Он медленнее по задумке, но идеален, если ваш приоритет — максимальная анонимность, а не скорость или удобство.</p><h3>Vivaldi</h3><p>Vivaldi — браузер мечты для тех, кто хочет полного контроля. Стекирование вкладок, тайлинг, кастомные горячие клавиши, встроенная почта и календарь, веб-панели — это полноценный десктопный опыт внутри браузера. Хотите боковую панель браузера, открывающую ваши заметки, RSS-ленты или любой нужный сайт? Vivaldi это умеет.</p><h3>Arc</h3><p>Наконец, Arc — когда-то новичок на рынке браузеров, нацеленный на переосмысление UX: замена традиционной панели вкладок на боковую панель, акцент на веб-приложениях, интегрированные разделённые виды и easels для заметок и доски. К сожалению, компания за Arc прекратила разработку, чтобы полностью переключиться на ИИ с новым браузером, который сейчас в закрытой бета-версии.</p><h2>Управление паролями</h2><ul><li><b>Лучший бесплатный выбор:</b> Bitwarden</li><li><b>Также отлично:</b> 1Password, Dashlane, KeePass</li></ul><p>Миллионы людей продолжают использовать одни и те же слабые пароли на всех сайтах — или, что ещё хуже, держатся за классику вроде «123456». Даже сильные пароли мало помогают, если их повторяют или забывают. Конечно, большинство браузеров предлагают встроенные менеджеры паролей, но они ограничены, привязаны к одному браузеру и менее безопасны, чем специализированные решения.</p><p>Также не будем забывать о passkeys (ключах доступа). Если говорить практически, можно сказать, что passkeys объединяют концепцию пароля и двухфакторной аутентификации (2FA) в одно плавное действие, но гораздо безопаснее и гораздо менее раздражающе.</p><h3>Bitwarden</h3><p>Полностью опенсорсный, зашифрованный и щедрый даже в бесплатной версии. Вы получаете неограниченное количество паролей, синхронизацию между устройствами и приложения для всех платформ. Премиум ($10/год) добавляет безопасный обмен файлами и инструменты 2FA. Также есть доступные семейные и командные планы.</p><h3>1Password</h3><p>Премиум-решение с отполированным интерфейсом, сильной кроссплатформенной поддержкой и отличными функциями вроде Travel Mode (режим путешествий) и полной интеграцией passkeys.</p><h3>Dashlane</h3><p>Предлагает мониторинг даркнета, интеграцию VPN и плавный пользовательский опыт. Есть бесплатный тариф с ограниченными функциями, но премиум-версия конкурентоспособна.</p><h3>KeePassXC</h3><p>Отличная оффлайн-альтернатива, если хотите полного контроля и не против ручной синхронизации (или использования чего-то вроде Syncthing или Dropbox для синхронизации базы данных).</p><p>Пропустите LastPass — когда-то фаворит, он упал в немилость после повторных утечек безопасности. Для душевного спокойствия лучше поискать в другом месте.</p><h2>Продвинутые утилиты и дополнения к ОС</h2><ul><li><b>Поиск + лаунчеры:</b> Everything или Wox (Windows), Alfred или Raycast (macOS)</li><li><b>Пакетные менеджеры: </b>WinGet, Homebrew (macOS)</li><li><b>Для пользователей Windows:</b> PowerToys</li><li><b>Для пользователей Mac: </b>Rectangle</li><li><b>История буфера обмена: </b>ClipClip, Flycut (macOS)</li><li><b>Скриншоты + аннотации: </b>Monosnap</li></ul><h3>Winget</h3><p><b></b>Официальный менеджер пакетов Microsoft, встроенный в Windows 10 и 11. Работает похоже на Chocolatey, но разработан и поддерживается Microsoft. Homebrew — самый популярный менеджер пакетов для macOS. Позволяет быстро устанавливать, обновлять и управлять приложениями и CLI-инструментами с помощью команд в терминале.</p><h3>Everything</h3><p>Что касается поиска, Everything остаётся золотым стандартом сверхбыстрого поиска по именам файлов в Windows. Он индексирует диски за секунды и выдаёт почти мгновенные результаты с минимальной нагрузкой на систему. Если нужен функционал шире базового поиска, Wox использует движок Everything и добавляет мощные возможности лаунчера: поиск файлов, запуск приложений, калькулятор, перевод текста и расширения через плагины. Получается более гибкий опыт в духе Spotlight для Windows.</p><h3>Command Palette/Alfred/Raycast</h3><p>В который раз Microsoft не смогла существенно улучшить встроенный поиск Windows, хотя <b>Command Palette</b> в PowerToys даёт неплохой компромисс для тех, кто не хочет ставить сторонние утилиты.</p><p>На macOS <b>Alfred</b> по-прежнему главный лаунчер и утилита поиска. Он быстрый, интуитивный и в бесплатной версии включает историю буфера и настраиваемые поиски; расширенная автоматизация и «воркфлоу» доступны в Powerpack.</p><p>Тем, кто хочет современную облачно-интегрированную альтернативу с готовыми расширениями и встроенной поддержкой Notion, GitHub и Slack, стоит присмотреться к <b>Raycast</b> — это стильный, дружественный к разработчикам вариант, который стремительно набирает популярность.</p><h3>Менеджеры буфера обмена</h3><p>Они позволяют возвращаться к ранее скопированному — тексту, изображениям, ссылкам — и сильно ускоряют рутинные операции.</p><p>В Windows встроенная история буфера (Win + V) кое-как выручает, но продвинутым пользователям обычно хочется большего. В числе бесплатных рекомендаций — <b>ClipClip</b> для Windows и <b>Flycut</b> для macOS.</p><p>Когда речь о скриншотах и аннотациях, штатные инструменты macOS и Windows заметно выросли. Но многим всё равно удобнее сторонние решения. Нам по-прежнему нравится <b>Monosnap</b> за простоту и возможность мгновенно заливать снимки в облако для шаринга (и это бесплатно).</p><p><b>PowerToys</b> — набор полезных утилит от Microsoft для продвинутых пользователей Windows, повышающих продуктивность и упрощающих рабочие процессы. Среди инструментов: FancyZones для продвинутого раскладывания окон, PowerRename для пакетного переименования, Keyboard Manager для ремапинга клавиш, универсальный color picker и другие.</p><p><b>Rectangle</b> и <b>Magnet </b>— два самых популярных приложения на macOS для закрепления окон: быстрые выравнивание и ресайз по хоткеям или перетаскиванием, примерно как по умолчанию в Windows. Пользователям, пришедшим с Windows и скучающим по системному снапингу, одно из них жизненно необходимо.</p><p>Широко используемая альтернатива в Windows — <b>FancyZones</b> (часть PowerToys), предлагающая продвинутое управление окнами: настраиваемые сетки, зоны привязки и поддержку нескольких мониторов — поэтому это фаворит пауэр-пользователей на Windows.</p><h2>Для рутины и создания проектов</h2><ul><li><b>Бесплатные инструменты: </b>FreeOffice, LibreOffice и WPS Office</li><li>Microsoft Office за единовременную плату $49, Office 2024 — $129</li><li><b>Заметки: </b>Notion, OneNote, Obsidian</li><li><b>Бесплатный PDF-редактор: </b>PDFsam</li><li><b>Почтовые клиенты:</b> Thunderbird, eM Client</li></ul><p>Независимо от того, пишете ли вы тексты, планируете проект, кодите или наводите порядок в цифровой жизни, правильные инструменты решают многое. Сегодня выбор топовых приложений для продуктивности и разработки — часто бесплатных — лучше, чем когда-либо.</p><p><b>Microsoft Office</b> остаётся отраслевым стандартом для профессиональной продуктивности. Подписка Microsoft 365 открывает доступ к Word, Excel, PowerPoint, Outlook и включает 1 ТБ облачного хранилища.</p><p>Среди бесплатных альтернатив LibreOffice — мощный open-source комплект с сильным сообществом (хотя интерфейс некоторым кажется старомодным). Если нужна внешне более майкрософтовская альтернатива, попробуйте<b> FreeOffice </b>или <b>WPS Office Free</b> — у них хорошая совместимость.</p><p>На macOS <b>Pages</b>, <b>Numbers</b> и <b>Keynote</b> предустановлены и более чем достаточны для большинства задач, особенно если вы в экосистеме Apple.</p><h3>Знания и ведение заметок</h3><p><b>Notion</b> стал универсальной платформой организации: заметки, базы данных, to-do, управление проектами, создания совместных рабочих пространств. Если нужны более локальные заметки с синхронизацией между устройствами и поддержкой Markdown, <b>Obsidian</b> — любимец студентов и исследователей.</p><p>Для быстрых кроссплатформенных заметок <b>OneNote</b> — крепкий бесплатный вариант от Microsoft. В качестве альтернатив — <b>Simplenote</b> или open-source <b>Joplin</b>.</p><p>Если вы занимаетесь академической работой и научными статьями, <b>Zotero</b> — отличный open-source менеджер источников с интеграцией в браузер и совместными коллекциями. <b>Milanote</b> предлагает визуальный подход к заметкам и планированию — идеально для креативных пользователей.</p><h3>Работа с PDF</h3><p>Хотя Adobe Acrobat остаётся премиальным редактором PDF, бесплатные альтернативы вроде <b>PDFsam</b> позволяют без усилий объединять, разбивать, редактировать и поворачивать страницы.</p><h2>Инструменты для дизайна и создания контента</h2><p>Для дизайна два выделяющихся приложения хорошо дополняют набор продуктивности. <b>Figma Desktop</b> — совместная платформа интерфейс-дизайна, широко используемая UI/UX-дизайнерами и фронтенд-разработчиками. Десктоп-версия работает быстрее, чем браузер, и лучше интегрируется с ОС — это удобно для сложных дизайн-систем и коллаборации в реальном времени.</p><p><b>Canva</b> с интуитивным drag-and-drop превосходно чувствует себя и как десктоп-приложение. Отлично подходит для быстрых графических материалов для соцсетей, маркетинга, постеров и презентаций. Благодаря тысячам шаблонов и совместной работе это фаворит как у профи, так и у новичков.</p><h2>Почтовые клиенты</h2><p>Если вы предпочитаете отдельный почтовый клиент, у <b>eM Client</b> много функций, бесплатный — до двух аккаунтов. <b>Mozilla</b> <b>Thunderbird</b> — мощная open-source альтернатива с удобной настраиваемостью, а <b>Mailbird</b> — вариант с упором на продуктивность для тех, кого не пугает подписка.</p><h2>Инструменты разработчика</h2><ul><li><b>Редакторы кода и текста:</b> VS Code, Cursor, Sublime Text</li><li><b>Система контроля версий:</b> SourceTree, GitHub Desktop</li><li><b>Контейнеры: </b>Docker</li><li><b>Локальные LLM: </b>Ollama</li><li><b>SFTP, загрузка файлов:</b> WinSCP, Forklift</li></ul><p>Для разработчиков <b>Visual Studio Code</b> — безусловный вариант. Бесплатный, лёгкий, но мощный, кроссплатформенный — тысячи расширений покрывают практически любой язык, фреймворк или инструмент. Набирающая популярность альтернатива — <b>Cursor</b>, редактор на базе VS Code с усиленной AI-помощью. Он подходит для связки с LLM: даёт inline-подсказки, генерирует код, рефакторит и позволяет редактировать кодовую базу.</p><p>При этом<b> Sublime Text </b>остаётся для скорости и простоты, а <b>Notepad++</b> — отличный лёгкий редактор для быстрых правок в Windows.</p><p>Для Git графические клиенты <b>SourceTree</b> и <b>SmartGit</b> дают понятный интерфейс для управления репозиториями на GitHub, GitLab и не только. <b>GitHub Desktop</b> раньше был простоват и не слишком хорош, но сейчас существенно прибавил — всё ещё простой для работы, но в хорошем смысле.</p><p>Для локальных окружений, API-тестирования или терминального воркфлоу инструментов — пруд пруди. Например, <b>Docker Desktop</b> стал стандартом для тех, кто собирает и запускает контейнеризированные приложения на разных платформах. Он упрощает настройку окружений и держит систему чистой.</p><p><b>Ollama</b> позволяет запускать большие языковые модели (LLM) локально с минимальной настройкой. Поддерживает модели вроде LLaMA, Mistral и другие open-weight альтернативы GPT, так что можно работать с ИИ прямо на своём компьютере без отправки данных в облако.</p><p>Если вы работаете с облачными хранилищами или SFTP, WinSCP (Windows) и ForkLift (macOS) — отличные клиенты с двухпанельным управлением файлами, синхронизацией и автоматизацией. На Mac также популярны <b>Commander One</b> и <b>Transmit</b> — у них есть встроенные подключения к удалённым и облачным путям.</p><h3>Безопасность</h3><p>И Windows, и macOS сегодня предлагают более чем достойную встроенную защиту. С защитой в реальном времени, интеграцией с файерволом и биометрией вроде <b>Windows Hello</b> и <b>Touch ID</b>. Для обычных пользователей, которые соблюдают гигиену безопасности: не скачивают сомнительное ПО, используют менеджеры паролей и включают 2FA — встроенной защиты часто хватает.</p><p>Для продвинутых пользователей есть дополнительные варианты.</p><p>Отличное первое дополнение — <b>Malwarebytes</b>. Это давний фаворит в обнаружении и удалении malware, adware и руткитов; бесплатная версия по-прежнему хороша для ручных сканов. В платной — защита в реальном времени без ощутимой просадки производительности.</p><p>Если не хочется ставить традиционный антивирус, есть достойные альтернативы. <b>Emsisoft Emergency Kit</b> — мощный портативный сканер, который можно запускать с флешки: идеально для редких глубоких сканов или лечения заражённых систем без установки чего-либо. Просто подключаете, когда нужно.</p><p>Ещё один отличный инструмент — <b>VirusTotal</b>: бесплатный веб-сервис, который проверяет файлы и URL через десятки антивирусных движков. Прежде чем открывать подозрительную загрузку, можно залить файл на VirusTotal.com или использовать их расширение для браузера, чтобы проверять ссылки в реальном времени. Быстро, просто и удобно для осторожных пользователей.</p><p>Мы не поклонники установки антивирусов на каждый компьютер и не полностью в курсе, какие сейчас показывают лучшие результаты. Тем не менее, <b>AV-Tes</b>t давно и регулярно оценивает популярные решения, поэтому советуем смотреть их свежие отчёты. В текущем списке высокооценённых — <b>Avast, BitDefender, ESET </b>и другие; многие из них предлагают бесплатные версии для пробы.</p><h3>Удалённый доступ и вспомогательные утилиты</h3><p><b>RustDesk</b> стал современным, ориентированным на приватность аналогом <b>TeamViewer</b>. Он с открытым исходным кодом, быстрый и работает кроссплатформенно.</p><p>Тем, кому нужны более устоявшиеся коммерческие решения, подойдёт <b>AnyDesk</b>, который остаётся лёгким и надёжным вариантом для личного и командного использования.</p><p>Превращение смартфона в пульт дистанционного управления компьютером бывает невероятно удобно — будь то презентации, потоковое видео или просто навигация с дивана.</p><p><b>Remote Mouse</b> — простой и эффективный способ эмулировать мышь и клавиатуру с телефона. Для более продвинутых сценариев можно использовать приложения вроде <b>Unified Remote.</b></p><h2>Редактирование изображений и видео</h2><ul><li><b>Профессиональный видеомонтаж:</b> DaVinci Resolve</li><li><b>Простой видеомонтаж: </b>CapCut</li><li><b>Редакторы изображений:</b> GIMP, PhotoDemon, Pixelmator Pro</li><li><b>Бесплатное улучшение изображений:</b> Upscayl</li><li><b>RAW-редактирование:</b> RawTherapee</li><li><b>Видеоконвертация:</b> HandBrake</li></ul><p>Если вам нужен бесплатный инструмент для редактирования изображений, <b>GIMP</b> — один из самых мощных вариантов. Он предоставляет профессиональные возможности, такие как слои, маски и настраиваемые плагины, что делает его идеальным для продвинутых пользователей. Если вы ищете более лёгкий редактор с чистым интерфейсом, стоит обратить внимание на <b>PhotoDemon</b>. Он работает как портативное приложение на Windows, поддерживает слои и редактирование — отличный выбор для быстрых правок или ретуши.</p><p>Если вы хотите увеличивать разрешение изображений без потери качества, <b>Upscayl</b> — мощный и бесплатный инструмент для апскейла. Он кроссплатформенный, и по нашим тестам показывает результаты на уровне платных решений вроде Topaz.</p><p>Для векторной графики — логотипы, иллюстрации — <b>Inkscape</b> является достойным open-source вариантом с полной поддержкой редактирования SVG. <b>Krita</b> — ещё один отличный бесплатный инструмент, особенно подходящий для цифровой живописи и художественного творчества.</p><p>Для редактирования RAW-фотографий, <b>Darktable</b> и <b>RawTherapee</b> — два высококлассных open-source аналога Adobe Lightroom. Их широко используют фотографы, которым нужна работа с изображениями без подписки.</p><p>Для простых GIF-анимаций <b>ScreenToGif</b> — удобная утилита, мгновенно записывающая область экрана и экспортирующая в GIF или другие форматы с оверлеями.</p><p>Среди платных фоторедакторов <b>Adobe Photoshop</b> остаётся лидером, но для macOS есть <b>Pixelmator Pro</b> — мощное приложение с разовой оплатой, а <b>Affinity Photo</b> предлагает профессиональные возможности по более доступной цене.</p><h3>Видеомонтаж и конвертация</h3><p><b>DaVinci Resolve</b> считается лучшим бесплатным профессиональным ПО. Его используют и энтузиасты, и профессионалы — от простого тримминга до цветокоррекции и сложного постпродакшена.</p><p><b>Shotcut</b> и <b>Kdenlive</b> — тоже сильные бесплатные варианты, предлагают более простой фукнционал с хорошим набором функций для новичков и продвинутых пользователей. <b>CapCut</b>, изначально мобильное приложение, теперь доступен на десктопе — идеально подходит для быстрых монтажей и роликов для соцсетей.</p><p>Для пользователей macOS <b>iMovie </b>предустановлен и остаётся надёжным вариантом для базовых видео. Если вам нужно просто конвертировать или сжимать видео в современные форматы, <b>HandBrake</b> — проверенное бесплатное решение с поддержкой и вариацией входных и выходных форматов.</p><p>Тем, кто ищет топовый профессиональный монтаж, подойдут <b>Adobe Premiere Pro</b> и<b> Final Cut Pro</b>, но там есть дорогая подписка и более высокий порог входа.</p><h2>Коммуникации и совместная работа</h2><ul><li><b>Для повседневной связи: </b>WhatsApp, Messenger и Zoom, если у вас нет FaceTime</li><li><b>Для приватности: </b>Signal</li><li><b>Для работы:</b> Slack, Teams</li><li><b>Для игр и общения: </b>Discord</li></ul><p>Выбор коммуникационных и мессенджерных приложений в первую очередь зависит от того, с кем вы общаетесь — с семьёй, друзьями, коллегами или игровым сообществом. Вот актуальная картина:</p><p>Для личной переписки <b>WhatsApp</b> и <b>Facebook Messenger</b> остаются самыми массовыми платформами по всему миру. У них есть десктопные клиенты и встроенное сквозное шифрование по умолчанию. <b>Telegram</b> также крайне популярен благодаря синхронизации между устройствами и поддержке крупных чатов. Пользователи Apple продолжают активно использовать <b>iMessage</b> для приватного, шифрованного общения в экосистеме Apple.</p><p>Из видеоконференций <b>Zoom</b> остаётся одним из лидеров для групповых звонков и онлайн-ивентов, предлагая локальные записи, демонстрацию экрана и комнаты (breakout rooms). Однако бесплатный тариф ограничивает 1:1 звонки 40 минутами, если не перейти на платный план. Zoom поддерживает сквозное шифрование, но при включении E2EE отключаются некоторые функции вроде облачной записи и комнат.</p><p><b>Google Meet</b> — отличный браузерный аналог без необходимости установки, который заметно улучшился по качеству и удобству использования. Многие компании применяют Meet в ежедневной работе и гибридных форматах. Если ваша организация использует Microsoft 365, скорее всего, вы работаете в <b>Microsoft Teams</b>, который уже заменил Skype на корпоративном уровне. Teams поддерживает большие созвоны, обмен файлами и глубоко интегрирован с Office. Сквозное шифрование доступно, но только для 1:1 звонков.</p><p><b>FaceTime</b> по-прежнему отличный для пользователей Apple, и благодаря новым обновлениям к звонку теперь могут присоединяться и пользователи Android/Windows по ссылке через браузер.</p><p>Когда приватность критична, <b>Signal</b> — один из лучших вариантов. Разработан некоммерческой организацией, бесплатен, open-source, без рекламы, использует надёжное сквозное шифрование для сообщений и звонков.</p><p>Для рабочих коммуникаций<b> Slack</b> и <b>Teams</b> продолжают использоваться в бизнес-среде. Бесплатный тариф Slack ограничивает историю 90 днями и звонки, но остаётся любимцем стартапов и малых команд благодаря интеграциям и ботам. <b>Cisco Webex</b> — также крепкий вариант, особенно популярен в корпоративной среде.</p><p>Если вы работаете с креативными командами, сообществами или геймерами, <b>Discord</b> стал явным лидером. Изначально созданный для игр, он превратился в полноценную коллаборативную платформу с текстом, голосом и видео, стримингом экрана и ботами для автоматизации. Многие комьюнити — и даже IT-компании — используют Discord как основной рабочий инструмент.</p><p>Для внутриигрового голосового чата <b>TeamSpeak </b>остаётся олдскульным достойным вариантом: можно использовать анонимно и получать полный контроль над сервером. Встроенный чат Steam лучше, чем раньше, и помогает в игровой координации, но большинство всё же выбирает Discord.</p><h2>Гейминг, моддинг и стриминг</h2><ul><li><b>Игровые платформы: </b>Steam, Epic Games, EA App, Ubisoft, GOG</li><li><b>Последние драйверы для GPU:</b> Nvidia GeForce, AMD Radeon, Intel Arc</li><li><b>Стриминг:</b> OBS Studio</li></ul><p><b>Steam</b> остаётся центром PC-игр. Это не только магазин, но и социальная платформа, лаунчер и площадка с модами, облачными сохранениями и встроенным стримингом. Регулярные распродажи, поддержка контроллеров и сообщества делают его обязательным для любого PC-геймера.</p><p>Не менее важно установить Epic <b>Games Store</b>. Хотя библиотека меньше, он регулярно раздаёт бесплатные игры, доступные любому с аккаунтом Epic. Это также must-have, если вы играете в Fortnite.</p><p>Помните: не все издатели размещают игры на Steam или Epic. Для тайтлов EA понадобится <b>EA App (ранее Origin)</b>, для Ubisoft — <b>Ubisoft Connect</b>, для Blizzard/Activision — <b>Battle.net</b>, а GOG Galaxy не только предлагает DRM-free классику, но и может агрегировать игры из других лаунчеров.</p><p>Некоторые сверхпопулярные игры распространяются отдельно: Minecraft (через Minecraft.net или Microsoft Store), Roblox, League of Legends и Valorant (через лаунчер Riot Games). Если вы новичок и ищете что-то лёгкое, можно начать с free-to-play тайтлов или классики вроде <b>Brutal Chess</b> или <b>GZDoom</b>.</p><p>Если вы играете с геймпадом, Windows поддерживает Xbox-контроллеры из коробки. PlayStation-контроллеры теперь тоже отлично работают: Steam через <b>Steam Input </b>поддерживает DualShock 4 и DualSense практически во всех играх. При необходимости глубокой кастомизации можно использовать DS4Windows, но большинству хватает возможностей Steam.</p><p>Если вас интересует моддинг, хороший менеджер модов время в этой жизни:</p><ul><li><b>Mod Organizer 2</b> — лучший для RPG Bethesda (Skyrim, Fallout).</li><li><b>Vortex (от Nexus Mods)</b> — дружелюбный к новичкам и поддерживает широкий перечень игр.</li></ul><p>Для записи геймплея или стриминга <b>Nvidia ShadowPlay</b> и <b>AMD Radeon ReLive</b> подходят для простых задач. Но для стриминга с вебкой, сценами, оверлеями или многосценовым продакшеном <b>OBS Studio</b> — безальтернативный лидер. Он бесплатный, open-source и подходит как новичкам, так и про-стримерам (Twitch, YouTube, Kick и т.д.). <b>SignalRGB</b> помогает синхронизировать весь RGB-зоопарк и задавать динамические эффекты.</p><h2>Мониторинг железа и разгон</h2><ul><li><b>Мониторинг: </b>CPU-Z, HWMonitor, HWiNFO64</li><li><b>Настройка и разгон:</b> Afterburner, FanControl, ThrottleStop, SignalRGB</li></ul><p>Одно из первых дел, которое стоит сделать после сборки ПК — убедиться, что компоненты соответствуют ожиданиям и работают корректно. К счастью, существует много инструментов, позволяющих мониторить, тестировать и настраивать железо.</p><p>Начать стоит с <b>CPU-Z</b> — классического бесплатного инструмента, показывающего информацию о CPU, материнской плате, оперативной памяти и других компонентах. Он также умеет запускать простой стресс-тест и бенчмарк для проверки стабильности.</p><p>Для более широкого мониторинга <b>HWMonitor</b> показывает температуры, напряжения и скорости вентиляторов в реальном времени. Если нужно ещё глубже и с более гибким интерфейсом — <b>HWiNFO64</b> считается одним из лучших: поддерживает логирование датчиков и интеграцию с оверлеями (например, RTSS или Rainmeter).</p><p>Чтобы проверить хранилище, <b>CrystalDiskMark</b> измеряет скорость чтения/записи SSD и HDD — это помогает понять, соответствует ли диск заявленным характеристикам. Глубже оценить здоровье накопителя можно в <b>Hard Disk Sentinel</b>, который анализирует SMART-данные, оценивает срок службы и предлагает ограниченный ремонт.</p><p>С точки зрения охлаждения, всё больше геймеров используют утилиты для настройки вентиляторов. <b>FanControl</b> — актуальный бесплатный фаворит: поддерживает сложные кривые оборотов, привязку к датчикам, и совместим с большинством современных материнских плат. На Mac одной из лучших утилит остаётся<b> Macs Fan Control.</b></p><p>Для настройки видеокарт долгое время стандартом был <b>MSI Afterburner</b> — для разгона, настройки вентиляторов и мониторинга с RTSS-оверлеем. Однако из-за замедления обновлений многие сегодня используют встроенные утилиты от <b>Nvidia (GeForce Experience/Control Panel)</b> и <b>AMD (Adrenalin Software)</b>.</p><p>Если вы меняете видеокарту или подозреваете проблемы с драйверами, обязательно используйте <b>Display Driver Uninstaller</b> (DDU) — он полностью очищает систему от старых драйверов перед переустановкой.</p><p>Если вы играете на ноутбуке или хотите снизить нагрев и повысить автономность, <b>ThrottleStop</b> остаётся одним из лучших инструментов для андервольта CPU и настройки энергопрофилей.</p><p>Тем, кто серьёзно подошёл к разгону CPU и GPU, пригодятся фирменные инструменты вроде <b>Intel XTU (для Intel) и AMD Ryzen Master</b> — они дают контроль над частотами, напряжениями и лимитами мощности.</p><h2>Управление файлами</h2><ul><li><b>Поиск больших файлов:</b> SpaceSniffer, WizTree, Disk Drill (macOS)</li><li><b>Поиск дубликатов: </b>dupeGuru</li><li><b>Архивы и ZIP: </b>PeaZip, The Unarchiver</li><li><b>Очистка: </b>BCUninstaller, CCleaner Portable, AppCleaner (macOS)</li></ul><p>Чтобы грамотно управлять файлами и освобождать место, нужно понимать, что именно занимает пространство. На Windows популярны <b>WinDirStat и WizTree </b>— быстрые бесплатные инструменты для визуализации диска. <b>SpaceSniffer</b> предоставляет динамическую схему.</p><p>На macOS — <b>GrandPerspective и Disk Drill </b>предлагают аналогичный функционал, а <b>DaisyDisk</b> — один из самых красивых платных вариантов с молниеносным сканированием.</p><p>Если дубликаты засоряют диск, <b>dupeGuru</b> (open-source) отлично справляется с поиском повторяющихся изображений и музыки, даже слегка изменённых.</p><p>Для пакетного переименования файлов (например, фоточек с камеры) существует гибкий <b>Bulk Rename Utility</b>. Если нужно что-то попроще: <b>PowerRename</b> из PowerToys (Windows) или встроенный инструмент в <b>Finder</b> (macOS) подходят большинству.</p><p>Встроенный <b>File Explorer</b> в Windows недавно получил вкладки и стал удобнее, но <b>Files</b> (open-source) — современная альтернатива с улучшенным UX. Кто-то ещё пользуется <b>Total Commander</b> или <b>Directory Opus</b>, благодаря расширяемости и скриптам, хотя новичкам они кажутся устаревшими. Для просмотра изображений по-прежнему незаменим <b>IrfanView</b>.</p><p>Для работы с архивами, если не устраивает встроенный ZIP-менеджер Windows, скачайте <b>7-Zip</b> или <b>PeaZip</b>. На Mac лучшим бесплатным инструментом остаётся <b>The Unarchiver</b>.</p><p>Для очистки системы важно выбирать надёжные утилиты. На Windows, <b>BCUninstaller (Bulk Crap Uninstaller)</b> — один из самых проверенных для удаления программ и их хвостов. <b>BleachBit</b> и <b>Wise Disk Cleaner</b> — безопасные альтернативы <b>CCleaner</b> (лучше использовать Portable-версию, так как стационарная испортила репутацию). На Mac <b>AppCleaner</b> всё ещё любим за полное удаление приложений без мусора.</p><p>Если вы организуете большую библиотеку медиа, стоит взглянуть на open-source <b>TagSpaces</b>, позволяющий тегировать файлы локально, без облака.</p><h2>Облачное хранилище и резервное копирование</h2><ul><li><b>Простая синхронизация: </b>Dropbox, Google Drive</li><li><b>Фото между устройствами:</b> Apple iCloud, Google Photos</li><li><b>Приватность: </b>pCloud, Proton Drive, Internxt</li><li><b>Полные бэкапы:</b> Backblaze, IDrive</li></ul><h3>Базовое облачное хранилище</h3><p><b>Dropbox</b> — один из самых простых в использовании, хотя бесплатных 2 ГБ мало.</p><p><b>
Google Drive</b> — 15 ГБ бесплатно, используется Gmail, Docs и Photos. Идеален для Android.</p><p><b>
OneDrive</b> — идёт в комплекте с Windows и Microsoft 365. 1 ТБ включён в большинство Office-планов. Хотя по скорости и интерфейсу уступает Dropbox/Google.</p><p><b>
iCloud Drive</b> — лучший выбор для пользователей Apple, глубокая интеграция с macOS/iOS. Бесплатно 5 ГБ, далее по планам до 2 ТБ.</p><p><b>
Proton Drive</b> — шифрованная альтернатива от создателей ProtonMail.</p><h3>Фото и видео</h3><p>На macOS приложение <b>Photos</b> автоматически создаёт альбомы по людям и локациям, синхронизирует всё через iCloud.</p><p>На Windows мы часто рекомендуем <b>Google Photos</b>, который предлагает аналогичный набор функций и автоматизацию. Для пользователей Android — это стандарт по умолчанию. Да, раньше было безлимитно, теперь фото занимают общее место Google Drive (15 ГБ), которое быстро заканчивается.</p><h3>Полные бэкапы</h3><p>Если требуется сохранять всю систему, терабайты медиа, состояние дисков используйте отдельные сервисы резервного копирования.</p><p><b>Backblaze</b> — топ в этой категории: фиксированная цена (~$8/месяц за устройство), безлимитное хранилище, минимум настроек: установил и забыл.</p><p><b>IDrive</b> — более контролируемый вариант, поддерживает несколько устройств, внешние диски и версионность файлов.</p><p>Простой для не-технарей — <b>Carbonite</b>, с возможностью быстрого восстановления и круглосуточной поддержкой.</p><p>Профессионалам — <b>Acronis Cyber Protect</b>: клон дисков, анти-вымогатель, гибридное облако.</p><h3>Для особо чувствительных данных</h3><p>Если вы храните личные финансовые документы или медицинские сведения, стоит выбрать end-to-end решений.</p><p><b>pCloud</b> предлагает клиентское шифрование (через платный «Crypto»). Даже при взломе аккаунта файлы не расшифруются без ключа.</p><p><b>Proton Drive </b>— аналогичный подход, с прозрачностью open-source.</p><h2>Прочие полезные инструменты, не вошедшие в другие разделы</h2><p><b>Google Earth</b> — для любителей карт и планировки.</p><p><b>qBittorrent</b> — лучший torrent-клиент: чистый, без рекламы, с поиском. Альтернатива — легковесный Transmission или кастомизируемый Deluge.</p><p><b> iMazing</b> — must-have для владельцев iPhone: резервные копии, экспорт медиа, проверка батареи, конвертация HEIC.</p><p><b>AirDroid</b> — аналог для Android: управление файлам, уведомления, SMS с ПК.</p><p><b>Rufus</b> — лидер по созданию загрузочных USB-дисков для Windows/Linux.</p><p><b>Open Shell </b>— возвращает классическое меню «Пуск» в стиле Windows 7.</p><p><b>Stretchly</b> — напоминает делать перерывы — полезно удалёнщикам и фрилансерам.</p><p><b>AutoHotkey</b> — скриптовый движок для Windows: переназначение клавиш, макросы, автоматизация.</p><p><b>VPN: </b>бесплатные — ProtonVPN, Windscribe, TunnelBear (с лимитом). Платные — ProtonVPN, NordVPN.</p><p><b>Calibre</b> — лучшее бесплатное решение для чтения, организации и конвертации e-book (EPUB, MOBI, PDF и др.).</p><h2>Заключение</h2><p>Итак, мы прошлись по основным категориям приложений, которые стоит установить на новый компьютер. Конечно, этот список не исчерпывающий — у каждого свои задачи и предпочтения. Но если вы установите хотя бы половину из перечисленного, ваш компьютер станет гораздо удобнее и функциональнее.</p><p>Несколько советов напоследок:</p><ol><li><b>Не захламляйте систему.</b> Устанавливайте только то, что действительно используете. Чем меньше фоновых процессов — тем быстрее работает компьютер.</li><li><b>Следите за обновлениями.</b> Большинство программ обновляются автоматически, но некоторые требуют ручного апдейта. Свежие версии — это не только новые функции, но и закрытые уязвимости.</li><li><b>Делайте резервные копии.</b> Никакие утилиты не спасут от отказа жёсткого диска. Регулярный бэкап на внешний носитель или в облако — обязательная практика.</li><li><b>Экспериментируйте. </b>Попробуйте несколько браузеров, редакторов, плееров. То, что подходит большинству, может не подойти именно вам.</li><li><b>Читайте отзывы.</b> Перед установкой незнакомого приложения загляните на форумы или Reddit. Сообщество быстро выявляет проблемы и подводные камни.</li></ol><p>Теперь ваш компьютер готов к работе, учёбе, развлечениям — и чему угодно ещё. Главное — не забывайте, что инструменты важны, но ещё важнее то, как вы их используете. Удачи!</p>]]></content:encoded>
    </item>
    <item>
      <title>Курсы по робототехнике: онлайн-обучение роботостроению</title>
      <link>https://tproger.ru/articles/kursy-po-robototehnike--onlajn-obuchenie-robotostroeniyu</link>
      <comments>https://tproger.ru/articles/kursy-po-robototehnike--onlajn-obuchenie-robotostroeniyu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анастасия Шишкина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kursy-po-robototehnike--onlajn-obuchenie-robotostroeniyu</guid>
      <description><![CDATA[<p>Курсы робототехники. Рейтинг вариантов дистанционного обучения, обзор программы и стоимости курсов роботостроения.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kursy-po-robototehnike--onlajn-obuchenie-robotostroeniyu">Курсы по робототехнике: онлайн-обучение роботостроению</a>»</p>]]></description>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Компьютерное зрение]]></category>
      <category><![CDATA[Быстрый старт]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Arduino]]></category>
      <category><![CDATA[Raspberry Pi]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[3D-принтер]]></category>
      <category><![CDATA[Образование]]></category>
      <category><![CDATA[Программирование для детей]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Lego]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 02 Oct 2025 12:43:59 GMT</pubDate>
      <content:encoded><![CDATA[<p>Сегодня курсы по робототехнике открывают двери в профессию, которая сочетает в себе технические навыки и творческое мышление. Это уже не просто сборка механизмов — это дизайн, программирование искусственного интеллекта и даже создание систем управления для беспилотных и космических аппаратов. Онлайн-обучение позволяет освоить эту профессию не только инженерам, но и всем, кто готов учиться, экспериментировать с собственными проектами — независимо от возраста и уровня подготовки.</p><p>Я изучила десятки обучающих программ и подобрала платформы для удаленного обучения. В этой подборке вы найдете ТОП-10 курсов, далее — 6 обучающих программ, которые могут пригодиться как вспомогательные, и, наконец, 6 бесплатных вариантов.</p><h2>ТОП-10 курсов по робототехнике</h2><p>Данные курсы робототехники подойдут для тех, кто желает освоить профессию с нуля, а также опытных специалистов, которые стремятся улучшить свои компетенции. В этом списке я собрала обучающие программы для взрослых людей, которые хотят углубиться в C++, Linux или математику, а также преподавать программирование и роботостроение. Отдельно я выделила платформы для детей – ведь начинать никогда не рано.</p><p><b>Для взрослых: </b></p><p>1. <a href="https://experts1.ru/bEnriA?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=1"><b>C++ для
робототехников</b></a> от платформы <b>Skillbox</b>
— это обучение профессиональному программированию на C++.</p><p>2. <a href="https://experts1.ru/qhoWfG?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=2"><b>Педагог
дополнительного образования (робототехника)</b></a> от <b>НАДПО</b> — для будущих преподавателей
робототехнического направления.</p><p>3. <a href="https://experts1.ru/btsfEH?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=3"><b>Linux для
робототехников</b></a> от платформы <b>Skillbox</b>
— для освоения системного ПО.</p><p>4. <a href="https://experts1.ru/FvVeft?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=4"><b>Технология
использования робототехники в дошкольном образовании</b></a> от центра
дистанционного образования <b>НИИДПО</b> —
подойдет педагогическим работникам, которые планируют применять создание
роботов в качестве инструмента для детского развития.</p><p>5. <a href="https://experts1.ru/sOxJfq?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=5"><b>Робототехника
как инструмент формирования SOFT SKILLS компетенций</b></a><a href="https://experts1.ru/sOxJfq?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=5"> </a>от <b>Знанио
</b>— разработан для наставников и преподавателей, которые хотят развивать у
учащихся компетенции Soft Skills с помощью роботостроения.</p><p>6. <a href="https://experts1.ru/bVQkhg?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=6"><b>Математика для
робототехников</b></a><b> </b>от
платформы <b>Skillbox </b>—<b> </b>обучающая программа для тех, кто хочет
изучить математические основы роботостроения и с помощью них освоить навык
решения инженерных задач.</p><p><b>Для детей: </b></p><p>7. <a href="https://experts1.ru/qorOHm?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=7"><b>Робототехника
для школьников на базе Lego WeDo 2.0</b></a> — это старт в обучении робототехнике для учеников младших классов от<b> Школы программирования Pixel</b>. Эта
программа позволяет в игровой форме научиться конструированию и блочному
программированию на популярной платформе Lego.</p><p>8. <a href="https://experts1.ru/mejgMI?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=8"><b>Робототехника и
программирование для детей</b></a><b>
от Educationrobots </b>— здесь создают собственных роботов, постигают основы
программирования, физики и математики в игровой и непринужденной форме.</p><p>9. <a href="https://experts1.ru/beVdgZ?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=9"><b>Робототехника
для дошкольников на базе Lego</b></a> от<b> Школы программирования Pixel </b>— программа разработана специально
для детей младшего возраста, которые любят конструировать.</p><p>10. <a href="https://experts1.ru/vxtyWJ?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=10"><b>Робототехника
для школьников на платформе Arduino</b></a> от <b>Знанио </b>— позволяет перейти к серьезным проектам на Arduino.</p><h2>Курсы по робототехнике для взрослых</h2><p><b>1. <a href="https://experts1.ru/bEnriA?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=1">C++ для робототехников</a> | Skillbox   </b></p><p>Разработан для тех, кто желает научиться профессионально программировать роботов. За три месяца вы освоите язык C++, научитесь работать с популярными фреймворками Arduino и Qt, а также сможете создавать софт для управления роботами. Автор программы — опытный инженер-разработчик, который поможет разобраться даже в самых сложных темах. В конце обучения вы разработаете собственную программу управления роботом на Qt5.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-10-02/f98705d9-f1f7-47d6-a0a6-1acb045dff54.jpg" alt="" /></figure><ul><li><b>Стоимость:</b> 74 893 руб. или 41 191 руб. со скидкой (при использовании промокода), возможна рассрочка 6865 руб./мес.</li><li><b>Длительность:</b> 3 месяца</li><li><b>Формат обучения: </b>Практические занятия и лекции в формате онлайн</li><li><b>Сертификат:</b> Сертификат Skillbox</li></ul><p><b>Кому подойдет:</b></p><p>Начинающим программистам и инженерам, у которых уже есть базовые знания алгоритмов и математики на школьном уровне. Он станет ступенью для тех, кто стремится получить прикладные навыки для работы в сфере роботостроения.</p><p><b>Преимущества: </b></p><ul><li>не требует покупки оборудования — все практические задания выполняются в симуляторе, поэтому не придется тратиться на робота;</li><li>можно возвращаться к материалам и обновлениям даже после завершения учебы;</li><li>полностью ориентирован на практику — при обучении программированию на C++ роботостроение используется как основной контекст для всех задач.</li></ul><p><b> Недостатки: </b></p><ul><li>курс робототехники для взрослых не подходит для абсолютных новичков, для старта необходимо знать основы программирования и математики.</li></ul><p><b> Программа обучения: </b></p><ul><li>базовое изучение и программирование на языке C++;</li><li>работа с библиотеками и фреймворками;</li><li>создание графического интерфейса; управление роботами;</li><li>создание собственного приложения.</li></ul><p>Используйте промокод kursfinder, чтобы получить скидку 60% на профессии и 50% на курсы.</p><p><b>2. <a href="https://experts1.ru/qhoWfG?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=2">Педагог дополнительного образования (робототехника)</a> | НАДПО </b></p><p>Онлайн-курс профпереподготовки предназначен для педагогов, желающих получить официальную квалификацию в сфере роботостроения. Программа поможет освоить принципы и методики преподавания роботостроения, научиться составлять учебные планы и организовывать проектную деятельность для учеников. Преподают эксперты-практики НАДПО.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-10-02/b5399113-8014-4f76-8e7d-da29de0f7ef2.jpg" alt="" /></figure><ul><li><b>Стоимость:</b> 45 000 руб. — со скидкой 34 600 (возможна рассрочка от 2 883 руб./мес.), 31 140 руб. — если оплатить на сайте (действует дополнительная скидка 10%).</li><li><b>Длительность:</b> 4 мес. (540 ч)</li><li><b>Формат обучения:</b> Дистанционный</li><li><b>Сертификат:</b> Диплом о профпереподготовке</li></ul><p><b>Кому подойдет:</b></p><p>Образовательный модуль рассчитан на педагогов, желающих освоить новую востребованную профессию. Программа соответствует государственным стандартам и дает право вести педагогическую деятельность.</p><p><b>Преимущества: </b></p><ul><li>по окончании выдается диплом, который дает право на ведение педагогической деятельности;</li><li>обучение проходит в дистанционной форме, что дает возможность совмещать его с основной деятельностью;</li><li>образовательный модуль учит не только техническим навыкам, но и тому, как эффективно передавать их ученикам;</li><li>НАДПО помогает выпускникам в трудоустройстве, наставник оказывает поддержку на начальном этапе частной практики.</li></ul><p><b>Недостатки: </b></p><ul><li>длительность — обучение занимает 4 месяца, что может не подойти тем, кто ищет экспресс-программу обучения по робототехнике;</li><li>модуль ориентирован на педагогику и не дает углубленных технических знаний для инженеров-разработчиков.</li></ul><p><b>Программа обучения: </b></p><ul><li>нормативно-правовые основы в образовании;</li><li>основы робототехники и программирования;</li><li>методика преподавания;</li><li>разработка учебных планов;</li><li>организация проектной деятельности.</li></ul><p><b>3. <a href="https://experts1.ru/btsfEH?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=3">Linux для робототехников</a> | Skillbox  </b></p><p>Используйте промокод kursfinder, чтобы получить скидку 60% на профессии и 50% на курсы.</p><p>Этот курс разработан для тех, кто стремится освоить операционную систему Linux – одну из основных платформ для разработки роботов. Вы освоите навык работы с командной строкой, фреймворками ROS и ROS2, а также с такими инструментами, как Git и Docker. Ведет Роман Федоренко, который основал компанию «Зилант роботикс». Он поможет изучить базовые основы для старта в карьере.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-10-02/85b5bdba-7793-4490-a614-7569fbea187d.jpg" alt="" /></figure><ul><li><b>Стоимость:</b> действует рассрочка на 6 мес. — 9760 руб. в мес. / со скидкой 45% — 5 368 руб. / мес.</li><li><b>Длительность:</b> 3 месяца</li><li><b>Формат обучения:</b> лекции в онлайн-режиме, практика</li><li><b>Сертификат:</b> Сертификат Skillbox</li></ul><p><b> Кому подойдет:</b></p><p>Лекции и практические уроки рассчитаны на начинающих инженеров-разработчиков, которые стремятся освоить одну из самых популярных операционных систем в роботостроении и научиться работать с фреймворками ROS, ROS2.</p><p><b> Преимущества: </b></p><ul><li>программа фокусируется на прикладных знаниях, необходимых именно для работы в сфере создания роботов;</li><li>обучает эксперт-практик с большим опытом в индустрии;</li><li>работа с современными инструментами — в программе есть Git, Docker и Bash-скрипты, что делает этот образовательный модуль актуальным.</li></ul><p><b> Недостатки: </b></p><ul><li>не дает комплексных знаний в обучении роботостроению, а фокусируется только на Linux;</li><li>не подходит для новичков — для прохождения требуются базовые знания.</li></ul><p><b>Программа обучения: </b></p><ul><li>введение в работу с ОС Linux;</li><li>методы создания изолированных сред для запуска приложений;</li><li>базовая работа с ROS;</li><li>собственный проект создания робота.</li></ul><p><b>4. <a href="https://experts1.ru/FvVeft?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=4">Технология использования робототехники в дошкольном образовании</a> | НИИДПО </b></p><p>Данный курс фокусируется на игровых методиках и простых конструкторах, которые помогут детям в освоении базовых навыков, развитии логики, мелкой моторики и пространственного мышления. Программа научит создавать уроки, которые помогут подготовить детей к школе. Преподают практикующие эксперты-практики — кандидаты наук.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-10-02/0fa5ebd2-43e1-4f8b-9adf-a140aa461ab8.jpg" alt="" /></figure><ul><li><b>Стоимость:</b> 7900 руб. / со скидкой — 5200 руб. (возможна рассрочка 1300 руб. каждые 2 недели)</li><li><b>Длительность:</b> 1,5 месяца (108 часов), возможен экспресс-курс — 1 мес.</li><li><b>Формат обучения: </b>Дистанционный</li><li><b>Сертификат: </b>Сертификат компетенций, удостоверение о повышении квалификации</li></ul><p><b>Кому подойдет:</b></p><p>Образовательный модуль разработан для воспитателей и учителей младших классов, планирующих внедрение основ роботостроения в развивающие занятия с детьми 3-7 лет.</p><p><b>Преимущества: </b></p><ul><li>доступ к лекциям — после окончания обучения материалы лекций остаются доступными;</li><li>гибкий график — обучение проходит дистанционно, что позволяет совмещать его с работой.</li></ul><p><b> Недостатки: </b></p><ul><li>не дает технических знаний — ориентирован на педагогику и не учит созданию сложных роботов.</li></ul><p><b>Программа обучения: </b></p><ul><li>виды конструкторов нового поколения для малышей;</li><li>особенности развития дошкольников;</li><li>игровые методики обучения конструированию;</li><li>практические задания с Lego WeDo.</li></ul><p><b>5. <a href="https://experts1.ru/sOxJfq?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=5">Робототехника как инструмент формирования SOFT SKILLS компетенций</a> | Знанио  </b></p><p>Экспресс-курс, направленный на повышение квалификации педагогов. Программа поможет научиться формировать у детей Soft Skills: критическое мышление, навыки командной работы, творческий подход.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-10-02/831f03d0-eb9a-438d-b4a4-d7e17c986130.jpg" alt="" /></figure><ul><li><b>Стоимость:</b> 3990 руб. / со скидкой — 1990 руб.</li><li><b>Длительность:</b> 72 часа</li><li><b>Формат обучения:</b> Дистанционный (заочный — самостоятельное изучение материалов)</li><li><b>Сертификат:</b> Удостоверение о повышении квалификации</li></ul><p><b>Кому подойдет: </b></p><p>Онлайн-курс по робототехнике предназначен для педагогических работников и методистов, которые хотят использовать роботостроение в качестве инструмента для развития Soft Skills у своих учеников.</p><p><b>Преимущества: </b></p><ul><li>обучиться можно всего за 10 дней;</li><li>вы можете вернуть деньги, если программа не подойдет, до ее завершения;</li><li>стоимость низкая по сравнению с аналогами.</li></ul><p><b>Недостатки: </b></p><ul><li>этот обучающий модуль не дает технических знаний по сборке и программированию роботов;</li><li>самостоятельный формат может быть минусом для тех, кто нуждается в постоянной поддержке наставника;</li><li>в описании не указан конкретный автор-практик.</li></ul><p><b>Программа обучения: </b></p><ul><li>применение роботов в системе образования;</li><li>методики обучения и межпредметные связи;</li><li>контроль знаний.</li></ul><p><b>6. <a href="https://experts1.ru/bVQkhg?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=6">Математика для робототехников</a> | Skillbox </b></p><p>Программа создана для тех, кто стремится получить фундаментальные знания в области математики, необходимые для решения прикладных задач в роботостроении. Курс обучения робототехнике онлайн ведет Олег Буличев, инженер-исследователь, который поможет увидеть взаимосвязь математики и программного кода.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-10-02/2ed65922-7c17-4bb8-86d1-441df43d1ecf.jpg" alt="" /></figure><ul><li><b>Стоимость: </b>рассрочка на 6 мес. — 9495 руб. в месяц / со скидкой — 5 222 руб.</li><li><b>Длительность:</b> 2,5 месяца</li><li><b>Формат обучения:</b> Практика и лекции в режиме онлайн</li><li><b>Сертификат:</b> Сертификат Skillbox</li></ul><p><b>Кому подойдет:</b></p><p>Курс рассчитан на инженеров и программистов, стремящихся систематизировать свои знания по высшей математике и научиться применять их для разработки роботов и беспилотников.</p><p><b> Преимущества: </b></p><ul><li>курс ведет практикующий инженер с опытом работы 11 лет;</li><li>программа сфокусирована на прикладных навыках и не содержит лишней теории;</li><li>обучение проходит на платформе, имеющей государственную лицензию.</li></ul><p><b>Недостатки: </b></p><ul><li>высокий порог входа — курс требует предварительных знаний по математике и основам программирования;</li><li>основное внимание уделяется математике, а не практической сборке роботов или разработке программ для них.</li></ul><p><b>Программа обучения: </b></p><ul><li>математика многомерных пространств;</li><li>принципы дифференциальных и интегральных исчислений;</li><li>изучение законов движения и равновесия;</li><li>анализ случайных событий и данных.</li></ul><h2>Курсы робототехники для детей</h2><p><b>7. <a href="https://experts1.ru/qorOHm?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=7">Робототехника для школьников на базе Lego WeDo 2.0</a> | Школа программирования Pixel </b></p><p>Этот обучающий курс от школы Pixel — один из курсов по робототехнике для детей, который подойдет для знакомства с программированием. Он основан на популярном конструкторе Lego WeDo 2.0. Дети научатся собирать роботов, работать в команде и освоят основы блочного программирования.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-10-02/dac03ce8-f55a-4240-9d07-715428e58166.jpg" alt="" /></figure><ul><li><b>Стоимость:</b> 800 руб. за 1 занятие</li><li><b>Длительность:</b> 9 месяцев</li><li><b>Формат обучения: </b>Очно в группах, занятия 1 раз в неделю</li><li><b>Сертификат:</b> Сертификат о прохождении курса</li></ul><p><b>Кому подойдет:</b></p><p>Образовательный модуль подходит для детей от 7 до 10 лет, делающих свои первые шаги в программировании и конструировании. Он рассчитан на новичков и на тех, кто уже знаком с робототехникой.</p><p><b> Преимущества: </b></p><ul><li>геймификация и практические задания;</li><li>работа с Lego WeDo 2.0;</li><li>дети учатся работать в команде и находить общие решения;</li><li>конструирование роботов из мелких деталей улучшает моторику и пространственное мышление.</li></ul><p><b> Недостатки: </b></p><ul><li>очный формат занятий делает программу недоступной для тех, кто не может посещать уроки лично.</li></ul><p><b>Программа обучения: </b></p><ul><li>знакомство с робототехникой и Lego Education WeDo 2.0;</li><li>изучение основ блочного программирования;</li><li>управление моторами и датчиками;</li><li>понятия «цикл» и «ожидание»;</li><li>закрепление материала;</li><li>разработка собственного проекта.</li></ul><p><b>8. <a href="https://experts1.ru/mejgMI?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=8">Робототехника и программирование для детей</a> | Educationrobots </b></p><p>Курс предлагает комплексное изучение множества дисциплин, поскольку основан на STEM-подходе, который объединяет науку, технологии, инженерию и математику. Этот подход позволяет детям увидеть, как знания из разных областей работают вместе. Преподают опытные педагоги. Дети учатся программировать, решать сложные задачи, создавать роботов.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-10-02/6668a922-06c7-4dc7-bb1e-07d3cc79e54e.jpg" alt="" /></figure><ul><li><b>Стоимость:</b> 7 500 руб. в месяц. Доступны скидки при оплате за полгода или год.</li><li><b>Длительность: </b>3 года</li><li><b>Формат обучения:</b> групповые занятия в офлайн-формате 1 раз в неделю (2ч)</li><li><b>Сертификат: </b>сертификат о прохождении курса</li></ul><p><b>Кому подойдет:</b></p><p>Курс создан для детей и подростков, которые интересуются, как устроена техника, любят что-то создавать своими руками. Также модуль подходит для всех, кто стремится развить логическое мышление, навыки решения проблем и умение работать в команде.</p><p><b>Преимущества:</b></p><ul><li>комплексное развитие (STEM-подход);</li><li>практический опыт с современным оборудованием — 3D-принтеры, лазерные резаки, контроллеры Arduino и т.д.;</li><li>дополнительные возможности — участие в грантах, конкурсах, выставках и программах для талантливой молодежи.</li></ul><p><b>Недостатки: </b></p><ul><li>продолжительность обучения, что требует долгосрочных обязательств.</li></ul><p><b>Программа обучения:</b></p><ul><li>сборка и программирование собственных роботизированных устройств;</li><li>изучение физики, математики, основ электроники и программирования, а также других 11 дисциплин в связке;</li><li>проектная работа.</li></ul><p><b>9. <a href="https://experts1.ru/beVdgZ?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=9">Робототехника для дошкольников на базе Lego</a> | Школа программирования Pixel </b></p><p>Этот обучающий курс разработан специально для дошкольников, которые хотят познакомиться с миром робототехники и механики в игровой форме. Основная задача программы — развитие логического и пространственного мышления. Дети собирают конструкции из Lego, а затем учатся управлять ими, что помогает им лучше понимать, как устроены окружающие предметы.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-10-02/d75b581a-e4b7-4363-973a-a5653775a8b8.jpg" alt="" /></figure><ul><li><b>Стоимость:</b> от 800 руб. за 1 занятие</li><li><b>Длительность:</b> 9 месяцев (полный курс)</li><li><b>Формат обучения:</b> очные занятия в группах</li><li><b>Сертификат:</b> о прохождении курса</li></ul><p><b>Кому подойдет:</b></p><p>Курсы рассчитаны на детей от 5 до 7 лет, которые делают свои первые шаги в конструировании и творчестве. Программа подойдет для любознательных дошкольников, которые любят работать с конструкторами и хотят узнать, как оживить свои поделки.</p><p><b> Преимущества: </b></p><ul><li>занятия построены в виде игр;</li><li>использование популярного конструктора Lego;</li><li>конструирование из мелких деталей;</li><li>фокус на базовых механизмах, что дает фундаментальные знания о работе устройств.</li></ul><p><b> Недостатки: </b></p><ul><li>ограниченная доступность — занятия проходят очно, что делает их недоступными для жителей других городов.</li></ul><p><b> Программа обучения: </b></p><ul><li>изучение базовых механических устройств (рычаги, передачи);</li><li>основы конструирования из Lego;</li><li>знакомство с флорой и фауной (моделирование животных);</li><li>проект по изучению космоса (создание планет и спутников).</li></ul><p><b>10. <a href="https://experts1.ru/vxtyWJ?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=10">Робототехника для школьников на платформе Arduino</a> | Знанио </b></p><p>Этот онлайн-курс от инженера-преподавателя Наума Розенталя — способ познакомиться с платформой Arduino. Он поможет школьникам освоить азы программирования на языке C++ и основы электроники. За короткий срок ребенок научится создавать и программировать простые робототехнические устройства, чтобы в дальнейшем реализовывать свои проекты в этой сфере.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-10-02/f0a5a7ea-1132-4104-be8e-bef2d1507896.jpg" alt="" /></figure><ul><li><b>Стоимость:</b> 400 руб.</li><li><b>Длительность:</b> от 1 дня</li><li><b>Формат обучения:</b> онлайн, самостоятельное изучение</li><li><b>Сертификат:</b> о прохождении курса</li></ul><p><b> Кому подойдет:</b></p><p>Обучение рассчитано на школьников, помогает в быстром и недорогом старте в мир более серьезной робототехники, чем Lego. Будет полезно тем, кто уже имеет базовое представление о программировании и хочет перейти к работе с настоящими электронными устройствами.</p><p><b> Преимущества: </b></p><ul><li>низкая стоимость;</li><li>быстрый старт;</li><li>практическая направленность — программа включает создание простых, но реальных проектов, таких как «Светофор», «Мини-пианино», «Мигалка» и др.</li><li>гарантия возврата денег, если обучение не оправдает ожиданий.</li></ul><p><b>Недостатки: </b></p><ul><li>из-за короткой длительности учеба дает только базовые знания и не предполагает создания сложных проектов;</li><li>формат самостоятельного обучения без прямого общения с преподавателем может быть минусом для тех, кому нужна помощь наставника.</li></ul><p><b> Программа обучения: </b></p><ul><li>введение в платформу Arduino;</li><li>изучение основ электроники;</li><li>основы программирования на С++;</li><li>разработка собственных простых проектов.</li></ul><h2>Еще 6 курсов по робототехнике</h2><p>Обучение робототехнике дистанционно открывает двери в одну из самых востребованных сфер. Это комплексный навык, который объединяет знания из области программирования, инженерии и логического мышления.  Я собрала еще 6 курсов для тех, кто желает обучиться новой профессии:</p><ul><li><b><a href="https://experts1.ru/zsdEaU?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=netop">Курс робототехники и электроники для взрослых</a> от Kod-robota</b> — это комплексный онлайн-курс для взрослых, который позволяет с нуля освоить основы электроники и программирования. Вы научитесь работать с платформами Arduino и Raspberry Pi, создавая реальные проекты на языке Python. Этот обучающий модуль помогает сформировать и развить набор навыков, необходимых для работы с электроникой и робототехникой.</li><li><b><a href="https://experts1.ru/akwjUI?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=netop">Мехатроника и робототехника</a> от МАКПП</b> — программа профессиональной переподготовки, которая подойдет педагогам, желающим официально преподавать роботостроение. Дает теоретические знания по механике, электронике и методике преподавания.</li><li><b><a href="https://experts1.ru/bVxTys?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=netop">Робототехника и искусственный интеллект</a> от MITM</b> — онлайн-курс, объединяющий роботостроение с передовыми технологиями искусственного интеллекта. Он предназначен для студентов, которые хотят научиться применять машинное обучение и компьютерное зрение для создания «умных» роботов. Комплексная программа объединяет знания из компьютерных наук, электротехники, механики и искусственного интеллекта.</li><li><b><a href="https://experts1.ru/VjbEat?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=netop">Педагог по робототехнике</a> от Международной академии бизнеса IAB</b> — программа профессиональной переподготовки создана для подготовки будущих преподавателей роботостроения. Вы получите официальный диплом и научитесь совмещать технические навыки с педагогикой. В программе обучения — основы педагогической деятельности и воспитания детей в игровой форме, основы и методы преподавания роботостроения.</li><li><b><a href="https://experts1.ru/elmvQW?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=netop">Педагогическое образование: педагог по робототехнике</a> от Профессионального стандарта</b> — онлайн-курс, позволяющий официально получить квалификацию педагога по робототехнике. Программа соответствует государственным образовательным стандартам и дает знания для работы в образовательных учреждениях. Обучение проходит полностью дистанционно.</li><li><b><a href="https://experts1.ru/AWlvbk?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=netop">Основы робототехники и LEGO-конструирования для детей дошкольного и младшего школьного возраста</a> от Экстерна</b> — онлайн-курс разработан для педагогов, которые работают с детьми дошкольного и младшего школьного возраста. Эта программа повышения квалификации по робототехнике и LEGO-конструированию ориентирована на специалистов, которые занимаются обучением и развитием дошкольников и школьников через конструирование. Курс направлен на развитие или получение новых компетенций в области технического конструирования.</li></ul><h2>Бесплатные курсы по робототехнике</h2><p>Бесплатные курсы по робототехнике — возможность сделать первый шаг к новой профессии, не вкладывая денег. Они помогут понять, насколько вам интересна эта область, и определиться с дальнейшим направлением развития.</p><p><b><a href="https://experts1.ru/veHphZ?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=netop">Tertiarm. Arduino и манипуляционная робототехника</a> — Stepik </b></p><p>Программа предназначена для новичков, которые хотят получить практические навыки в роботостроении. В ее рамках вы научитесь собирать и программировать небольшой робот-манипулятор на базе платформы Arduino.</p><p><b>Главное о курсе: </b></p><ul><li>ориентирован на практику;</li><li>фокусируется на популярной платформе Arduino;</li><li>подходит для самостоятельного изучения.</li></ul><p><b><a href="https://experts1.ru/xPbouO?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=netop">Основы робототехники</a> — Лекториум </b></p><p>Это бесплатные курсы, которые дают фундаментальные знания о роботостроении. Программа предназначена для преподавателей, которые хотят улучшить качество обучения. Слушателям предоставляются готовые решения для построения учебных планов, создания системы оценивания успеваемости и налаживания партнерских связей между школой и вузами.</p><p><b>Главное о курсе: </b></p><ul><li>дает теоретическую базу;</li><li>разработан ведущим техническим вузом;</li><li>подходит для школьников.</li></ul><p><b><a href="https://experts1.ru/SqhxnR?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=netop">Первый шаг в робототехнику (демо-курс)</a> — Stepik </b></p><p>Краткий вводный курс, который поможет вам разобраться в базовых понятиях роботостроения. Вы познакомитесь с основными принципами и узнаете, как начать заниматься этой дисциплиной.</p><p><b>Главное о курсе: </b></p><ul><li>идеален для абсолютных новичков;</li><li>очень короткий и простой;</li><li>дает общее представление о сфере роботехники.</li></ul><p><b><a href="https://experts1.ru/cGiUex?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=netop">Робототехника LEGO SPIKE PRIME</a> — Лекториум </b></p><p>Данный курс предназначен для школьников, их родителей, учителей и просто энтузиастов. После прохождения обучения вы сможете запрограммировать робота на базе популярной платформы LEGO Education SPIKE PRIME для выполнения серии непростых заданий. Он будет двигаться по линии, избегать препятствий, подниматься на горку и находить выход из лабиринта.</p><p><b>Главное о курсе: </b></p><ul><li>фокусируется на конструкторах LEGO;</li><li>развивает логику и навыки программирования;</li><li>подходит для детей и взрослых.</li></ul><p><b><a href="https://www.youtube.com/live/vopMyDF3Ld0?si=hCoIgMbt26AQBVjE">Робототехника онлайн</a> — Цифровая школа </b></p><p>Курс дает общее представление о робототехнике и ее основных компонентах. Он подходит для детей и взрослых, которые хотят познакомиться с миром роботов и узнать, как они устроены.</p><p><b>Главное о курсе: </b></p><ul><li>вводный курс для широкой аудитории;</li><li>объясняет основные принципы роботостроения;</li><li>подойдет для знакомства с темой.</li></ul><p><b><a href="https://experts1.ru/wCyrvH?sub1=tproger-kf&amp;sub2=kursy-po-robototekhnike&amp;sub4=netop">Хардкорная математика для робототехников</a> — Лекториум </b></p><p>Этот курс для тех, кто уже серьезно занимается созданием роботов и хочет углубиться в математические основы. Он посвящен сложным темам, таким как линейная алгебра и дифференциальные уравнения.</p><p><b>Главное о курсе: </b></p><ul><li>предназначен для продвинутых пользователей;</li><li>необходимы глубокие знания математики;</li><li>помогает освоить теоретическую базу.</li></ul><h2>Зачем обучаться робототехнике?</h2><p>Изучение роботостроения развивает системное мышление, учит детей и взрослых решать сложные задачи. Эта дисциплина объединяет в себе программирование, физику, математику и инженерию, формирует системное и логическое мышление. Обучение роботостроению помогает понять, как устроены современные технологии, и превращает пользователя в разработчика.</p><p>Занятия по роботостроению учат видеть задачу целиком, разбивать ее на мелкие части и находить эффективные решения. Обучение помогает развить усидчивость, креативность и навыки работы в команде, что востребовано в любой современной профессии.</p><h2>Преимущества и недостатки курсов по робототехнике</h2><p>Обучающие программы по роботостроению предлагают структурированный подход к обучению, который значительно ускоряет прогресс. Вы получаете готовый план занятий, опытных преподавателей-наставников. Это позволяет избежать типичных ошибок новичков и сразу сосредоточиться на главном. Слушатели зачастую получают доступ к профессиональному оборудованию, платформам, что не всегда доступно для самостоятельного изучения.</p><p>Еще одно важное преимущество — экспертная поддержка. Преподаватели помогают освоить теорию и применять ее на практике, разобраться в сложных темах, дают обратную связь по проектам и исправляют ошибки.</p><p>Кроме того, учащиеся могут создать сообщество единомышленников, где можно делиться опытом, находить вдохновение и даже работать над совместными проектами.</p><p>Однако есть и свои минусы. Главный из них — стоимость, которая может быть довольно высокой, особенно для программ, требующих дорогостоящих инструментов и оборудования. Также некоторые курсы могут иметь слишком жесткое расписание или не оставлять места для личного творчества, пространства для экспериментов. В случае онлайн-занятий может не хватать живого общения и возможности быстро получить помощь от преподавателя.</p><p><i> А какие курсы заинтересовали вас? Поделитесь своими впечатлениями в комментариях или расскажите о программах, которые не вошли в наш список.</i></p>]]></content:encoded>
    </item>
    <item>
      <title>ТОП-36 курсов по No-code разработке, включая бесплатное онлайн-обучение Zero Coding</title>
      <link>https://tproger.ru/articles/kursy-po-no-code-razrabotke</link>
      <comments>https://tproger.ru/articles/kursy-po-no-code-razrabotke?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анастасия Шишкина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kursy-po-no-code-razrabotke</guid>
      <description><![CDATA[<p>Лучшие онлайн-курсы по No-code разработке. Список школ, осуществляющих обучение на бесплатной или платной основе, а так же цены на курсы по Zero Coding</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kursy-po-no-code-razrabotke">ТОП-36 курсов по No-code разработке, включая бесплатное онлайн-обучение Zero Coding</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Low-code]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 08 Apr 2025 17:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Все больше людей интересуются возможностями создания цифровых продуктов, и No-code курсы становятся для них настоящим прорывом. Интересно, что по данным последних исследований, рынок No-code/Low-code решений вырастет до $187 миллиардов к 2030 году — это почти десятикратный рост с 2021 года. Особенно примечательно, что крупные компании, включая Google и Microsoft, активно инвестируют в развитие no-code инструментов, делая их доступными для широкой аудитории.</p><p>Вместе с экспертами <a href="https://kursfinder.ru/">Kursfinder</a> я изучила около 100 вариантов обучения No-code разработке, чтобы отобрать самые качественные программы. В результате получилась подборка из 36 курсов, где первые 10 — это платные предложения от топовых школ, а остальные — программы для продвинутых пользователей и бесплатные варианты. Полный список <a href="https://kursfinder.ru/no-code/">курсов по No-code</a> можно найти на сайте Kursfinder.</p><h2>ТОП-10 лучших курсов по No-Code в 2026 году</h2><ol><li><a href="https://experts2.ru/oMpgXh?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=1">Основы NoCode: быстрый старт</a> от ProductStar — интенсив для самых мотивированных.</li><li><a href="https://experts2.ru/czyEJp?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=2">Профессия «No-Code разработчик»</a> от Skillbox — объемная программа с крутым портфолио на выходе.</li><li><a href="https://experts2.ru/ijgvTW?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=3">Управление зерокод-разработкой</a> от ZeroCoder — для тех, кто хочет создать свою студию веб-разработки.</li><li><a href="https://experts2.ru/njliOU?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=4">Профессия «No-code разработчик»</a> от Cyberband Academy — прохождение связанных общей темой мини-курсов в своем темпе.</li><li><a href="https://experts2.ru/mBkaoM?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=5">No-Code разработчик</a> от Code Breakers — многообразие инструментов и практика на реальных кейсах.</li><li><a href="https://experts2.ru/sdRmaJ?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=6">Быстрый старт в No-code</a> от Cyberband Academy — мини-курс для тех, кто спешит.</li><li><a href="https://experts2.ru/nXBlgq?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=7">Голосовые и чат-боты в no-code</a> от TWIN — обучение созданию чат-ботов.</li><li><a href="https://experts2.ru/pjXRxo?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=8">Создание сайтов на WordPress/ВордПресс без кода</a> от Stepik — верстка сайтов без HTML.</li><li><a href="https://experts2.ru/LrsnWe?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=9">Легендарный онлайн-курс по no-code разработке</a> от HSE Inc — запись популярного курса с вечным доступом.</li><li><a href="https://experts2.ru/evEhwD?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=10">No-code. От идеи до продукта без программиста</a> от Product University — изучение 10 No-code инструментов.</li></ol><p>Эти курсы станут отличным выбором как для тех, кто только начинает путь в Zero-code обучении и хочет быстро освоить инструменты без программирования, так и для предпринимателей или фрилансеров, стремящихся создавать собственные цифровые продукты без привлечения разработчиков. Интересно, что даже без технического бэкграунда, благодаря структурированным программам обучения, вы сможете уверенно работать с популярными no-code платформами уже через несколько недель после старта.</p><h2>Онлайн-курсы по No-Code</h2><p><b>1. </b><a href="https://experts2.ru/oMpgXh?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=1">Основы NoCode: быстрый старт</a> | <b>ProductStar</b></p><p>Экспресс-курс создан для тех, кто хочет освоить профессию No-code разработчика с нуля и получить практические навыки создания цифровых продуктов без написания кода. Автор программы — команда ProductStar, которая специализируется на обучении современным IT-профессиям. Курс подойдет новичкам, предпринимателям и фрилансерам, которые стремятся быстро войти в профессию и научиться создавать приложения, сайты и автоматизировать бизнес-процессы.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-03/e8208ea0-bb64-4d76-ba0c-7cf9c4ff0919.png" alt="" /></figure><ul><li>Стоимость: 45 540 ₽</li><li>Длительность: 9 уроков</li><li>Формат обучения: видеоуроки, практика на реальных кейсах, сопровождение ментора, защита финального проекта</li><li>Сертификат: электронный сертификат об успешном прохождении курса</li></ul><p><b>Для кого: </b>курс рассчитан на начинающих специалистов, которые хотят освоить Zero coding курсы, а также на предпринимателей и фрилансеров, стремящихся создавать цифровые продукты самостоятельно.</p><p><b>Преимущества:</b></p><ul><li>акцент на практические задания и работу с реальными кейсами крупных компаний;</li><li>поддержка ментора на всех этапах обучения;</li><li>возможность добавить финальный проект в портфолио;</li><li>официальный сертификат после завершения курса.</li></ul><p><b>Недостатки:</b></p><ul><li>относительно высокая стоимость обучения;</li><li>отсутствие подробной информации о длительности курса;</li><li>требуется самостоятельная организация времени из-за гибких дедлайнов.</li></ul><p><b>Программа обучения:</b></p><ul><li>базовые инструменты для разработки без кода;</li><li>освоение платформы Directual: от основ до реальных задач;</li><li>создание приложений в Bubble и запуск интернет-магазина;</li><li>настройка чат-ботов для автоматизации взаимодействия с клиентами;</li><li>построение систем расписаний и работа с визуализацией данных;</li><li>создание сайтов на Tilda с нуля;</li><li>разработка и защита собственного проекта для портфолио.</li></ul><p><a href="https://experts2.ru/oMpgXh?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=1">Полную программу вы найдете на сайте</a></p><p><b>2.</b> <a href="https://experts2.ru/czyEJp?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=2">Профессия «No-Code разработчик»</a> | <b>Skillbox</b></p><p>Этот объемный курс поможет вам начать IT-карьеру, даже если раньше вы совсем не видели себя в этой роли. Вы освоите самые востребованные инструменты и получите сразу несколько крутых работ в портфолио. Это быстрое и глубокое погружение в сферу разработки для тех, кто настроен серьезно.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-03/cfb2118a-9e92-4bfc-9ddc-d24ddd2c5939.png" alt="" /></figure><ul><li>Стоимость: 4 250 ₽/месяц</li><li>Длительность: 8 месяцев</li><li>Формат обучения: несколько учебных модулей с видеоуроками и практикой</li><li>Сертификат: нет информации</li></ul><p><b>Для кого:</b> подойдет людям с нулевым опытом в айти, но важна отдача и усердие. Программа составлена так, что вам предстоит много практики. Если уделять ей достаточно времени, вы получите результат.</p><p><b>Преимущества:</b></p><ul><li>несколько готовых работ для демонстрации;</li><li>поддержка в чате Телеграм;</li><li>сразу три полезных инструмента в вашу копилку;</li><li>удобный график учебы.</li></ul><p><b>Недостатки:</b></p><ul><li>интенсивная программа не для тех, у кого мало времени/сил;</li><li>много самостоятельной работы.</li></ul><p><b>Программа обучения:</b></p><ul><li>Bubble;</li><li>Flutter Flow;</li><li>тильда;</li><li>общий итог и знакомство с профессией.</li></ul><p><a href="https://experts2.ru/czyEJp?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=2">Ознакомиться с полной программой на сайте</a></p><p><b>3. </b><a href="https://experts2.ru/ijgvTW?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=3">Управление зерокод-разработкой</a>  | <b>ZeroCoder</b></p><p>Этот онлайн-курс сильно выделяется из всей подборки тем, что в нем фоукс не на обучении собственно разработке, а на создании собственного бизнеса и студии кодинга. Помимо базовых знаний вы получите множество инструментов, которые пригодятся будущему руководителю.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-03/a18af578-43bf-40df-a064-01870985e0be.png" alt="" /></figure><ul><li>Стоимость: 18 750 ₽/месяц</li><li>Длительность: бессрочно, при желании можно пройти за 2 месяца</li><li>Формат обучения: записи уроков, воркшопы, консультации</li><li>Сертификат: не предполагается</li></ul><p><b>Для кого: </b>для тех, кто хочет зарабатывать на разработке по-крупному. Не только как самостоятельный программист, но и как владелец настоящей студии разработки.</p><p><b>Преимущества:</b></p><ul><li>уникальная программа;</li><li>консультации бухгалтеров, юристов, психологов;</li><li>гарантия окупаемости или возврат денег;</li><li>профориентация.</li></ul><p><b>Недостатки:</b></p><ul><li>очень высокая стоимость;</li><li>программа не для всех.</li></ul><p><b>Программа обучения:</b></p><ul><li>общие понятия no-code;</li><li>продажи;</li><li>разработка, проекты;.</li><li>как масштабировать свою деятельность;</li><li>собственная веб-студия.</li></ul><p><a href="https://experts2.ru/ijgvTW?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=3">Ознакомиться с полной программой на сайте</a></p><p><b>4. </b><a href="https://experts2.ru/njliOU?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=4">Профессия «No-code разработчик»</a> | <b>Cyberband Academy</b></p><p>Это сборка курсов, объединенных общей темой и последовательно раскрывающих ее для заинтересованного новичка. В программе много практики и самостоятельных мини-проектов, которые вы можете положить в портфолио. Удобное обучение в своем темпе с доброжелательной обратной связью.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-03/b0fd5fba-7ee3-4179-a775-f88707dfe467.png" alt="" /></figure><ul><li>Стоимость: 49 900 ₽</li><li>Длительность: бессрочный доступ к программе, обучение в своем темпе</li><li>Формат обучения: уроки, общение и ОС в чате, домашние работы</li><li>Сертификат: электронный сертификат</li></ul><p><b>Для кого: </b>будет полезно всем, кто заинтересовался таким направлениям, как разработка без кодинга, даже если раньше не было опыта в этой сфере. Потребуется много усидчивости и стараний, но так как жестких дедлайнов нет, то справится любой.</p><p><b>Преимущества:</b></p><ul><li>помогают с трудоустройством;</li><li>сессии с вопросами и ответами, качественная ОС;</li><li>14 работ в портфолио;</li><li>более 200 подробных лекций.</li></ul><p><b>Недостатки:</b></p><ul><li>не раскрыта тема обычного написания кода;</li><li>отсутствие графика может демотивировать некоторых учеников.</li></ul><p><b>Программа обучения:</b></p><ul><li>введение;</li><li>первые кейсы на Тильде, Creatium+;</li><li>модуль про бизнес;</li><li>мобильные приложения, + кейс;</li><li>Bubble, + кейс;</li><li>общие сведения про фриланс.</li></ul><p><a href="https://experts2.ru/njliOU?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=4">Ознакомиться с полной программой можно здесь</a></p><p><b>5.</b> <a href="https://experts2.ru/mBkaoM?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=5">No-Code разработчик</a> | <b>Code Breakers</b></p><p>Онлайн-курс поможет научиться создавать самые разные вещи, от веб страниц до полноценных приложений, и все это — без традиционного написания кода в среде разработки. Это целый комплекс мощных навыков, с которыми вы сможете войти в крутой IT-проект, не имея за плечами большого опыта.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-03/9d1ece5b-8ea1-4fb5-9cef-3441cc8809f5.png" alt="" /></figure><ul><li>Стоимость: нет информации</li><li>Длительность: нет информации</li><li>Формат обучения: Уроки трижды в неделю, практика, обсуждения в чате</li><li>Сертификат: нет информации</li></ul><p><b>Для кого:</b> тем, кто еще не определился, что именно хочет делать — сайты, программы или настройку бизнес-процессов. Подходит начинающим.</p><p><b>Преимущества:</b></p><ul><li>универсальность;</li><li>большой набор инструментов;</li><li>упор на применение в практике, без нужной теории;</li><li>кейсы в портфолио.</li></ul><p><b>Недостатки:</b></p><ul><li>нет информации о цене и сроках;</li><li>нет глубокой проработки специализированных тем.</li></ul><p><b>Программа обучения:</b></p><ul><li>создание лендингов и многостраничных сайтов;</li><li>мобильные приложения;</li><li>веб-приложения;</li><li>автоматизация бизнес-процессов;</li><li>интеграция с разными сервисами.</li></ul><p><a href="https://experts2.ru/mBkaoM?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=5">Ознакомиться с полной программой здесь</a></p><p><b>6. </b><a href="https://experts2.ru/sdRmaJ?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=6">Быстрый старт в No-code</a> | <b>Cyberband Academy</b></p><p>Мини-курс длительностью всего один месяц для быстрого знакомства с темой зеро-код разработки. Шаг за шагом вы познакомитесь с азами создания IT-продуктов без классического кодинга с экспертами в теме и самостоятельно создадите целых 6 продуктов, которые будут вашим первым шагом в этой сфере.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-03/8344cbcf-160a-428f-b5ea-346be399b569.png" alt="" /></figure><ul><li>Стоимость: 29 900 ₽</li><li>Длительность: 1 месяц</li><li>Формат обучения: лекции, задания с ОС</li><li>Сертификат: нет</li></ul><p><b>Для кого: </b>прослушать курс будет полезно тем, кто еще не определился с основной темой и хочет быстро ознакомиться с зеро-кодингом. Не для продвинутых программистов.</p><p><b>Преимущества:</b></p><ul><li>актуальные темы, востребованные в современных профессиях;</li><li>6 готовых работ;</li><li>эксперты с большим опытом;</li><li>быстрое погружение в тему.</li></ul><p><b>Недостатки:</b></p><ul><li>недостаточно глубины;</li><li>интенсивный тем, подходит не всем.</li></ul><p><b>Программа обучения:</b></p><ul><li>основы IT;</li><li>веб-сервисы;</li><li>мобильные приложения;</li><li>реализация собственных мини-проектов.</li></ul><p><a href="https://experts2.ru/sdRmaJ?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=6">Ознакомьтесь с полной программой можно на сайте</a></p><p><b>7.</b> <a href="https://experts2.ru/nXBlgq?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=7">Голосовые и чат-боты в no-code</a> | <b>TWIN</b></p><p>Этот экспресс-курс создан экспертами компании TWIN для тех, кто хочет освоить профессию разработчика чат-ботов без знания программирования. Под руководством опытных наставников студенты научатся создавать интеллектуальных ботов с нуля, получат сертификат квалифицированного специалиста TWIN и смогут заниматься внедрением решений компании.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-03/b95bdd4a-2c7e-4a51-9787-27d62af10923.png" alt="" /></figure><ul><li>Стоимость: 31 100 ₽</li><li>Длительность: 40 часов</li><li>Формат обучения: 40 лекций, доступ на год</li><li>Сертификат: да</li></ul><p><b>Для кого: </b>курс рассчитан на начинающих специалистов в сфере IT и маркетинга, предпринимателей, а также тех, кто хочет освоить новую профессию или расширить спектр своих услуг. Он подойдет тем, кто стремится работать с интеллектуальными ботами, выйти на удаленную работу или развивать бизнес в области чат-бот технологий.</p><p><b>Преимущества:  </b></p><ul><li>возможность освоить профессию разработчика чат-ботов без навыков программирования;</li><li>доступ к материалам курса на год;</li><li>поддержка опытных наставников и доступ к живым вебинарам.</li></ul><p><b>Недостатки:  </b></p><ul><li>требуется время и самодисциплина для завершения курса в своем темпе;</li><li>необходимость успешной аттестации для получения сертификата;</li><li>отсутствие углубленного изучения языков программирования.</li></ul><p><b>Программа обучения:  </b></p><ul><li>введение в технологии создания интеллектуальных ботов;</li><li>работа с платформой TWIN для разработки чат-ботов;</li><li>практические задания по созданию ботов с нуля;</li><li>обучение внедрению и интеграции решений;</li><li>подготовка к аттестации и партнерству.</li></ul><p><a href="https://experts2.ru/nXBlgq?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=7">Ознакомиться с полной программой здесь</a></p><p><b>8. </b><a href="https://experts2.ru/pjXRxo?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=8">Создание сайтов на WordPress/ВордПресс без кода</a>  | <b>Stepik</b></p><p>Небольшой курс по одному из самых популярных инструментов для No-code веб-разработки, WordPress. За чисто символическую стоимость вы узнаете, как создавать лендинги и многостраничные сайты. Очень полезный навык во многих профессиях, и он может стать началом новой карьеры.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-03/bbb67e8c-b3b8-4628-ab2f-24682f9ab247.png" alt="" /></figure><ul><li>Стоимость: 499 ₽</li><li>Длительность: 1,5 часа</li><li>Формат обучения: уроки, тестирования, задания</li><li>Сертификат: нет</li></ul><p><b>Для кого:</b> учиться могут абсолютно все, кто умеет пользоваться браузером и текстовым редактором. Полезное первое знакомство с версткой сайтов без изучения HTML и CSS.</p><p><b>Преимущества:</b></p><ul><li>очень бюджетно;</li><li>быстро;</li><li>учеба на наглядных примерах;</li><li>есть чат с поддержкой.</li></ul><p><b>Недостатки:</b></p><ul><li>только один инструмент;</li><li>поверхностное знакомство с темой.</li></ul><p><b>Программа обучения:</b></p><ul><li>хостинг и движок WP;</li><li>шапка и первый экран;</li><li>блочные темы;</li><li>итог.</li></ul><p><a href="https://experts2.ru/pjXRxo?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=8">С полной программой можно ознакомиться на странице</a></p><p><b>9. </b><a href="https://experts2.ru/LrsnWe?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=9">Легендарный онлайн-курс по no-code разработке</a> | <b>HSE Inc</b></p><p>Это курс, который в настоящий момент уже не ведется живым потоком, но продается в качестве записи всех занятий. Огромное количество полезных материалов по теме No-code, много реальных примеров, разбор 20 полезных инструментов. Цена ниже, чем была раньше, а вся польза осталась прежней.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-03/b326acd4-07d2-463c-9db1-917d612f0448.png" alt="" /></figure><ul><li>Стоимость: 22 900 ₽</li><li>Длительность: бессрочный доступ к материалам без дедлайнов</li><li>Формат обучения: лекции, воркшопы, инструкции, словарь</li><li>Сертификат: нет</li></ul><p><b>Для кого: </b>для тех, кто хочет всесторонне изучить способы создавать IT-продукты без кода. Будет полезно и опытным программистам, которым надо изменить формат работы.</p><p><b>Преимущества:</b></p><ul><li>популярный курс с множеством хороших отзывов;</li><li>разбор большого количества инструментов;</li><li>небольшая стоимость.</li></ul><p><b>Недостатки:</b></p><ul><li>нет обратной связи;</li><li>много самостоятельной работы.</li></ul><p><b>Программа обучения:</b></p><ul><li>MVP;</li><li>чат-боты;</li><li>автоматизация;</li><li>приложения;</li><li>большие проекты.</li></ul><p><a href="https://experts2.ru/LrsnWe?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=9">Ознакомиться с полной программой курса вы можете здесь</a></p><p><b>10. </b><a href="https://experts2.ru/evEhwD?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=10">No-code. От идеи до продукта без программиста</a> | <b>Product University</b></p><p>Этот курс представляет собой No-coding обучение в сжатые сроки. Два месяца вы будете интенсивно изучать и пробовать на практике самые полезные для зеро-кодера инструменты, а потом еще в течение четырех месяцев сможете консультироваться с куратором, чтобы отточить приобретенные навыки. Бонусом вы получите несколько хороших кейсов в свое портфолио.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-03/c7064f0f-2c7c-4e2a-ad98-c7f6779cd8e0.png" alt="" /></figure><ul><li>Стоимость: 1 625 ₽/месяц</li><li>Длительность: 2 месяца</li><li>Формат обучения: теория, практика и обратная связь</li><li>Сертификат: есть</li></ul><p><b>Для кого: </b>уроки будут полезны тем, кто хочет открыть свой стартап, кто зарабатывает или хочет зарабатывать разработкой на фрилансе, менеджерам и руководителям.</p><p><b>Преимущества:</b></p><ul><li>возврат денег в течение первой недели, если не понравится;</li><li>удобная ОС в чате Телеграм;</li><li>вечный доступ к материалам;</li><li>бюджетно.</li></ul><p><b>Недостатки:</b></p><ul><li>общие сведения, без глубины;</li><li>нет помощи в трудоустройстве.</li></ul><p><b>Программа обучения:</b></p><ul><li>введение;</li><li>интернет-магазин;</li><li>Тильда;</li><li>чат-боты;</li><li>мобильные приложения.</li></ul><p><a href="https://experts2.ru/evEhwD?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=10">Вы можете ознакомиться с полной программой курса на этой странице</a></p><h2>Еще 8 курсов No-Code</h2><p>No-code технологии стремительно меняют IT-ландшафт, позволяя создавать цифровые продукты без написания кода. Современные образовательные программы предлагают различные подходы к освоению этой перспективной сферы — от базового понимания принципов работы с No-code инструментами до создания сложных бизнес-решений и запуска собственных студий разработки. Рассмотрим еще восемь актуальных курсов, которые помогут вам освоить профессию будущего и начать карьеру в сфере No-code разработки или автоматизации бизнес-процессов.</p><ol><li><a href="https://experts2.ru/uwOLel?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Фриланс и NO-CODE</a> от ITGIRLS — за 4 месяца вы получите новую, востребованную профессию. Первые заказы с версткой на Тильде или созданием макета на Фигме вы сможете получать уже во время учебы. Менторы ответят на ваши вопросы и помогут с созданием первых проектов для демонстрации работодателям.</li><li><a href="https://experts2.ru/eZciEr?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Разработчик на Bubble</a> от Skillbox.ru — в программе курса освещаются основные принципы работы с Bubble — мощным конструктором, который позволяет разрабатывать MVP для стартапов и масштабные корпоративные системы управления. Помимо технических аспектов, студенты узнают о практических применениях платформы и современных тенденциях в сфере No-code разработки. Этот курс подойдет тем, кто хочет быстро войти в IT или автоматизировать бизнес-процессы без глубоких знаний программирования.</li><li><a href="https://experts2.ru/evEhwD?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">No-code. От идеи до продукта без программиста</a> от Product University — курс разработан для новичков и позволяет освоить создание функциональных продуктов с помощью готовых инструментов, таких как конструкторы и сервисы. Участники научатся быстро и дешево собирать минимально жизнеспособные продукты (MVP), что особенно полезно для стартапов и автоматизации бизнес-процессов. По окончании курса выдается сертификат, подтверждающий полученные навыки.</li><li><a href="https://experts2.ru/DnjPhf?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Разработчик web приложений на Bubble</a> от Cyberband Academy — программа обучает созданию приложений без необходимости владения навыками программирования, используя No-code сервисы. Программа включает более 100 лекций и бизнес-модуль, где разбирается стратегия запуска IT-продуктов, а также делается акцент на практическую часть — 80% практики и 20% теории. Среди преимуществ курса отмечается поддержка преподавателей и возможность реализовать проекты, которыми можно гордиться уже во время обучения.</li><li><a href="https://experts2.ru/AcInjs?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Зерокодер на Bubble</a> от ZeroCoder — за два месяца участники смогут разработать маркетплейс на примере Яндекс.Маркета благодаря уникальной методологии обучения, которая помогает легко освоить материал и довести проект до результата. Программа ориентирована на практические задачи, позволяя студентам быстро применять полученные знания для создания реальных приложений за короткий срок..</li><li><a href="https://experts2.ru/fKEivu?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Zero coding</a> от Уральского федерального университета —  программа ориентирована на развитие практических навыков для автоматизации бизнес-процессов и разработки приложений с использованием современных платформ. Обучение подходит как для начинающих специалистов, так и для предпринимателей, желающих оптимизировать свои процессы без привлечения программистов. Этот курс — часть дополнительного профессионального образования, направленная на повышение квалификации в сфере IT-технологий.</li><li><a href="https://experts2.ru/QpjdbT?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Создание сайтов на Webflow</a> от Uprock School — программа включает освоение основ HTML и CSS, что делает ее одной из самых объемных и насыщенных на рынке. Обучение проходит в комфортном темпе с последовательным изложением материала и поддержкой практики под присмотром опытных преподавателей. Школа также известна тем, что демонстрирует тысячи качественных проектов своих учеников, подтверждая эффективность обучения.</li><li><a href="https://experts2.ru/ZwzAsi?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Своя зерокод-студия</a> от ZeroCoder — это индивидуальная программа менторства для создания и масштабирования AI-студии премиум-класса. Участники получают доступ к эксклюзивным модулям по нейросетям, промпт-инжинирингу и no-code инструментам, а также консультации с юристами, бухгалтерами и психологами для комплексного развития проекта. Программа подходит тем, кто хочет войти в трендовую нишу AI-разработки с высоким доходом, минимизируя риски за счет экспертного сопровождения.</li></ol><h2>5 курсов по мобильной разработке на No-code</h2><ol><li><a href="https://experts2.ru/nAiveY?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Онлайн-курс по зерокодингу</a> от Onskills — курс по зерокодингу предлагает онлайн-обучение созданию сайтов и приложений без необходимости знания программирования, что делает его доступным для начинающих. Обучение проходит в дистанционном формате с поддержкой квалифицированных наставников, которые помогают освоить материал с нуля. По завершении курса участники смогут претендовать на высокооплачиваемые вакансии в IT-сфере.</li><li><a href="https://experts2.ru/CownaV?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Мобильные приложения на No-code</a> от Cyberband Academy — курс по разработке мобильных приложений без кода учит создавать приложения уровня Airbnb и Delivery Club за 2 месяца, используя No-code инструменты. В программе студенты работают над реальными проектами, включая запуск приложений в App Store и Google Play, что позволяет им формировать конкурентоспособное портфолио. Обучение проходит под руководством опытных менторов, которые помогают освоить процесс создания MVP за 2–5 недель.</li><li><a href="https://experts2.ru/hgnBqP?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Зерокодер мобильных приложений</a> от ZeroCoder — обучающая программа поможет освоить создание мобильных приложений без необходимости писать код, что делает процесс доступным даже для новичков. Курс помогает участникам запустить собственные проекты в App Store и Google Play за 3 месяца, используя популярные no-code инструменты и платформы. Особое внимание уделяется практике: студенты работают над реальными кейсами под руководством экспертов, что позволяет им сразу применять полученные знания на практике.</li><li><a href="https://experts2.ru/yYhSga?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Мобильный разработчик без кода</a> от Code Breakers — программа ориентирована на тех, кто хочет быстро войти в IT-сферу, предлагая практические навыки для разработки приложений, которые могут конкурировать на мировом рынке. Участники курса получают доступ к экспертным материалам и поддержке опытных менторов, что помогает им успешно реализовать свои проекты уже в процессе обучения.</li><li><a href="https://experts2.ru/OcFsrn?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Продвинутая программа по мобильным приложениям на FlutterFlow</a> от ZeroCoder — обучение подходит как для начинающих, так и для тех, кто уже имеет базовые знания в No-code разработке, предлагая погружение в процесс создания интерактивных приложений без необходимости углубленного изучения программирования. Участники работают над реальными проектами, которые можно опубликовать в App Store и Google Play, формируя портфолио и развивая навыки, востребованные на рынке IT. Под руководством опытных наставников студенты учатся эффективно комбинировать дизайн, функционал и технологии для запуска качественных мобильных решений.</li></ol><h2>Бесплатные курсы по No-Code</h2><p>Бесплатные курсы по No-Code — это отличная возможность для новичков познакомиться с основами создания приложений и автоматизации процессов без необходимости изучать сложные языки программирования. Такие курсы помогают быстро освоить популярные инструменты, развить практические навыки и определиться с направлением для дальнейшего профессионального роста.</p><p><b>1.</b> <a href="https://experts2.ru/KfTjne?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Tilda. Как создать впечатляющий сайт без программирования</a> — <b>Bang Bang Education</b></p><p>Этот курс подойдет для новичков, которые хотят освоить платформу Tilda и научиться создавать красивые и функциональные лендинги без знания программирования. За несколько уроков вы разберетесь с интерфейсом Tilda, основными блоками и инструментами, а также создадите свой первый проект с нуля.</p><p><b>Главное о курсе:</b></p><ul><li>Подробное изучение интерфейса и базовых возможностей Tilda;</li><li>Пошаговое руководство по созданию лендинга;</li><li>Практические задания для закрепления навыков.</li></ul><p><b>2.</b> <a href="https://experts2.ru/fPwjIz?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Зерокодер: разработчик веб и мобильных приложений</a> — <b>Содействие занятости</b></p><p>Курс создан для тех, кто хочет освоить разработку мобильных приложений без необходимости писать код. На обучении вы научитесь использовать No-Code инструменты, чтобы создавать функциональные и привлекательные мобильные решения, которые могут быть применены в бизнесе или для личных проектов.</p><p><b>Главное о курсе:  </b></p><ul><li>Фокус на разработку мобильных приложений через No-Code платформы;</li><li>Практические кейсы и примеры из реальной жизни;</li><li>Подходит как для предпринимателей, так и для начинающих разработчиков.</li></ul><p><b>3.</b> <a href="https://experts2.ru/aYusQf?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">NOCODE на Creatium</a> — <b>Creatium</b></p><p>Программа будет полезна тем, кто только начинает свой путь в мире No-Code и хочет освоить базовые навыки создания сайтов и приложений без программирования. На практических примерах вы научитесь работать с платформой Creatium и создадите свой первый проект, который можно использовать для портфолио или бизнеса.</p><p><b>Главное о курсе:  </b></p><ul><li>Погружение в основы работы с Creatium — интуитивной платформой для No-Code разработки;</li><li>Пошаговое создание сайта или лендинга с нуля;</li><li>Акцент на простоту и доступность для новичков.</li></ul><p><b>4. </b><a href="https://experts2.ru/bAtKji?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Зерокодинг — новая нефть!</a> — <b>ZeroCoder</b></p><p>Уроки станут отличной отправной точкой для тех, кто хочет освоить веб-разработку без необходимости изучать сложные языки программирования. В рамках обучения вы научитесь создавать современные сайты и интерактивные веб-страницы, используя интуитивно понятные No-Code инструменты.</p><p><b>Главное о курсе:  </b></p><ul><li>Основы создания сайтов на популярных No-Code платформах;</li><li>Практические примеры и пошаговые инструкции для новичков;</li><li>Бесплатный доступ к материалам для самостоятельного изучения.</li></ul><p><b>5.</b><a href="https://experts2.ru/QpjdbT?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop"> Webflow: Старт</a> — <b>Uprock School</b></p><p>Программа подойдет для тех, кто хочет освоить Webflow — мощный инструмент для создания сайтов без написания кода. Вы научитесь работать с профессиональными шаблонами, настраивать адаптивный дизайн и создавать уникальные веб-проекты, которые выглядят современно и функционально.</p><p><b>Главное о курсе:  </b></p><ul><li>Погружение в платформу Webflow с нуля;</li><li>Создание адаптивных и кросс-браузерных сайтов;</li><li>Практические задания для закрепления навыков.</li></ul><p><b>6. </b><a href="https://experts2.ru/kOmYfh?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Специалист по zerocoding</a> — <b>Future Prof</b></p><p>Этот курс — находка для тех, кто хочет понять основы No-Code разработки и научиться создавать цифровые продукты без сложного программирования. Здесь вы получите базовые знания о популярных инструментах и сможете реализовать свои идеи в формате простых и функциональных решений.</p><p><b>Главное о курсе:  </b></p><ul><li>Введение в No-Code разработку для начинающих;</li><li>Обзор ключевых платформ и их возможностей;</li><li>Практические примеры для старта в создании проектов.</li></ul><p><b>7. </b><a href="https://experts2.ru/WndzQi?sub1=tproger-kf&amp;sub2=nocode-kursy&amp;sub4=netop">Управление проектами на зерокоде</a> — <b>ZeroCoder</b></p><p>Курс подойдет тем, кто хочет освоить управление проектами в No-Code среде и научиться эффективно координировать разработку без глубоких технических знаний. Вы узнаете, как структурировать задачи, выбирать подходящие инструменты и доводить проекты до результата, экономя время и ресурсы.</p><p><b>Главное о курсе:  </b></p><ul><li>Основы управления проектами с использованием No-Code решений;</li><li>Лайфхаки по организации работы и командной координации;</li><li>Практические советы для реализации проектов любой сложности.</li></ul><h2>Видеоуроки по No-code</h2><p><b>1. </b><a href="https://youtu.be/p7I8dKsSD_o?si=tzl80Ity3VuMRMGJ">No code. Программирование без кода</a> — <b>Клуб дедов-программистов</b></p><p>Это общий обзор основных технологий и сервисов, которые используются в зеро-код разработке. Полезное видео для тех, кто хочет понять, как вообще можно программировать без кода и прикоснуться к этому миру впервые</p><p><b>Главное о курсе:</b></p><ul><li>Просто и понятно для новичков;</li><li>Полный обзор основных технологий;</li><li>Разбор примеров.</li></ul><p><b>2. </b><a href="https://www.youtube.com/watch?v=NB3n22pE95Y">Все возможности NoCode в одном видео</a> —<b> Игнат Егоров | AppBusters</b></p><p>20 минут концентрированной информации о зеро-кодинге с примерами успешных стартапов. Разбор ограничений метода, плюсов и минусов. Сравнение с классическим программированием. Вы узнаете об основных конструкторах и их возможностях.</p><p><b>Главное о курсе:</b></p><ul><li>Краткое обзорное видео;</li><li>Вдохновляющие примеры;</li><li>Описание инструментов.</li></ul><p><b>3.</b> <a href="https://youtu.be/hk2xRE_A5vA?si=kaLTgBawTIo-c7Vv">Webflow. Обзор возможностей, подводные камни</a> — <b>Я — зерокодер </b></p><p>Это часовое видео посвящено разбору одного из самых популярных инструментов у ноу-кодеров — Webflow. Много практики и нюансов работы для тех, кто собирается плотно заняться разработкой. Будет полезно как начинающим, так и тем, кто уже изучал предмет самостоятельно.</p><p><b>Главное о курсе:</b></p><ul><li>Наглядная работа в Вебфлоу;</li><li>Рассказ о возможностях и ограничениях;</li><li>Кейсы использования.</li></ul><p><b>4. </b><a href="https://youtu.be/JjNOLcGV1WQ?si=7N6nXP_X-kwuJ4Jz">Сборка топового сайта на Tilda, без кода</a> — <b>Buddilov | Веб-дизайн Без Воды</b></p><p>Очень короткое познавательное видео про фиксацию элемента в Тильде. Это не полный разбор конструктора, скорее маленький лайфхак для тех, кто уже знаком с ним. Если вы уже имеете общее представление о конструкторе сайтов Тильда, но все еще не знаете, как доработать мелкие досадные детали, это видео вам поможет.</p><p><b>Главное о курсе:</b></p><ul><li>Коротко и полезно;</li><li>Не очевидная возможность инструмента;</li><li>Для практиков.</li></ul><p><b>5. </b><a href="https://www.youtube.com/playlist?list=PL_uFkOK8swUXYbn7xzrAA7Lj2xc47X5sJ">Серия вебинаров «Low-code вместо разработки»</a> — <b>ELMA </b></p><p>Небольшой плейлист из пяти обучающих видеоуроков по Low-code. Достаточно подробная проработка сложных тем, таких как документооборот low-code, интеграция бизнес-процессов и кастомизация ECM. Эти вебинары помогут вам глубже погрузиться в тему.</p><p><b>Главное о курсе:</b></p><ul><li>Длинные подобные видео;</li><li>Просто о сложном;</li><li>Для продолжающих.</li></ul><h2>Профессия No-Code Разработчик: Создавай Будущее без Кода</h2><p>No-code разработчик — одна из самых быстро растущих профессий в IT, которая позволяет создавать приложения, сайты и автоматизировать бизнес-процессы без единой строчки кода. Интересный факт: по данным Gartner, к 2026 году более 70% новых приложений будут разрабатываться с использованием no-code/low-code технологий. Это значит, что специалисты, освоившие Zero-coding курсы, становятся ключевыми фигурами на рынке труда.</p><h2>Деятельность</h2><p>No-code разработчик создает цифровые продукты, используя визуальные инструменты и платформы. Это могут быть мобильные приложения, лендинги, CRM-системы, чат-боты или даже сложные автоматизированные процессы для бизнеса. Например, вы можете помочь ресторану настроить систему бронирования столов через Telegram-бота или создать маркетплейс для стартапа за пару недель.</p><h2>Навыки</h2><p><b>Для успешной работы важно уметь:</b></p><ul><li>Работать с популярными no-code платформами (Bubble, Adalo, Airtable, Tilda и др.).</li><li>Понимать основы UX/UI, чтобы создавать удобные интерфейсы.</li><li>Владеть навыками аналитики и автоматизации бизнес-процессов.</li><li>Быть гибким и быстро обучаться новым инструментам.</li></ul><h2>Где учиться</h2><p>Освоить профессию можно на zero coding курсах от проверенных онлайн-школ. Например, программы от Skillbox, ProductStar или HSE Inc предлагают как базовые знания, так и углубленные треки для продвинутых специалистов. А если бюджет ограничен, есть бесплатные варианты, которые могут быть не менее полезны для упорных и целеустремленных людей.</p><h2>Уровень дохода</h2><p><b>Зарплаты No-code разработчиков зависят от опыта и сложности проектов:</b></p><ul><li>Начинающий специалист может получать до <a href="https://perm.hh.ru/vacancy/117939972?query=no-code+%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA&amp;hhtmFrom=vacancy_search_list">80 000</a> рублей.</li><li>Опытный разработчик может рассчитывать на зарплату от 100 000 до <a href="https://perm.hh.ru/vacancy/118950931?query=no-code+%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA&amp;hhtmFrom=vacancy_search_list">150 000 рублей</a>.</li></ul><p>Эта профессия открывает двери не только в IT, но и в предпринимательство, позволяя запускать собственные проекты с минимальными затратами времени и денег.</p><h2>Заключение</h2><p>No-code разработка становится одной из самых востребованных профессий в IT-сфере, позволяя создавать приложения и сайты без написания кода. Средняя зарплата специалистов в этой области составляет 120–180 тысяч рублей. No-code курсы открывают доступ к высокооплачиваемой профессии даже для тех, кто не имеет технического образования. При выборе курсов важно обращать внимание на практическую составляющую обучения и отзывы выпускников. Рекомендую начинать с базовых программ, постепенно углубляя знания.</p><p><b>Подборки по схожим темам:</b><b></b></p><ol><li><a href="https://tproger.ru/articles/top-61-kursov-veb-razrabotchika--luchwee-onlajn-obuchenie-programmirovaniyu-besplatno-i-platno" rel="nofollow">Лучшие курсы веб-разработчика</a></li><li><a href="https://tproger.ru/articles/top-hh-kursov-ios-razrabotchikov--onlajn-obuchenie-razrabotki-mobilnyh-prilozhenij-dlya-iphone" rel="nofollow">Лучшие курсы iOS-разработчиков</a></li><li><a href="https://tproger.ru/articles/top-30-kursov-android-razrabotchikov--onlajn-obuchenie-razrabotki-mobilnyh-prilozhenij-pod-android" rel="nofollow">Лучшие курсы Android-разработчиков</a></li><li><a href="https://tproger.ru/articles/top-25-kursov-golang-razrabotchikov--besplatnoe-i-platnoe-onlajn-obuchenie-programmirovaniyu-na-yazyke-go">Лучшие курсы Golang-разработчиков</a></li></ol><p><i>А какие No-code курсы проходили вы? Поделитесь своим опытом обучения и результатами — ваш отзыв поможет другим читателям сделать правильный выбор.</i></p>]]></content:encoded>
    </item>
    <item>
      <title>ТОП-21 курс Git и Github, включая онлайн-обучение для новичков</title>
      <link>https://tproger.ru/articles/top-21-kurs-git-i-github--vklyuchaya-onlajn-obuchenie-dlya-novichkov</link>
      <comments>https://tproger.ru/articles/top-21-kurs-git-i-github--vklyuchaya-onlajn-obuchenie-dlya-novichkov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анастасия Шишкина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/top-21-kurs-git-i-github--vklyuchaya-onlajn-obuchenie-dlya-novichkov</guid>
      <description><![CDATA[<p>Лучшие онлайн-курсы Git и Github. Список школ, осуществляющих обучение на бесплатной или платной основе, а так же цены на курсы по Git и Github</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/top-21-kurs-git-i-github--vklyuchaya-onlajn-obuchenie-dlya-novichkov">ТОП-21 курс Git и Github, включая онлайн-обучение для новичков</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Яндекс]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 04 Apr 2025 18:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Получить полный спектр навыков, необходимых для эффективной работы с системой контроля версий помогут курсы по Git. Слушатели изучат все — от базовых команд, вроде git init и git commit, до продвинутых практик: ветвления, слияния, разрешения конфликтов и использования популярных workflow, таких как GitFlow. Эти знания позволяют уверенно управлять историей изменений, координировать работу в команде и эффективно возвращаться к стабильным версиям проекта.</p><p>В ходе совместной работы с экспертами <a href="https://kursfinder.ru/">Kursfinder</a> я рассмотрела более 30 предложений и выбрала 21 лучший курс Git. Для удобства навигации я разделила их на несколько категорий: в начале статьи представлены 10 программ, которые, на мой взгляд, наиболее эффективные. Если ни одна из них не соответствует вашим требованиям, обратите внимание на дополнительный список из семи программ. В конце статьи вы найдете подборку бесплатных материалов. Полный <a href="https://kursfinder.ru/git/">список курсов по теме</a> доступен в каталоге Kursfinder.</p><h2>ТОП-10 лучших курсов по Git в 2026 году</h2><ol><li><a href="https://experts2.ru/RhcwWn?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=1">Профессиональная разработка в 1С:EDT + Git</a> от OTUS.ru — лучший интерактивный курс по Git.</li><li><a href="https://experts2.ru/WcwnLp?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=2">Git и GitHub</a> от HTML Academy — онлайн-курс для новичков по Git и GitHub.</li><li><a href="https://experts2.ru/yuLtlI?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=3">GIT — система контроля версий</a> от Контур.Школы — видеокурс по Git для входа в IT.</li><li><a href="https://experts2.ru/jlZyqW?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=4">CI/CD на примере Gitlab CI</a> от Слёрма — программа для тех, кто уже знаком с Git и Linux.</li><li><a href="https://experts2.ru/QfpmKl?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=5">Основы Git</a> от Purpleschool — начальное обучение по Git с неограниченным доступом.</li><li><a href="https://experts2.ru/zGikPd?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=6">GIT. Управление версиями для разработчиков</a> от beONmax.com — полное руководство GIT для новичков.</li><li><a href="https://experts2.ru/ecJnMj?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=7">Git для начинающих</a> от itProger — мини-курс по изучению Git с нуля.</li><li><a href="https://experts2.ru/CrlsEh?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=8">Linux / GIT</a> от beONmax.com — быстрое видео-обучение Linux для начинающих.</li><li><a href="https://experts2.ru/zwEmJs?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=9">Продвинутый Git</a> от Thinknetica — программа обучения для повышения квалификации.</li><li><a href="https://loftschool.com/course/web-beginner/">Веб-разработка для начинающих + Git</a> от Loftschool — интенсивный курс по веб-разработке.</li></ol><p>Обучение Git подходит абсолютно всем, кто работает с кодом или текстовыми файлами: разработчикам, тестировщикам, DevOps-инженерам, дизайнерам, техническим писателям и даже менеджерам проектов. Программа помогает контролировать версии, откатывать изменения, работать в команде без потерь данных и эффективно управлять любыми изменениями в файлах. Если вы пишете код, верстаете сайты, настраиваете серверы или просто хотите понять, как хранить историю правок — Git вам пригодится. Даже фрилансеры и студенты используют его для своих проектов, потому что это стандарт в современной разработке.</p><h2>Онлайн-курсы по Git</h2><p><b>1. </b><a href="https://experts2.ru/RhcwWn?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=1">Профессиональная разработка в 1С:EDT + Git</a> |<b> OTUS.ru</b></p><p>Познакомьтесь с базовыми инструментами, которые необходимы для успешной работы разработчика в среде EDT. Вы изучите новые методы разработки на платформе 1С, что позволит вам создавать более совершенные продукты. Также научитесь использовать Git, на практике освоите управление версиями проектов, работу с удаленными хранилищами и применение различных команд Git в процессе работы.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-02/4152a162-5b9a-4da2-b65b-4d2b75f3dc11.png" alt="" /></figure><ul><li>Стоимость: 53 000 рублей</li><li>Длительность: 4 месяца</li><li>Формат обучения: интерактивные вебинары, практика, домашние задания</li><li>Сертификат: сертификат</li></ul><p><b>Кому подойдет: </b></p><ul><li>начинающие разработчики 1С;</li><li>опытные разработчики 1С;</li><li>для IT специалистов, интересующихся современными стандартами разработки и привнесением их в 1С.</li></ul><p><b>Преимущества:</b></p><ul><li>скидка 10%;</li><li>можно разработать собственный проект;</li><li>более 10 заданий для портфолио;</li><li>выгодная рассрочка.</li></ul><p><b>Недостатки:</b></p><ul><li>обучение начнется только в августе;</li><li>не всем подойдет установленный график.</li></ul><p><b>Программа обучения:</b></p><ul><li>Инструменты разработчика</li><li>Методы разработки в среде EDT</li><li>Расширенный функционал работы</li><li>EDT и Git</li><li>DevOps</li><li>Работа над проектом</li></ul><p><a href="https://experts2.ru/RhcwWn?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=1">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>2. </b><a href="https://experts2.ru/WcwnLp?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=2">Git и GitHub</a> |<b> HTML Academy</b></p><p>Задача программы — обучить работе с системой Git и продемонстрировать, что она может быть полезна не только в командной работе, но и при индивидуальной разработке. Занятия начинаются с базовых знаний и постепенно переходят к более сложным и увлекательным темам, таким как слияние веток, разрешение конфликтов и сравнение версий программного кода.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-02/bd8f556c-a86b-49cd-8a72-f9670b5dba05.png" alt="" /></figure><ul><li>Стоимость: 24 900 рублей</li><li>Длительность: 8 разделов</li><li>Формат обучения: теория, кейсы, практические задания, тесты</li><li>Сертификат: сертификат</li></ul><p><b>Кому подойдет: </b></p><ul><li>разработчикам.</li></ul><p><b>Преимущества:</b></p><ul><li>гибкие сроки;</li><li>поддержка в комьюнити;</li><li>отличная и проверенная методика.</li></ul><p><b>Недостатки:</b></p><ul><li>не хватает живого общения.</li></ul><p><b>Программа обучения:</b></p><ul><li>Знакомство с системами контроля версий</li><li>Работа с локальным и удаленным хранилищем</li><li>Работа с ответвлениями</li><li>Просмотр изменений</li><li>Отложенная модификация</li><li>Отмена изменений</li><li>Завершение курса</li><li>Дополнительный урок</li></ul><p><a href="https://experts2.ru/WcwnLp?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=2">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>3. </b><a href="https://experts2.ru/yuLtlI?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=3">GIT — система контроля версий</a> | <b>Контур.Школа</b></p><p>На программе вы научитесь создавать SSH-ключи и привязывать их к популярным платформам вроде GitHub, GitLab и GitFlic. Вы освоите основные команды Git для управления файлами в локальных и удаленных репозиториях, а также научитесь настраивать фильтрацию файлов для корректного контроля версий. Разберетесь в работе с ветками: научитесь их создавать, объединять и разрешать конфликты при слиянии. Познакомитесь с удобными графическими интерфейсами для Git — такими как GitKraken, PyCharm и Visual Studio Code.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-02/ce8ec7bb-4c7a-49bc-ad45-3e6c1d107b68.png" alt="" /></figure><ul><li>Стоимость: 9 900 рублей</li><li>Длительность: в своем темпе</li><li>Формат обучения: видеоуроки, тесты для самопроверки</li><li>Сертификат: сертификат</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам в сфере IT, которые хотят разобраться в работе с репозиториями;</li><li>тем, кто стремится освоить Git-ветки и научиться разрешать конфликты;</li><li>всем, кто предпочитает использовать Git через графический интерфейс.</li></ul><p><b>Преимущества:</b></p><ul><li>старт сразу после оплаты;</li><li>поддержка 24/7;</li><li>можно приостановить обучение.</li></ul><p><b>Недостатки:</b></p><ul><li>доступ к программе всего два месяца.</li></ul><p><b>Программа обучения:</b></p><ul><li>Git: установка и настройка</li><li>Основные команды Git</li><li>Ветки</li><li>Инструменты для работы с Git</li><li>Совместная работа в Git</li><li>Применение Git в работе тестировщика</li></ul><p><a href="https://experts2.ru/yuLtlI?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=3">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>4. </b><a href="https://experts2.ru/jlZyqW?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=4">CI/CD на примере Gitlab CI</a> | <b>Слёрм </b></p><p>Вы освоите основы CI/CD, научитесь автоматизировать интеграцию и поставку, а также ускорите цикл разработки с минимальными рисками. Вы пройдете путь от создания базового пайплайна до настройки сложных вариантов CI/CD с возможностью быстрого отката на предыдущую версию одним нажатием кнопки. Ознакомьтесь с материалами и спикерами курса. В течение трех дней вы можете воспользоваться демодоступом.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-02/ded8262d-eaf2-4b1e-bcf8-a671c185dda1.png" alt="" /></figure><ul><li>Стоимость: от 25 000 рублей</li><li>Длительность: в своем темпе</li><li>Формат обучения: видеоуроки, практика</li><li>Сертификат: именное свидетельство</li></ul><p><b>Кому подойдет: </b></p><ul><li>тем, кто уже знаком с Git и Linux.</li></ul><p><b>Преимущества:</b></p><ul><li>демодоступ;</li><li>доступно корпоративное обучение;</li><li>налоговый вычет 13%.</li></ul><p><b>Недостатки:</b></p><ul><li>программа не выдается навсегда;</li><li>не подходит для новичков.</li></ul><p><b>Программа обучения:</b></p><ul><li>Знакомство с CI-системами</li><li>Установка и настройка GitLab</li><li>Создание первого проекта в GitLab</li><li>Настройка GitLab Runner</li><li>Создание файла .gitlab-ci.yml</li><li>Интеграция с Kubernetes</li><li>Обеспечение безопасности в CI/CD</li></ul><p><a href="https://experts2.ru/jlZyqW?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=4">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>5. </b><a href="https://experts2.ru/QfpmKl?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=5">Основы Git</a> | <b>Purpleschool</b></p><p>В начале вы рассмотрите основные команды для работы в терминале в операционных системах Linux, macOS и Windows. Затем углубитесь в изучение работы с ветками и рассмотрите команды для работы с ними. Познакомитесь с удалением веток, откатом изменений, слиянием и разрешением конфликтов. После этого перейдете к более продвинутым командам, таким как stash, squash, rebase и cherry-pick. В конце обсудите работу с GitHub и другими удаленными репозиториями.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-02/5a011a84-8868-4d92-ac92-3cbb2c789d9c.png" alt="" /></figure><ul><li>Стоимость: от 3 799 рублей</li><li>Длительность: 65 видеоуроков</li><li>Формат обучения: видеоуроки, тестирования, конспекты, домашние задания</li><li>Сертификат: сертификат</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам.</li></ul><p><b>Преимущества:</b></p><ul><li>можно начать бесплатно;</li><li>гарантия возврата денег — 30 дней;</li><li>неограниченный доступ;</li><li>300 бонусных рублей за регистрацию;</li><li>удобная платформа.</li></ul><p><b>Недостатки:</b></p><ul><li>слишком короткие лекции.</li></ul><p><b>Программа обучения:</b></p><ul><li>Основные команды</li><li>Запуск работы с Git</li><li>Ветви и модификации</li><li>Удаление</li><li>Углубленная работа</li><li>Удаленный репозиторий</li><li>Заключение</li></ul><p><a href="https://experts2.ru/QfpmKl?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=5">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>6.</b> <a href="https://experts2.ru/zGikPd?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=6">GIT. Управление версиями для разработчиков</a> | <b>beONmax.com</b></p><p>Вы освоите процесс установки необходимого программного обеспечения и научитесь фиксировать изменения в репозитории. Разберетесь, что такое атомарные коммиты и почему они важны, а также научитесь использовать промежуточное хранилище изменений — индекс. Научитесь интегрировать Git с IDE и хранить пароли в облаке в зашифрованном виде. Кроме того, узнаете, как организовать совместную работу над проектом для команды разработчиков и как эффективно контролировать версии проекта.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-02/9ebab95f-e3de-4f74-bbe0-c0245a8d4b1b.png" alt="" /></figure><ul><li>Стоимость: подписка от 370 рублей в месяц</li><li>Длительность: около пяти часов</li><li>Формат обучения: видеоуроки, практика, тесты</li><li>Сертификат: сертификат</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам с нуля;</li><li>разработчикам, имеющим опыт работы.</li></ul><p><b>Преимущества:</b></p><ul><li>обучение в сжатые сроки;</li><li>скидка 70% на все программы;</li><li>выгодная стоимость;</li><li>живые отзывы.</li></ul><p><b>Недостатки:</b></p><ul><li>нет возможности купить программу полностью (только по подписке).</li></ul><p><b>Программа обучения:</b></p><ul><li>От инициализации GIT до первого зафиксированного изменения</li><li>Игнорирование, атомарные коммиты, индекс</li><li>Примеры атомарных коммитов</li><li>Что не должно быть в истории изменений</li><li>Управление историей изменений</li></ul><p><a href="https://experts2.ru/zGikPd?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=6">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>7. </b><a href="https://experts2.ru/ecJnMj?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=7">Git для начинающих</a> | <b>itProger</b></p><p>В рамках программы вы рассмотрите все ключевые аспекты Git и Github. Вы не только узнаете основы, но и научитесь эффективно применять эти знания на практике. Курс по Git отличается обширной программой и содержит всю необходимую информацию. По завершении обучения вы сможете уверенно работать с технологией и использовать ее для хранения своих проектов. Для того чтобы получить доступ ко всем крупным заданиям, вам нужно оформить подписку на сайте.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-02/ff8eafaf-2b50-4878-b2d4-cc0fa904b589.png" alt="" /></figure><ul><li>Стоимость: от $5.60 в месяц</li><li>Длительность: 5 уроков</li><li>Формат обучения: теория, видеоуроки, практика, тестирования</li><li>Сертификат: не указан</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам.</li></ul><p><b>Преимущества:</b></p><ul><li>скидка 15% на программы;</li><li>отличные консультации;</li><li>помощь по установке программы;</li><li>полезный справочник.</li></ul><p><b>Недостатки:</b></p><ul><li>не указано наличие сертификата.</li><li>некоторым покажется неудобным стоимость в долларах, а не в рублях.</li></ul><p><b>Программа обучения:</b></p><ul><li>Что такое Git, как его установить и настроить</li><li>Как добавить файлы в репозиторий</li><li>Как отменить действия и вернуться к предыдущим версиям</li><li>Работа с ветками и их слияние</li><li>Знакомство с GitHub и работа с удаленным репозиторием</li></ul><p><a href="https://experts2.ru/ecJnMj?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=7">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>8.</b> <a href="https://experts2.ru/CrlsEh?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=8">Linux / GIT</a> | <b>beONmax.com</b></p><p>Linux — это операционная система, которая на сегодняшний день практически единственная альтернатива операционной системе Windows от Microsoft. Ознакомьтесь с видеоматериалом, посвященным онлайн-курсу по Linux и Git для новичков. В ходе обучения вы освоите ключевые принципы работы с программами, а также научитесь самостоятельно настраивать серверы для своих веб-сайтов и эффективно использовать систему контроля версий кода.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-02/f8e8e42f-4538-44e8-a20c-a9d6b0b32bfe.png" alt="" /></figure><ul><li>Стоимость: подписка от 370 рублей в месяц</li><li>Длительность: около одного часа</li><li>Формат обучения: видеоуроки, практика, тесты</li><li>Сертификат: сертификат</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам с нуля.</li></ul><p><b>Преимущества:</b></p><ul><li>выгодная стоимость;</li><li>скидка 70% на все программы;</li><li>понятные видеоуроки</li><li>живые отзывы.</li></ul><p><b>Недостатки:</b></p><ul><li>некоторым обучение покажется коротким.</li></ul><p><b>Программа обучения:</b></p><ul><li>Работа с терминалом Linux</li><li>Назначение прав для веб-ресурса на серверах</li><li>Подключение по протоколам SSH и FTP к серверу</li><li>Подключение к базе данных веб-ресурса</li><li>Создание резервной копии</li><li>Использование облачного хранилища GIT — Bitbucket</li></ul><p><a href="https://experts2.ru/CrlsEh?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=8">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>9.</b> <a href="https://experts2.ru/zwEmJs?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=9">Продвинутый Git</a> | <b>Thinknetica</b></p><p>В ходе мастер-класса вы узнаете, как Git работает с версиями данных, научитесь эффективно использовать команды для удобной и понятной работы. Вы научитесь объединять изменения, сохраняя историю в логичном и понятном виде, а также систематизируете свои знания. Кроме того, сможете читать историю изменений, вносить в нее правки и восстанавливать удаленные данные.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-02/2097d064-95c1-4689-960c-1512430b5a3b.png" alt="" /></figure><ul><li>Стоимость: 990 рублей</li><li>Длительность: 2 часа</li><li>Формат обучения: вебинар, практика</li><li>Сертификат: нет</li></ul><p><b>Кому подойдет: </b></p><ul><li>тем, кто уже знаком с Git.</li></ul><p><b>Преимущества:</b></p><ul><li>отличная коммуникация;</li><li>разбор ошибок на вебинаре;</li><li>хорошая поддержка в чате;</li><li>примеры лучших практик.</li></ul><p><b>Недостатки:</b></p><ul><li>не подойдет новичкам;</li><li>не предусмотрена выдача сертификата.</li></ul><p><b>Программа обучения:</b></p><ul><li>Продвинутые команды Git</li><li>Работа с удаленными репозиториями и ветками</li><li>Разрешение конфликтов</li><li>Рефакторинг истории коммитов</li><li>Анализ изменений</li></ul><p><a href="https://experts2.ru/zwEmJs?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=9">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>10.</b> <a href="https://experts2.ru/PuHvwr?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=10">Веб-разработка для начинающих + Git</a> | <b>Loftschool</b></p><p>Запишитесь на занятия и за шесть недель освойте адаптивную верстку и JavaScript, получив в результате мощный проект для портфолио. Практикующий IT-специалист будет помогать вам, отвечая на вопросы и проводя код-ревью. В процессе обучения вы можете задавать вопросы своим одногруппникам и команде курса. Материалы программы содержат все необходимое для выполнения выпускного проекта.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-04-02/fa628fae-80ee-4c36-9576-e02e1ea4cd55.png" alt="" /></figure><ul><li>Стоимость: не указана</li><li>Длительность: 6 недель</li><li>Формат обучения: видеоуроки, воркшопы, групповая практика</li><li>Сертификат: сертификат</li></ul><p><b>Кому подойдет: </b></p><ul><li>новичкам.</li></ul><p><b>Преимущества:</b></p><ul><li>полезные методички;</li><li>отличная обратная связь;</li><li>составление недельных планов для удобства.</li></ul><p><b>Недостатки:</b></p><ul><li>не указана стоимость.</li></ul><p><b>Программа обучения:</b></p><ul><li>Запуск курса</li><li>Вводное занятие</li><li>Знакомство с Figma для верстальщиков</li><li>SASS-модуль</li><li>БЭМ-разметка элементов страницы</li><li>Flexbox</li><li>Terminal</li><li>GIT-модуль</li><li>CHOCCO-разметка</li></ul><p><a href="https://experts2.ru/PuHvwr?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=10">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><h2>Еще 7 курсов по Git</h2><p>Дополнительные программы помогут освоить продвинутые техники: работу с rebase и merge, отладку через bisect, управление сложными ветвлениями, настройку хуков и интеграцию с CI/CD. Такие знания особенно полезны для разработчиков, DevOps-инженеров и тимлидов, стремящихся к автоматизации, эффективному командному workflow и минимизации ошибок. Выбор зависит от уровня: есть программы для новичков, разбирающих тонкости .gitignore, и для экспертов, оптимизирующих работу с гигантскими репозиториями.</p><ul><li><a href="https://experts2.ru/deLIbh?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=netop">Курс «Системы контроля версий Git»</a> от Edston. Автор программы — Андрей Борю, опытный разработчик с 12-летним стажем и основатель академии «Infostorm». В этой программе вы получите не только теорию, но и прикладные навыки работы — от базовых команд до продвинутых сценариев использования.</li><li><a href="https://experts2.ru/WgYxiv?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=netop">Введение в систему контроля версий Git</a> от IBS Training Center. Вы рассмотрите основные концепции распределенных систем контроля версий и возможности. Вы будете в восторге от скорости работы, легкости управления ветками и поддержки различных рабочих процессов.</li><li><a href="https://experts2.ru/xaKRfi?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=netop">Git + GitHub для разработчика</a> от Stepik. Вы познакомитесь с различными системами контроля версий и узнаете, как Git отслеживает изменения в коде. Освоите процесс установки и настройки системы. Научитесь создавать ветви, объединять их и разрешать конфликты в коде.</li><li><a href="https://experts2.ru/JdrNxg?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=netop">Система управления версиями Git</a> от Специалист.ru. Вы познакомитесь с различными системами контроля версий и узнаете, как программа отслеживает изменения в коде. Научитесь устанавливать и настраивать эту систему. Сможете создавать новые ветви, объединять их и разрешать конфликты в коде.</li><li><a href="https://experts2.ru/enoFqI?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=netop">Linux / Git для начинающих</a> от ФПМИ. Вы освоите базовые принципы работы с операционной системой Linux и получите навыки использования системы контроля версий. Будет полезно начинающим системным администраторам и разработчикам.</li><li><a href="https://experts2.ru/MuvmkJ?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=netop">Git: инструменты тестировщика</a> от LearnQA. Запишитесь на занятия, и всего за две недели вы научитесь сравнивать файлы, переключаться между различными версиями, настраивать удобную и информативную консоль, а также создавать учетные записи на популярных сервисах и эффективно работать с ними.</li><li><a href="https://experts2.ru/MuvmkJ?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=netop">Изучайте Git на практике</a> от Go Git. По завершении обучения вы сможете преодолеть психологический барьер, связанный с использованием Git, значительно увеличить свою эффективность и найти работу в престижной IT-компании.</li></ul><h2>Бесплатные курсы по Git</h2><p>Бесплатные курсы по Git помогут разобраться в основах: создание репозиториев, ветвление, слияние изменений и работа с удаленными хранилищами. Такой формат подходит для новичков, студентов и экономных профессионалов, которые хотят прокачать навыки без лишних трат.</p><p><b>1. </b><a href="https://experts2.ru/CeHmty?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=netop">Основы работы с Git</a> — <b>Яндекс Практикум</b></p><p>Вы можете выбрать один из предложенных проектов или разработать свой собственный. В процессе работы вы пройдете все этапы создания веб-сервиса с нуля, примените полученные знания на практике и представите проект архитектурному комитету.</p><p><b>Главное о курсе:</b></p><ul><li>для разработчиков с базовыми знаниями Python;</li><li>ближайший старт — 27 марта, 17 апреля и 22 мая.</li></ul><p><b>2.</b> <a href="https://experts2.ru/jMlkiK?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=netop">Введение в Git</a> — <b>Хекслет</b></p><p>Вы получите больше информации о работе с хранилищами и историей изменений файлов. В результате вы сможете оперативно устранять ошибки, анализировать историю изменений и эффективно сотрудничать в процессе разработки.</p><p><b>Главное о курсе:</b></p><ul><li>тренажер с практикой;</li><li>бессрочный доступ к теории;</li><li>асинхронный формат обучения.</li></ul><p><b>3.</b> <a href="https://experts2.ru/DyrQow?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=netop">Онлайн-курс «Основы работы в Git»</a> —<b> Бруноям</b></p><p>За несколько недель вы научитесь использовать популярную систему управления версиями файлов.</p><p><b>Главное о курсе:</b></p><ul><li>длительность — две недели;</li><li>понятная теория и короткие видео с практикой по 10–15 минут.</li></ul><p><b>4.</b> <a href="https://experts2.ru/DbNetm?sub1=tproger-kf&amp;sub2=git-i-github-kursy&amp;sub4=netop">Работа с Git</a> — <b>Smartiqa</b></p><p>Вы узнаете о невероятно эффективном инструменте, который должен быть в арсенале каждого уважающего себя разработчика.</p><p><b>Главное о курсе: </b></p><ul><li>шесть уроков;</li><li>для новичков.</li></ul><h2>Интересные факты о профессии разработчика, владеющего Git</h2><p><b>1. Git — «темная магия» в резюме</b></p><ul><li>Знание Git часто автоматически поднимает зарплатные ожидания на 10–20%, потому что это маркер «профессионала, а не новичка».</li><li>Рекрутеры сначала смотрят на GitHub, а потом на опыт работы.</li></ul><p><b>2. Git может спасти карьеру</b></p><ul><li>Одна команда git reflog или git reset --hard спасла тысячи часов работы у разработчиков, случайно удаливших код.</li><li>Умение разрешать конфликты делает тебя «магом» в команде.</li></ul><p><b>3. Git = «машина времени» для кода</b></p><ul><li>Можно вернуться к любой версии проекта, даже если прошло 5 лет.</li><li>Некоторые разработчики пишут commit-сообщения как дневник (например, «Фикс бага, появившегося после того, как Вася выпил 5 кофе»).</li></ul><p><b>4. GitHub — новая соцсеть для айтишников</b></p><ul><li>Open-source-контрибьюторы получают офферы от Google/Microsoft просто за пул-реквесты в популярные проекты.</li><li>Некоторые прячут «пасхалки» в своих репозиториях (например, секретные ветки с шутками).</li></ul><p><b>5. Без Git — как без рук</b></p><ul><li>99% вакансий в IT требуют Git (даже для стажеров).</li><li>Разработчики, не использующие Git, часто становятся мемами (типа «тот парень, который хранит код в архивах ZIP»).</li></ul><p><b>6. Git-хуки — автоматизация всего</b></p><ul><li>Можно настроить автотесты, деплой и даже отправку мемов в чат при пуше кода.</li><li>Некоторые ставят хуки, чтобы код не коммитился без кофе.</li></ul><h2>Деятельность</h2><p>Разработчик, уверенно владеющий Git, превращается в архитектора кодовых изменений — он не просто пишет код, а профессионально управляет его эволюцией.</p><p><b>Вот ключевые аспекты его работы:</b></p><h2>Технические обязанности</h2><p><b>Создание «магистралей» для кода</b></p><ul><li>Проектирует систему веток (feature/bugfix/release), превращая хаотичные правки в упорядоченный процесс.</li><li>Использует стратегии ветвления (Git Flow, Trunk-Based) как дирижер оркестром изменений.</li></ul><p><b>Хирургическая работа с историей</b></p><ul><li>Выполняет «операции» на истории коммитов: rebase, cherry-pick, interactive staging.</li><li>Создает идеально читаемую историю изменений — как писатель редактирует черновик книги.</li></ul><p><b>Кризис-менеджмент</b></p><ul><li>Ликвидирует «аварии» через reset --hard и reflog.</li><li>Разрешает конфликты слияния как профессиональный переговорщик.</li></ul><h2>Социальная инженерия</h2><ul><li>Код-ревью через Pull Requests — обсуждает изменения как редактор текста.</li><li>Обучает команду через git hooks и шаблоны commit-сообщений.</li><li>Ведет переговоры с другими разработчиками о стратегии слияния изменений.</li></ul><h2>Автоматизация процессов</h2><ul><li>Настраивает Git-хуки для автопроверки стиля кода, запуска тестов перед push, генерации changelog.</li><li>Интегрирует Git с CI/CD-пайплайнами.</li></ul><h2>Ментальные модели</h2><p><b>Воспринимает код как живой организм</b></p><ul><li>Каждая ветка — параллельная реальность.</li><li>Теги — контрольные точки эволюции.</li></ul><p><b>Мыслит распределенно</b></p><ul><li>Локальные коммиты → Staging area → Удаленный репозиторий.</li><li>Понимает три состояния файлов (modified/staged/committed).</li></ul><p><b>Работает с метаданными</b></p><ul><li>.gitignore — политика безопасности.</li><li>Git attributes — правила трансформации.</li></ul><h2>Навыки специалиста</h2><p>Чтобы эффективно работать с Git, разработчику нужны не только технические умения, но и понимание процессов разработки.</p><h2>Базовые навыки работы с Git</h2><p><b>1. </b>Создание и клонирование репозиториев. git init, git clone, работа с удаленными репозиториями (GitHub, GitLab, Bitbucket).</p><p><b>2.</b> Основные команды.git add, git commit, git push, git pull, git status, git log.</p><p><b>3. </b>Работа с ветками. Создание (git branch), переключение (git checkout/git switch), слияние (git merge).</p><p><b>4.</b> Отмена изменений. git reset, git revert, git stash, git checkout -- &lt;file&gt;.</p><h2>Продвинутые навыки</h2><p><b>1. </b>Умение анализировать конфликты при слиянии (git mergetool), ручное исправление.</p><p><b>2. </b>Переписывание истории. git rebase --interactive, git cherry-pick, git commit --amend.</p><p><b>3. </b>Работа с тегами. git tag, аннотированные теги, семантическое версионирование (v1.0.0).</p><p><b>4. </b>Git Hooks. Настройка pre-commit, pre-push для автоматических проверок.</p><h2>Работа в команде</h2><p><b>1. </b>Pull Requests / Merge Requests. Умение ревьювить код, описывать изменения, разрешать конфликты.</p><p><b>2. </b>Стратегии ветвления. Git Flow, GitHub Flow, Trunk-Based Development.</p><p><b>3. </b>Интеграция с CI/CD. Настройка GitHub Actions, GitLab CI, автоматические тесты и деплой.</p><h2>Сопутствующие навыки</h2><p><b>1.</b> Командная строка (Bash/Zsh). Навигация, работа с файлами, базовые скрипты.</p><p><b>2. </b>IDE и инструменты. Git в VS Code, IntelliJ IDEA, GitKraken, SourceTree.</p><p><b>3. </b>Понимание DevOps-практик. Контейнеризация (Docker), инфраструктура как код (Terraform).</p><h2>Мягкие навыки (Soft Skills)</h2><p><b>1.</b> Следование Conventional Commits или подобным стандартам.</p><p><b>2.</b> Культура код-ревью. Умение давать и принимать конструктивную критику.</p><p><b>3. </b>Документирование. Ведение README.md, CHANGELOG, поддержка .gitignore.</p><h2>Где учиться</h2><p>Чтобы стать профессионалом в Git, можно осваивать его разными способами:</p><p><b>Бесплатные ресурсы</b></p><ul><li>Официальная документация — база для понимания принципов и команд.</li><li>Интерактивные тренажеры — игровые платформы, где можно практиковать ветвление и слияние.</li><li>Текстовые и видеоуроки — блоги, YouTube, образовательные сайты с разбором реальных кейсов.</li></ul><p><b>Платные курсы</b></p><ul><li>Онлайн-школы — структурированные программы с теорией и практикой.</li><li>Углубленные руководства — курсы для продвинутых (работа с историей, хуками, CI/CD).</li></ul><p><b>Книги</b></p><ul><li>Классические руководства — подробные книги от экспертов.</li><li>Современные издания — актуальные методики и best practices.</li></ul><p><b>Практика</b></p><ul><li>Личные проекты — эксперименты с ветками, тегами, откатами.</li><li>Open Source — участие в реальных проектах, работа с Pull Requests.</li><li>Командная разработка — опыт в коммерческих или учебных проектах</li></ul><p><b>Сообщества и менторинг</b></p><ul><li>Форумы и чаты — обсуждение сложных случаев с другими разработчиками.</li><li>Менторство — разбор ошибок с опытными коллегами.</li></ul><h2>Какой формат выбрать?</h2><ul><li>Новичкам — интерактивные тренажеры + простые курсы.</li><li>Практикующим — углубленные материалы + реальные задачи.</li><li>Экспертам — сложные сценарии (администрирование, оптимизация).</li></ul><h2>Уровень заработной платы</h2><p>Заработная плата специалиста по работе с Git определяется его квалификацией и местоположением. В столице, к примеру, для новичков диапазон зарплат составляет от 10 000 до 95 000 рублей в месяц, для специалистов среднего уровня — от 180 000 до 265 000 рублей, а для опытных разработчиков — от 350 000 рублей. Чтобы получить актуальные сведения о зарплатах и открытых позициях, стоит обратиться к специализированным порталам по поиску работы, например, <a href="https://hh.ru/search/vacancy?text=git&amp;search_field=name&amp;search_field=description&amp;excluded_text=&amp;area=1&amp;salary=&amp;currency_code=RUR&amp;experience=doesNotMatter&amp;order_by=relevance&amp;search_period=0&amp;items_on_page=50&amp;L_save_area=true&amp;hhtmFrom=vacancy_search_filter&amp;customDomain=1">hh.ru.</a> На этих ресурсах вы сможете найти предложения от прямых работодателей, которые содержат информацию о требованиях и условиях оплаты труда.</p><h2>Заключение</h2><p>Курсы Git — это важный шаг для любого разработчика, желающего работать в команде и эффективно управлять версиями своего кода. Программы предоставляют структурированные знания, начиная с основ и заканчивая продвинутыми техниками, такими как разрешение конфликтов и работа с удаленными репозиториями. Освоив Git, разработчики могут повысить свою продуктивность, минимизировать ошибки и уверенно участвовать в крупных проектах. Таким образом, курсы по Git — ценный ресурс для профессионального роста в IT-сфере.</p><p><b>Подборки по схожим темам:</b><b></b></p><ol><li><a href="https://tproger.ru/articles/kursy-devops-inzhenerov">Лучшие курсы DevOps-специалистов</a></li><li><a href="https://tproger.ru/articles/kursy-c---i-c-">Лучшие курсы по языкам программирования</a></li><li><a href="https://tproger.ru/articles/kursy-verstki-html-i-css-253340">Лучшие курсы HTML и CSS</a></li><li><a href="https://tproger.ru/articles/kursy-qa-testirovshhikov">Лучшие курсы тестировщиков</a></li></ol><p><i>Если вы заметили какие-либо неточности, ошибки или устаревшие данные, пожалуйста, сообщите об этом в комментариях. Также, если вы хотите, чтобы я добавила проверенное вами обучение в подборку, пожалуйста, дайте знать. </i></p>]]></content:encoded>
    </item>
    <item>
      <title>ТОП 60 лучших инструментов для разработки ПО в 2025</title>
      <link>https://tproger.ru/articles/top-60-luchwih-instrumentov-dlya-razrabotki-po-v-2025</link>
      <comments>https://tproger.ru/articles/top-60-luchwih-instrumentov-dlya-razrabotki-po-v-2025?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Владислав Устинов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/top-60-luchwih-instrumentov-dlya-razrabotki-po-v-2025</guid>
      <description><![CDATA[<p>ТОП лучших инструментов для разработки ПО в 2025. Показываем новые и хорошо забытые старые инструменты для программистов. Рассматриваем преимущества и основные нюансы ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/top-60-luchwih-instrumentov-dlya-razrabotki-po-v-2025">ТОП 60 лучших инструментов для разработки ПО в 2025</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[Фреймворки и библиотеки]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Low-code]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 27 Mar 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Лучшие IDE и редакторы кода</h2><h3>Visual Studio Code. Лидер среди редакторов кода</h3><p>Бесплатный, <a href="https://code.visualstudio.com/">универсальный IDE</a> от Microsoft. Поддерживает все языки программирования и Git. Главная особенность — тысячи расширений. Заточен под разработку программных продуктов небольшой и средней сложности, отлично подходит для начинающих разработчиков.</p><h3>JetBrains IntelliJ IDEA / WebStorm / PyCharm — лучшие IDE для Java, JS, Python</h3><p>Несколько продуктов в виде <a href="https://jetbrains.com/">профессиональных IDE</a> для конкретных языков: Java, JavaScript, Python. Здесь есть умный анализ кода, который находит ошибки для запуска, много конкретных плюшек для Java, JavaScript, Python. Отлично подходит для больших проектов и тех, кто занимается командной разработкой.</p><h4>Neovim — для любителей Vim с мощными плагинами</h4><p>Текстовый <a href="https://neovim.io/">редактор</a> на базе VIM для тех, кто любит минимализм, но при этом не готов жертвовать функциональностью. Работает с терминалом на любых устройствах. У него открытый исходный код, никаких платных версий. Neovim очень гибкий в плане кастомизации, поддерживается большим сообществом, для него есть много расширений.</p><figure><img src="https://media.tproger.ru/user-uploads/105039/2025-03-21/cace6d8b-58f5-4eee-aa09-e9821c07d545.png" alt="" /><figcaption>Сравнительная таблица редакторов кода</figcaption></figure><h2>Системы контроля версий</h2><h3>Git + GitHub / GitLab / Bitbucket</h3><p>Git — бесплатный инструмент, который помогает следить за изменениями в коде и работать над проектом вместе с командой. <a href="https://github.com/">GitHub</a> добавляет удобную автоматизацию (Actions) и популярен для открытых проектов. <a href="https://gitlab.com/">GitLab</a> хорош для закрытых задач благодаря встроенным инструментам и приватности. Bitbucket легко дружит с JIRA для командной работы. Базовые версии бесплатны, платные — от 3 до 19$ в месяц. GitHub выбирают для опенсорса, GitLab — для секретных проектов, а <a href="https://bitbucket.org/">Bitbucket</a> — для тех, кто уже использует JIRA.</p><h3>Git Kraken</h3><p>Удобный <a href="https://gitkraken.com/">интерфейс</a> для работы с Git, где все изменения показаны в виде дерева. Помогает разбираться с конфликтами в коде и видеть историю. Бесплатен для личных проектов, командная версия — 5$ в месяц. Отличный выбор для новичков и тех, кто любит визуальные подсказки.</p><h3>Лучшие CLI-утилиты для Git</h3><p><a href="https://git-scm.com/">Набор помощников</a>, которые упрощают разработку с Git через терминал. Например, git-extras работает с рутинными задачами, tig показывает историю изменений, а git-flow помогает организовать ветки кода. Всё бесплатное и работает без интернета. Подходит тем, кто хочет ускорить работу и не боится командной строки.</p><figure><img src="https://media.tproger.ru/user-uploads/105039/2025-03-21/7586e996-ef0c-4dfe-b9ef-7a4fcef9dc23.jpg" alt="" /><figcaption>Сравнительная таблица систем контроля версий</figcaption></figure><h2>Инструменты для CI/CD</h2><h3>GitHub Actions, GitLab CI/CD — встроенные пайплайны</h3><p><a href="https://github.com/features/actions">GitHub Actions</a> помогает автоматизировать сборку и запуск кода — например, чтобы тесты проходили сами после каждого изменения. Бесплатно до 2 тыс. минут для открытых проектов. <a href="https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/">GitLab CI/CD</a> встроен в GitLab и делает то же самое с 400 бесплатными минутами, плюс больше контроля над процессом. Оба работают прямо с вашим кодом, без лишних программ. GitHub Actions проще для новичков, GitLab CI/CD — для тех, кому важна приватность. Отлично для команд, которые уже сидят на этих платформах.</p><h3>Jenkins, CircleCI, Travis CI — обзор популярных решений</h3><p><a href="https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/">Jenkins </a>— бесплатный инструмент с открытым кодом, где можно настроить всё под себя. Нужен свой сервер, зато без ограничений. <a href="https://circleci.com/">CircleCI</a> ускоряет автоматизацию, но стоит от 15$ в месяц. <a href="https://travis-ci.org/">Travis CI</a> дружит с GitHub: бесплатно для открытых проектов, от 69$ для закрытых. Jenkins берут для сложных задач, CircleCI — для скорости, а Travis — для простых опенсорс-проектов.</p><h3>ArgoCD и FluxCD — CI/CD для Kubernetes</h3><p>GitOps-инструменты для Kubernetes. <a href="https://argoproj.github.io/argo-cd/">ArgoCD</a> синхронизирует код с кластерами через GUI и поддерживает откаты ошибок. <a href="https://fluxcd.io/">FluxCD</a> легче настраивается и автоматически обновляет образы. Оба бесплатны и работают с Helm. ArgoCD предпочтительнее для команд с опытом в Kubernetes, FluxCD — для небольших проектов с минимальными настройками.</p><figure><img src="https://media.tproger.ru/user-uploads/105039/2025-03-21/498113e7-48ec-4dc5-98bc-d5f1264160d8.png" alt="" /><figcaption>Сравнительная таблица инструментов для CI/CD</figcaption></figure><h2>Средства тестирования</h2><h3>Selenium, Cypress — тестирование фронтенда</h3><p><a href="https://selenium.dev/">Selenium</a> — инструмент для автоматизации браузеров через WebDriver. Поддерживает все языки программирования, но требует дополнительных библиотек. <a href="https://cypress.io/">Cypress</a> — современное решение на JavaScript с упором на простоту и стабильность тестов. Выполняет тесты в том же цикле событий, что и приложение. Selenium универсальнее, Cypress быстрее и интуитивнее для фронтенд-разработчиков.</p><h3>JUnit, PyTest, Mocha — тестирование кода</h3><p>Набор инструментов для тестирования кода. <a href="https://junit.org/">JUnit</a> — популярный выбор для Java, особенно в больших компаниях, где используют Spring; он простой и надёжный для старта. <a href="https://pytest.org/">PyTest</a> делает тестирование на Python удобным и понятным, без лишних сложностей. <a href="https://mochajs.org/">Mocha</a> (часто с Chai) подходит для JavaScript: гибкий, лёгкий, и отлично работает с проектами на фронтенде или бэкенде. Все три встраиваются в автоматизацию и хороши для новичков, которые хотят проверять код без головной боли.</p><h3>Postman, Newman — API-тестирование</h3><p><a href="https://postman.com/">Postman</a> — удобный инструмент, который начинался как способ тестировать API, а теперь помогает создавать запросы, проверять их и даже автоматизировать работу. Newman — его версия для командной строки, чтобы запускать тесты без интерфейса, например, вместе с другими автоматическими задачами. Оба бесплатны для базовых вещей, а командные функции стоят от 12$ в месяц. Postman подойдёт новичкам для ручной проверки API или создания прототипов, а Newman — для автоматического тестирования API в проекте.</p><figure><img src="https://media.tproger.ru/user-uploads/105039/2025-03-21/9f2f8ca0-a2f1-4062-bddd-7c4b0763c3a3.png" alt="" /><figcaption>Сравнительная таблица средств тестирования</figcaption></figure><h2>DevOps и контейнеризация</h2><h3>Docker и Podman — контейнеры в 2025 году</h3><p><a href="https://docker.com/">Docker</a> — стандарт контейнеризации в 2025 году. Упаковывает код с зависимостями в переносимые образы. Бесплатен для локальной работы, командная разработка обойдется в 5$ в месяц. Ограничен в РФ из-за санкций. <a href="https://podman.io/">Podman</a> — безопасная альтернатива без центрального домена, полностью совместим с Docker-командами. Поддерживает rootless-режим и работу с systemd, но имеет меньше обучающих материалов.</p><h3>Kubernetes — главный инструмент оркестрации</h3><p><a href="https://kubernetes.io/">Платформа </a>для оркестрации контейнеров, незаменима для микросервисной архитектуры. Бесплатная, работает локально через Minikube или в облаке (от 10$). Управляет десятками контейнеров через YAML-манифесты, обеспечивает масштабирование и обновление без простоев. Требует опыта и мощного железа, но остаётся лидером для продакшн-окружений.</p><h3>Terraform и Pulumi — инфраструктура как код</h3><p><a href="https://terraform.io/">Terraform</a> — бесплатное программное обеспечение, помогает настроить инфраструктуру (серверы, сети, кластеры) через код. Работает локально без платы, а облачная версия стоит от 20$. Подходит для любых облаков и нравится тем, кто хочет держать всё под контролем. <a href="https://pulumi.com/">Pulumi</a> делает то же самое, но вместо специального языка использует привычные JavaScript, TypeScript или Python. Удобнее для тех, кто уже умеет программировать, хотя сообщество поменьше. Оба хороши для новичков, которые хотят проще управлять инфраструктурой.</p><figure><img src="https://media.tproger.ru/user-uploads/105039/2025-03-21/6c143f5f-f054-4d81-a69f-62e3ab183eb2.png" alt="" /><figcaption>Сравнительная таблица инструментов для DevOps и контейнеризации</figcaption></figure><h2>Базы данных и инструменты для работы с ними</h2><h3>PostgreSQL, MySQL, MongoDB — что выбрать?</h3><p><a href="https://postgresql.org/">PostgreSQL</a> — мощная бесплатная база данных с открытым кодом, которая подходит для анализа и обработки данных в сложных проектах. Она работает с разными типами данных, вроде SQL и JSON, и не берёт денег за локальное использование (облако — от 10$). У неё есть полезные дополнения, которые помогают справляться с большими нагрузками. Отличный выбор для бэкенда или аналитики, где запросы посложнее.</p><p><a href="https://mysql.com/">MySQL</a> — простая и быстрая база данных, которая хорошо подходит для небольших и средних проектов. Есть бесплатная версия. Легко работает с языками вроде PHP, Python и Node.js, а начать с нее может любой новичок. У MySQL огромное сообщество, где можно найти готовые ответы. По сравнению с PostgreSQL, слабее в сложных задачах, но для старта — отличный выбор.</p><p><a href="https://mongodb.com/">MongoDB</a> — бесплатная NoSQL-база данных, которая хранит данные в виде JSON-документов, а не таблиц. Облачная версия Atlas стоит от 9$. Она гибкая — не нужно перестраивать структуру, если что-то меняется и запускается одной командой. По сравнению с SQL-базами хуже справляется с транзакциями, зато идеально подходит для быстрых прототипов и стартапов, где требования часто меняются.</p><h3>Prisma и TypeORM — работа с БД в коде</h3><p><a href="https://prisma.io/">Prisma</a> —  удобный инструмент для работы с базами данных в JavaScript и TypeScript. Поддерживает PostgreSQL, MySQL и MongoDB, помогая быстро писать код для бэкенда. Автодополнение упрощает жизнь, но на сложных задачах может немного тормозить. Отличный выбор для небольших команд, которые делают бэкенд на Node.js.</p><p><a href="https://typeorm.io/">TypeORM</a> — бесплатный инструмент с открытым кодом для работы с базами данных в JavaScript и TypeScript. Легко дружит с NestJS и Express, помогая связать код с базой. Подходит для средних проектов, где требования могут меняться. Документация не всегда полная, а некоторые функции работают не идеально, но для гибких задач на JS/TS — хороший выбор.</p><h3>DBeaver, TablePlus — удобные GUI-клиенты</h3><p><a href="https://dbeaver.io/">DBeaver</a> — удобный интерфейс для работы с более чем 80 базами данных. Бесплатная версия (Community) доступна всем, платная (Enterprise) — от 11$ в месяц. Есть редактор для запросов с подсказками, возможность видеть структуру базы и выгружать данные. Программа ресурсоёмкая и не работает в РФ без средств обхода. Подходит разработчикам и аналитикам, которые не хотят использовать командную строку.</p><p><a href="https://tableplus.com/">TablePlus</a> — лёгкий и удобный интерфейс для работы с более чем 10 базами данных. Бесплатная версия позволяет подключаться к двум базам, а полная стоит 59$ единоразово. Интерфейс простой, данные можно выгружать, а старт занимает пару минут. В России для покупки платной версии нужны посредники. Подходит для тех, кто хочет быстро подключиться к базам без лишних наворотов.</p><figure><img src="https://media.tproger.ru/user-uploads/105039/2025-03-21/9c0927d4-8ef2-4f05-b63d-3ca5cf30b007.png" alt="" /><figcaption>Сравнительная таблица инструментов для работы с базами данных</figcaption></figure><h2>Фреймворки и библиотеки</h2><h3>React, Vue, Angular, Svelte — выбор фронтенд-разработчиков</h3><p><a href="https://reactjs.org/">React</a> — бесплатная библиотека для создания динамичных интерфейсов, например, сайтов, которые быстро реагируют на действия пользователя. Она с открытым кодом и включает в себя популярные инструменты вроде Redux и Next.js. У неё огромное сообщество, что даёт гибкость, но новичкам может быть непросто разобраться. Подходит для больших проектов, где команда готова потратить время на обучение.</p><p><a href="https://angular.io/">Angular</a> — фронтенд-фреймворк от Google для создания продуктов со сложными интерактивными интерфейсами. Бесплатный, с открытым кодом, идёт с TypeScript из коробки, что упрощает работу с большими проектами. Встроенные инструменты вроде Angular CLI ускоряют старт, а двусторонняя привязка данных (two-way binding) экономит время на синхронизации. Сообщество большое, документация подробная, но новичкам может быть тяжело из-за обилия концепций. Подходит для тех, кто работает в команде и создает корпоративные приложения, где важны структура и масштабируемость.</p><p><a href="https://vuejs.org/">Vue</a> — фронтенд-фреймворк с простым и понятным кодом, который помогает быстро создавать интерфейсы. Он лёгкий (всего 20 КБ), включает удобные инструменты вроде Vuex, Pinia и Nuxt для разных задач. Начать с ним проще, чем с React, хотя библиотек поменьше. Отлично подходит для быстрой разработки веб-продуктов.</p><p><a href="https://svelte.dev/">Svelte</a> — современный фреймворк, который превращает код в быстрый JavaScript. Он простой, не требует лишних сложностей и работает быстрее многих других. Есть SvelteKit для дополнительных возможностей. Код получается компактным, но сообщество и экосистема пока небольшие. Подходит для стартапов и приложений, где важна скорость.</p><h3>Node.js, Deno, Bun — что актуально в бэкенде</h3><p><a href="https://nodejs.org/">Node.js</a> — классика серверного JavaScript. Он быстро обрабатывает запросы и имеет огромный набор готовых решений через NPM, плюс Express для создания API. С его помощью разрабатывают приложения, где всё обновляется в реальном времени, например, чаты. Экосистема большая, но для задач с высокой нагрузкой процессор может быть слабоват. Отличный выбор для API и реалтайм-проектов.</p><p><a href="https://deno.land/">Deno</a> — безопасная альтернатива Node.js. TypeScript из коробки, изолированный доступ, встроенный пакетный менеджер, Web API. Безопасность по умолчанию, но меньше экосистема. Для современного бэкенда с акцентом на безопасность.</p><p><a href="https://deno.land/">Bun</a> — сверхбыстрый JavaScript-рантайм, в 3—5 раз быстрее чем аналогичные продукты от конкурентов. Встроенные пакетный менеджер и тест-раннер, поддержка TS и NPM. Скоростной, но молодой проект с багами. Для экспериментов и микросервисов.</p><h3>Spring Boot, Django, FastAPI — лучшие серверные фреймворки</h3><p><a href="https://spring.io/projects/spring-boot">Spring Boot</a> — java-фреймворк для масштабируемых проектов. Автоконфигурация, REST API, JPA, Security, встроенный Tomcat. Spring Cloud для микросервисов. Промышленный стандарт, но требует знания Java и ресурсов. Подходит тем, кто создает enterprise-приложения.</p><p><a href="https://djangoproject.com/">Django</a> — мощный Python-фреймворк, который даёт всё нужное для разработки: от работы с базами до защиты и создания API. Он ускоряет процесс и делает проекты безопасными. Подходит для сайтов и приложений на Python, но для маленьких независимых сервисов может быть сложноват. Хороший выбор для быстрого старта.</p><p><a href="https://fastapi.tiangolo.com/">FastAPI</a> — современный Python-фреймворк для разработки быстрых API. Он простой, автоматически генерирует документацию к коду и работает шустро. Подходит для задач, требующих высокой производительности, и поддерживает асинхронные запросы, что делает его подходящим для работы с реальным временем (real-time). Админки тут нет, а для работы с реалтайм-функциями лучше иметь небольшой опыт. Отличный выбор для лёгких API и микросервисов на Python.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-03-28/9079cb50-8bf6-4539-9278-78a527c0e152.png" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-03-28/b6d908c7-27a6-4f7d-8a0c-484739dc954a.png" alt="" /></figure><h2>Приложения с инструментами для командной работы</h2><h4>Slack, Discord, Mattermost — коммуникация в командах</h4><p><a href="https://slack.com/">Slack</a> — стандарт для командного общения. Бесплатно можно чатиться с историей сообщений за 90 дней, а платная версия стоит от 7$ в месяц за пользователя. Есть каналы для разных проектов и удобная связь с GitHub, JIRA или Google Drive. Настройка лёгкая, можно даже общаться с клиентами, но в России платные функции недоступны без обхода блокировок. Подходит командам, которые любят чаты и хотят всё держать в одном месте.</p><p><a href="https://discord.com/">Discord</a> — платформа для общения и сообществ. Базовое использование бесплатно, Nitro от $10/месяц. Текстовые и голосовые каналы, боты для модерации, стриминг и шеринг экрана. Отличное качество звука, но мало деловых интеграций. Доступен в виде веб-версии и приложения для всех основных платформ. Подходит для удалённых команд с частыми созвонами.</p><p><a href="https://mattermost.com/">Mattermost</a> — бесплатный мессенджер с открытым кодом для безопасного общения. Можно установить на свой сервер, облачная версия — от 10$ в месяц. Похож на Slack, но данные хранятся у вас, и есть плагины для связи с другими сервисами. Настройка требует усилий, зато приватность на высоте. Для компаний, которым важно держать всё под контролем.</p><h3>Notion, Confluence, Obsidian — управление документацией</h3><p>Notion — гибкий инструмент для хранения документации. Бесплатно до 5 гостей, безлимит — от 8$ в месяц. Можно делать заметки, таблицы и доски задач в одном месте. Удобно для стартапов, работает на всех устройствах, но большие проекты могут тормозить. Есть версии приложения под Android, Windows и IOS. Подходит для команд, которым нужна вся информация в одном месте.</p><p><a href="https://atlassian.com/software/confluence">Confluence</a> — корпоративная платформа для документации от Atlassian, стоит от 6$ в месяц за пользователя, бесплатной версии нет. Хорошо дружит с JIRA и помогает организовать записи по проектам. В России оплата через посредников. Для больших команд с чёткими процессами.</p><p><a href="https://obsidian.md/">Obsidian</a> — бесплатное ПО для заметок. Работает локально, синхронизация — от 4$ в месяц, но тратить на неё средства не обязательно, можно настроить через сторонние плагины. Данные хранятся у вас, есть плагины для допфункций. Не подходит для командной работы. Хорош для личных записей и аналитики.</p><h3>JIRA, ClickUp, Trello — управление задачами</h3><p><a href="https://atlassian.com/software/jira">JIRA</a> — Инструмент для управления задачами, стоит от 7$ в месяц за пользователя, бесплатной версии нет. Подходит для планирования с досками и отчётами, но новичкам может быть сложно. Для профессиональных команд, которые работают по Agile.</p><p><a href="https://clickup.com/">ClickUp</a> — универсальный сервис для выполнения задач с бесплатной версией до 100 МБ, полная — от 7$ в месяц. Есть доски, списки и автоматизация. Прост вначале, но функций так много, что можно запутаться. Для команд, которым нужен гибкий инструмент без сложностей JIRA.</p><p><a href="https://trello.com/">Trello </a>— простая система для задач с досками. Бесплатно до 10 досок, дальше — от 5$ в месяц с автоматизацией. Перетаскивайте карточки от «Сделать» к «Готово». Легко и наглядно, но для больших процессов не подходит. Для маленьких команд и простых проектов.</p><figure><img src="https://media.tproger.ru/user-uploads/105039/2025-03-21/a6fe1500-5047-4ecb-b2ac-132232f06b06.png" alt="" /><figcaption>Сравнительная таблица сервисов для организации командной работы ч1</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/105039/2025-03-21/80e997f8-01d0-4764-bbf2-275469101b42.png" alt="" /><figcaption>Сравнительная таблица сервисов для организации командной работы ч2</figcaption></figure><h2>Новые и перспективные инструменты для разработки</h2><h3>AI-кодогенераторы: GitHub Copilot, Codeium, ChatGPT API, Cursor AI, Claude Code, Claude API, Cloud Code от Google</h3><p>GitHub Copilot — ИИ-помощник, который подсказывает код и проверяет его. Бесплатно для студентов и открытых проектов, иначе — 10$ в месяц. Работает с кучей языков в популярных редакторах, ускоряя работу. Не работает в РФ. Подходит всем, кто хочет писать код быстрее.</p><p><a href="https://codeium.com/">Codeium</a> — бесплатная альтернатива Copilot, где безопасность на первом месте. Для бизнеса — от 15$ в месяц. Помогает с кодом и тестами, данные обрабатываются локально. Отличный выбор для команд, которым важна конфиденциальность.</p><p><a href="https://openai.com/api/">ChatGPT API</a> — инструмент от OpenAI для создания своих ИИ-помощников. Стоит недорого, доступен в России и понимает много языков. Может писать код, объяснять ошибки, но нужно уметь его подключать. Для тех, кто готов копаться в настройках.</p><p><a href="https://cursor.sh/">Cursor AI</a> — редактор кода с ИИ, похожий на VS Code, но умнее. Подсказывает код, исправляет ошибки и ускоряет работу. Под капотом разные ИИ-продукты от Open AI, Google, Antropic. Простой и быстрый, идеален для новичков, которые хотят писать код без лишней головной боли.</p><p><a href="https://www.anthropic.com/claude">Claude Code</a> — терминальный помощник от Anthropic для автоматизации кодирования. Необычный подход к разработке в сравнении с конкурентами. Работает через командную строку, ищет код, правит файлы и пушит в GitHub. Бесплатен в preview, безопасен. Подходит тем, кто хочет ускорить рутину и не боится терминала.</p><p><a href="https://www.anthropic.com/api">Claude API (3.7 Sonnet)</a> — лучший ИИ для кодинга по мнению автора статьи. Версия 3.7 Sonnet пишет код, чинит баги и думает над задачами. Во многих сценариях превосходит Chat GPT. Стоит от 3$ за миллион токенов, не работает в России. Для тех, кто хочет мощный ИИ в своём проекте, но готов разобраться с подключением.</p><p><a href="https://cloud.google.com/code">Cloud Code от Google</a> —  плагин для VS Code от Google, чтобы писать код для их облака. Помогает с настройкой серверов и приложений, вроде Kubernetes. Бесплатен с аккаунтом Google Cloud. Подходит новичкам, которые начинают с облачных проектов и хотят всё делать в одном месте.</p><h2>Инструменты Low-Code / No-Code для ускорения разработки</h2><p><a href="https://www.bettyblocks.com/">Betty Blocks</a> — Low-Code платформа для создания своего программного продукта. Всё делается через визуальный редактор с готовыми шаблонами, плюс есть упор на безопасность. Её используют большие компании вроде Clifford Chance. Подходит для сложных задач, стоит от 1050$ в месяц, не очень дружелюбна для новичков. В основном для корпораций с хорошим бюджетом.</p><p><a href="https://bubble.io/">Bubble</a> — No-Code инструмент для разработки веб-приложений. Можно перетаскивать элементы, использовать шаблоны. Есть бесплатный тариф. Легко начать, но большие проекты могут тормозить. Отличный выбор для стартапов и одиночек, которым нужен прототип.</p><p><a href="https://zapier.com/interfaces">Zapier</a> —  No-Code для автоматизации. Соединяет 7000+ приложений через простой конструктор, стоит от 19.99$ в месяц. Удобно для экономии времени, но дополнительные настройки могут поднять цену. Для тех, кто хочет объединить разные сервисы.</p><p><a href="https://softr.io/">Softr</a> —  No-Code платформа с привязкой к Airtable. Шаблоны простые, настройка быстрая, цена от 49$ в месяц. Дружелюбный для новичков, есть поддержка, но сложные приложения не потянет. Подходит фаундерам и менеджерам без технических навыков.</p><p><a href="https://www.glideapps.com/">Glide</a> — No-Code для разработки приложений из таблиц, вроде CRM или дашбордов. Стоит от 69$ в месяц, быстро собирается. Удобно для малого бизнеса, но для продвинутых задач слабоват. Хорош для простых нужд.</p><p><a href="https://www.caspio.com/">Caspio </a>— Low-Code с ИИ, в котором создают облачные приложения. Большой акцент на защите данных, цена от 100$ за пользователя в месяц. Подходит для больших систем, но стартапам будет не по карману. Для профессионалов, которым важна безопасность.</p><p><a href="https://www.uipath.com/">UiPath RPA</a> — Low-Code для автоматизации рутины. Упрощает разработку благодаря ИИ. Цена индивидуальная, зависит от запроса. Хорошо подходит для ниш со здравоохранением и финансами. Настройка сложная и недешёвая. Понадобится отраслям, где много повторяющихся задач.</p><p><a href="https://www.outsystems.com/">OutSystems</a> — Low-Code для корпоративных проектов. Поддерживает визуальную разработку ПО для крупных систем. Цена индивидуальная. Для разработчиков и больших компаний.</p><h2>Лучшие новые технологии, которые могут выстрелить в 2025 году</h2><h3>BlueQubit</h3><p><a href="https://bluequbit.io/">Квантовый инструмент</a> для разработчиков. Даёт доступ к вычислениям через облако, помогает решать задачи вроде шифрования или моделирования, с которыми обычные компьютеры не справляются. Дорогой и сложный в освоении. Подходит исследователям и компаниям с большими бюджетами.</p><h4>Блокчейн: Polkadot, Solana, Truffle</h4><p>Платформы для приложений без центра управления. <a href="https://polkadot.network/">Polkadot</a> и <a href="https://solana.com/">Solana</a> делают их быстрыми и масштабируемыми, <a href="https://www.trufflesuite.com/">Truffle</a> упрощает работу с кодом. Безопасно и прозрачно для финансов или логистики, но нужен опыт. Хорош для финтеха и стартапов, которые смотрят на Web3.</p><h4>Edge-вычисления: Apache Edgent, Azure IoT Edge</h4><p>Обработка данных прямо там, где они появляются. <a href="https://github.com/apache/incubator-retired-edgent">Edgent</a> — лёгкий и простой, <a href="https://azure.microsoft.com/en-us/services/iot-edge/">Azure IoT Edge</a> — для умных устройств. Быстро работает, например, для беспилотных машин, но настройка требует времени. Для разработчиков IoT и небольших сервисов.</p><h4>IoT: Arduino, Raspberry Pi</h4><p>Популярные платформы для разработки умных устройств. Они поддерживают современные технологии для связи (например, Wi-Fi, Bluetooth) и обеспечивают базовые механизмы защиты данных. <a href="https://www.arduino.cc/">Arduino</a> и <a href="https://www.raspberrypi.org/">Raspberry Pi</a> доступны по цене, гибки в настройке и отлично подходят для проектов умного дома. Однако для сложных систем с высокой нагрузкой они могут быть недостаточно мощными. Эти платформы идеальны для энтузиастов, хоббистов и небольших IoT-проектов.</p><h4>Кибербезопасность: SAST, DAST</h4><p>Инструменты для защиты кода. <a href="https://www.sonarqube.org/">SAST</a> ищет ошибки до запуска, <a href="https://www.zaproxy.org/">DAST</a> — во время работы с помощью ИИ. Спасают от атак и нужны в продакшене, но требуют частых обновлений. Для всех, кто работает с данными.</p><p>Вот такой топ лучших инструментов получился, а что вы добавили бы в эту подборку? Или может быть убрали бы из неё? Давайте составим свою подборку в комментариях.</p>]]></content:encoded>
    </item>
    <item>
      <title>Лучшие курсы по Blender 3D с нуля — онлайн обучение моделированию, 3D-анимации и созданию персонажа</title>
      <link>https://tproger.ru/articles/kursy-po-blender-3d</link>
      <comments>https://tproger.ru/articles/kursy-po-blender-3d?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анастасия Шишкина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kursy-po-blender-3d</guid>
      <description><![CDATA[<p>Подборка курсов по 3D-моделированию графики, игр, кино, иллюстраций в Blender 3D. Овладеть популярной программой для создания трехмерной графики вам помогут курсы блендер</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kursy-po-blender-3d">Лучшие курсы по Blender 3D с нуля — онлайн обучение моделированию, 3D-анимации и созданию персонажа</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Визуализация]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 16 Feb 2025 17:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Изучить основы компьютерной графики и научиться работать с самой популярной программой для создания трехмерных моделей помогут курсы Blender. Это хорошая возможность стать мастером анимации и дизайнером интерьера, создавать персонажей и сцены для игр, а также разные визуализации. С помощью этой программы можно стать художником без изучения академической живописи.</p><p>Совместно с экспертами <a href="https://kursfinder.ru/">Kursfinder</a> я рассмотрела больше сотни предложений от онлайн-школ и выбрала 41 лучший курс по анимации в Блендер. Для удобства выбора я распределила их на три раздела. Сначала идут 10 лучших курсов для изучения программы с нуля. Затем представлена дополнительная подборка из 25 курсов. А в конце вы найдете 6 бесплатных предложений. С полной подборкой <a href="https://kursfinder.ru/blender/">курсов по Blender</a> можно познакомиться в каталоге Kursfinder.</p><h2>ТОП-10 лучших курсов Blender в 2026 году</h2><ol><li><a href="https://experts2.ru/FysIcx?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=1">Основы Blender: создаем персонажа</a> от Bang Bang Education — лучший курс для изучения Blender с акцентом на создание персонажей.</li><li><a href="https://experts2.ru/XvHqtd?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=2">Blender.Design</a> от Skillbox — самый комплексный курс для начинающих.</li><li><a href="https://experts2.ru/qzQIif?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=3">3D-моделирование в Blender</a> от GeekBrains — курс с углубленным подходом к моделированию.</li><li><a href="https://experts2.ru/stIhlW?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=4">Курсы Блендера (Blender 3D)</a> от Международной школы профессий — оптимальный вариант для быстрого старта.</li><li><a href="https://experts2.ru/hqPOwx?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=5">Blender</a> от Contented.ru — курс с отличным балансом теории и практики.</li><li><a href="https://experts2.ru/GerdmI?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=6">Blender c нуля</a> от XYZ School — курс с упрощенной подачей для новичков.</li><li><a href="https://experts2.ru/skBraU?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=7">3D моделирование в Blender</a> от Фоксфорда — лучший курс для школьников.</li><li><a href="https://experts2.ru/VypEib?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=8">3D-моделирование в Blender</a> от Хохлова Сабатовского — курс для освоения Blender через реализацию проектов.</li><li><a href="https://experts2.ru/qFfQgm?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=9">Анимация 3D-персонажа в Blender. Базовый курс</a> от Хохлова Сабатовского — лучший базовый курс по анимации персонажей.</li><li><a href="https://experts2.ru/jiqSLg?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=10">Онлайн-курс Blender 3D</a> от OnSkills — самый бюджетный и быстрый курс для начинающих.</li></ol><p>Сегодня множество онлайн-школ предлагают обучение моделированию и компьютерной графике, включая курсы по Blender 3D. Эти программы подойдут как новичкам, которые только начинают знакомство с программой, так и профессионалам, желающим углубить навыки работы с 3D-графикой и освоить новые техники. Широкий выбор курсов позволяет найти вариант, который соответствует вашему уровню подготовки и поставленным задачам.</p><h2>Онлайн-курсы Blender</h2><p><b>1.</b> <a href="https://experts2.ru/FysIcx?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=1">Основы Blender: создаем персонажа</a> | <b>Bang Bang Education </b></p><p>Самый популярный курс по созданию персонажей в Blender. Помогает детально изучить все возможности программы. Автор и преподаватель Алена Кузьминых — концепт-художник с большим опытом. Она подробно рассказывает о современных инструментах компьютерного дизайна. Участники научатся использовать программу Blender для концепт-арта и иллюстрации.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-12/1b338eb4-0a4c-4b0c-a5d8-ef99211e952c.png" alt="" /></figure><ul><li>Стоимость: 5 000 рублей в месяц</li><li>Длительность: 1 месяц</li><li>Формат обучения: лекции, вебинары, домашняя работа с обратной связью</li><li>Сертификат: есть</li></ul><p><b>Кому подходит: </b>тем, кто умеет рисовать, разбирается в графическом дизайне и хочет создавать трехмерные объекты.</p><p><b>Преимущества:</b></p><ul><li>удобная обучающая платформа;</li><li>вводный урок бесплатно;</li><li>занятия ведет опытный художник, эксперт в 3D;</li><li>много профессиональной информации;</li><li>помощь в создании своего проекта для портфолио;</li><li>обратная связь с преподавателем;</li><li>на полгода сохраняется доступ ко всем материалам курса;</li><li>предоставляется бесплатная подписка на курсы школы на 1 месяц.</li></ul><p><b>Недостатки:</b></p><ul><li>нет постоянного набора, так как дата старта фиксированная;</li><li>узкопрофильный курс;</li><li>для новичков программа сложная.</li></ul><p><b>Программа обучения:</b></p><ul><li>Референсы;</li><li>Набросок персонажа и иллюстраций;</li><li>Разработка и создание персонажа, скульптинг, моделинг;</li><li>Настройка позы и шейдинга;</li><li>Создание окружения;</li><li>Настройка освещения, атмосферы;</li><li>Создание визуализаций.</li></ul><p><a href="https://experts2.ru/FysIcx?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=1">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>2. </b><a href="https://experts2.ru/XvHqtd?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=2">Blender.Design</a> | <b>Skillbox </b></p><p>Подробный курс для обучения Blender с нуля. Программа позволяет получить большой объем знаний и практические навыки для профессиональной деятельности. Студенты научатся моделировать персонажей и интерьеры, визуализировать, делать графику для игр и кино, создавать реалистичные сцены для VR. Спикер курса — художник Илья Ковалев с большим опытом в 3D-моделировании.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-12/ba2e22ca-1ddf-45dc-b7e6-e8674114000d.png" alt="" /></figure><ul><li>Стоимость: 4 027 рублей в месяц</li><li>Длительность: 2 месяца</li><li>Формат обучения: видеолекции, практические занятия, домашние задания с объяснением</li><li>Сертификат: есть</li></ul><p><b>Кому подходит: </b>новичкам в компьютерной графике, художникам, дизайнерам, всем, кто стремится создавать 3D-модели и работать в Blender.</p><p><b>Преимущества:</b></p><ul><li>собственная обучающая платформа;</li><li>живое общение с экспертами;</li><li>индивидуальный график;</li><li>круглосуточная техническая поддержка;</li><li>остается постоянный доступ к курсу;</li><li>5 проектов для портфолио;</li><li>бесплатное обучение английскому языку.</li></ul><p><b>Недостатки:</b></p><ul><li>мало практических заданий.</li></ul><p><b>Программа обучения:</b></p><ul><li>Возможности Блендер;</li><li>Виды моделирования;</li><li>Анимация;</li><li>Разные текстуры и материалы;</li><li>Рендеринг;</li><li>Симуляции.</li></ul><p><a href="https://experts2.ru/XvHqtd?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=2">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>3. </b><a href="https://experts2.ru/qzQIif?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=3">3D-моделирование в Blender</a> | <b>GeekBrains </b></p><p>Подробный курс по 3D-моделированию в Блендер для подростков 12–15 лет. На пробном бесплатном занятии можно узнать, интересно ли ребенку это направление. Обучение поможет развить пространственное и творческое мышление, научит работать в команде. Ребенок познакомится с интерфейсом Blender, сможет понимать сложные профессиональные термины. Обучение ведется в группах по 10–12 учеников, 1–2 раза в неделю. К окончанию собирается портфолио из 6–9 проектов.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-12/a104df67-9f79-4399-a626-f736b99ef0e6.png" alt="" /></figure><ul><li>Стоимость: уточняется индивидуально</li><li>Длительность: 8 месяцев</li><li>Формат обучения: онлайн-уроки, практические задания, домашняя работа</li><li>Сертификат: не предусмотрен</li></ul><p><b>Кому подходит:</b> школьникам, которые любят придумывать персонажей и игровые миры, обладают творческим мышлением, а также хотят создавать трехмерные модели.</p><p><b>Преимущества:</b></p><ul><li>обучение в собственном темпе;</li><li>бесплатный пробный урок;</li><li>постоянная поддержка куратора;</li><li>практика на каждом занятии;</li><li>преподают эксперты с педагогическим опытом;</li><li>изучение английского в подарок;</li><li>проводится профориентация.</li></ul><p><b>Недостатки:</b></p><ul><li>нужна минимальная подготовка, умение работать с компьютерными программами;</li><li>уроки длятся 2 часа, для некоторых детей это может вызвать сложности.</li></ul><p><b>Программа обучения:</b></p><ul><li>Что такое 3D-моделирование и его виды;</li><li>Скульптинг;</li><li>Работа с разными текстурами;</li><li>Нюансы разработки персонажей;</li><li>Анимирование;</li><li>Постобработка.</li></ul><p><a href="https://experts2.ru/qzQIif?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=3">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>4. </b><a href="https://experts2.ru/stIhlW?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=4">Курсы Блендера (Blender 3D)</a> | <b>Международная школа профессий </b></p><p>Этот короткий курс состоит всего из 10 уроков. Он предлагает знакомство с Блендер и обучение моделированию. На занятиях рассматриваются все аспекты работы с программой. Позволяет научиться создавать статичные объемные модели игр и мультипликации. Обучение ведется в онлайн-формате, можно задать преподавателю любые вопросы.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-12/1548f687-cdd2-4872-981d-d0b9c1d34a95.png" alt="" /></figure><ul><li>Стоимость: 13 800 рублей</li><li>Длительность: 5 недель</li><li>Формат обучения: лекции, вебинары, домашние задания с разбором</li><li>Сертификат: есть</li></ul><p><b>Кому подходит: </b>начинающим дизайнерам, художникам и всем, кто знаком с компьютерной графикой, хочет применять свои навыки для игровой и киноиндустрии.</p><p><b>Преимущества:</b></p><ul><li>начать обучение можно в удобное время;</li><li>индивидуальный темп;</li><li>много практических и интерактивных заданий;</li><li>общение с наставником;</li><li>преподают практикующие специалисты;</li><li>помощь в оформлении портфолио;</li><li>на 3 месяца остается доступ к курсу;</li><li>для оплаты можно использовать материнский капитал.</li></ul><p><b>Недостатки:</b></p><ul><li>уроки только в будние дни;</li><li>интенсивное обучение — много информации сложно усвоить за короткое время.</li></ul><p><b>Программа обучения:</b></p><ul><li>Настройка Блендер;</li><li>Виды модификаторов;</li><li>Масштабирование;</li><li>Редактирование текстур;</li><li>Создание персонажей;</li><li>Анимирование;</li><li>Настройка освещения;</li><li>Рендеринг.</li></ul><p><a href="https://experts2.ru/stIhlW?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=4">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>5. </b><a href="https://experts2.ru/hqPOwx?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=5">Blender</a> |<b> Contented.ru </b></p><p>Подробный курс от профильной школы дизайна. Программа позволяет освоить Blender с нуля до уровня уверенного пользователя. Преподаватели — опытные анимационные дизайнеры, 3D-художники и специалисты в компьютерной графике, помогают выбрать направление и мотивируют на дальнейшее развитие в сфере дизайна.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-12/3beccbf6-7e94-44f0-a1dd-9fbef21dee1d.png" alt="" /></figure><ul><li>Стоимость: 36 108 рублей</li><li>Длительность: 6 недель</li><li>Формат обучения: лекции, практические занятия, домашние задания</li><li>Документ об окончании: сертификат</li></ul><p><b>Кому подходит: </b>художникам, дизайнерам и всем специалистам в графике, которые стремятся обновить и углубить навыки, а также всем желающим освоить Блендер.</p><p><b>Преимущества:</b></p><ul><li>базовое изучение программы, помощь в установке и настройке;</li><li>обучение в индивидуальном темпе;</li><li>остается доступ к материалам навсегда;</li><li>поддержка наставника;</li><li>много практических заданий;</li><li>помощь в создании проектов для портфолио.</li></ul><p><b>Недостатки:</b></p><ul><li>занятия в записи, поэтому нет живого общения с экспертами.</li></ul><p><b>Программа обучения:</b></p><ul><li>Настройка Blender и базовые инструменты;</li><li>Анимирование;</li><li>Текстурирование;</li><li>Рендер и его настройка.</li></ul><p><a href="https://experts2.ru/hqPOwx?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=5">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>6. </b><a href="https://experts2.ru/GerdmI?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=6">Blender c нуля</a> | <b>XYZ School </b></p><p>Небольшой курс 3Д моделирования в Блендер для новичков, состоящий из 12 занятий. Знакомит с интерфейсом и основами работы с программой. Изучается анимация и работа с UV-разверткой. Практикующие эксперты в области анимации и игровой индустрии помогут создать портфолио, научат разбираться в Photoshop. Эти базовые знания позволят начать работу в 3D-индустрии или выбрать направление и продолжить обучение на профильном уровне.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-12/d3df539c-05f0-475c-b999-d66015f15c1f.png" alt="" /></figure><ul><li>Стоимость: 31 200 рублей</li><li>Длительность: 1,5 месяца</li><li>Формат обучения: видеолекции, практические задания, домашняя работа с проверкой</li><li>Сертификат: есть</li></ul><p><b>Кому подходит: </b>новичкам в компьютерной графике, художникам и разработчикам игр, желающим научиться работать с Блендер.</p><p><b>Преимущества:</b></p><ul><li>удобный личный кабинет;</li><li>гибкий график;</li><li>индивидуальный темп обучения;</li><li>помощь в настройке программы;</li><li>много практических заданий;</li><li>преподают практикующие специалисты;</li><li>домашнее задание проверяется и разбирается экспертом;</li><li>закрытая группа для общения;</li><li>пользование библиотекой XYZ;</li><li>бессрочный доступ.</li></ul><p><b>Недостатки:</b></p><ul><li>записаться сложно — мало свободных мест и фиксированный старт;</li><li>нет вебинаров с живым общением;</li><li>только базовый уровень.</li></ul><p><b>Программа обучения:</b></p><ul><li>Настройка, интерфейс и элементы Blender;</li><li>Модификаторы;</li><li>Моделинг;</li><li>Разные текстуры;</li><li>UV-развертка;</li><li>Настройка освещения;</li><li>Создание 3D-сцен.</li></ul><p><a href="https://experts2.ru/GerdmI?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=6">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>7. </b><a href="https://experts2.ru/skBraU?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=7">3D моделирование в Blender</a> | <b>Фоксфорд </b></p><p>Самый бюджетный, но подробный вводный курс для школьников. Программу создала Анна Кузнецова — опытный педагог в IT сфере, разработчик приложений и VR-проектов. Первое занятие бесплатное, оно нужно, чтобы понять, подходит ли моделирование для ребенка. Дальше обучение строится по индивидуальному графику.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-12/e03b8b2b-f1d1-4310-9f6e-5488fdf83cc3.png" alt="" /></figure><ul><li>Стоимость: 13 515 рублей</li><li>Длительность: 24 занятия</li><li>Формат обучения: лекции в записи, интерактивные задания, домашняя работа</li><li>Сертификат: не предусмотрен</li></ul><p><b>Кому подходит: </b>школьникам, студентам, которые знакомы с компьютерной графикой и стремятся изучить Blender.</p><p><b>Преимущества:</b></p><ul><li>удобная обучающая платформа;</li><li>бесплатное начало;</li><li>много интерактивных и практических заданий;</li><li>гибкий график;</li><li>обратная связь;</li><li>помощь в создании портфолио;</li><li>общение в чате.</li></ul><p><b>Недостатки:</b></p><ul><li>уроки в записи, поэтому нет живого общения;</li><li>двухчасовые уроки для многих тяжело усваиваются.</li></ul><p><b>Программа обучения:</b></p><ul><li>Интерфейс и настройки Блендер;</li><li>Сведения о профессии 3D-моделлер;</li><li>Скульптинг;</li><li>Текстурирование;</li><li>Анимирование.</li></ul><p><a href="https://experts2.ru/skBraU?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=7">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>8. </b><a href="https://experts2.ru/VypEib?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=8">3D-моделирование в Blender</a> | <b>Хохлов Сабатовский </b></p><p>Подробный курс для полноценного использования всех возможностей Blender. Составлен опытными специалистами в 3D-графике, моделировании, игровой и киноиндустрии. Поэтому он дает не только знания о программе, но и практические навыки. Помогает понять все особенности трехмерного моделирования и его возможностей для заработка.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-12/35a62e92-eb72-4c0f-ac89-10b422de12a8.png" alt="" /></figure><ul><li>Стоимость: от 37 632 рублей</li><li>Длительность: 9 недель</li><li>Формат обучения: видеолекции, домашние задания с проверкой</li><li>Сертификат: не предусмотрен</li></ul><p><b>Кому подойдет: </b>художникам, монтажерам и всем, кто стремится зарабатывать в сфере 3D-моделирования, даже новичкам.</p><p><b>Преимущества:</b></p><ul><li>доступная и интересная подача материала;</li><li>вся необходимая информация и инструменты для работы в Blender;</li><li>преподает опытный концепт-художник;</li><li>2 тарифа: самостоятельный и с наставником;</li><li>комфортный темп обучения;</li><li>участие в общем чате;</li><li>2 проекта для оформления портфолио.</li></ul><p><b>Недостатки:</b></p><ul><li>на тарифе для самостоятельного обучения нет проверки домашнего задания.</li></ul><p><b>Программа обучения:</b></p><ul><li>Знакомство с Блендер и настройка;</li><li>Настройки рендера;</li><li>Дополнительные программы;</li><li>Правила создания сцены.</li></ul><p><a href="https://experts2.ru/VypEib?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=8">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>9. </b><a href="https://experts2.ru/qFfQgm?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=9">Анимация 3D-персонажа в Blender. Базовый курс</a> | <b>Хохлов Сабатовский  </b></p><p>Лучший базовый курс по анимации в Блендер. Предназначен для тех, кто разбирается в основах программы, но хочет правильно оживлять персонажа. Практические задания с разбором от эксперта позволяют научиться задавать эмоции, определять поведение и любые движения. Преподает курс Артем Яковлев— специалист в компьютерной графике с большим опытом.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-12/3fe0624b-a94a-4d24-8ac6-c30ed0defba9.png" alt="" /></figure><ul><li>Стоимость: от 37 632 рублей</li><li>Длительность: 9 недель.</li><li>Формат обучения: онлайн-лекции, домашние задания.</li><li>Сертификат: не предусмотрен</li></ul><p><b>Кому подходит:</b> начинающим художникам и дизайнерам, а также тем, кто разбирается в Blender, но хочет создавать анимацию.</p><p><b>Преимущества:</b></p><ul><li>узкопрофильный курс для начала профессиональной деятельности;</li><li>много практики;</li><li>создание портфолио;</li><li>преподает опытный специалист;</li><li>2 тарифа на выбор: самостоятельный и с наставником;</li><li>доступ к чату.</li></ul><p><b>Недостатки:</b></p><ul><li>только для тех, кто разбирается в Блендер;</li><li>проверяется домашнее задание только на тарифе с куратором.</li></ul><p><b>Программа обучения:</b></p><ul><li>Основы риггинга в Блендер;</li><li>Арматура и построение скелета;</li><li>Скиннинг;</li><li>Основы анимации;</li><li>Анимация ходьбы, бега, прыжка.</li></ul><p><a href="https://experts2.ru/qFfQgm?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=9">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>10. </b><a href="https://experts2.ru/jiqSLg?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=10">Онлайн-курс Blender 3D</a> |<b> OnSkills</b></p><p>Короткий и интенсивный курс, дающий базовые знания по работе с Блендер и разным видам моделирования. Практические задания и поддержка экспертов позволят научиться использовать все инструменты Blender, создавать трехмерные модели, визуализации и анимацию. Это отличный старт для карьеры в области 3D-графики.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2025-02-12/2ed4c772-cff4-47ad-8e98-e20728f6c89f.png" alt="" /></figure><ul><li>Стоимость: от 1900 рублей</li><li>Длительность: 20 часов</li><li>Формат обучения: видеолекции, вебинары, тесты, домашнее задание с проверкой</li><li>Сертификат: есть</li></ul><p><b>Кому подходит: </b>начинающим художникам, дизайнерам и всем, кто хочет изучить 3D или работать в киноиндустрии. Также курс подойдет художникам, визуализаторам, аниматорам, желающим освоить новую программу.</p><p><b>Преимущества:</b></p><ul><li>первый урок бесплатно;</li><li>гибкий график;</li><li>возможно индивидуальное обучение с преподавателем;</li><li>акцент на практику;</li><li>понятная подача материала;</li><li>быстрая поддержка;</li><li>остается навсегда доступ ко всем материалам.</li></ul><p><b>Недостатки:</b></p><ul><li>при самостоятельном обучении по лекциям нет проверки домашней работы.</li></ul><p><b>Программа обучения:</b></p><ul><li>Изучение особенностей Блендер;</li><li>Примитивы и их трансформация;</li><li>Полигональное моделирование;</li><li>Другие виды моделинга;</li><li>NURBS поверхности;</li><li>Скульптинг;</li><li>Настройка освещения;</li><li>Анимирование.</li></ul><p><a href="https://experts2.ru/jiqSLg?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=10">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><h2>Еще 25 курсов Blender</h2><p>Если вам не подошли варианты из предыдущей подборки, можете обратить внимание еще на 25 курсов. Я собралиа предложения для новичков и профессионалов, для взрослых и детей, основы Blender и углубленное изучение отдельных направлений. Мной были выбраны такие онлайн-курсы Blender, которые завоевали хорошие отзывы от пользователей.</p><ul><li><a href="https://experts2.ru/hwXWze?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Курс «3D-дизайнер»</a> от Яндекс Практикума — полноценное обучение на 9 месяцев с выдачей диплома о профессиональной переподготовке. Программа составлена опытными дизайнерами специально для новичков, которые не умеют рисовать. Студенты учатся создавать трехмерные объекты разной сложности. Большое количество практики и поддержка нейросети облегчают усвоение материала. Есть помощь в составлении портфолио и в поиске работы.</li><li><a href="https://experts2.ru/FWauwk?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Blender основы моделирования</a> от Софт Культуры — небольшая, но насыщенная программа из 3 модулей. Дает все необходимые знания для начала работы с Blender. Подробно разбираются особенности 3D-моделирования в архитектуре с реальными примерами.</li><li><a href="https://experts2.ru/oErcSf?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Онлайн-курс 3D-моделирование для детей и подростков</a> от Rebotica — подходит для изучения профессии моделлера с нуля. Предназначена для школьников с 8 до 17 лет. Занятия индивидуальные, проходят онлайн. Преподаватели помогают ученикам разобраться в Blender и выбрать направление в моделировании. Изучается анимация, ландшафтный дизайн, архитектура, игровая графика.</li><li><a href="https://experts2.ru/DyiJuj?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Супер Blender</a> от Cloud Lessons — подробный курс от известной образовательной платформы VideoSmile. Позволяет освоить все аспекты работы в Blender с нуля. Курс состоит из 12 блоков, в которых много практических заданий. Основное преимущество – возможность начать обучение в любое время и проходить программу в собственном темпе. Студенты получают индивидуальную поддержку кураторов и помощь в составлении портфолио. По окончании выдается сертификат.</li><li><a href="https://experts2.ru/rsYMgn?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">BLENDER: РАСШИРЕННЫЕ ВОЗМОЖНОСТИ</a> от Liveclasses.ru— небольшой курс из 6 видео уроков. Предназначен для тех, кто уже знаком с программой Blender и хочет улучшить навыки работы с анимацией. Курс знакомит с монтажом видео, постановкой звука, скульптингом. Подробно изучаются модификаторы. Материал подается в простой и доступной форме, к нему остается доступ после окончания курса.</li><li><a href="https://experts2.ru/afiWMs?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">3D-моделирование Blender для детей</a> от Айтигенио — предназначен для школьников с 12 лет, у которых есть хотя бы минимальный опыт в компьютерной графике. Занятия проходят онлайн под наставничеством опытных преподавателей. Изучаются основы работы с программой, текстурирование, анимация, дизайн интерьера. Информация подается в интересной и доступной форме, много интерактивных занятий, практики, тестов.</li><li><a href="https://experts2.ru/nhgEOd?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Самый лучший курс по Blender 3D</a> от Best Blender —дает все необходимые навыки для практического использования Blender. Программа разделена на отдельные блоки, можно знакомиться и оплачивать только те, которые интересны. Изучается анимация, дизайн персонажей, освещение, продвинутое моделирование. Есть поддержка куратора, составление портфолио.</li><li><a href="https://experts2.ru/YCdxcz?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Основы 3D и анимации в Blender</a> от New Art School— двухмесячный курс для освоения 3D-моделирования с нуля. Ученики получат навыки создания анимационных и рекламных роликов, объектов для игр. Они могут использовать их для коммерческих проектов. Обучение идет в индивидуальном темпе, но есть чат и разбор заданий от автора курса. По окончании выдается сертификат. Доступ ко всем материалам сохраняется 2 года.</li><li><a href="https://experts2.ru/OLehvs?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Modeling in Blender</a> от 3D Master— курс для специалистов в 3D-печати, которые хотят овладеть техникой полигонального моделирования и скульптинга. Состоит из 7 занятий с практическими заданиями. Курс учит моделировать сложные объекты промышленного дизайна.</li><li><a href="https://experts2.ru/wIClyg?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Основы Blender</a> от Smirnov School — курс для начинающих 3D-моделлеров и 2D-художников. Школа специализируется на цифровом рисунке, автор курса 3D арт-лид с большим опытом в области гейминга. Поэтому упор в программе делается на анимацию и создание объектов для игр. Курс состоит из 6 блоков из видео лекций, практики и домашних заданий. По окончании выдается сертификат.</li><li><a href="https://experts2.ru/aEjsoA?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">3D графический дизайнер. Моделирование и текстурирование в Blender</a> от ЦДПО НИУ ИТМО — дает основы 3D-моделирования для использования в профессиональной деятельности. Подходит для новичков, так как материал тщательно проработан и подается в доступной форме. Преподаватели —  практикующие специалисты и эксперты в этой области. Выдается сертификат о прослушивании курса.</li><li><a href="https://experts2.ru/rRoxsL?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Создание 3d персонажей в Blender</a> от Udemy — небольшой узкопрофильный интенсив. Состоит из 30 коротких видеоуроков, которые знакомят с особенностями мультипликации, основами анатомии и биомеханики, правилами перемещения камер, создания видеопрезентаций. Обучение направлено на изучение всех аспектов создания персонажей. После окончания остается постоянный доступ.</li><li><a href="https://experts2.ru/HmrDgh?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Моделирование персонажей в Blender. Уровень 2</a> от Специалист.ru — узкоспециализированный курс, где подробно разбираются все аспекты разработки 3D-персонажей. Подходит для тех, кто знаком с Blender, но хочет развить навыки геймдева. За 24 урока можно научиться прорабатывать персонажей и их отдельные элементы от идеи до передачи аниматору. Обучение ведется онлайн и очно в учебном центре. Можно получить удостоверение о повышении квалификации или сертификат.</li><li><a href="https://experts2.ru/dBtuwF?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Blender 2023: полный базовый курс 3D моделирования</a> от Udemy — подробный курс, дающий всю необходимую информацию по работе в Blender. Помогает освоить программу с нуля до уровня уверенного пользователя. Изучается 3D-графика и разные методы моделирования. По окончании выдается сертификат.</li><li><a href="https://experts2.ru/uVpnNg?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">РЕНДЕР PRO NEW 2023</a> от New Art School — специализируется на инструментах для создания продвинутых артов. Подходит для тех, кто знаком с 3D-графикой и хочет создавать объекты для игр, кино, книг. Обучение в формате видеолекций с домашними заданиями. Длительность обучения — 3 месяца, за это время ученики создают 6 полноценных проектов для портфолио.</li><li><a href="https://experts2.ru/mwMAcq?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Дизайн и визуализация интерьеров в Blender 3D</a> от Udemy — небольшой узкопрофильный интенсив для дизайнеров и тех, кто хочет создавать реалистичную визуализацию интерьеров. Представляет собой видеоурок продолжительностью 3,5 часа. Он включает материалы о моделировании помещения, мебели, настраивании разных материалов, освещения.</li><li><a href="https://experts2.ru/NrvuGn?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">3D - моделирование в Blender</a> от Специалист.ru — это базовый курс по работе с программой с нуля. Изучается интерфейс, настройки, инструменты и создание сложных 3D-объектов. Длительность 24 часа, есть возможность учиться очно. Преподают практикующие специалисты и эксперты в области компьютерной графики. Курс включает много практики, конкретные примеры трехмерных объектов, задания с разбором.</li><li><a href="https://experts2.ru/gzALsn?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">NEW. Создание оружия для игр Blender и Substance painter</a> от Udemy — специальный курс для создателей игр и моделлеров. Знакомит с работой в лучших программах для этого. Учит разрабатывать и создавать модели оружия по заданию, а также собственные проекты. Содержит более 20 часов полезной практической информации с разбором примеров.</li><li><a href="https://experts2.ru/tPncIm?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Фотореалистичная визуализация в Blender. Уровень 2</a> от Специалист.ru— курс с узкой специализацией для продвинутых пользователей. Изучаются инструменты и принципы создания реалистичных визуализаций: свет, текстуры и материалы, съемочные камеры. Ученики знакомятся с технологиями рендеринга.</li><li><a href="https://experts2.ru/ptDAkd?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">3D-моделирование для школьников в Blender</a> от Club Pixel — полноценный курс для школьников с 13 лет. Длительность 9 месяцев. Курс разработан опытными профессионалами, занятия ведут практикующие эксперты. Обучение в небольших группах с поддержкой куратора в онлайн-формате. Программа делится на 3 модуля, включающие работу с Blender, геймдизайн и анимацию. По окончании выдается сертификат.</li><li><a href="https://experts2.ru/ZaIitz?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Blender 3D-моделирования для детей</a> от Udemy — создан специально для школьников с 8 лет. Они знакомятся с особенностями 3D-моделирования и с программой Блендер. Информация подается в игровой форме, простым и доступным языком. По окончании выдается сертификат.</li><li><a href="https://experts2.ru/bSemqE?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">3D-моделирование в Blender</a> от Code It — подробный курс для детей с 12 лет, подходит для новичков. Обучение ведется в группах по несколько человек или индивидуально. Изучается работа с программой, а также принципы моделирования. Даются основы текстурирования, дети учатся работать над композицией.</li><li><a href="https://experts2.ru/nRVuoz?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">3D-моделирование для детей</a> от IT Gen — подходит для школьников с 7 лет. Помогает научиться создавать реалистичные игровые миры. Применяется индивидуальный подход к ученикам, им помогают разрабатывать собственные проекты. Изучаются дополнительные инструменты для работы в 3D: Tinkercad, Sculptris, ZBrush.</li><li><a href="https://experts2.ru/DpjBqw?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Blender</a> от Profileschool — продвинутый практический курс, предназначен для слушателей, которые умеют работать с программой. Состоит из 6 видеолекций, 6 онлайн-уроков и 12 домашних заданий с разбором от экспертов. Включает основы 3D-моделирования, создания визуализаций и анимации.</li></ul><h2>Бесплатные курсы Blender</h2><p>Также я предлагаю небольшую подборку курсов и интенсивов, которые можно пройти бесплатно. Они знакомят с основами программы. Хорошо изучить ее и стать специалистом после их прохождения невозможно, некоторые из них состоят всего из одного урока. Однако они позволяют определиться, нужна ли эта программа, стоит ли тратить деньги на обучение и какое направление выбрать.</p><p><b>1. </b><a href="https://experts2.ru/RsdEzk?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Blender быстрый старт</a> —<b> Хохлов Сабатовский </b></p><p>Короткий курс из 5 лекций. Предназначен для художников, дизайнеров и всех, кто хочет научиться создавать трехмерные модели. Автор дает много интересной и полезной информации по работе с Blender, по созданию анимированных роликов и синематик-видео. Кроме теории слушатели получают практические навыки и создают 2 проекта.</p><p><b>Главное о курсе:</b></p><ul><li>у автора курса большой опыт;</li><li>удобный личный кабинет;</li><li>есть техническая поддержка;</li><li>помощь в создании собственных проектов;</li><li>остается доступ к материалам.</li></ul><p><b>2. </b><a href="https://experts2.ru/DUijol?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">3D-моделирование с нуля: разбор профессий и первый проект в Blender</a> — <b>Skillbox </b></p><p>Мини-курс на 5 дней для новичков. Позволяет познакомиться с основами 3D-моделирования, научиться работать с Blender и попробовать создать трехмерную модель комнаты. Можно научиться настраивать освещение, создавать разные текстуры, настраивать рендер. Курс состоит из видеолекций, дополненных полезными материалами и советами от экспертов.</p><p><b>Главное о курсе:</b></p><ul><li>много полезной информации;</li><li>знакомство с разными направлениями моделирования;</li><li>удобный график;</li><li>создание портфолио;</li><li>живое общение со спикером;</li><li>доступ к курсу остается навсегда.</li></ul><p><b>3. </b><a href="https://experts2.ru/epqLcR?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">Работа в Blender</a> — <b>Skillbox</b></p><p>Это бесплатный интенсив, подробный вебинар от 3D-художницы. После регистрации дается доступ к записи видеолекций, заниматься можно в удобное время. Автор разбирает особенности Blender и принципы работы с программой. Вебинар входит в мини-курс по созданию NFT-токенов. Также можно научиться создавать криптоарт, узнать об обработке сцен в Photoshop.</p><p><b>Главное о курсе:</b></p><ul><li>простая и доступная подача информации;</li><li>подробное обучение работе с приложением;</li><li>разбирается интересное направление в 3D;</li><li>много практики.</li></ul><p><b>4. </b><a href="https://experts2.ru/kGrSvy?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">3D-моделирование в blender</a> — <b>Stepik</b></p><p>Программа для обучения Блендер с нуля для школьников, студентов и всех, кому интересно 3D-моделирование. Состоит из 10 уроков с пошаговыми инструкциями и практическими заданиями. Тесты позволяют закрепить материал.</p><p><b>Главное о курсе:</b></p><ul><li>информация подается понятно, с инструкциями и картинками;</li><li>практические и тестовые задания;</li><li>обучение базовой анимации;</li><li>можно задать уточняющие вопросы.</li></ul><p><b>5. </b><a href="https://experts2.ru/WqnlOa?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">3D-моделирование в Blender и 3D-печать: введение</a> — <b>Stepik </b></p><p>Подробный курс, на котором можно научиться делать трехмерные модели. Состоит из 4 модулей —  всего 18 уроков. Изучается история 3D-моделирования, способы получения моделей. В программе курса 27 тестов и 1 интерактивная задача.</p><p><b>Главное о курсе:</b></p><ul><li>полноценное обучение;</li><li>подробное изучение работы с 3D-принтерами;</li><li>создается собственный проект для портфолио;</li><li>27 тестов помогают усвоить материал;</li><li>по окончании выдается сертификат.</li></ul><p><b>6. </b><a href="https://experts2.ru/QFyxop?sub1=tproger-kf&amp;sub2=blender-3d-kursy&amp;sub4=netop">СДЕЛАЙ ПЕРВЫЙ ШАГ НА ПУТИ К ФРИЛАНСУ</a> —<b> Course3d.ru</b></p><p>Это небольшой мастер-класс по 3D-моделированию и геймдизайну. На нем можно получить представление о создании реалистичных 3D-персонажей, локаций, графики и спецэффектов. Дается пошаговый план, как зарабатывать на этом. Подойдет для студентов, художников, дизайнеров, которые делают первые шаги в анимации и геймдизайне.</p><p><b>Главное о курсе:</b></p><ul><li>вебинар проходит в определенное время;</li><li>пошаговый план развития и получения дохода;</li><li>помощь в оформлении портфолио.</li></ul><h2>3D-моделлер</h2><p>3D Modeller — это специалист, который создает трехмерные модели, используя Blender и другие подобные программы. Он востребован в киноиндустрии, создании игр и анимации. Проектирует и создает по заданным параметрам персонажей, одежду, животных, окружающую обстановку. Может работать на телевидении, в рекламе, маркетинге. Услуги моделирования требуются также в других областях. Этот специалист создает модели домов, интерьеры и ландшафтный дизайн. В ювелирном деле проектирует модели украшений, в медицине —  интерактивные тренажеры. Современная промышленность тоже не обходится без 3D-моделей.</p><h2>Необходимые навыки</h2><p>3D Modeller должен быть специалистом широкого профиля. В большинстве проектов ему нужно выполнять обязанности художника, аниматора, дизайнера. Нужно разбираться в анатомии, биомеханике, конструировании, ландшафтном дизайне и стилях интерьера, знать Photoshop и другие графические программы. Чтобы стать хорошим специалистом, нужно иметь такие качества, как пространственное мышление, воображение, усидчивость, умение планировать. А главное — человек, который хочет стать хорошим специалистом, должен быть готов учиться новому. Ведь IT-технологии быстро развиваются, появляются новые требования к 3D-моделированию.</p><h2>Как стать 3D-моделлером?</h2><p>В ВУЗах пока нет такой специальности, некоторые навыки 3D-моделирования изучают дизайнеры, аниматоры, художники. Но получить такую профессию можно и без навыков рисования. Для этого нужно пройти специальные курсы. Я советую выбирать платные программы по изучению Blender на известных обучающих платформах. Там помогают создать портфолио, которое облегчит поиск работы.</p><h2>Сколько зарабатывает 3D Modeller?</h2><p>Заработная плата зависит от опыта работы и выбранной отрасли. На сайте <a href="https://hh.ru/">hh.ru</a> более 2500 предложений. Требуются просто 3D-моделлеры, а также визуализаторы, 3D-художники, графические дизайнеры. Без опыта можно заработать от 80 000 рублей. <a href="https://hh.ru/vacancy/115064694?query=3d+%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;hhtmFrom=vacancy_search_list">Такую вакансию</a> предлагает компания «Ортосмайл». Опытный специалист, который хорошо разбирается в анимации и смежных областях может найти работу с зарплатой 190 000-250 000 рублей. <a href="https://hh.ru/vacancy/115439324?query=3d+%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;hhtmFrom=vacancy_search_list">Можно найти подобные предложения</a> от компании Sminex и некоторых других.</p><h2>Плюсы и минусы направления</h2><p>3D-моделирование является одним из самых перспективных направлений в сфере цифровых технологий. Его изучение позволяет получить интересную творческую профессию. Но сначала нужно узнать о ее плюсах и минусах.</p><p><b>Плюсы:</b></p><ul><li>востребованная работа;</li><li>много направлений;</li><li>творческая реализация;</li><li>возможность удаленной работы;</li><li>высокий уровень зарплаты.</li></ul><p><b>Минусы:</b></p><ul><li>сначала требуются серьезные финансовые вложения;</li><li>нужно много учиться и постоянно совершенствоваться;</li><li>сидячая работа и ненормированный рабочий день.</li></ul><h2>Заключение</h2><p>Умение работать с Blender может стать не только увлекательным хобби, но и основной профессией. С каждым днем 3D-моделирование становится все более востребованным во всех отраслях жизни: киноиндустрии, дизайне, рекламе, архитектуре, производстве. Работать можно будет как в офисе, так и удаленно, самостоятельно строя свой график. Сервис <a href="https://hh.ru/search/vacancy?text=3d+%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5&amp;from=suggest_post&amp;area=113&amp;hhtmFrom=main&amp;hhtmFromLabel=vacancy_search_line&amp;customDomain=1">hh.ru</a> предлагает для таких специалистов вакансии с оплатой от 80 000 до 250 000 рублей. Но для этого нужно выбрать хорошие курсы Blender. Стоит обращать внимание на содержание программы, ее продолжительность и уровень сложности, профессионализм преподавателей, доступность дополнительных ресурсов. Изучить Blender нужно каждому, кто хочет иметь творческую профессию и развиваться в сфере технологий будущего.</p><p><b>Подборки по схожим темам:</b><b></b></p><ol><li><a href="https://tproger.ru/articles/top-35-kursov-po-sozdaniyu-sajtov--onlajn-obuchenie-po-razrabotke-sajtov-s-nulya">Лучшие курсы по созданию сайтов</a></li><li><a href="https://tproger.ru/articles/top-61-kursov-veb-razrabotchika--luchwee-onlajn-obuchenie-programmirovaniyu-besplatno-i-platno">Лучшие курсы веб-разработчика</a></li><li><a href="https://tproger.ru/articles/kursy-verstki-html-i-css-253340">Лучшие курсы HTML и CSS</a></li><li><a href="https://tproger.ru/articles/kursy-c---i-c-">Лучшие курсы по языкам программирования</a></li></ol><p><i>Я буду рада узнать ваше мнение и готова добавить в подборку другие курсы, которые вы считаете достойными внимания. Делитесь впечатлениями, если вы уже прошли обучение, добавляйте свои комментарии или замечания. </i></p>]]></content:encoded>
    </item>
    <item>
      <title>Шаришь в Git? Проверь свои знания по продвинутым техникам и настройкам!</title>
      <link>https://tproger.ru/articles/wariw-v-git--prover-svoi-znaniya-po-prodvinutym-tehnikam-i-nastrojkam-</link>
      <comments>https://tproger.ru/articles/wariw-v-git--prover-svoi-znaniya-po-prodvinutym-tehnikam-i-nastrojkam-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Сергей Лалетин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/wariw-v-git--prover-svoi-znaniya-po-prodvinutym-tehnikam-i-nastrojkam-</guid>
      <description><![CDATA[<p>Этот тест поможет проверить ваши знания Git на уровне Junior.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/wariw-v-git--prover-svoi-znaniya-po-prodvinutym-tehnikam-i-nastrojkam-">Шаришь в Git? Проверь свои знания по продвинутым техникам и настройкам!</a>»</p>]]></description>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 12 Nov 2024 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Рекомендуем ознакомиться <a href="https://tproger.ru/articles/ispolzovanie-git--sovety-i-tryuki-dlya-prodvinutyh-polzovatelej">с этой статьей о советах и трюках для продвинутых пользователей Git</a> перед началом.</p>]]></content:encoded>
    </item>
    <item>
      <title>10+ методов от сеньоров и тимлидов для слаженной работы с командой и карьерного роста</title>
      <link>https://tproger.ru/articles/10-metodov-ot-senorov-i-timlidov-dlya-slazhennoj-raboty-s-komandoj-i-karernogo-rosta-erid-ljn8jtbn9</link>
      <comments>https://tproger.ru/articles/10-metodov-ot-senorov-i-timlidov-dlya-slazhennoj-raboty-s-komandoj-i-karernogo-rosta-erid-ljn8jtbn9?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вика Овсянникова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/10-metodov-ot-senorov-i-timlidov-dlya-slazhennoj-raboty-s-komandoj-i-karernogo-rosta-erid-ljn8jtbn9</guid>
      <description><![CDATA[<p>Составили лонгрид про общение в команде: как проводить созвоны, организовывать брейнштормы, корректно давать фидбек или решать конфликты.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/10-metodov-ot-senorov-i-timlidov-dlya-slazhennoj-raboty-s-komandoj-i-karernogo-rosta-erid-ljn8jtbn9">10+ методов от сеньоров и тимлидов для слаженной работы с командой и карьерного роста</a>»</p>]]></description>
      <category><![CDATA[Лучшая практика]]></category>
      <category><![CDATA[Для мотивации]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Для продолжающих]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Soft Skills]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 18 Mar 2024 16:32:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вы джун+ или мидл разработчик. Вроде харды на высоком уровне, но что-то все равно не позволяет вам сменить грейд. Обычно это софт-скилы — на более высоких позициях вы не просто выполняете задачи, но еще и ставите их другим, а также направляете и учите младших коллег. Чтобы перейти на следующую карьерную ступень, придется подтягивать и мягкие навыки.</p><p>Мы пообщались с сотрудниками и экспертами сопровождения <a href="https://tprg.ru/NKOD">Яндекс Практикума</a> и составили обширный лонгрид, в котором вы найдете фишки для выстраивания эффективного и живого общения с командой.</p><h2>Оглавление</h2><ol><li><a href="https://tproger.ru/#one">Почему важно живое общение</a></li><li><a href="https://tproger.ru/#2">Как организовывать созвоны, от групповых до 1-2-1</a></li><li><a href="https://tproger.ru/#3">Как готовиться и проводить групповые созвоны</a></li><li><a href="https://tproger.ru/#4">Что делать с 1-2-1</a></li><li><a href="https://tproger.ru/#5">Как давать обратную связь</a></li><li><a href="https://tproger.ru/#6">Как разрешать конфликты</a></li><li><a href="https://tproger.ru/#7">Как проводить брейнштормы</a></li><li><a href="https://tproger.ru/#8">Как организовать трекер</a></li><li><a href="https://tproger.ru/#9">Как организовать общение в течение дня</a></li><li><a href="https://tproger.ru/#10">Как в развитии софтов может помочь школа Яндекс Практикума</a></li></ol><h2>Почему важно живое общение</h2><p>Под живым общением мы подразумеваем живую коммуникацию, при которой команда активно вовлекается в работу, а не сухо отвечает «Ок» или вообще молчит. Выстроить работу без этого сложно. Команда — это люди с общими целями, но у каждого участника есть своя идентичность. Живое общение помогает:</p><ul><li>сохранить связь с реальностью,</li><li>эффективнее креативить и решать сложные проблемы,</li><li>создавать чувство безопасности.</li></ul><blockquote>У разработчиков, людей технического склада ума, есть страх, непонимание: я вроде бы прочитал, что мне написали, но не понял, что мне хотели сказать просто из-за того, что это текст. Я часто сталкивалась с бэкенд-разработчиками или девопсами, которым сложно даже эмоджи считывать. Они говорят: а я не знаю, он улыбнулся, потому что подшучивает надо мной или потому что помочь хочет.</blockquote><p>Мидлам чаще приходится применять софт-скилы: помогать, давать обратную связь джунам, проводить встречи и т. д. Развитое живое общение поможет наладить с коллегами понимание и потенциально вырасти в должности — сеньоры пользуются софт-скилами чуть ли не чаще, чем хардами. И помочь в этом может Школа наставников Яндекс Практикума.</p><h2>Как организовывать созвоны, от групповых до 1-2-1</h2><p><b>Самые ходовые инструменты:</b> Discord, Zoom, Microsoft.Teams, Google.Meet</p><p>Можно использовать Discord как инструмент живого взаимодействия. Он создает эффект опенспейса на удаленке: там можно разбиться по комнатам, постоянно кто-то онлайн, занимается парным программированием. Такая атмосфера работает сама на себя: ты видишь, что в комнате есть люди, происходит движ, к ним можно быстро зайти и уточнить какой-то вопрос. Discord хорош для формата ежедневных коммуникаций в маленьких командах разработки на 6-8 человек.</p><p>В Zoom для этого банально нужно больше кликов и времени: создать встречу, отправить приглашения, зайти в приложение. Но он хорошо подходит для формата вебинаров, докладов, где разговаривает в основном один человек.</p><p>У нас распределенная команда, все работают удаленно из разных точек России, поэтому я старался делать дополнительные слоты, в которые мы могли бы собраться и во что-то позалипать. Мы играли в онлайн-версию испорченного телефона: дорисовывали картинки друг за другом и дописывали истории, чтобы сплотить ребят. Для этого тоже использовали Discord.</p><p>В Zoom или Meet есть свои плюсы — можно записать митинги. Но есть и минусы: если кто-то что-то обсуждает, ты не можешь к ним как в офисе подойти и послушать, что они говорят. А Discord как раз это решает.</p><h3>Как готовиться и проводить групповые созвоны</h3><p>Для начала нужно объяснить, зачем человеку приходить на встречу. Сформируйте и зафиксируйте в описании цель встречи, адженду, тщательно продумайте состав участников: точно ли вам нужна вся команда?</p><p>Дальше смотрим на контекст встречи. К каким-то можно не готовиться, например, там, где нужно просто сделать объявление. Кстати, новости лучше рассказывать лично, а не в переписке, чтобы обсудить возникающие вопросы и сразу получить обратную связь.</p><h4>Собирайте ожидания от встречи</h4><p>Иногда даже при прописанной адженде люди могут ожидать не того, о чем собирался говорить фасилитатор. Уточните перед началом, что все понимают, что вы будете обсуждать. Это полезная обратная связь: если рассинхронились, то можно либо на ходу менять тему, либо сразу акцентировать, что это не то место. В дальнейшем вы, как организатор, поймете, как формулировать приглашение на встречу так, чтобы не дезинформировать людей.</p><h4>Проводите разминки</h4><p>Во время созвона для начала нужно расшевелить аудиторию. Представьте, встречается толпа незнакомцев. Чтобы создать комфортную атмосферу, нужно их расслабить, дать познакомиться. Можно начать с неформального вопроса в духе «Как я провел выходные». Так происходит очеловечивание квадратиков на экране. Мы же обычные люди, а не просто скучные специалисты, у нас есть прикольные интересы, которыми можно поделиться. Если в компании есть культура включать камеры, то вообще прекрасно, потому что так гораздо проще устанавливать контакт.</p><h4>Контролируйте общий план созвона, чтобы не отклоняться от курса</h4><p>Участники часто начинают углубляться в детали, до которых проект, возможно, даже не дошел. Надо честно говорить: коллеги, кажется, мы общаемся не по теме. Это самая действенная штука, я не знаю лучше варианта.</p><h4>В такие моменты важно говорить уверенно: да, было!</h4><p>На ретроспективе иногда обсуждают вопросы, которые одной команде могут быть неинтересны: больше связаны с тестированием или с разработкой. Тогда участники начинают скучать. Чтобы вернуть их, можно еще спросить про опыт других команд: а как было у вас? Даже если эта тема им не сильно близка, это поможет включиться в обсуждение.</p><h4>Поддерживайте динамику созвона с помощью теории вдоха-выдоха</h4><p>Вне зависимости от формата, будь то рабочая встреча, вебинар, лайв-кодинг, или что-то еще, очень важна динамика встречи и теория вдоха-выдоха. Это про когнитивную нагрузку. Человек не может сконцентрировано воспринимать информацию слишком долго, мозгу нужно отдыхать. Поэтому лучше чередовать «вдохи» и «выдохи».</p><p>Вдох — это концентрация. Мы напрягаемся, идет когнитивная нагрузка, воспринимаем информацию. Выдох — мы переключаемся и даем мозгу передохнуть. Пусть это будут хотя бы несколько коротких выдохов даже в рамках очень серьезной встречи. Выдохами могут быть разные вещи, в зависимости от формата: тот же мемчик в презентации, если мы понимаем, что был долгий и сложный блок. Или обсуждение вопросов, если монолог был длинным.</p><h4>Проводите шеринг и дебрифинг</h4><p>Шеринг — это когда мы дали блок информации или провели какую-то активность, а потом спрашиваем, какие у вас чувства, эмоции относительно этого, что думаете?</p><p>А дебрифинг — это рефлексия и обсуждение прожитого опыта. Например, когда на тренинге мы спрашиваем, что вы с собой забираете из этой практики? Приземляем на свой опыт, чтобы потом использовать в работе.</p><p><a href="https://tproger.ru/#0">Вернуться в начало</a></p><h3>Что делать с 1-2-1</h3><p>1-2-1 можно проводить регулярно, когда к команде присоединяется новый участник. Нужно отслеживать в каком он состоянии, как адаптируется.</p><p>Либо когда команда создается с нуля, они друг к другу притираются. Когда команда уже сбитая между собой, то 1-2-1 начинают тратить время. А если и менеджер новый, они вообще теряют смысл, потому что команде хорошо, и нужно вливаться уже менеджеру.</p><h4>Фиксируйте, что обсуждали ранее — лучше обезличенными формулировками</h4><p>У меня всегда были записки о предыдущей встрече, что я должен сделать на следующей. Я выбирал однозначные обезличенные формулировки, чтобы человек понял и не ушел в защиту. Например, если у меня есть вопросы к перформансу сотрудника, я спрашивал: «Если 100% перформанса, это тебя никто не отвлекает, то какой у тебя сейчас процент от 100%?». Мы выявляли, что не так, и тогда можно было давать обратную связь о том, что мешает человеку достичь результата. То есть я пытался заставить его рефлексировать, дать ответ и возможность помочь ему.</p><h2>Как давать обратную связь</h2><p>В обратной связи есть три компонента: источник сообщения, само сообщение и получатель. Есть еще помехи, которые осложняют восприятие сообщения получателем. Чтобы все было нормально, должно быть как можно меньше звеньев между источником и получателем обратной связи.</p><h3>Добавляйте конкретики</h3><p>К примеру, даже в похвалу. Недостаточно просто сказать — «Ты классный сотрудник». Человек может испытать какую-то эмоцию, но что делать с этой информацией, непонятно. Важно сказать, что именно вы сюда вкладываете, что именно мне нужно продолжать делать в моей хорошей работе, чтобы она продолжала быть хорошей.</p><h3>Сначала учите, а потом лечите и мочите</h3><p>Это метод, при котором вы объясняете человеку, почему его действия плохие. Возможно, он просто не знает. Когда вы убедились, что он вас понял, то объясняете, как делать правильно, а уже потом даете фидбэк. До стадии «мочить» я не доходил, обычно во второй мы пытались выправить поведение.</p><p>Также есть метод «Пинок»:<br />P — это позитив,<br />IN — что-то, что можно доработать,<br />N — это негатив,<br />OK — самая важная часть — понял ли человек обратную связь.</p><p>Многие менеджеры команды сопровождения рассказывали, что команда просит не использовать метод сэндвича — позитивная обратная связь, потом критика, потом снова что-то приятное.</p><p>Когда какие-то изменения подаются с этими смягчениями, ты начинаешь задумываться, а что имелось в виду? Сейчас у людей идет запрос на честность — просто скажите нам открыто, что происходит. Но, конечно, в рамках здоровой коммуникации. Мы <a href="https://tprg.ru/NKOD">в Практикуме</a> за бережный подход и уважение.</p><p>Если студент направил работу с большим количеством ошибок, ревьюеру все равно нужно написать, что получилось хорошо, даже если кажется, что позитивных моментов нет. Человек учится, и курсы — это песочница для проб и ошибок. Наша задача — поддержать студента и помочь побыстрее оттуда выйти с помощью объяснений и подсказок. Проверяя очередную работу студента и повторяя один и тот же комментарий много раз, важно помнить, что их будет смотреть живой человек со своими эмоциями и ощущениями. Поэтому каждую работу важно проверять одинаково качественно.</p><p><a href="https://tproger.ru/#0">Вернуться в начало</a></p><h2>Как разрешать конфликты</h2><p>Открытые конфликты — это прекрасно. Можно сразу разобраться, что произошло, и поговорить, либо с привлечением тимлида, либо самим.</p><p>Но когда все находятся в happy bubble, делают вид, что все хорошо, и при этом продолжают работать скрепя зубами, уже сложнее.</p><h3>Выводите людей на чистоту</h3><p>Можно сначала попробовать на 1-2-1 собрать фактуру, то есть вообще разобраться, что происходит. Это создаст безопасную, доверительную атмосферу. А дальше уже обязательно честно со всеми поговорить. Это тоже про культуру — мы не замалчиваем проблемы, а умеем открыто их принимать.</p><p>Может помочь также метод тухлых рыб. Это фасилитационная сессия, где ты помогаешь доставать конфликты, их коллективно обсуждать. Суть в том, что предлагаются определенные предметы, метафоры, чтобы разбавить атмосферу. И идея в том, что каждый вываливает, что ему нравится, не нравится, без привязки к личностям, но к действиям, конкретным событиям и фактам. И важно именно снять напряжение и научиться говорить открыто. А результатом может быть что угодно. В конце может оказаться, что команду надо расформировывать, так как они не могут работать друг с другом, это тоже нормально.</p><h2>Как проводить брейнштормы</h2><p><b>Самые ходовые инструменты:</b> Miro, Jam, Draw.io, Microsoft Whiteboard, Plant UML</p><p>Главное правило брейншторма — делиться абсолютно всеми идеями, которые приходят в голову, даже если они кажутся вам странными. Поэтому при генерации также нужно соблюдать и другое правило — не критиковать, а дополнять и докручивать мысли коллег. В брейншторме обычно участвуют либо отдел, либо команда, то есть много человек, поэтому нужно продумать, как организовывать большое количество людей, которые еще и будут высказываться.</p><p>Важно ответить на такие вопросы:</p><ul><li>Кто модератор?</li><li>Где проводить брейншторм?</li><li>Как потом транслировать результаты?</li><li>Сколько времени нужно заложить на выступление?</li><li>Как эффективно выстроить коммуникацию?</li></ul><h3>На брейншторме должна быть «строгая» модерация</h3><p>Модерирует обычно организатор. Он отвечает на вопросы в чате, отслеживает поднятые руки и реакции в камерах, следит за таймингом и корректным выполнением заданий. Например, чтобы на первом этапе участники не критиковали никого, а скидывали все, что придумывается. А помимо этого организатору еще бы здорово подготовить пространство, в котором все будут работать, попросить кого-то все записывать.</p><p>Важно считать не чистое время, а грязное, то есть учитывать технические и коммуникационные особенности. Например, есть механика, когда в группе из пяти человек высказывается каждый. Модератор планирует по минуте на высказывание, но забывает про переходы между людьми, а ведь они тоже занимают время. В итоге из запланированных 5 минут, группа выйдет за тайминг и получится 6-7. И так в каждой активности формируется снежный ком выхода за тайминг.</p><h3>Разбивайте большую команду на маленькие группы</h3><p>Если людей на встрече много, несколько десятков, то они с неохотой включаются в беседу. Тогда лучше разбивать их на маленькие группы, а потом объединять результаты из каждой комнаты, либо вовлекать через механики, которые не требуют подавать голос публично, в Miro стикеры поперекидывать, например.</p><p>Мы использовали Miro и аналоги: в Meet есть Jam, Draw.io, но они не такие удобные. Для брейнштормов архитектуры мы готовим UML-диаграммы, их можно редактировать в режиме реального времени. То есть кто-то пишет код, и он появляется на картинке. Потом его можно перекинуть в Notion.</p><p>В работе не всем удобно, что Whiteboard сильно отдельно от Jira и Confluence. То есть когда база знаний в одном месте, а идеи генерируются в другом месте, приходится постоянно это между собой актуализировать.</p><p><a href="https://tproger.ru/#0">Вернуться в начало</a></p><h2>Как организовать трекер</h2><p><b>Самые ходовые инструменты:</b> Jira, Notion, Redmine, Яндекс.Трекер, ClickUp</p><p>Трекер — это всего лишь инструмент. Кто-то может им не пользоваться, им достаточно написать на доске цель и идти к ней. А кому-то нужно отслеживать количество часов работы, чтобы вести учет для статистики, отчетов и т. д.</p><h3>Выделите у цели четкие стадии работы</h3><p>У нас есть трекер задач, мы выстраиваем там ближайший спринт с расписанной целью. У нее есть четыре состояния: заведена, в процессе, достигнута, не достигнута. Как именно эта цель достигается, мне, как менеджеру, уже не так важно. Какие-то команды в трекере задач сидят полностью, какие-то меньше и пользуются внутренним блокнотом, а потом раз в неделю прикладывают задачи в трекер, как лог. Кто-то на внутреннем Wiki ведет дейлики.</p><h3>Кастомизируйте любой инструментарий под свой бизнес-процесс</h3><p>Первый трекер, которым я пользовался, был Redmine. Но лучше всего оказался Jira. У меня такой синдром утенка, и я знаю, как все устроено в Jira, поэтому я стараюсь везде сделать как в Jira. Сейчас мы используем Яндекс.Трекер, он похож на Jira. В любом случае инструментарий нужно дорабатывать под свой бизнес-процесс.</p><p>Например, я использовал ClickUp, но там нельзя давать тикет по номеру. В Jira это очень удобно: название проекта, несколько букв и номер. Он легко запоминается, в ClickUp такой штуки нет. Там ID какой-то просто набор букв, и ты никогда в жизни его не запомнишь.</p><h3>Используйте Kanban-доски</h3><p>У нас командная работа организована в Notion по Kanban. Есть 4 вертикальные колонки: сделаны, в работе, в плане на спринт и жду ответ. А в горизонтальных колонках указаны ответственные. И, соответственно, они скрываются, открываются как выпадающие списки, то есть мы можем всегда зайти и посмотреть, кто что из нас делает.</p><h3>Добавляйте фишки в оформление</h3><p>Наша милая фишка — в название задачи мы добавляем эмодзи. Это помогает расслабиться, потому что ты не только видишь текст, но и понимаешь, что вы находитесь в приятной интересной атмосфере.</p><p>Мне нравится ценность <a href="https://tprg.ru/NKOD">Практикума</a> про честность и открытость. Важно, чтобы люди не боялись сказать, что у них не получилось. Если не успели выполнить задачку в спринт, так и говорим, что я не успела, переношу на следующий. Это нормально, я и чувствую себя комфортно и безопасно, всегда знаю, что если вдруг что, то меня поймут, поддержат.</p><p>Notion начинает хорошо продвигаться в продуктовой разработке. Но какие-то технические моменты там не совсем удобно заливать. У разработчиков не очень хорошо получается работать в Notion, фронтендер еще с ним дружит, потому что понимает, как он работает. А вот бэкендеров тяжело туда переманить.</p><p><a href="https://tproger.ru/#0">Вернуться в начало</a></p><h2>Как организовать общение в течение дня</h2><p><b>Самые ходовые инструменты:</b> Telegram, Mattermost, Slack, Discord</p><h3>Мемы — это тимбилдинг</h3><p>Команда эффективно работает, когда она работает слаженно. Для этого необходимы тимбилдинги, неформальное общение. Если нет возможности устроить командный выезд, то мемы — неплохая замена. Можно создать чат, где коллеги будут обмениваться приколами. Это помогает разгрузить и сплотить команду.</p><h3>Заведите отдельный канал для разгрузки</h3><p>У нас был канал в Discord, где можно было поделиться честным мнением о чем-то. Если ты не хочешь быть токсичным, но при этом хочешь выразить то, что тебе совсем не нравится, ты можешь написать туда: бесит Flask — и слить в канал свои переживания.</p><h3>Сообщайте коллегам свои рабочие часы</h3><p>Мы советуем нашим наставникам и ревьюерам создавать отдельную папку в мессенджере под работу, чтобы разделять контекст личной жизни и работы. У нас все работают в разных часовых поясах, мы относимся к этому с пониманием и заранее обговариваем удобное время для встреч. Те, кто живут в другом часовом поясе, выстраивают свой рабочий день совсем по-другому: если мы созваниваемся вечером, у них только утро. Удобно, если в мессенджере есть возможность поставить статус или в описании зафиксировать, по какому часовому поясу ты живешь. В наши времена это супер актуально.</p><h2>Как в развитии софтов может помочь школа Яндекс Практикума</h2><p>У каждого из нас свой опыт обучения и, честно говоря, не всегда хороший. Мы всё время наблюдали, как люди транслируют свой опыт: родители, учителя в школе или преподаватели в университете. Кто-то делал это мягко и доходчиво, а кто-то директивно и сложно. Важно понимать, что этих людей редко кто учил, как можно мягко и эффективно передавать свой опыт другим.</p><p>Мы же стараемся подготовить наших экспертов как раз к такой передаче опыта и обучаем следующему:</p><ul><li>как учатся студенты;</li><li>созданию безопасной атмосферы, в которой комфортно проходить обучение;</li><li>здоровой коммуникации со студентами: мягкому tone of voice, письменной коммуникации, алгоритмам решения сложных ситуаций;</li><li>работе с эмоциональным интеллектом;</li><li>как давать обратную связь;</li><li>инструментам передачи опыта;</li><li>проведению онлайн-вебинаров.</li></ul><p>Наставник передает свой опыт с помощью двух основных сред: общаясь со студентами в чате и проводя вебинары. У каждой среды есть свои особенности. Например, в рамках проведения вебинаров есть ряд инструментов публичного выступления в онлайне, которые мы можем применять в рамках обучения.</p><p>При этом у нас нет цели превращать вебинар в шоу, а основная задача наставника — добиться образовательного результата для студентов. Поэтому человеку нужно научиться проводить вебинары и передавать опыт в них. Вот чему мы учим для эффективного проведения вебинара:</p><ul><li>составлению структуры вебинара;</li><li>групповой динамике и взаимодействию с участниками;</li><li>технической подготовке (важно помнить про стабильный интернет, камеру, ровный фон и отсутствие посторонних шумов);</li><li>публичным выступлениям в онлайне: расположению в камере, работе с голосом, объяснению сложных идей.</li></ul><p>Важно проговаривать любые детали, которые кажутся банальными, так как не для всех очевидно, что это влияет на внимание аудитории. Все это применимо и к рабочим созвонам, разница между обучением и работой невелика — и там, и там вы взаимодействуете с людьми и что-то им транслируете.</p><p>Благодаря подготовке к работе со студентами и постоянной практике передачи опыта, наши эксперты быстро развивают свои софты, а значит, растут профессионально: из джунов в мидлы, из мидлов в синьоры. Помимо того, что эксперт знает технические аспекты, он может их объяснить, эффективно делегировать задачи, дать развивающую обратную связь в корректной форме.</p><p>Школа наставников доступна всем, кто пройдет этапы отбора на роль наставника в Практикуме. Узнать, какие роли открыты сейчас, можно <a href="https://tprg.ru/NKOD">здесь</a>.</p><p><i>Реклама АНО ДПО «Образовательные технологии Яндекса», LjN8JtbN9</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Деплой монолита на .NET Framework 4.8 и Oracle с помощью Ansible</title>
      <link>https://tproger.ru/articles/deploj-monolita-na-net-framework-4-8-i-oracle-s-pomoshhju-ansible</link>
      <comments>https://tproger.ru/articles/deploj-monolita-na-net-framework-4-8-i-oracle-s-pomoshhju-ansible?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Мария Кривоченко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/deploj-monolita-na-net-framework-4-8-i-oracle-s-pomoshhju-ansible</guid>
      <description><![CDATA[<p>Рассказываем, как мы настроили деплой монолитного приложения на Ansible и поделились фишками, статьями и скриптами, которые помогут в работе</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/deploj-monolita-na-net-framework-4-8-i-oracle-s-pomoshhju-ansible">Деплой монолита на .NET Framework 4.8 и Oracle с помощью Ansible</a>»</p>]]></description>
      <category><![CDATA[Архитектура ПО]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 30 Dec 2022 12:29:17 GMT</pubDate>
      <content:encoded><![CDATA[<p>В статье расскажу, как настроить деплой монолита на Ansible, как перейти с PowerShell и как ускорить развёртывание приложения и базы данных. А ещё поделюсь полезными фишками, статьями и скриптами, которые помогут в работе.</p><ol><li><a href="https://tproger.ru/#part1">Почему Ansible, а не PowerShell</a></li><li><a href="https://tproger.ru/#part2">Как настроить деплой приложения</a></li><li><a href="https://tproger.ru/#part3">Как деплоить базу данных Oracle</a></li><li><a href="https://tproger.ru/#part4">Деплой бэкенда и фронтенда приложения</a></li><li><a href="https://tproger.ru/#part5">И пара лайфхаков</a></li></ol><h2>Почему Ansible, а не PowerShell</h2><ul><li>Один подход написания плейбуков для Windows и Linux-серверов. То есть у нас есть единая среда автоматизации. И если ты умеешь писать под Linux, то сможешь и под Windows.</li><li>Достаточно декларативный язык. Мы указываем, что хотим получить на выходе, и Ansible своим движком выдаёт результат.</li><li>Ansible позволяет хранить всю инвентаризацию серверов и стендов (а только в нашей системе их порядка десяти, плюс различные настройки приложения для разных стендов).</li><li>Огромное количество модулей для работы с различными фреймворками, программным обеспечением и железом.</li><li>Есть полная поддержка Redhat.</li></ul><p>Тем, у кого планируется большой объём автоматизации на Ansible или других скриптах и требуется комплексное управление всем этим процессом, стоит посмотреть в сторону opensource проектов AWX или Rundeck.</p><h2>Как настроить деплой приложения</h2><h3>Подготовить серверы</h3><p>Сперва открываем сетевые проходы от Linux-агентов в TeamCity до управляемых серверов. Это порты 5985/tcp, 5986/tcp для Windows и 23/tcp в Linux для SSH.</p><p>Затем добавляем учётную запись, под которой мы будем подключаться и управлять конечными серверами в локальную группу Администраторы. Включаем службу WinRM — настройки по умолчанию будет достаточно — и аутентификацию CredSSP (другие виды аутентификации либо сложно настроить в компании, либо вовсе нельзя).</p><p>После остаётся только подготовить инструменты для работы с самим Ansible. Я использую Git, VS Code и набор плагинов: GitLens, Redhat Ansible, Redhat XML и Prettier — Code formatter.</p><h3>Создать репозиторий для деплоя</h3><p>В Bitbucket создаём отдельный репозиторий, где будем хранить всё, что связано с деплоем на Ansible. Это нужно, чтобы отделить скрипты деплоя от репозитория проекта системы, тем самым ограничив права доступа к ним. Доступ должен быть только у DevOps-инженеров и прикладных администраторов. Мало ли кто случайно поправит конфиг-файл для продуктивного сервера — и после деплоя получим неработающее приложение.</p><h3>Подготовить билд конфигурации в TeamCity для запуска Ansible</h3><p>Сначала готовим отдельную build configuration (далее — билд), которая собирает Ansible плейбуки для конкретной задачи. Этот билд подключается в build chain общего процесса деплоя, после того как все артефакты прошли проверки ИБ и загружены в хранилище Nexus.</p><p>Это позволяет параллельно использовать билд Ansible для разных веток проекта.</p><p>Допустим, в проекте требуется создать новый Windows-сервис. Разработчики создают отдельную ветку для этой задачи и разрабатывают сервис. Но нам надо уже готовить деплой для будущего сервиса: установить сервис, настроить файлы конфигурации. Чтобы ничего не ломать в текущем деплое, в Ansible-проекте создаём ветку с аналогичным названием под разработку этой новой фичи и тестируем их параллельно.</p><p>После того как сервис будет готов и протестирован вместе с нашим изменённым деплоем, делаем Pull Request в master-ветку Ansible. И получаем master-деплой, уже скорректированный под новый сервис.</p><h2>Как деплоить базу данных Oracle</h2><ol><li>Разработчики готовят изменения в БД в виде SQL-запросов и помещают в changeset Liquibase, которые применяются в процессе обновления.</li><li>Liquibase артефакты проходят проверку синтаксиса и проверку на безопасность, после чего загружаются в Nexus.</li><li>Ansible в виде плейбука запускает процесс применения миграций.</li><li>После обновления БД, Ansible проверяет логи Liquibase, была ли успешной миграция. Если всё хорошо, он переходит к следующей схеме, если нет — выводит сообщение об ошибке.</li></ol><p>Liquibase можно запускать напрямую из агентов TeamCity, в виде команды liquibase —changelog-file=master.changelog.xml update-sql, но мы поместили его запуск в Ansible, чтобы весь процесс деплоя был в плейбуке и не хранился в билдах TeamCity.</p><p>Зелёным цветом подсвечиваем успешные выполнения задач, а красным то что выполняется с ошибкой.</p><p>Иногда миграция БД завершается ошибкой, чаще всего из-за неверных SQL-скриптов. Такие ошибки передаются специалисту, который занимался их разработкой.</p><h3>Почему Liquibase</h3><p>В нашем проекте, в БД хранятся не только данные, но логика приложения (да-да, так тоже бывает, когда приложению более 10 лет).</p><p>И так как у нас есть множество стендов (Dev/Test/Prod и другие), то нужно контролировать процесс миграции схемы базы данных. Запускать файлы с SQL-скриптами для можно, но процесс требует человеческого контроля. А где человек — там потенциальные ошибки: не доглядел, забыл, не проверил. В итоге через какое то время БД на разных стендах будет отличаться. Поэтому для управления процессом миграции схем мы используем Liquibase. Кроме того, он:</p><ul><li>позволяет хранить все изменения, которые мы вносим в базу данных в виде кода;</li><li>позволяет делать ревью миграции;</li><li>лучше контролирует процесс изменения схемы БД;</li><li>разрешён к использованию внутри компании.</li></ul><h2>Деплой бэкенда и фронтенда приложения</h2><p>Ansible из коробки управляет файлами и фаерволом, создаёт сайты и пулы приложений в IIS, настраивает порты, привязывает SSL-сертификаты и многое другое.</p><p>Это ускоряет создание деплоя. Мы можем взять пустой сервер с ОС Windows, запустить установку фронтенда или бэкенда и Ansible настроит всё за нас:</p><p>проверит папку приложения и SSL-сертификат;</p><ul><li>загрузит файлы приложения из Nexus и скопирует на сервер в нужную папку;</li><li>настроит пул приложений и сайт и привяжет порты и SSL-сертификата;</li><li>настроит XML-файлы конфигурации приложения — об этом подробнее ниже;</li><li>настроит аутентификацию для приложения;</li><li>проверит, что все всё запущено и работает;</li><li>настроит сервис Windows.</li></ul><p>На выходе мы получаем готовый бэкенд, фронтенд или интеграционный сервис. Все настройки приложения хранятся в файлах инвентаризаций  для стендов. А для каждого сервера есть переопределения имен, путей к папкам, сертификатов, конфигурационных параметров и прочее.</p><p>Кстати, мы используем и сокращённую версию деплоя, которая пропускает половину задач: останавливает сервис, обновляет файлы и конфигурацию и запускает сервис в работу. Делается это при выполнения плейбука Ansible с помощью тэгов. Такой подход ускоряет деплой примерно на 30%, используется при разворачивании фич на тестирование.</p><h3>Отдельное внимание стоит обратить на файлы конфигураций</h3><p>В .NET Framework 4.8 и ниже конфигурация приложения хранится в XML-файлах  web.config или app.config (далее — конфиг-файл). Из-за этого возникают проблемы:</p><ul><li>надо заботиться об информационной безопасности — то есть в файлах конфигураций не должно быть паролей, токенов и всего что запрещено регламентами ИБ;</li><li>при автоматизации деплоя, нужно оставить возможность откатиться на предыдущую версию;</li><li>кто-то из сотрудников может случайно изменить конфигурацию при коммите; и приложение может перестать работать</li><li>сложно динамически переопределить некоторые параметры конфигурации для стендов.</li></ul><p>В .NET версий, 5.0 и выше всё чуть проще: можно хранить конфиги внутри проекта с переопределением для конкретных стендов, а также использовать app secrets и dotnet_environment. В другом проекте, мы уже используем именной такой подход.</p><p>Есть два варианта решения.</p><h4>Использовать механизм трансформации конфиг-файлов msbuild</h4><p>Мы делаем несколько конфиг-файлов под разные стенды или серверы. И в момент сборки, указываем в Configuration Manager, для какой среды собираем проект: Test, Dev или Prod. Затем msbuild через схему XDT меняет конфиг и помещает его в папку с остальными артефактами приложения</p><p>У такого подхода есть несколько минусов:</p><ul><li>все настройки и схема изменения хранятся внутри проекта;</li><li>конфиг собирается в момент сборки, хранится в артефактах приложения и уже в готовом виде попадает на стенд в процессе деплоя;</li><li>изменениями конфиг-файлов занимаются разработчики;</li><li>хранение паролей в открытом виде в Git и артефактах.</li></ul><p>Да, есть механизм шифрования секций конфигурационных файлов. Но он не снимает проблемы с хранением в  Git — и достаточно сложный в эксплуатации. Лучше доработать приложение, чтобы оно взаимодействовало с ПО HashiCorp Vault или Cyberark.</p><h4>Шаблонизировать конфиг-файлы в Ansible</h4><p>В Git по умолчанию хранится конфигурационный файл с базовыми настройками. Так, разработчикам удобнее работать на локальных машинах.</p><p>В Ansible хранится файл вида app.config.xdt.j2, в котором хранится шаблонизированная схема XDT для модификации эталонного файла. Звучит странно, но это самый гибкий, безопасный и удобный в эксплуатации способ.</p><p>Первичные затраты времени на подготовку таких xdt.j2-файлов, сводятся к сравнению эталонного конфиг-файла с тем что есть на стенде. С этим помогает утилита FatAntelope, которая сравнивает файлы и готовит XDT-схему для модификации. Схему мы помещаем в Jinja-файл и шаблонизируем конкретные параметры.</p><p>То есть в процессе деплоя приложения мы делаем следующее:</p><ol><li>формируем схему: xdt.j2 -&gt; XDT-схема;</li><li>применяем её к эталонному конфигу: Git config + XDTсхема</li><li>gолучаем .config-файл для стенда</li></ol><p>Минусы:</p><ul><li>тратится время на модификацию xdt.j2-файлов</li></ul><h2>И пара лайфхаков</h2><h3>Ускоряем Ansible</h3><p>Когда мы использовали PowerShell для деплоя приложения, запуск скрипта и обновление файлов занимали 20–30 секунд. Но плейбуки на Ansible занимали по 1–2 минуты. Мы начали искать способы ускорить работу.</p><p>Сперва оптимизировали запуск самого PowerShell. В чём суть? Библиотеки, связанные с PowerShell, лежат не в машинных кодах, а выполняют JIT-компиляцию каждый раз в момент запуска PowerShell. Это тормозит запуск любого скрипта Ansible.</p><p>Чтобы такого не было, достаточно выполнить скрипт, который предлагают сами разработчики Ansible, один раз на всех серверах.</p><p>Так, выполнение плейбуков на Windows ускорится на 20–30%.</p><p>Затем мы выяснили, что в Ansible начиная с версии 2.7 добавлена поддержка протокола PSRP. Это ускоряет работу плейбуков ещё на 30%. Из минусов — протокол не так просто включить в нашем случае, так как нужно скачать несколько пакетов и установить их на агентах в TeamCity, где используется Ansible. Для большинства же, всё просто: pip install pypsrp.</p><p>Третий способ — установить OpenSSH 8-й версии на Windows Server и подключаться к нему по SSН-протоколу, а не WinRM. Это тоже ускорит работу, но фактические замеры мы не делали.</p><h3>Добавляем статистику</h3><p>В Teamcity логи Ansible красиво подсвечены, и в конце есть статистика скорости выполнения плейбука и конкретных задач. Это включается добавлением в корень проект деплоя Ansbile конфига anisible.cfg.</p><h3>Линтинг скриптов Ansible</h3><p>Мы достаточно много времени тратим на разработку деплоя. И хорошо бы перед его запуском проверять общее качество кода, синтаксические ошибки. Для этого используйте линтер Anisble, который установлен на агентах TeamCity.</p><p>Нужно установить триггер в TeamCity на появление нового коммита или Pull Request в проекте деплоя. И после автоматом проверяете код на потенциальные ошибки.</p><h3>Тестируем деплой</h3><p>Обычно стенды Dev/Test/Prod отличаются друг от друга. На Dev стенде всё устанавливается на одном сервере, а в продуктиве всё разнесено по разным серверам и используется балансировка.</p><p>Мы часто меняем и рефакторим деплой приложений. И чтобы быть уверенными, что на всех стендах от отработает корректно, необходимо тестировать его после каждого изменения.</p><p>Самое простое — запускать его на стенды. Но если это не получается сделать, например, они все заняты тестировщиками и разработчиками, можно добавить параметр —check во время запуска плейбука. Тогда плейбук отработает всю логику, но без фактического применения на сервере, и вы убедитесь, что всё работает корректно. Для удобства можно сделать кнопку «Тестовый запуск».</p><p>Важно! Не все модули корректно работают в режиме –check. Если вы сначала загружаете файл артефакта, а потом распаковываете его, даже при тестовом запуске он будет реально искать файл для распаковки. А не найдя его выдаст ошибку. Решается это с помощью параметра check_mode: no.</p><p>На этом всё, если будут вопросы пишите. А если что-то заинтересует, расскажем подробнее.</p>]]></content:encoded>
    </item>
    <item>
      <title>100 бесплатных шаблонов резюме для IT-специалиста</title>
      <link>https://tproger.ru/articles/kak-sostavit-tvorcheskoe-rezjume-100-krutyh-shablonov</link>
      <comments>https://tproger.ru/articles/kak-sostavit-tvorcheskoe-rezjume-100-krutyh-shablonov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Марина Галенкова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-sostavit-tvorcheskoe-rezjume-100-krutyh-shablonov</guid>
      <description><![CDATA[<p>Держите бесплатные образцы для резюме, которое не стыдно направить в IT-компанию. Выбирайте любое, ведь всё бесплатно.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-sostavit-tvorcheskoe-rezjume-100-krutyh-shablonov">100 бесплатных шаблонов резюме для IT-специалиста</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Пост пользователя]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 03 Aug 2022 10:36:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Многие воспринимают резюме как строгий документ для описания навыков и опыта работы. Но на самом деле в него можно внести нотку креатива, причем так, что выглядеть это будет уместно.</p><p>Рассказываем, как составить творческое резюме, которое понравится IT-рекрутеру: где найти оригинальный шаблон и на что обратить внимание при выборе.</p><h2>Кому подойдет творческое резюме</h2><p>Сразу обратим ваше внимание на то, что претендентам на некоторые позиции лучше все-таки заполнять CV в сдержанном классическом стиле. Например, руководителям всех уровней или проектным менеджерам.</p><p>Однако в некоторых направлениях нестандартный подход к заполнению анкет только приветствуется. Итак, кому нужно творческое резюме:</p><ul><li>Маркетолог;</li></ul><ul><li>Пиарщик;</li></ul><ul><li>Иллюстратор;</li></ul><ul><li>UI/UX-дизайнер;</li></ul><ul><li>Graphics programmer;</li></ul><ul><li>Архитектор VR;</li></ul><ul><li>Science-художник.</li></ul><p>Список можно продолжать, но смысл понятен. Представителям любых творческих профессий стоит учиться упаковывать резюме в красивую обертку, — это верный способ подчеркнуть свою индивидуальность и заинтересовать HR-менеджера.</p><h2>Рекомендации по оформлению творческого резюме</h2><p>Если вы хотите составить креативную анкету, не спешите «украшать» ее кричащими цветами, фигурными рамочками и витиеватым орнаментом. Такие крайности только отпугнут потенциального работодателя.</p><p>Чтобы продемонстрировать свою неординарность, лучше разнообразить резюме на творческую работу следующими элементами:</p><ul><li>Инфографикой. Иконки, таймлайны, пиктограммы, диаграммы сделают документ более наглядным и простым для восприятия. Главное, чтобы они были «в тему».</li></ul><ul><li>Цветными акцентами. Можно их равномерно распределить по разделам или, наоборот, обозначить какой-то один блок. Лучше использовать спокойные оттенки.</li></ul><ul><li>Качественной фотографией. Снимок, на котором вы естественно улыбаетесь, создаст эффект личного присутствия.</li></ul><ul><li>Структурированием текста. В большинстве типичных CV вся информация сливается воедино. Так, что читателю сложно понять, где заканчивается один раздел и начинается другой, а важные моменты «теряются». Чтобы этого не произошло, разбивайте текст на логические блоки с помощью подзаголовков, списков, различных начертаний шрифта.</li></ul><p>Используя перечисленные рекомендации, не забывайте о том, что резюме —деловой документ. Творчество — это, конечно, хорошо, но в меру. Не забудьте наполнить анкету качественным содержанием. Обязательно напишите о релевантном опыте, карьерных достижениях и ключевых скилах. Остальное — на ваше усмотрение.</p><h2>100 шаблонов для создания творческого резюме</h2><p>Чтобы вы не потерялись в разнообразии бланков, воспользуйтесь кратким обзором шаблонов для создания творческого резюме со ссылками для скачивания.</p><h3>Динамичный бланк от Майкрософт</h3><p>Креативный макет для Microsoft Word сочетает в себе лаконичность и современный стиль. Теплые оттенки и геометрические формы выглядят завораживающе. Изюминка бланка — необычная подача контактной информации на фоне цветных скругленных прямоугольников.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/Tvorcheskoe-rezjume-1a.png" alt="" /></figure><p><a href="https://templates.office.com/RU-RU/%D1%81%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5-%D1%80%D0%B5%D0%B7%D1%8E%D0%BC%D0%B5-%D1%81-%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B5%D0%B9-TM33719486">Скачать макет</a></p><h3>8 стильных шаблонов</h3><p>Интересный образец творческого резюме, который можно адаптировать под любую должность. Стильные детали — ненавязчивый спокойный оттенок, иконки и диаграммы в виде эквалайзера. На заполнение анкеты в онлайн-режиме уйдет не более 10 минут. Если хотите разнообразия, к вашим услугам еще 7 дизайнерских макетов.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/Tvorcheskoe-rezjume-2a.png" alt="" /></figure><p><a href="https://myresume.ru/templates/">Перейти в галерею шаблонов</a></p><h3>Бланк для продвинутых</h3><p>По-настоящему яркий шаблон. Все блоки здесь четко разделены контрастными цветными прямоугольниками. Из креативных элементов отметим таймлайн в разделах с образованием и опытом работы, а также место под QR-код. Отличный вариант для графических дизайнеров и иллюстраторов.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/Tvorcheskoe-rezjume-3a.png" alt="" /></figure><p><a href="https://bestfreecv.com/en/new-cv-to-download/">Скачать бланк</a></p><h3>6 макетов для утонченных натур</h3><p>Шаблон, идеально подходящий для женщин. Нежно-лиловый цвет подчеркнет изысканность и неповторимый вкус соискательницы. Беспроигрышный вариант при устройстве как в стартап, который ищет таланты, так и в крупную IT-компанию.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/Tvorcheskoe-rezjume-4a.png" alt="" /></figure><p>Этот макет и 5 бланков для оформления творческого резюме с примерами заполнения можно скачать <a href="https://www.resumeviking.com/templates/creative/">здесь</a>.</p><h3>Креативный шаблон резюме</h3><p>Главные фишки этого бланка — черный фон и диагональные линии. Резюме, составленное на его основе, даже без фото сразу зацепит внимание рекрутера. На первый взгляд, может показаться, что писать под таким наклоном будет неудобно. Однако при редактировании текст принимает привычное положение.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/Tvorcheskoe-rezjume-5a.png" alt="" /></figure><p><a href="https://www.resumgo.com/cv/virgil-dynamic-green-black-resume-template/">Начать работу с документом</a></p><h3>32 ярких бланка</h3><p>Ключевая информация здесь выведена на первый план. Внимание читателя сразу захватывает расположенная по центру яркая полоса со скилами, так что сомневаться в профессионализме соискателя точно не придется. В зависимости от расширения файлов Microsoft Word, установленного на компьютере, пользователи могут <a href="https://www.my-resume-templates.com/cv-pattern/">скачать бланк</a> в форматах .doc или .docx.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/Tvorcheskoe-rezjume-6a.png" alt="" /></figure><p>На сервисе доступен еще 31 шаблон для оформления креативной анкеты. <a href="https://www.my-resume-templates.com/modern-resume-samples/">Посмотреть</a>.</p><h3>Лаконичные детали</h3><p>Разработчики этого макета сделали ставку на простоту. Добавляют оригинальности широкие цветные рамки. За визуальную составляющую можно не переживать — такой документ точно не останется незамеченным.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/Tvorcheskoe-rezjume-7a.png" alt="" /></figure><p><a href="https://www.freesumes.com/free-resume-download-level-up/">Скачать шаблон</a></p><h3>Красота в простоте</h3><p>Бланк в спокойных серо-голубых тонах — отличная возможность показать свой безукоризненный вкус и внимание к деталям. Вишенка на торте — скилы, представленные в виде диаграммы. Посмотрите, как они гармонируют с фото! Классное решение при устройстве на позицию маркетолога или PR-менеджера.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/Tvorcheskoe-rezjume-8a.png" alt="" /></figure><p><a href="https://cv.devat.net/cv/professional-resume-template-2/">Скачать бланк</a></p><h3>33 нескучных и элегантных макета</h3><p>Широкие прямоугольники в сдержанных оттенках с левой стороны <a href="https://www.resume-sample.com/creative/cubism-resume.php">шаблона</a> указывают на решительность кандидата. А «мягкие» навыки, изображенные в виде пиктограмм, смотрятся очень оригинально. С таким резюме выделиться из толпы конкурентов не составит труда.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/Tvorcheskoe-rezjume-9a.png" alt="" /></figure><p>Еще 32 оригинальных бланка для написания нестандартного резюме можно посмотреть на <a href="https://www.resume-sample.com/creative/">этом сайте</a>.</p><h3>В центре внимания</h3><p>Этот макет не так прост, как кажется. Разноцветные блоки в «шапке» документа подчеркивают индивидуальность соискателя, его умение находить простые и эффективные решения. При необходимости можно добавить дополнительные блоки или убрать лишние.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/Tvorcheskoe-rezjume-10a.png" alt="" /></figure><p><a href="https://wemeancareer.com/free-modern-resume-coral">Скачать шаблон</a></p><h3>Шаблон для уверенных в себе кандидатов</h3><p>Согласитесь, этот бланк смотрится круто? Здесь есть фоновая картинка, которую можно заменить на изображение, подходящее под вашу профессию. А иконки в поле с компетенциями напоминают главного героя культовой игры Pac-Man.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/Tvorcheskoe-rezjume-11a.png" alt="" /></figure><p><a href="https://cv.devat.net/cv/creative-resume-template/">Заполнить этот шаблон</a></p><h3>14 бланков, достойных внимания</h3><p>Синее небо и воздушные облака органично вписываются резюме творческого человека. <a href="http://free-resume-templates.net/free-modern-resume-template-6/">Макет</a> сочетает в себе основательность и непринужденность. Главный упор — на опыт работы и профессиональные достижения.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/Tvorcheskoe-rezjume-12a.png" alt="" /></figure><p>Еще 13 бесплатных бланков для создания запоминающегося CV можно скачать <a href="http://free-resume-templates.net/">здесь</a>.</p><h2>Подведем итоги</h2><p>Даже у творческих людей иногда иссякает поток фантазии. Если вам срочно нужна работа, но нет времени «ловить вдохновение» и «ждать музу», воспользуйтесь одним из предложенных шаблонов.</p><p>Любой бланк можно откорректировать под собственный вкус: поменять цветовую палитру, включить или исключить разделы, добавить инфографические элементы. Главное, чтобы в погоне за креативом не пострадало качество анкеты, и ваше творческое резюме было интересно читать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как работать с protobuf в Go</title>
      <link>https://tproger.ru/articles/working-with-protobuf-in-go</link>
      <comments>https://tproger.ru/articles/working-with-protobuf-in-go?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Типичный программист]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/working-with-protobuf-in-go</guid>
      <description><![CDATA[<p>Protobuf — механизм сериализации структур данных, придуманный Google: как его применяют в Ozon, где на Go написано около 60% сервисов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/working-with-protobuf-in-go">Как работать с protobuf в Go</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Golang]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 25 Aug 2020 05:30:27 GMT</pubDate>
      <content:encoded><![CDATA[<p>E-commerce давно перестали быть сайтами с картинками — сегодня это огромные онлайн-платформы с множеством высоконагруженных сервисов. В Ozon порядка 60% сервисов — от инфраструктурных проектов до пользовательских — написано на Go, в IT-лаборатории компании сейчас одна из самых больших golang-команд России. Об инструментах разработки и трендах в развитии языка рассказывает Владимир Сердюков, ведущий разработчик группы «Личный кабинет» Ozon.</p><p>Как-то ко мне пришел тестировщик и показал тестовый смартфон, на котором было запущено наше приложение — но вместо текста и элементов интерфейса на нем был белый экран. Мы начали разбираться.</p><p>Понять, почему это произошло, можно будет ближе к концу статьи, но забегая вперед (спойлер) — отсутствовало одно из обязательных полей в выдаче от бэкенда.</p><h2>Почему эту проблему стоит обсуждать?</h2><p>Страница сайта и экран мобильного приложения состоят из множества виджетов. Каждый из них — это контракт, то есть договоренность, в каком виде он придет от бэкенда и как его показывать на клиенте. Если в контракте будет ошибка, это может нарушить работоспособность целого приложения (на самом деле уже нет, но раньше могло).</p><p>Подобные проблемы сложно локализовать, и они не заметны на этапе тестирования. Как же тогда их решить? Я бы рекомендовал следующее:</p><ul><li>использовать один контракт для разных платформ (в одном виде для desktop, приложения и т.д.);</li><li>хранить контракты в одном репозитории;</li><li>генерировать код под разные платформы (не писать вручную, забыть про копипасту).</li></ul><h2>proto 2 vs proto 3</h2><p>Для работы с контрактами мы в Ozon используем protobuf — механизм, придуманный Google для сериализации структур данных. Чтобы из proto-файлов сгенерировать код, мы используем proto 3 с набором плагинов, один из которых — gogoproto, призванный упростить этот процесс и частично забороть особенности proto v3.</p><p>Предыдущая версия протокола (proto 2) позволяла реализовывать обязательные поля при помощи тега optional и задавать стандартное значение. Однако это приводило к проблемам портирования возможности генерации кода на другие языки программирования.</p><p>Это стало причиной появления proto 3. В новой версии протокола поменялось отношение к обязательным полям: все поля стали необязательные, а значения по умолчанию просто не отправляются. Кроме того, были исправлены enum, улучшен декодинг в json и внесены другие мелкие изменения.</p><h2>Как сделать поля обязательными в proto 3</h2><p>Чтобы сделать поля обязательными, можно использовать Well-known типы данных. Это может быть строка, булево значение, число, timestamp и тому подобное.</p><figure><img src="https://media.tproger.ru/uploads/2020/08/image1-1.jpg" alt="" /></figure><p>Если появляется такая строка, значит поле отправится вне зависимости от того, что вы в него записали. Однако сложные типы данных (proto-сообщение) все равно остаются необязательными. Тут на помощь приходит плагин gogoproto, где можно указать, что ваша структура не nullable.</p><figure><img src="https://media.tproger.ru/uploads/2020/08/image3-1.jpg" alt="" /></figure><p>Кроме того, можно сделать свой собственный форк jsonpb. Это библиотека, которая proto-сообщения генерирует в json. В нее добавлены три вида тегов — написав их в любом месте файла, можно не переживать, что сообщение не будет отправлено.</p><figure><img src="https://media.tproger.ru/uploads/2020/08/image2.jpg" alt="" /></figure><h2>Как проверить, что новые изменения не ломают контракты?</h2><p>Теперь понятно, как можно сделать поля обязательными, но что делать, если вдруг поле перестало быть обязательным или произошло что-то еще?</p><p>Для этого есть несколько инструментов для валидации proto-файлов, например buf.build и uber/prototool.</p><p>Оба инструмента работают по схожей схеме: чтобы запустить валидацию, создайте yaml-файл, в нем укажите конфигурацию, какие proto-файлы надо проверить, а какие нет. Также можно указать, какую ветку из репозитория брать. В обоих случаях работа идет только с git.</p><p>uber/protool пока не поддерживает apiv2, поэтому стоит приглядеться внимательнее к buf.build.</p><h2>Что такое apiv2?</h2><p>Поддержка работы с protobuf в Go впервые была анонсирована в 2010 году, первая версия Go вышла только спустя два года. С тех пор прошло много времени, изменились требования.</p><p>В итоге, несколько месяцев назад, 2 марта 2020 года, была анонсирована apiv2. Вот что изменилось по сравнению с прошлой версией:</p><ul><li>появилась рефлексия для proto.Message;</li><li>канонический маппинг для json-полей;</li><li>улучшение производительности;</li><li>не получится использовать старые плагины и инструменты.</li></ul><p>Давайте рассмотрим пример того, что теперь можно сделать из коробки. Есть api, возвращающее данные, которые мы не хотим показывать в логах (например, пароли пользователей, номера банковских карт и т.п.).</p><figure><img src="https://media.tproger.ru/uploads/2020/08/image5.jpg" alt="" /></figure><p>Для этого подключаем специальный пакет google.protobuf.FieldOptions и сразу добавляем флаг non_sensitive. Он будет отвечать за то, нужно ли маскировать данные внутри ответа. Выставим по умолчанию значение false (привет, proto2).</p><p>Дальше в функции-обработчике где-нибудь в середине формирования сообщения делаем следующее:</p><figure><img src="https://media.tproger.ru/uploads/2020/08/image4.jpg" alt="" /></figure><p>Подключаем новый интерфейс — ProtoReflect() и используем функцию Range().</p><p>Таким образом проходимся по все кастомным полям и проверяем значение non_sensitive поля (конечно же, используя рефлексию). Как только находим поле, в котором нужно убрать данные, вызываем Clear().</p><p>Таким нехитрым способом можно реализовать разные бизнес-кейсы.</p><h2>Что в итоге?</h2><ul><li>В новых проектах используйте proto3.</li><li>apiv2 для Go не просто можно, но и нужно использовать.</li><li>Не забывайте валидировать свои proto-файлы.</li><li>Buf.build выглядит перспективно.</li><li>Плагины для генерации go-кода не актуальны, но можно увидеть много проектов, где они еще используются.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Code review — как это делать в стиле Google?</title>
      <link>https://tproger.ru/translations/code-review-a-la-google</link>
      <comments>https://tproger.ru/translations/code-review-a-la-google?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Сергей Штукатуров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/code-review-a-la-google</guid>
      <description><![CDATA[<p>Научитесь проводить code review как в Google: узнайте о главных принципах, балансе между развитием разработчика и качеством кода, и как применять стандарты.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/code-review-a-la-google">Code review — как это делать в стиле Google?</a>»</p>]]></description>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 19 Oct 2019 12:47:36 GMT</pubDate>
      <content:encoded><![CDATA[<p>Рано или поздно для каждого программиста настаёт время отвлечься от собственного кода и оценить чужой. Осознав неизбежность этой работы, вам нужно будет решить, как цензурно выразить всё, что вы думаете о рецензируемом коде. Мы расскажем, как с этой задачей справляются в Google.</p><h2>Стандарты</h2><p>Главная цель code review в Google — постоянно совершенствовать кодовую базу. Соответственно, если вы делаете обзор на код, являющийся частью большого проекта, — подумайте в первую очередь не о сиюминутных решениях, а о том, как это повлияет на весь проект в перспективе. Есть два аспекта, которые вам придётся отбалансировать.</p><h3>Дилемма обозревателя</h3><p>С одной стороны, разработчику нужно предоставить возможность развиваться. Если вы честно скажете, что он наваял полный бред, который не пойдёт в кодовую базу ни под каким видом, вы можете лишить его всякого желания работать над улучшением кода.</p><p>В то же время нужно придерживаться стандартов качества кодовой базы проекта. Иногда кажется, что немного костылей и просто не слишком хорошего кода — не так уж и страшно, но такие вещи имеют свойство накапливаться.</p><h2>Главное правило</h2><p>Запомните, именно вам предстоит найти баланс, позволив кодерам развиваться, и в то же время не пожертвовав качеством кода.</p><p>Отсюда главное правило: даже если сам код, с вашей точки зрения, не идеален и не полностью соответствует стандартам вашей компании, его нужно добавить в базу, если вы уверены, что он улучшит проект.</p><p>Естественно, из этого правила бывают исключения. Например, если предложенный код добавляет фичу, которая определённо не нужна в проекте, от одобрения надо отказаться, как бы хорош ни был сам код.</p><h2>Наставничество</h2><p>Оставляйте комментарии, делитесь своим опытом, в перспективе это улучшит код, который достанется вам от этого разработчика в будущем. Однако следует разделить указания, обязательные к выполнению и общие рекомендации. В Google советуют использовать для последних префикс «Nit:» (от слова «nitpicking», придирка). Не обязательно обозначать рекомендации именно так, это просто общеупотребительный способ.</p><h2>Принципы</h2><ul><li>Факты и данные важнее личного мнения и персональных предпочтений.</li><li>Стиль кода должен соответствовать принятому в вашей команде. Если какой-то момент не оговорён — оставляйте его на усмотрение кодера.</li><li>Архитектура кода должна соответствовать принципам, лежащим в основе проекта. Если есть несколько способов решить задачу — выбирайте тот, который соответствует этим принципам. Если есть несколько равно эффективных вариантов — оставьте выбор за автором кода.</li><li>Можно попросить автора согласовать стиль кода с текущей кодовой базой, если это не ухудшит общего качества.</li></ul><h2>Разрешение конфликтов</h2><p>В случае разногласий с кодером постарайтесь найти вариант, устраивающий обоих. В первую очередь обратитесь к чётко прописанным стандартам проекта. Возможно, будет лучше обсудить проблему при личной встрече или по видеосвязи.</p><p>Если это не помогает, стоит расширить дискуссию, вовлекая других членов команды, тимлида, эксплуатационников и инженеров. Не допускайте, чтобы вашего решения приходилось ждать слишком долго из-за разногласий с кодером.</p><h2>Что нужно проверить в рецензируемом коде</h2><ul><li>Общая структура. Как код вписывается в ваш проект.</li><li>Функциональность. Способен ли код полностью удовлетворить поставленные задачи.</li><li>Удобство. Интуитивность UI и соответствие его общему стилю.</li><li>Многопоточность. Рецензируемый код не должен конфликтовать с другими элементами кодовой базы при многопоточном выполнении. То же касается и внутренних конфликтов кода.</li><li>Простота. Код не должен быть слишком громоздким. Максимально упрощаем, но не в ущерб качеству и функциональности.</li><li>Перспектива масштабирования. Возможно, в коде могут быть реализованы некоторые возможности, востребованные в будущем, сообщите об этом разработчику.</li><li>Наличие тестов (модульные, интеграционные и так далее). Внимательно изучите их структуру.</li><li>Преемственность разработчиков. Все переменные, поля, функции, вообще все объекты и элементы в коде должны иметь ясные, однозначные имена. Комментарии к коду ясно и чётко объясняют, зачем нужен каждый элемент. Обратите внимание, вопрос «зачем это» важнее вопроса «что это».</li><li>Соответствие стандартам. Код должен соответствовать стандарту стиля и быть должным образом документирован.</li></ul><p>Проверьте каждую строчку кода, рассмотрите весь код в контексте проекта. Удостоверьтесь, что он способствует улучшению кодовой базы. Ну и не забудьте поблагодарить разработчика за интересные решения.</p><h2>Последовательность действий при рецензировании кода</h2><ol><li><b>Оцените, имеют ли смысл предложенные изменения.</b> Возможно, кодер пытается улучшить фичу, от которой ваш проект собирается избавиться. Направьте его усилия в нужное русло.</li><li><b>Изучите главную часть рецензируемого кода.</b> Если затрудняетесь выделить эту главную часть, спросите разработчика. Найдя какие-то недостатки, немедленно сообщите автору кода. Переходить к изучению деталей кода до исправления основных недочётов нет смысла, вполне вероятно, что впоследствии эти детали значительно изменятся.</li><li>Изучите остальную часть кода. Ориентируйтесь на логическую последовательность действий и проверьте каждый файл, возможно, сначала имеет смысл разобрать модульные тесты, чтобы иметь представление о том, какие именно изменения планирует внести разработчик.</li></ol><h2>Скорость подготовки code review</h2><h3>Чем чреваты медленные code review?</h3><ul><li>Уменьшается скорость работы всей команды. Как цепь не сильнее самого слабого звена, так и команда не быстрее самого медленного её участника.</li><li>В Google считают, что обозреватель, появляющийся раз в несколько дней с ворохом комментариев, вызывает раздражение и жалобы разработчиков. В компании считают, что гораздо эффективнее незамедлительно реагировать на каждый апдейт от кодера, предлагая пусть и небольшие, но положительно влияющие на качество кодовой базы изменения.</li><li>Чем сильнее вы затягиваете с code review — тем сильнее желание добавить код в базу «как есть», а это чревато ухудшением общего качества.</li></ul><h3>Как быстро нужно делать code review?</h3><p>В идеале стоит приступать сразу после получения кода. Постарайтесь уложиться в один рабочий день. Учитывайте часовой пояс разработчика.</p><p>Единственное исключение из этого правила — если вы сконцентрированы на другой задаче. Переключение займёт слишком много времени.</p><p>Постепенно вы сможете увеличить скорость работы. Но не делайте это в ущерб качеству.</p><h3>Работа с большими объёмами</h3><p>Попросите разработчика разбить код на несколько небольших фракций, с каждой из которых можно быстро справиться. Если это невозможно, постарайтесь как можно быстрее прислать хотя бы общие рекомендации по улучшению. Разработчик не должен простаивать.</p><h3>Экстренные ситуации</h3><p>Иногда дела обстоят так, что скорость становится основным фактором, ради которого приходится жертвовать качеством. В вашем проекте такие ситуации должны быть чётко обозначены. В качестве образца можете свериться с гайдом Google.</p><h2>Как писать комментарии во время рецензирования</h2><ul><li>Будьте благожелательны. Вы с разработчиком на одной стороне баррикад. Рецензируйте код, а не кодера.</li><li>Не будьте императивны, поясняйте свои рекомендации и указания. Это поможет разработчику лучше понять и выполнить их.</li><li>Объясните, чего вы хотите, но не делайте работу за кодера. Как правило, он всё же может сделать её лучше. Помните, разработчику нужно дать возможность развиваться. Опять же, не в ущерб качеству. Ищите баланс.</li><li>Предложите разработчику попробовать упростить код, а если это невозможно — добавить подробные комментарии.</li></ul><h2>Работа с возражениями</h2><p>Разработчики могут быть не согласны с вашими указаниями. Эти люди работают непосредственно с кодом, так что задумайтесь, возможно, в их возражениях есть резон? Если же вы уверены в своей правоте, попробуйте донести свои аргументы до собеседника. Всегда оставайтесь корректны и внимательно изучайте доводы разработчика.</p><p>Не поддавайтесь на уговоры из разряда «сабмить сейчас, доделаю потом». Возможно, доделает. Но, как правило, нет.</p><p>А вот общие жалобы на излишнюю придирчивость имеет смысл пропускать мимо ушей. Придерживайтесь стандартов, принятых в вашем проекте и требуйте того же от других.</p>]]></content:encoded>
    </item>
    <item>
      <title>Дистрибутивы Linux для опытных пользователей</title>
      <link>https://tproger.ru/digest/linux-distros-for-advanced-users</link>
      <comments>https://tproger.ru/digest/linux-distros-for-advanced-users?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Туренко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/digest/linux-distros-for-advanced-users</guid>
      <description><![CDATA[<p>Arch Linux устанавливается из командной строки, использует менеджер пакетов Pacman и позволяет собрать рабочую среду только из нужных компонентов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/digest/linux-distros-for-advanced-users">Дистрибутивы Linux для опытных пользователей</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Подборки]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 06 May 2019 13:11:52 GMT</pubDate>
      <content:encoded><![CDATA[<p>В этой статье рассмотрим дистрибутивы Linux, о которых многие наверняка слышали, но немногие с ними хорошо знакомы.</p><ul><li><a href="https://tproger.ru/#arch">Arch</a>;</li><li><a href="https://tproger.ru/#manjaro">Manjaro</a>;</li><li><a href="https://tproger.ru/#redhat">Red Hat Enterprise Linux</a>;</li><li><a href="https://tproger.ru/#fedora">Fedora</a>;</li><li><a href="https://tproger.ru/#centos">CentOS</a>;</li><li><a href="https://tproger.ru/#gentoo">Gentoo</a>.</li></ul><h2>Arch Linux</h2><p><a href="https://www.archlinux.org/download/">Arch Linux</a> известен своей скоростью, простотой настройки и эксплуатации. В отличие от большинства других систем, его установка начинается и заканчивается в командной строке. Из неё же можно добавить необходимое ПО для создания полноценной рабочей среды.</p><h3>Чем хорош Arch?</h3><p>Минимальный фундамент — одно из самых больших преимуществ Arch. Система не будет перегружена ненужным ПО и службами, не будет потреблять много ресурсов. Вы выбираете только те пакеты или группы пакетов, которые вам нужны. Arch предоставляет все инструменты и инструкции для создания установки по вашим спецификациям.</p><p>В дальнейшем систему достаточно просто обновлять с помощью Pacman. Это уникальный для Arch менеджер пакетов, который работает с файлами .xz, а не с пакетами RPM, DEB или Snap. В формате сжатия файлов XZ используется алгоритм LZMA2, который обеспечивает более быструю распаковку по сравнению с другими форматами упаковочных контейнеров.</p><p>Arch создан из последних стабильных upstream packages. Источники ПО — основные репозитории, поддерживаемые разработчиками ядра Arch. Для других случаев есть AUR (Arch User Repository). Это хранилище стороннего ПО, которое не включено в официальный репозиторий пакетов Pacman и поддерживается отдельными людьми в сообществе. AUR содержит тысячи PKGBUILD — сценариев оболочки. Здесь находится вся информация для сборки пакетов с помощью инструмента makepkg и их установки с Pacman.</p><p>Сообщество Arch — одно из самых дружелюбных.</p><h3>Кому подходит Arch Linux?</h3><p>Arch подойдёт в качестве домашнего сервера, основной рабочей станции: он отлично работает на настольных компьютерах и ноутбуках.</p><p>Arch больше подходит пользователям, которые чувствуют себя комфортно в Linux. Однако если вы новичок и готовы изучать систему, работа с Arch многому вас научит. Но помните, что неправильная установка и настройка могут вызвать серьёзные сбои.</p><h3>Оболочки</h3><p>У Arch Linux есть много рабочих сред — вот, например, KDE Plasma:</p><figure><img src="https://media.tproger.ru/uploads/2019/05/Arch-1.jpg" alt="" /></figure><p>Производительность и скорость работы с такой оболочкой зависит от мощности компьютера.</p><p>Для слабых машин отлично подойдёт xfce:</p><figure><img src="https://media.tproger.ru/uploads/2019/05/arch-2.jpg" alt="" /></figure><p>А вот так выглядит рабочий стол Cinnamon:</p><figure><img src="https://media.tproger.ru/uploads/2019/05/arch-3.jpg" alt="" /></figure><h2>Manjaro Linux</h2><p><a href="https://manjaro.org/download/">Manjaro Linux</a> — производный дистрибутив от Arch Linux. Его преимущество — современные пакеты ПО. Manjaro Linux может стать хорошей альтернативой для тех, кому оказался не по зубам Arch. У него простой установщик для настройки и запуска системы.</p><p>Перед тем как установить Manjaro, нужно скачать желаемый образ и выбрать среду окружения на официальном сайте.</p><h3>Флагманские окружения</h3><ul><li>xfce — быстрое и стабильное рабочее окружение, которое отлично подойдёт для владельцев не особо мощных машин;</li><li>KDE — современный и красивый рабочий стол. Гибкая настройка позволяет сделать его каким угодно;</li><li>Manjaro-Architect — выбрав этот вариант, вы с нуля будете строить свою систему, как в Arch;</li><li>Gnome Edition — предоставляет простое и элегантное рабочее окружение.</li></ul><p>Manjaro Linux с рабочей средой Gnome:</p><figure><img src="https://media.tproger.ru/uploads/2019/05/manjaro-1.jpg" alt="" /></figure><p>Manjaro-Architect:</p><figure><img src="https://media.tproger.ru/uploads/2019/05/manjaro-2.jpg" alt="" /></figure><p>KDE:</p><figure><img src="https://media.tproger.ru/uploads/2019/05/manjaro-3.jpg" alt="" /></figure><p>Тестовая ветка дистрибутива Manjaro Linux сначала проходит испытание на Arch Linux. Это даёт более продвинутым пользователям возможность протестировать релиз до того, как он будет выпущен для сообщества Manjaro. Теоретически это означает, что вы вряд ли столкнетесь с такими проблемами, как на Arch Linux.</p><h3>Кому подходит Manjaro Linux?</h3><p>Manjaro подойдёт опытным пользователям, которые хотят получать новейшие функции от своего ПО. Manjaro из коробки уже готов к стабильной работе, а если вы умеете настраивать систему на свой лад, можно получить высокую производительность.</p><p>Manjaro будет полезна также разработчикам ПО. Благодаря Manjaro у ваших программ всегда будут новейшие языковые и библиотечные функции, а ПО будет совместимо с последними версиями.</p><p>Manjaro дружелюбен к новичкам, а если возникают вопросы, сообщество всегда готово помочь.</p><h3>Обновление пакетов Manjaro до последних версий</h3><p>Чтобы новые функции продолжали появляться, важно регулярно обновлять ваши пакеты — минимум раз в неделю.</p><p>Здесь, как и в Arch, можно установить стороннее ПО через AUR (Arch User Repository). Вариантов огромное количество — от коммерческого до неизвестного ПО с открытым исходным кодом, которое ещё не было добавлено в официальную систему управления пакетами.</p><h2>Red Hat Enterprise Linux</h2><p>Примечание Red Hat Linux — один из старейших дистрибутивов Linux, породивший большое семейство других дистрибутивов. Компания Red Hat официально прекратила его поддержку в 2003 году и разделила своё «производство» на две ветки. Так появились Red Hat Enterprise Linux (RHEL) — версия для коммерческих организаций и крупных корпораций, и Fedora Linux — бесплатная версия для сообщества, которую Red Hat спонсирует.</p><p><a href="https://developers.redhat.com/products/rhel/download/">RHEL</a> может работать с более старыми версиями большинства пакетов ПО, к которым относятся настольные среды и драйверы графических карт. Дистрибутив совместим с другими корпоративными приложениями и обеспечивает высокий уровень безопасности.</p><p>Red Hat представила графический установщик под названием Anaconda и использует RPM менеджер пакетов для своей системы управления. Среда рабочего стола по умолчанию — Gnome:</p><figure><img src="https://media.tproger.ru/uploads/2019/05/red-hat-1.jpg" alt="" /></figure><p>Модуль безопасности ядра Linux в этой системе обеспечивает эффективный механизм, поддерживающий политики безопасности для контроля доступа. В настоящее время <a href="https://ru.wikipedia.org/wiki/SELinux">SELinux</a> включён в RHEL по умолчанию.</p><h3>Отличие Red Hat Enterprise Linux от других систем</h3><ul><li>Пользователь RHEL обязан подписать контракт на поддержку;</li><li>RHEL обещает сверхнадёжность;</li><li>Каждый выпуск поддерживается в течение 10 лет, и клиенты RHEL могут приобрести расширенную поддержку по прошествии этого времени.</li></ul><p>Крупные организации с готовностью соглашаются, но отдельным пользователям Linux не нужна помощь для решения проблем операционной системы. Для них существует альтернативный вариант — CentOS, ещё один корпоративный дистрибутив Linux, основанный на RHEL, о котором мы поговорим позже.</p><h3>Как получить RHEL бесплатно?</h3><p>Пользователи Linux привыкли получать отличное программное обеспечение бесплатно. RHEL можно собрать из исходных RPM (но это непросто) или использовать один из клонов. Третий вариант — получить официальные бинарные файлы со страницы загрузки «Начало работы», на которой есть образы для «голого железа» и виртуальных машин. Это самостоятельная бесплатная версия, аналогичная платной: она использует все те же инструменты, включая Subscription Manager и Red Hat Customer Portal. Вы должны <a href="https://www.redhat.com/wapps/ugc/register.html;jsessionid=278KOlxQuKBwVgRC3MJ3lb1H.90526eb3?_flowId=register-flow&amp;_flowExecutionKey=e1s1">зарегистрироваться</a> и присоединиться к программе разработчиков Red Hat. При этом вы не можете использовать её в качестве рабочего сервера — только для тестирования и разработки.</p><figure><img src="https://media.tproger.ru/uploads/2019/05/red-hat-2.jpg" alt="" /></figure><h3>Линия продуктов</h3><p>RHEL включает в себя практически всё: операционную систему Linux, JBoss Middleware, гипервизор на основе KVM, облачные платформы, хранилища, мобильные разработки и платформы управления, десктоп, рабочую станцию и, конечно, все основные службы и приложения, которые включены в большинство дистрибутивов Linux. Он работает на всём: от встроенных устройств до суперкомпьютеров.</p><h2>Fedora</h2><figure><img src="https://media.tproger.ru/uploads/2019/05/fedora-1.jpg" alt="" /></figure><p>У <a href="https://getfedora.org/">Fedora</a> есть ряд технических улучшений, обновлений ПО и скрытых возможностей. Разработчики Fedora тесно работали с исходными кодами для интеграции во всём — от ядра до GNOME, Systemd, Network Manager и GCC6. Однако на этом всё и заканчивается.</p><p>Когда речь идёт о полноценном настольном дистрибутиве, Fedora отстаёт, в основном из-за ограниченных репозиториев.</p><h3>Установщик Anaconda</h3><p>Установщик Anaconda лёгок в использовании. Разработчикам  удалось создать инсталлятор, который был бы графически интуитивен и при этом сохранял максимально возможную гибкость и функциональность. Меню форматирования диска особенно впечатляет: его можно настроить, даже не касаясь командной строки.</p><p>Ещё одна особенность установщика Anaconda — меню выбора программного обеспечения. Широкий спектр типов установки и множество коллекций пакетов, которые могут сделать настройку новой системы гладкой и безболезненной. А выбор определённых групп пакетов в процессе установки позволяет сэкономить время.</p><h3>Характеристики</h3><p>GNOME 3.3x</p><figure><img src="https://media.tproger.ru/uploads/2019/05/fedora-2.jpg" alt="" /></figure><p>В рабочей станции Fedora среда GNOME занимает центральное место. Вся анимация GNOME плавная и выглядит естественно. GNOME 3.3x также имеет несколько приятных улучшений:</p><ul><li>ярлыки;</li><li>элементы управления мультимедиа в верхней панели оболочки;</li><li>улучшенный поиск через Nautilus;</li><li>возможность запуска обновлений системы из центра программного обеспечения.</li></ul><p>Что касается центра программного обеспечения, GNOME всё ещё нужно улучшать — загрузка пока слишком долгая.</p><figure><img src="https://media.tproger.ru/uploads/2019/05/fedora-3.jpg" alt="" /></figure><h3>Создан для программирования</h3><p>Некоторые ключевые языки программирования также обновляются в Fedora. Fedora предлагает Go, Ruby и Python по умолчанию. Благодаря востребованным инструментам Fedora становится неплохим вариантом для всех разработчиков, ориентирующихся на Linux или Интернет.</p><h3>Пакеты … или их отсутствие</h3><p>Пока Fedora выглядит как фундамент для замечательного дистрибутива Linux. У него есть одна большая проблема — небольшие хранилища. Fedora поставляет только бесплатное ПО. Это само по себе ограничивает возможности, но дистрибутивы вроде Debian прекрасно справляются с этим.</p><p>Единственное, чем изобилует Fedora — это инструменты разработки. Помимо ранее упомянутых библиотек и языков, там присутствуют такие IDE, как Code Blocks, Eclipse и GNOME Builder.</p><h3>Кому подойдёт Fedora?</h3><p>Fedora отлично справляется с ролью рабочей станции разработчика. Существует множество встроенных утилит, в которых есть серверные, виртуальные и облачные инструменты для тестирования и развёртывания.</p><p>Однако для настольного компьютера общего назначения лучше подобрать что-то другое. Этот дистрибутив был бы хорош, если бы давал доступ к большей части стороннего ПО.</p><h2>CentOS</h2><p><a href="https://www.centos.org/">CentOS</a> является одним из самых молодых дистрибутивов и возник как платформа для разработки CAOS Linux. Название CentOS — это аббревиатура Community Enterprise Operating System. CentOS находится под крылом Red Hat.</p><p>RHEL проходит проверку оборудования производителями, чтобы гарантировать оптимальную работу операционной системы на оборудовании. CentOS создан из общедоступного исходного кода RHEL. Проверка оборудования также является косвенной функцией CentOS. Хотя есть некоторые бинарные файлы Red Hat (драйверы и утилиты), которые не доступны в CentOS.</p><p>CentOS поддерживается в течение 10 лет. Основные функции и версии пакетов представлены только в новых выпусках Milestone (CentOS 6, 7 и т. д.). CentOS выпускает точечные версии примерно раз в год. Основа CentOS — стабильность и безопасность, вы не найдёте там новейших компонентов Linux.</p><p>Консервативный, медленный и устойчивый подход к новому ПО является основным фактором в корпоративных средах, где важны надёжность и совместимость с пользовательскими инструментами.</p><figure><img src="https://media.tproger.ru/uploads/2019/05/centos-1.jpg" alt="" /></figure><p>CentOS — это основанный на RPM дистрибутив, который использует yum в качестве менеджера пакетов systemd и по умолчанию применяет SELinux. Дистрибутив доступен в различных вариантах и ​​конфигурациях — от минимального .iso до образа Everything, включая специально созданные live iso Gnome и KDE.</p><p>Архитектура — x86–64, но ARM — одна из нескольких доступных альтернатив. Существуют образы контейнеров для Docker, Vagrant и других, а также CentOS Atomic, разработанный специально как хост-система для контейнеров Docker.</p><h3>Кому подойдёт CentOS?</h3><p>CentOS очень близок к RHEL. Если вам нужна совместимость с RHEL, то CentOS вам подойдёт. Эта операционная система предназначена для любого программного стека, где надёжность имеет первостепенное значение. Пакеты, которые не являются общедоступными в RHEL, нельзя установить в CentOS. По умолчанию дистрибутив полностью бесплатный и с открытым исходным кодом, но существуют сторонние репозитории для дополнительного ПО вроде медиа-кодеков.</p><p>И RHEL, и CentOS используются для крупномасштабных серверов и рабочих станций уровня предприятия. Новые функции добавляются редко: только обновления безопасности и исправления ошибок. То, что вы получите, — это до десяти лет работы в стабильной, надёжной операционной системе.</p><p>Рабочее окружение выбирается в зависимости от производительности компьютера. К примеру, так выглядит рабочий стол CentOS с GNOME:</p><figure><img src="https://media.tproger.ru/uploads/2019/05/centos-2.jpg" alt="" /></figure><h2>Gentoo Linux</h2><p><a href="https://www.gentoo.org/">Gentoo Linux</a> — это особый мощный дистрибутив Linux, он не похож на другие системы, в которых есть предварительно скомпилированное ПО и инструменты для простого управления. В Gentoo пользователь должен всё настроить сам.</p><p>Gentoo можно отнести к мета-дистрибутивам, он подойдет для обслуживания как web-серверов, так и рабочих станций.</p><h3>Кому подойдёт Gentoo?</h3><p>Точно не новичкам. Если вы хотите установить Gentoo на свой ПК или ноутбук, то нужно сначала освоить терминал Linux.</p><p>Это дистрибутив для людей, которые хотят больше узнать о Linux, читая документацию, решая проблемы, настраивая свою систему, компилируя ПО и т. д. Gentoo позволяет пользователю настраивать каждую часть системы в соответствии с его потребностями.</p><h3>Особенности Gentoo</h3><p>Если мы сравним Gentoo с UNIX и BSD, у него будет много общего с последним. Например, FreeBSD — это система на основе UNIX с коллекцией портов. Если пользователь хочет установить программу на FreeBSD, он должен найти соответствующий порт и скомпилировать его.</p><p>У Gentoo есть собственная система портов, называемая portage. Portage обладает существенными преимуществами перед системой портов FreeBSD: управление зависимостями, точная настройка пакетов в соответствии с требованиями администратора, безопасное удаление, системные профили, виртуальные пакеты, управление файлами конфигурации и наличие нескольких слотов для разных версий одного и того же пакета.</p><p>Portage мог бы быть отличным инструментом управления пакетами, а Gentoo — лучшим дистрибутивом для пользователя, но в действительности всё немного по-другому.</p><figure><img src="https://media.tproger.ru/uploads/2019/05/gentoo.jpg" alt="" /></figure><p>Примечание У Gentoo только два недостатка: для его использования нужно хорошее оборудование, а для установки — много времени. Нужно прописывать множество команд и конфигураций. Но есть <a href="https://wiki.gentoo.org/wiki/Handbook:Main_Page/ru">Handbook</a>, с помощью которого и рекомендуется устанавливать и настраивать систему.</p><p>Практически любой дистрибутив Linux может работать на разном оборудовании. В Gentoo вы должны компилировать приложения. В его хранилищах мало скомпилированных бинарных файлов. Некоторые приложения могут долго устанавливаться.</p><p>Если вы хотите начать пользоваться Gentoo:</p><ul><li>освойте терминал: самым мощным инструментом, присутствующим в каждом дистрибутиве Linux, является терминал, и вы должны знать, как его использовать;</li><li>узнайте, как создавать приложения с помощью Portage;</li><li>прочитайте всю документацию Gentoo: краткого руководства в Google недостаточно, систему можно изучить только по документации;</li><li>проявите больше усердия: возможно, когда вы устанавливаете Gentoo в первый раз, у вас будет много сложностей. Но не беспокойтесь: если вы попробуете, вы будете приятно удивлены тем, насколько стабилен и быстр этот дистрибутив.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Практические советы по использованию профайлера в Unity</title>
      <link>https://tproger.ru/translations/unity-profiler</link>
      <comments>https://tproger.ru/translations/unity-profiler?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Александр Ланский]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/unity-profiler</guid>
      <description><![CDATA[<p>Профайлер Unity даёт покадровые показатели производительности игры. Точнее всего они на билде для целевого устройства, но нужна отладочная сборка.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/unity-profiler">Практические советы по использованию профайлера в Unity</a>»</p>]]></description>
      <category><![CDATA[Лучшая практика]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 19 Apr 2019 08:09:47 GMT</pubDate>
      <content:encoded><![CDATA[<p>Инструмент профилировки Unity профайлер даёт конкретные данные о производительности игры и облегчает процесс её оптимизации. Профайлер предоставляет покадровые показатели, с помощью которых можно легче выявить проблемные места. Он также даёт информацию о производительности игры вне редактора. Имейте в виду, что использование профайлера частично сказывается на производительности. Чтобы увеличить точность показателей производительности, нужно создать билд для необходимой платформы и запустить игру на целевом устройстве. Хотя наилучшую производительность можно получить на неотладочной сборке (Development Build), профайлер Unity может работать только на отладочной сборке.</p><p>Чтобы активировать профайлер в приложении, необходимо в окне Build Settings (File→Build Settings) включить параметры Development Build и Autoconnect Profiler. При запуске приложения профайлер будет запускаться автоматически. Подключить профайлер также можно в Profiler Controls через выпадающий список в редакторе.</p><p>Профайлер даёт вам информацию о том, сколько времени требуется приложению на рендер каждого кадра, разбивая это на работу процессора, рендер, память, аудио, физику, UI и сеть.</p><p>Примечание Не сравнивайте показания профайлеров разных версий Unity. Разные архитектуры профайлеров по-разному отображают показания.</p><h2>Профилирование в редакторе</h2><p>Не стоит забывать о некоторых подводных камнях при профилировании приложения в редакторе. Из-за большого количества открытых окон могут проскакивать лаги. Даже рендер в самом редакторе даёт о себе знать. Поэтому крайне важно хоть иногда профилировать приложение на целевом устройстве и не полагаться только на данные из редактора.</p><h3>Deep Profile</h3><p>В этом режиме отдельно записываются вызовы каждого метода, обеспечивая чёткое представление дерева методов.</p><p>Примечание Начиная с Unity 2017.3, режим deep profile работает не только в редакторе, но и на Android, и на Desktop, с использованием бэкенда Mono.</p><p>Для включения этого режима на Desktop используйте аргумент командной строки -deepprofiling.</p><p>Для включения этого режима на Android используйте аргумент командной строки adb.</p><p>Например:<br />~$ adb shell am start -n com.company.game/com.unity3d.player.UnityPlayerActivity -e 'unity' '-deepprofiling'</p><h3>Профилирование памяти в редакторе</h3><p>Профилирование памяти в редакторе полезно для понимания общей модели памяти, но не для фактических показателей конкретных устройств.</p><ul><li>В процессе выполнения у каждого <a href="https://docs.unity3d.com/ru/current/Manual/GeneratingMeshGeometryProcedurally.html">меша</a> флаг read/write установлен независимо от значения Read/Write Enabled в настройках импорта ассета. Это уже удваивает память мешей, отображаемую в профайлере.</li><li>Профилирование в редакторе также отключает сжатие вершин (Vertex Compression).</li><li>В процессе выполнения приложения в редакторе создаётся больше временных данных в памяти. К примеру, <a href="https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html">GetComponent</a> в случае отсутствия компонента выделяет под него временную память. Поэтому Unity может выбросить исключение в редакторе, но не сделать этого в билде.</li></ul><h2>Статистика рендера</h2><p>В Unity есть функция отображения статистики рендера в реальном времени (окно Game). Туда входят fps, батчи draw calls, использование VRAM, количество вершин и треугольников. Для включения слоя статистики необходимо нажать на кнопку Stats на панели окна Game. Эта статистика поможет анализировать батчинг и GPU производительность, основываясь на количестве вызовов отрисовки.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-28/d541f267-5a98-4e57-8eb8-d4c759d731b2.png" alt="" /><figcaption>Статистика в окне Game</figcaption></figure><p>Для более детальной статистики рендера можно открыть вкладку рендера в профайлере.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-28/3044fc8f-4a31-4c51-bc3f-7f7817615c86.png" alt="" /><figcaption>Вкладка рендера, показывающая детальную статистику за кадр</figcaption></figure><p>На изображении выше видно, что пустая сцена имеет 5 вызовов SetPass и 5 вызовов отрисовки.</p><ul><li>Количество вызовов SetPass играет важную роль, т. к. оно негативно влияет на производительность. Количество этих вызовов должно быть как можно меньше.</li><li>Вызовы отрисовки (draw calls) являются менее важным параметром, если ваше приложение не зависит от производительности процессора. Это связано с тем, что вызовы отрисовки выполняются в рендеринговом потоке, который запускается на процессоре. Уменьшить зависимость от производительности процессора можно <a href="https://unity3d.com/learn/tutorials/topics/best-practices/unity-profiler#Multithreaded%20Rendering%20Graphics%20Jobs">многопоточным рендерингом</a>.</li></ul><h2>Вызовы отрисовки</h2><p>Частые вызовы отрисовки с похожими пайплайнами влияют на производительность лучше, чем редкие с разными пайплайнами. Unity кеширует одинаковые вызовы, что ускоряет процесс отрисовки. Для разных вызовов отрисовки Unity создает разные буферы. Это загружает графическую память.</p><h2>Многопоточный рендер и Graphics Jobs</h2><p>Многопоточный рендер и Graphics Jobs (Player Settings) чаще всего положительно сказываются на производительности, но во время отладки и профилирования некоторые показатели могут быть «размытыми». Для более точного профилирования можно посмотреть на <a href="https://unity3d.com/learn/tutorials/topics/best-practices/multithreaded-rendering-graphics-jobs">оптимизацию графики в Unity</a>.</p><h2>Кадровый отладчик</h2><p>Кадровый отладчик позволяет остановить игру на определённом кадре и пройтись по основным событиям. С его помощью можно просмотреть, как Unity выстраивает сцену и продумать возможные способы оптимизации. Отладчик также указывает на те GameObject’ы, рендер которых не обязателен. Отключив эти GameObject’ы, можно уменьшить число вызовов отрисовки на один кадр.</p><p>Отладчик не показывает отдельные вызовы отрисовки или разницу между ними. Он показывает процесс построения кадра. Только нативные GPU-профайлеры дадут исчерпывающую информацию о вызовах отрисовки (чаще всего привязанную к времени). Кадровый отладчик может оказаться полезным в отладке пайплайна и батчинга (особенно при работе с Unity UI). Детальная информация описана в документации <a href="https://docs.unity3d.com/Manual/FrameDebugger.html?_ga=2.193188964.831545672.1553015214-263255897.1549981789">кадрового отладчика</a>.</p><h2>Профайлер памяти</h2><p>В этом проекте демонстрируется использование <a href="https://docs.unity3d.com/ScriptReference/MemoryProfiler.MemorySnapshot.html?_ga=2.104191049.831545672.1553015214-263255897.1549981789">профайлера памяти</a>. Также по нему есть <a href="https://docs.unity3d.com/Manual/BestPracticeUnderstandingPerformanceInUnity2.html?_ga=2.104191049.831545672.1553015214-263255897.1549981789">документация</a>.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-28/cd866a5e-9add-479f-a007-ea734385e0e9.png" alt="" /><figcaption>Снимок с профайлера памяти</figcaption></figure><p>Данный инструмент отслеживает память, выделенную подсистемами Unity, а также пользовательскими скриптами (до версии Unity 2017.3). Профайлер не может отслеживать выделение памяти из сторонних инструментов. Начиная с версии Unity 2017.3 профайлер также поддерживает отслеживание управляемых объектов в среде выполнения Mono scripting.</p><p>Подробно профайлер можно изучить в <a href="https://unity3d.com/learn/tutorials/topics/interface-essentials/introduction-profiler">этом видео</a> и <a href="https://docs.unity3d.com/Manual/Profiler.html?_ga=2.267532487.831545672.1553015214-263255897.1549981789">документации</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Создание настраиваемой библиотеки на Rust — опыт Cloudflare</title>
      <link>https://tproger.ru/translations/fast-interpreters-in-rust</link>
      <comments>https://tproger.ru/translations/fast-interpreters-in-rust?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Klara Oswald]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/fast-interpreters-in-rust</guid>
      <description><![CDATA[<p>Разработчик Cloudflare о библиотеке на Rust для написания и исполнения Wireshark-подобных фильтров в частях стека на Go, Lua, C, C++ и JavaScript.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/fast-interpreters-in-rust">Создание настраиваемой библиотеки на Rust — опыт Cloudflare</a>»</p>]]></description>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 22 Mar 2019 22:32:16 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>Рассказывает</i><i> </i>Ingvar Stepanyan, CloudFlare</p><p>В этой статье вы узнаете о создании настраиваемой библиотеки Rust для написания и исполнения <a href="https://www.wireshark.org/">Wireshark®</a>-подобных фильтров в разных частях стека Cloudflare, написанных на Go, Lua, C, C++ и JavaScript.</p><figure><img src="https://media.tproger.ru/uploads/2019/03/Langs.png" alt="" /></figure><p>Cloudflare открыли исходный код этой библиотеки в <a href="https://github.com/cloudflare/wirefilter">своём аккаунте GitHub</a>. Этот пост погрузит вас в её разработку; объяснит, почему мы не использовали генератор парсеров; а также поможет понять как наш движок исполнения балансирует между безопасностью, производительностью и ценой компиляции для сгенерированных фильтров.</p><h2>Парсинг синтаксиса Wireshark</h2><p>При создании предметно-ориентированного языка (DSL — Domain Specific Language) первое, что нам нужно было сделать, это проанализировать его. Это дало бы промежуточное представление (обычно называемое абстрактным синтаксическим деревом), которое можно изучать, просматривать, анализировать и, возможно, сериализовывать.</p><p>Есть разные способы выполнить такой переход:</p><ul><li>ручной посимвольный парсинг, использующий стейт-машины, регулярные выражения или нативные строковые API;</li><li>парсер-комбинаторы, которые используют высокоуровневые функции для объединения нескольких парсеров вместе (например, <a href="https://github.com/Geal/nom">nom</a>, <a href="https://github.com/m4rw3r/chomp">chomp</a>, <a href="https://github.com/Marwes/combine">combine</a> и другие);</li><li>полностью автоматизированные генераторы, которые, основываясь на грамматике, могут создавать полностью рабочий парсер (например, <a href="https://github.com/kevinmehall/rust-peg">peg</a>, <a href="https://github.com/pest-parser/pest">pest</a>, <a href="https://github.com/lalrpop/lalrpop">LALRPOP</a> и др.).</li></ul><h3>Синтаксис Wireshark</h3><p>Прежде чем пытаться выяснить, какой подход лучше всего подошёл бы для нас, давайте взглянем на несколько простых <a href="https://wiki.wireshark.org/DisplayFilters">официальных примеров Wireshark</a>, чтобы понять, с чем мы имеем дело:</p><ul><li>ip.len le 1500</li><li>udp contains 81:60:03</li><li>sip.To contains “a1762”</li><li>http.request.uri matches “gl=se$”</li><li>eth.dst == ff:ff:ff:ff:ff:ff</li><li>ip.addr == 192.168.0.1</li><li>ipv6.addr == ::1</li></ul><p>В правой части выражения может быть число, адрес IPv4/IPv6, набор байтов или строка. Они все взаимозаменяемы без какого-либо особого представления о типе. Что хорошо, если учесть, что их легко отличить.</p><p>Давайте посмотрим на некоторые <a href="https://en.wikipedia.org/wiki/IPv6#Address_representation">формы представления IPv6</a> в Википедии:</p><ul><li>2001:0db8:0000:0000:0000:ff00:0042:8329</li><li>2001:db8:0:0:0:ff00:42:8329</li><li>2001:db8::ff00:42:8329</li></ul><p>IPv6 может быть записан в виде набора до 8 шестнадцатеричных чисел, разделённых двоеточиями, каждое из которых содержит до 4 цифр с ведущими нулями, опущенными для удобства. Это очень похоже на последовательность байтов. Действительно, если вы попробуете выписать последовательность как 2f:31:32:33:34:35:36:37, с точки зрения синтаксиса Wireshark это будет одновременно и корректный IPv6, и байтовая последовательность.</p><p>Нельзя точно сказать, что на самом деле представляет эта последовательность, не глядя на область её использования. Если вы попытаетесь использовать эту последовательность в Wireshark, то заметите, что это так:</p><ul><li>ipv6.addr == 2f:31:32:33:34:35:36:37 — правая часть анализируется и используется как адрес IPv6</li><li>http.request.uri == 2f:31:32:33:34:35:36:37 — правая часть анализируется и используется как последовательность байтов (будет соответствовать URL "/1234567")</li></ul><p>Есть и другие примеры таких коллизий. Например, вы можете попробовать использовать одно десятичное двухразрядное число:</p><ul><li>tcp.port == 80 — соответствует любому трафику на порту 80 (HTTP);</li><li>http.file_data == 80 — соответствует любому HTTP-запросу/ответу с телом, содержащим один байт (0x80)</li></ul><p>Мы могли бы сделать то же самое с адресом в локальной сети, определённым как отдельный тип в Wireshark. Но для простоты представим его обычной последовательностью байтов в данной реализации, поэтому здесь не будет двусмысленности.</p><h3>Выбор подхода к парсингу</h3><p>Подход состоит в том, что необходимо сохранять соответствие между областью имён и областью типов заранее (назовём такой подход Scheme), и использовать это для контекстного парсинга. Это ограничение исключает множество (если не большинство) парсер-генераторов.</p><p>Мы могли бы по-прежнему использовать один из таких наиболее сложных генераторов (например, LALRPOP), который позволяет заменить лексику регулярных выражений вашим собственным пользовательским кодом. Но в данный момент мы так близки к полному анализатору DSL-языка, что эта сложность перевешивает любые преимущества использования малоизвестного парсер-генератора.</p><p>Вместо этого будем использовать ручной подход к парсингу. Это может показаться пугающим в небезопасных языках, таких как C/C++, но в Rust для всех строк по умолчанию выполняется проверка выхода за границы строки. Rust также предоставляет богатый API для работы со строками, который вы можете использовать для создания более сложных вспомогательных инструментов, в конечном итоге получая полный анализатор.</p><p>Этот подход, на самом деле, очень похож на парсер-комбинаторы в том, что парсер не сохраняет состояние, а только передаёт необработанную часть входных данных узконаправленным, специфичным функциям. Как и в парсер-комбинаторах, отсутствие состояния также позволяет легко тестировать и поддерживать каждый из парсеров для одних частей синтаксиса независимо от других. По сравнению с популярными библиотеками парсер-комбинаторов на Rust, одно из отличий состоит в том, что данные парсеры — это не автономные функции, а типы, которые реализуют общие черты:</p><p>Метод lex() или его контекстный вариант lex_with() может возвращать как успешную пару (экземпляр типа, остальная часть ввода), так и пару с ошбиками (вид ошибки, соответствующий диапазон ввода).</p><figure><img src="https://media.tproger.ru/uploads/2019/03/parse.jpg" alt="" /></figure><p>Особенность Lex() используется для целевых типов, которые могут быть проанализированы независимо от контекста (например, область имён или литералов), в то время как LexWith() используется для типов, которым требуется наш метод Scheme для однозначного анализа.</p><p>Ещё большее отличие состоит в том, что вместо использования высокоуровневых функций для парсер-комбинаторов используется обычный императивный синтаксис вызова функций. Например, когда мы хотим выполнить последовательный парсинг, всё, что мы делаем, это вызываем несколько парсеров подряд, используя деструктурирование кортежей для промежуточных результатов:</p><p>И, когда вы хотите попробовать другие альтернативные способы, вы можете использовать нативное сопоставление с шаблоном и игнорировать ошибки:</p><p>Наконец, когда вы хотите автоматизировать парсинг некоторых более сложных структур данных, например, перечислений (enum), Rust предоставляет мощный синтаксис макросов:</p><p>Это даёт результат аналогичный парсер-генераторам, но при этом всё ещё используется нативный синтаксис, что позволяет нам контролировать все детали реализации.</p><h3>Движок исполнения</h3><p>Поскольку наша грамматика и операции довольно просты, изначально мы использовали прямую интерпретацию AST так, чтобы все узлы реализовывали типаж, включающий метод execute.</p><p>ExecutionContext очень похож на Scheme, но вместо сопоставления произвольных имён с их типами, он сопоставляет их с выполняемыми входными значениями, предоставленными вызывающей стороной.</p><p>Как и в <i>Scheme</i>, первоначально ExecutionContext использовал внутренний HashMap для регистрации этих произвольных соответствий String → RhsValue. Во время выполняемого вызова реализация AST будет рекурсивно вычислять себя и искать все ссылки на отображение (объект, хранящий соответствие имён и типов), возвращая значение или выявляя ошибку на отсутствие слотов и несоответствия типов.</p><p>Этого было достаточно для первоначальной реализации, но использование HashMap имеет издержки, которые мы хотели бы устранить. Мы уже использовали более эффективный хэшер (Fnv) потому что все ключи под контролем и DoS-атаки на хэш не страшны, но мы всё ещё могли сделать больше.</p><h3>Ускорение доступа к полям</h3><p>Если посмотреть на задействованные структуры данных, то можно увидеть, что схема всегда чётко определена заранее. Ожидается, что все выполняемые значения в механизме в конечном итоге будут соответствовать этой схеме, даже если порядок или точный набор областей не гарантирован.</p><figure><img src="https://media.tproger.ru/uploads/2019/03/pasted-image-0-1.jpg" alt="" /></figure><p>Что, если вообще отбросить второе отображение и вместо этого использовать массив значений фиксированного размера? Индексирование массива должно быть легче, чем поиск по мапу, который требует некоторых усилий.</p><p>Количество элементов уже известно (благодаря предопределённой схеме), поэтому можно определить размер резервного хранилища. Чтобы смоделировать дыры в HashMap для неустановленных значений, можно обернуть каждый элемент в Option&lt;...&gt;:</p><p>Единственный недостающий элемент — это индекс, который может отображать обе структуры друг на друга. Как вы, возможно, помните, в Scheme по-прежнему используется HashMap для регистрации полей, а HashMap обычно предполагается рандомизировать и индексировать только по предопределённому ключу.</p><p>С одной стороны мы могли бы объединить значение и автоинкрементный индекс вместе в простую структуру, но есть решение лучше: <a href="https://github.com/bluss/indexmap">IndexMap</a>. IndexMap — это заменитель HashMap, который сохраняет порядок и позволяет получить индекс любого элемента и наоборот — именно то, что нам нужно.</p><p>После замены HashMap на IndexMap мы можем изменить парсинг, чтобы распределить все проанализированные области имён по их индексам прямо на месте и сохранить их в AST:</p><p>После этого в ExecutionContext нужно выделить массив фиксированного размера и использовать эти индексы для распределения значений во время выполнения:</p><p>Это даёт значительный прирост производительности  (почти двукратный).</p><p>До:</p><p>После:</p><p>Это делает наш API удобнее, поскольку любые ошибки типов теперь обнаруживаются гораздо раньше, когда значения просто устанавливаются в контексте, а не откладываются до выполнения фильтра.</p><h3>[не] JIT-компиляция</h3><p>Как и с любым другим языком, одной из идей было в какой-то момент добавить нативную компиляцию, чтобы сделать всё супер-быстрым. Но на практике нативная компиляция является сложной задачей, и даже не из-за нехватки инструментов.</p><p>Прежде всего, возникает вопрос хранения нативного кода. Можно статически скомпилировать каждый фильтр в своего рода отдельную библиотеку и записать в хранилище типа ключ-значение, но его будет нелегко поддерживать:</p><ul><li>необходимо скомпилировать каждый фильтр для нескольких платформ (x86-64, ARM, WASM,…);</li><li>накладные расходы нативных библиотек значительно превысят полезный размер исполняемого файла, так как большинство фильтров маленькие;</li><li>каждый раз, когда мы хотим изменить нашу логику выполнения, будь то её оптимизация или исправление ошибки, нам придется перекомпилировать и переиздавать все ранее сохранённые фильтры;</li><li>даже если мы уверены в надёжности выбранного хранилища, выполнение динамически извлечённого нативного кода «как он есть» не является чем-то простым.</li></ul><p>Гибкой альтернативой, которая решает большинство из этих проблем, является Just-in-Time-компиляция (JIT).</p><p>Когда вы компилируете код непосредственно на целевой машине, вы получаете возможность повторно перепроверить ввод (выраженный как ограниченный DSL). Вы можете скомпилировать его только для текущей платформы на месте и вам больше не нужно повторно публиковать актуальные правила.</p><p>Но не всё так идеально. Как и в случае с любой другой технологией, здесь есть компромиссы, и вы можете выбрать только те, которые больше подходят для ваших вариантов использования. JIT-компиляция — не исключение.</p><p>Даже если вы не загружаете ненадёжный код по сети, вам всё равно нужно сгенерировать его в память, пометить эту память как исполняемую и полагать, что она всегда будет содержать действительный код, а не мусор или что-то ещё хуже. В зависимости от вашего выбора библиотек и сложности DSL, вы, возможно, захотите довериться ему или поместить его в глубокую песочницу, но в любом случае это риск, который нужно принять.</p><p>Ещё одна проблема — затраты на саму компиляцию. Обычно при измерении скорости нативного кода по сравнению с интерпретацией затраты на компиляцию не учитываются, поскольку она происходит вне процесса.</p><p>С JIT-компиляторами всё по-другому, поскольку вы компилируете код в тот момент, когда он используется, и кэшируете нативный код только в течение ограниченного времени. Генерация нативного кода может быть довольно дорогой, поэтому вы должны быть абсолютно уверены что затраты на компиляцию не перевесят выгоду, полученную от ускорения нативного выполнения.</p><p>Есть кое-что ещё, что мы можем сделать, чтобы получить наилучший баланс между безопасностью, производительностью и затратами на компиляцию.</p><h3>Динамическое связывание и замыкания</h3><p>В Rust типажи Fn, FnMut и FnOnce автоматически реализуются для соответствующих функций и замыканий. В случае с Fn ограничение заключается в том, что они не должны изменять своё окружение, а только заимствовать его.</p><p>Обычно это используется в контексте обобщений (generics) для поддержки произвольных обратных вызовов с заданным аргументом и возвращаемыми типами. Это важно, потому что в Rust каждая функция и замыкание реализуют уникальный тип, и любое обобщённое использование будет компилироваться в прямой вызов именно этой функции.</p><p>Такое поведение называется ранним (статическим) связыванием и является стандартным в Rust. Оно будет предпочтительным по соображениям производительности.</p><p>Однако, если все возможные типы во время компиляции не известны, Rust позволяет вместо этого выбрать позднее (динамическое) связывание:</p><p>Динамически связываемые объекты не имеют статически известного размера, потому что он зависит от деталей реализации конкретного передаваемого типа. Они должны быть переданы по ссылки или сохранены в выделенной упаковке (Box) в “куче” (heap), а затем использованы точно так же, как в общей реализации.</p><p>В нашем случае это позволяет создавать, возвращать и хранить произвольные замыкания, а затем вызывать их как обычные функции:</p><p>Замыкание (упакованная Fn) также автоматически включает данные среды, необходимые для выполнения.</p><figure><img src="https://media.tproger.ru/uploads/2019/03/pasted-image-0.jpg" alt="" /></figure><p>Это означает, что можно оптимизировать представление данных во время выполнения как часть процесса компиляции без изменения AST или парсера. Например, когда мы хотели оптимизировать проверки диапазона IP-адресов, разделяя их для разных типов IP-адресов, мы могли сделать это без изменения каких-либо существующих структур:</p><p>Упакованные замыкания могут быть частью захваченного окружения. Это означает, что можно преобразовать каждое простое сравнение в замыкание, а затем объединить его с другими замыканиями и продолжать до тех пор, пока не получится одно замыкание верхнего уровня, которое можно вызывать как обычную функцию для оценки всего выражения.</p><p>Плюсы такого подхода:</p><ul><li>Выполнение больше не привязано к AST. И можно быть настолько гибкими с оптимизацией и представлением данных, насколько захотите, не затрагивая связанные с парсером части кода.</li><li>Несмотря на то, что каждый узел изначально компилируется в отдельное замыкание, в будущем возможно довольно легко сужать определённые комбинации выражений в их собственных замыканиях и, таким образом, повысить скорость выполнения для обычных случаев. Потребуется только отдельная ветка match, возвращающая замыкание, оптимизированное только для этого случая.</li><li>Компиляция малозатратна по сравнению с генерацией реального кода. Хотя может показаться, что выделение множества небольших объектов (одно упакованное замыкание на одно выражение) не очень эффективно и что было бы лучше заменить его каким-либо пулом памяти. На практике влияние на производительность получилось незначительным.</li><li>Во время выполнения нативный код не генерируется. Это означает, что выполняется только тот код, который был статически проверен Rust во время компиляции и скомпилирован в статическую функцию. Всё, что мы делаем во время выполнения — это вызываем существующие функции с разными значениями.</li><li>Выполнение происходит быстрее. Это стало неожиданностью, поскольку есть мнение, что динамическое связывание является затратным, и она должна была проявить себя хуже, чем интерпретация AST. Практика показала немедленное улучшение времени выполнения на ~ 10-15 % в тестах и на реальных примерах.</li></ul><p>Единственным очевидным недостатком является то, что каждый уровень AST требует отдельного динамически связываемого вызова вместо единого встраиваемого (inlined) кода для всего выражения. Это можно сделать даже с базовым шаблонным JIT.</p><p>К сожалению, такой вывод может быть достигнут только при реальной генерации нативного кода. В нашем случае упомянутые недостатки и риски перевесят преимущества времени выполнения. Поэтому выбор пал на безопасный и гибкий подход, а именно замыкания.</p><h3>Бонус: поддержка WebAssembly</h3><p>Мы выбрали Rust в качестве безопасного языка высокого уровня, который позволяет легко интегрироваться с другими частями нашего стека, написанными на Go, C и Lua через C FFI. Но у Rust есть ещё одно применение, с которым он справляется особенно хорошо: WebAssembly.</p><p>Кроме частей стека, где выполняются правила, и API, который их публикует, также есть пользователи, которым нравится писать свои собственные правила. Для этого они используют UI-редактор (графический редактор), который позволяет либо писать сырые выражения в синтаксисе Wireshark, либо в качестве компоновщика WYSIWYG.</p><p>WebAssembly может быть намечена через обычную C FFI, но в этом случае вам нужно будет вручную предоставить для JavaScript всё “склеивание”, чтобы хранить и преобразовывать строки, массивы и объекты.</p><p>В Rust всем этим занимается <a href="https://github.com/rustwasm/wasm-bindgen">wasm-bindgen</a>. Он предоставляет различные атрибуты и методы для прямых преобразований. Самый простой способ — активировать опцию serde, которая автоматически преобразует типы с использованием JSON.parse(), JSON.stringify() и serde_json.</p><p>В данном случае создания оболочки для парсера всего с 20 строками кода было достаточно, чтобы начать работу и иметь весь необходимый код WASM + прослойку JavaScript:</p><p>А благодаря <a href="https://github.com/rustwasm/wasm-pack">wasm-pack</a>, инструменту более высокого уровня, мы также получили автоматическую генерацию npm-пакетов и публикацию без каких-либо затрат.</p><p>Изложенное в этом посте ещё не используется в production, потому что всё ещё нужно выяснить некоторые нюансы для неподдерживаемых браузеров. Также должна быть возможность запускать фильтры в Cloudflare Workers путём расширения и повторного использования одного и того же пакета  (которые также поддерживают WebAssembly). Но код в текущем состоянии уже хорошо выполняет свою работу и мы рады поделиться им с сообществом открытого кода Rust.</p><p>Познакомиться с полной историей синтаксического анализа вы можете <a href="https://tproger.ru/translations/parsing-a-timeline/">здесь</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Подборка книг по JavaScript для продвинутых разработчиков</title>
      <link>https://tproger.ru/books/advanced-javascript-books</link>
      <comments>https://tproger.ru/books/advanced-javascript-books?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Грачев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/books/advanced-javascript-books</guid>
      <description><![CDATA[<p>Подборка книг о чистом и эффективном коде на JavaScript, работе с DOM, тестировании и создании веб-приложений на чистом языке.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/books/advanced-javascript-books">Подборка книг по JavaScript для продвинутых разработчиков</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Книги]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 04 Mar 2019 19:31:24 GMT</pubDate>
      <content:encoded><![CDATA[<p>JavaScript — лидирующий в фронтенд-разработке язык программирования. Благодаря своим преимуществам он проник во многие области программирования: веб, кроссплатформенная мобильная разработка и даже десктопные приложения. Его основы несложно изучить, однако для написания качественного и высокопроизводительного кода необходимо знать большую часть его возможностей. Но изучение документации — процесс утомительный и малоэффективный.</p><p>К счастью, по языку написано очень много книг, в которых опытные JS-разработчики делятся советами, объясняют простыми словами сложные вещи и подкрепляют их удачными примерами. Из огромного количества книг мы отобрали и объединили в одной подборке лучшие книги по этой теме. Среди них найдутся руководства по написанию «чистого» и эффективного кода, работе с DOM (Document Object Model), автоматизированному тестированию и TDD (Test-Driven Development), а также по созданию веб-приложений без использования сторонних библиотек. Надеемся, что они помогут вам разрабатывать быстрые и легковесные сайты и веб-приложения.</p><p>Автор Дэвид Херман объединил в одной книге 68 советов, которые помогут опытному JS-разработчику писать более качественный и эффективный код. Из книги вы узнаете:</p><ul><li>почему так важно следить за областью видимости переменных;</li><li>какие подводные камни таит в себе использование функций;</li><li>зачем свойство __proto__ следует заменять на функцию Object.getPrototypeOf;</li><li>когда использовать массивы, а когда словари;</li><li>чего нужно избегать при разработке библиотек;</li><li>что сделать для эффективной параллелизации задач.</li></ul><p>Коди Линдли (Cody Lindley) позиционирует свою книгу для двух типов людей: для продвинутых начинающих JavaScript-программистов, а также для разработчиков с большим опытом, использующих в основном сторонние библиотеки. С первым типом более-менее понятно, но почему книга подойдёт второму типу? Всё просто. Библиотеки работают по принципу «чёрного ящика»: передал входные данные, получил выходные данные. Однако понимание того, как «ящик» устроен внутри, позволит писать эффективные веб-приложения и даже собственные качественные библиотеки.</p><p>«JavaScript Enlightenment» — книга о представлении объектов в JS и сопутствующих с ними особенностей: примитивных и сложных значений, наследовании, области видимости переменных и многое другое.</p><p>Книга, написанная опытными JavaScript-разработчиками Джоном Резиг (John Resig), Беэром Бибо (Bear Bibeault) и Иосипом Марас (Josip Maras), позволит окунуться в глубины JavaScript. Благодаря ей вы научитесь писать эффективный код с помощью функций, объектов и замыканий, управлять асинхронным кодом с помощью обещаний, обрабатывать текст с помощью регулярных выражений, а также решать скрытые проблемы при разработке веб-приложений.</p><p>В отличие от предыдущих книг, «Секреты JavaScript ниндзя» рассматривает достаточно актуальные стандарты языка JavaScript — ES6 и ES7. Поэтому все советы применимы на практике. К тому же, отзывы на эту книгу говорят о том, что она действительно помогла расширить свои знания и решить многие проблемы работы кода.</p><p>Ведущий JavaScript-разработчик Кристиан Йохансен (Christian Johansen) написал полноценное руководство по обеспечению качества кода и его покрытия тестами по методике TDD (Test-Driven Development или разработка через тестирование). Книга рассказывает об автоматизированном тестировании на JavaScript и жизненном цикле продукта с использованием примеров реального кода. Поначалу будет трудно освоить TDD, однако следование данной методике позволит улучшить кодовую базу вашего проекта и легко поддерживать её в дальнейшем.</p><p>Кроме тестирования, в книге описаны некоторые способы оптимизации производительности веб-приложений. Поэтому «Test-Driven JavaScript Development» подойдёт как для тестировщиков, так и для разработчиков и QA-специалистов.<br />Смотрите также: <a href="https://tproger.ru/articles/why-test-driven-development/">Почему вам стоит начать вести разработку через тестирование</a></p><p>В этой книге объясняется, как создать веб-приложение на «чистом» JavaScript, то есть без использования сторонних библиотек и фреймворков. Автор Герд Вагнер (Gerd Wagner) уделяет внимание таким аспектам, как проверка данных, перечисления и перечисляющие атрибуты, однонаправленные и двунаправленные связи между типами объектов, подтипы и наследование в иерархиях классов. Также весь материал дополнен полноценными примерами кода, который можно запустить на веб-сервере и исследовать более подробно.</p><p>«Building Front-End Web Apps with Plain JavaScript» подойдёт как опытным JavaScript-разработчикам, так и программистам, знакомым с ООП по другим языкам (Java, C++ и т.д.).</p><p>JavaScript — не самый быстрый язык, поэтому при разработке веб-приложения важно уделить внимание скорости работы кода, ведь долгое время отклика отпугнёт пользователей. Для этого необходимо знать все «узкие» места приложения и оптимизировать их. На помощь придёт книга «JavaScript. Оптимизация производительности» от Николаса Закаса (Nicholas Zakas), создателя open source проекта ESLint, работавшего в компаниях Yahoo! и Box. Приемы и подходы из этой книги охватывают различные аспекты программирования на JavaScript, такие как время выполнения, загрузка, взаимодействие с DOM, жизненный цикл страниц и многие другие.</p><p>В отзывах об этой книге читатели отмечают разнообразие подходов к оптимизации кода и рекомендуют её в качестве дополнения к другим книгам по языку в целом и по эффективному JavaScript. Материал подойдёт Middle и Senior-разработчикам.</p><p>Любой JavaScript-разработчик рано или поздно сталкивается с DOM (Document Object Model) — программным интерфейсом, благодаря которому с помощью JS-скриптов можно изменять файлы HTML и XML. Хоть для него существует единый стандарт, но каждый браузер реализует DOM по-разному. Чтобы кто угодно мог разобраться в ворохе документации, Коди Линдли написал книгу «DOM Enlightenment». В ней с помощью минимума слов и максимума примеров реального кода объясняется, как правильно писать DOM-скрипты.<br />Смотрите также: <a href="https://tproger.ru/translations/dom-javascript/">Манипуляции с DOM на чистом JavaScript</a></p><p>Какие книги и статьи помогли вам досконально изучить JavaScript? Делитесь ими в комментариях.<br />Смотрите также:</p><p><a href="https://tproger.ru/books/javascript-books-for-beginners/">Подборка книг по JavaScript для начинающих</a></p><p><a href="https://tproger.ru/books/web-programming-books-for-beginners/">Подборка книг для начинающего веб-разработчика</a></p><p><a href="https://tproger.ru/tag/javascript/">Все материалы по JavaScript на нашем сайте</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Оптимизируем работу с физикой в Unity</title>
      <link>https://tproger.ru/translations/physics-in-unity-best-practice</link>
      <comments>https://tproger.ru/translations/physics-in-unity-best-practice?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Туренко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/physics-in-unity-best-practice</guid>
      <description><![CDATA[<p>Полезные приёмы работы с физикой в играх на Unity: слои и Матрица Коллизий и другие способы сделать расчёт столкновений эффективнее.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/physics-in-unity-best-practice">Оптимизируем работу с физикой в Unity</a>»</p>]]></description>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 03 Mar 2019 12:11:08 GMT</pubDate>
      <content:encoded><![CDATA[<p>В данном материале будет рассмотрено несколько полезных приёмов использования физики в играх и примеры их практического применения. Предполагается, что у читателя уже есть опыт разработки на Unity.</p><h2>Слои и Матрица Коллизий</h2><p>Все игровые объекты в Unity, если не указано иного, создаются на слое Default, где всё со всем сталкивается, но это не очень эффективно. Однако мы можем обозначить, что с чем должно взаимодействовать, определив разные слои для разных типов объектов. Для каждого нового слоя добавляются свои строка и столбец в Матрице Коллизий, которая отвечает за определение коллизий между слоями. По умолчанию, когда вы добавляете новый слой, Матрица Коллизий определяет столкновения этого слоя со всеми остальными слоями. Путём правильной настройки слоев и Матрицы Коллизий вы избежите незапланированных столкновений и сможете тестировать события коллизий.</p><p>Для целей данной статьи была создана простая демо-сцена с 2 000 объектов (1 000 красных и 1 000 зелёных) внутри контейнера. Зелёные объекты должны взаимодействовать только сами с собой и со стенами (слой Wall). В одном из тестов все объекты принадлежат слою Default и столкновения производятся путём строкового сравнения тега игровых объектов на слушателе коллизий. В другом тесте объекты разделены на два слоя. Взаимодействие этих слоёв было настроено в Матрице Коллизий.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/17d0f1b2-0e9f-41f5-9cfd-60ed642749a0.png" alt="" /><figcaption>Рис. 1: Настройка Матрицы Коллизий</figcaption></figure><p>Изображение ниже берётся из самой демонстрации. В ней есть простой менеджер, который считает количество столкновений и автоматически останавливается после 5 секунд. Количество ненужных столкновений в варианте с общим слоем впечатляет.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/4cac500c-1dfc-47f1-a454-0d4dd8fb5fd9.png" alt="" /><figcaption>Рис. 2: Количество столкновений в течение 5 секунд</figcaption></figure><p>Вот результат профилировки для более конкретных данных о физическом движке</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/056c8fde-171c-40dd-9bc1-c68a1782fe2b.png" alt="" /><figcaption>Рис. 3: Общие слои в сравнении с отдельными в данных профилировки</figcaption></figure><p>Как мы видим, существуют значительные различия во времени, которое процессор потратил на физику. На общем слое это ~27,7 мс, а на отдельных — ~17,6 мс.</p><h2>Рейкастинг</h2><p>Рейкастинг — довольно полезный и мощный инструмент в физическом движке. Он позволяет направлять луч определённой длины в определённом направлении и получить информацию о произошедших столкновениях. Однако это дорогостоящая операция. Производительность рейкастинга сильно зависит от длины луча и типов коллайдеров на сцене.</p><p>Вот несколько советов по использованию рейкастинга:</p><ul><li>Хоть это и очевидно, но нужно стремиться к наименьшему количеству лучей.</li><li>Не делайте лучи длиннее, чем это необходимо. Чем длиннее луч, тем больше объектов нужно проверять на столкновение с ним.</li><li>Не используйте рейкасты внутри метода FixedUpdate(). А в некоторых случаях даже использование их внутри метода Update() может быть излишним.</li><li>Будьте осторожнее с типами коллайдеров, которые используете. Рейкастинг с меш-коллайдером обходится довольно дорого.Неплохое решение — создать дочерний объект с примитивными коллайдерами и повторить с их помощью приблизительную форму меша. Все дочерние коллайдеры у родительского Rigidbody ведут себя как составные коллайдеры.Если вам очень нужно использовать меш-коллайдеры, то как минимум сделайте их выпуклыми.</li><li>Уточняйте, во что именно луч должен попадать, и по возможности конкретизируйте слой-маску в функции рейкаста.Хоть это и описано в документации, но не забудьте, что то, что вы указываете в функции рейкаста, это не идентификатор слоя, а битовая маска.Если вы хотите, чтобы луч сталкивался с объектом, который находится на слое с идентификатором 10, вам необходимо указать 1&lt;&lt;10 (битовый сдвиг влево на 10), а не просто 10.Если вы хотите, чтобы луч врезался во всё, кроме объектов на слое 10, то просто используйте побитовый оператор дополнения (~), который инвертирует каждый бит в побитовой маске.</li></ul><p>Вот простая демо-сцена, где объект стреляет лучами, которые сталкиваются только с зелёными объектами.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/3e3a5e9c-e73f-41bd-8a9b-b25f1f0027bf.png" alt="" /><figcaption>Рис. 4: Простая демо-сцена с рейкастами</figcaption></figure><p>Здесь ведётся управление количеством и длиной лучей, чтобы получить данные профилировки. Мы можем увидеть на графике ниже зависимость производительности с той длиной лучей и их количеством, что мы имеем.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/c762decc-3578-41f1-8c99-b42cbe0d9182.png" alt="" /><figcaption>Рис. 5: Зависимость производительности от количества лучей</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/48006c34-2233-42b1-a72e-23d2a22a11b9.png" alt="" /><figcaption>Рис. 6: Зависимость производительности от длины лучей</figcaption></figure><p>А вот что будет, если поменять примитивные коллайдеры на меш-коллайдеры.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/ab11c30f-c20a-41a7-9232-a5b476df0bec.png" alt="" /><figcaption>Рис. 7: Меш-коллайдеры на сцене (110 полигонов на коллайдер)</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/05ef82c0-adbc-4f3b-8e36-1397bca7ad89.png" alt="" /><figcaption>Рис. 8: Примитивные коллайдеры в сравнении с меш-коллайдерами в данных профилировки</figcaption></figure><p>Как вы можете видеть на данных профилировки, рейкастинг меш-коллайдеров заставляет физический движок работать больше.</p><h2>Физика 2D vs 3D</h2><p>Решите, какой физический движок лучше подходит для вашего проекта. Если вы разрабатываете 2D-игру или 2.5D (псевдотрёхмерность), то использование физического движка для 3D может быть избыточным. Дополнительное измерение в вашем проекте впустую загружает процессор. Вы можете посмотреть более детальные различия между двумя движками в статье.</p><h2>Rigidbody</h2><p>Компонент <a href="https://docs.unity3d.com/ru/530/Manual/class-Rigidbody.html">Rigidbody</a> — это привычный компонент для физических взаимодействий между объектами. Даже когда вы работаете с коллайдером как с триггером, вам нужно добавить его на игровой объект для корректной работы событий OnTrigger. Игровые объекты, которые не имеют компонента Rigidbody, рассматриваются как статические коллайдеры. Это крайне важно, т. к. попытка сдвинуть статический коллайдер крайне неэффективна, ведь движок пересчитывает весь физический мир заново. К счастью, профайлер даст вам знать, если вы попытаетесь сдвинуть статический коллайдер, и выведет предупреждение во вкладке профайлера. В следующем тесте были убраны Rigidbody со всех движущихся объектов первой демо-сцены и засняты данные профилировки, чтобы продемонстрировать, как влияют попытки сдвинуть статические коллайдеры.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/54930978-b1c2-4688-b14f-66cbdbdfb3f8.png" alt="" /><figcaption>Рис.9: Предупреждение перемещения статических коллайдеров</figcaption></figure><p>Как вы можете видеть, около 2 000 предупреждений генерируется на каждом игровом объекте. Также средние затраты времени, потраченного ЦПУ на физику, возросли с ~17,6 мс до ~35,85 мс. Поэтому если мы двигаем игровой объект, важно добавить на него Rigidbody. Если вы хотите вручную контролировать его движение, то просто пометьте его как Kinematic в свойствах Rigidbody.</p><h2>Фиксированные временные участки (Timestep)</h2><p>Настройка значения фиксированных timestep в Time Manager непосредственно влияет на FixedUpdate() и частоту обновления физики. Изменяя это значение, вы можете достигнуть золотой середины между точностью и временем, затраченным ЦПУ на физику.</p><h2>Заключение</h2><p>Все эти приёмы довольно просты в реализации, но они, несомненно, влияют на производительность вашего проекта, ведь почти каждая разрабатываемая игра использует физический движок, даже если это только обработка коллизий.</p>]]></content:encoded>
    </item>
    <item>
      <title>Настройка и использование PDO — расширения PHP Data Objects для работы с базами данных</title>
      <link>https://tproger.ru/translations/how-to-configure-and-use-pdo</link>
      <comments>https://tproger.ru/translations/how-to-configure-and-use-pdo?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Александр Наливайко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/how-to-configure-and-use-pdo</guid>
      <description><![CDATA[<p>Расширение PDO реализует взаимодействие с базами данных при помощи объектов. Профит в том, что нет привязки к конкретной системе управления базами данных. В руководстве вы найдете пошаговое описание работы с базами данных, порядок использования подготовленных запросов и настройку обработки ошибок.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/how-to-configure-and-use-pdo">Настройка и использование PDO — расширения PHP Data Objects для работы с базами данных</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[PHP]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Для продолжающих]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 05 Oct 2017 13:08:43 GMT</pubDate>
      <content:encoded><![CDATA[<p>PDO (<a href="http://php.net/manual/ru/intro.pdo.php">PHP Data Objects</a>) — расширение PHP, которое реализует взаимодействие с базами данных при помощи объектов. Профит в том, что отсутствует привязка к конкретной системе управления базами данных.</p><p>Предоставляемый интерфейс поддерживает, среди прочих, такие популярные СУБД:</p><ul><li>MySQL;</li><li>SQLite;</li><li>PostgreSQL;</li><li>Microsoft SQL Server.</li></ul><p>В этом руководстве представлен обзор PDO:</p><ol><li><a href="https://tproger.ru/#pdo_usage">Пошаговое описание работы с базами данных</a>, начиная с установки соединения до выполнения выборки.</li><li><a href="https://tproger.ru/#prepared_statements">Порядок использования подготовленных запросов</a>.</li><li><a href="https://tproger.ru/#pdo_errors">Настройка обработки ошибок</a>.</li></ol><p>Для работы потребуются:</p><ul><li>базовые знания MySQL и опыт использования команды mysql в консоли;</li><li>понимание основ объектно-ориентированного программирования;</li><li>PHP &gt;= 5.1;</li><li>рабочая СУБД MySQL/MariaDB.</li></ul><h2>Создание тестовой базы данных и таблицы</h2><p>Для начала создадим базу данных для этого руководства:</p><p>Пользователю с логином testuser и паролем testpassword предоставили полные права доступа к базе solar_system.</p><p>Теперь создадим таблицу и заполним данными, астрономическая точность которых не подразумевается:</p><h2>Описание соединения</h2><p>Теперь, когда создана база, определим DSN (<a href="https://en.wikipedia.org/wiki/Data_source_name">Data Source Name</a>) — сведения для подключения к базе, представленные в виде строки. Синтаксис описания отличается в зависимости от используемой СУБД. В примере работаем с MySQL/MariaDB, поэтому указываем:</p><ul><li><a href="http://php.net/manual/ru/pdo.drivers.php">тип драйвера</a>;</li><li>имя хоста, где расположена СУБД;</li><li>порт (необязательно, если используется стандартный порт 3306);</li><li>имя базы данных;</li><li>кодировку (необязательно).</li></ul><p>Строка DSN в этом случае выглядит следующим образом:</p><p>Первым указывается database prefix. В примере — mysql. Префикс отделяется от остальной части строки двоеточием, а каждый следующий параметр — точкой с запятой.</p><h2>Создание PDO-объекта</h2><p>Теперь, когда строка DSN готова, создадим PDO-объект. Конструктор на входе принимает следующие параметры:</p><ol><li>Строку DSN.</li><li>Имя пользователя, имеющего доступ к базе данных.</li><li>Пароль этого пользователя.</li><li>Массив с дополнительными параметрами (необязательно).</li></ol><p>Дополнительные параметры можно также определить после создания объекта с помощью метода SetAttribute:</p><h2>Определение метода выборки по умолчанию</h2><p>PDO::DEFAULT_FETCH_MODE — важный параметр, который определяет метод выборки по умолчанию. Указанный метод используется при получении результата выполнения запроса.</p><h3>PDO::FETCH_BOTH</h3><p>Режим по умолчанию. Результат выборки индексируется как номерами (начиная с 0), так и именами столбцов:</p><p>После выполнения запроса с этим режимом к тестовой таблице планет получим следующий результат:</p><h3>PDO::FETCH_ASSOC</h3><p>Результат сохраняется в ассоциативном массиве, в котором ключ — имя столбца, а значение — соответствующее значение строки:</p><p>В результате получим:</p><h3>PDO::FETCH_NUM</h3><p>При использовании этого режима результат представляется в виде массива, индексированного номерами столбцов (начиная с 0):</p><h3>PDO::FETCH_COLUMN</h3><p>Этот вариант полезен, если нужно получить перечень значений одного поля в виде одномерного массива, нумерация которого начинается с 0. Например:</p><p>В результате получим:</p><h3>PDO::FETCH_KEY_PAIR</h3><p>Используем этот вариант, если нужно получить перечень значений двух полей в виде ассоциативного массива. Ключи массива — это данные первого столбца выборки, значения массива — данные второго столбца. Например:</p><p>В результате получим:</p><h3>PDO::FETCH_OBJECT</h3><p>При использовании PDO::FETCH_OBJECT для каждой извлеченной строки создаётся анонимный объект. Его общедоступные (<a href="http://php.net/manual/ru/language.oop5.visibility.php">public</a>) свойства — имена столбцов выборки, а результаты запроса используются в качестве их значений:</p><p>В результате получим:</p><h3>PDO::FETCH_CLASS</h3><p>В этом случае, как и в предыдущем, значения столбцов становятся свойствами объекта. Однако требуется указать существующий класс, который будет использоваться для создания объекта. Рассмотрим это на примере. Для начала создадим класс:</p><p>Обратите внимание, что у класса Planet закрытые (private) свойства и нет конструктора. Теперь выполним запрос.</p><p>Если используется метод fetch с PDO::FETCH_CLASS, перед отправкой запроса на получение данных нужно применить метод setFetchMode:</p><p>Первый параметр, который передаем методу setFetchMode, — константа PDO::FETCH_CLASS. Второй параметр — имя класса, который будет использоваться при создании объекта. Теперь выполним:</p><p>В результате получим объект Planet:</p><p>Значения, полученные в результате запроса, назначены соответствующим свойствам объекта, даже закрытым.</p><h3>Определение свойств после выполнения конструктора</h3><p>В классе Planet нет явного конструктора, поэтому проблем при назначении свойств не будет. При наличии у класса конструктора, в котором свойство было назначено или изменено, они будут перезаписаны.</p><p>При использовании константы FETCH_PROPS_LATE значения свойств будут присваиваться после выполнения конструктора:</p><p>Мы изменили класс Planet, добавив конструктор, который принимает на входе два аргумента: name (имя) и color (цвет). Значения этих полей по умолчанию: moon (луна) и gray (серый) соответственно.</p><p>Если не использовать FETCH_PROPS_LATE, при создании объекта свойства будут перезаписаны значениями по умолчанию. Проверим это. Сначала выполним запрос:</p><p>В результате получим:</p><p>Как и ожидалось, извлеченные из базы данных значения перезаписаны. Теперь рассмотрим решение задачи с помощью FETCH_PROPS_LATE (запрос аналогичный):</p><p>В результате получим то, что нужно:</p><p>Если у конструктора класса нет значений по умолчанию, а они нужны, параметры конструктора задаются  при вызове метода setFetchMode третьим аргументом в виде массива. Например:</p><p>Аргументы конструктора обязательны, поэтому выполним:</p><p>Входящие параметры выступают также в роли значений по умолчанию, которые нужны для инициализации. В дальнейшем они будут перезаписаны значениями из базы данных.</p><h3>Получение нескольких объектов</h3><p>Множественные результаты извлекаются в виде объектов с помощью метода fetch внутри цикла while:</p><p>Или путём выборки всех результатов сразу. Во втором случае используется метод fetchAll, причём режим указывается в момент вызова:</p><h3>PDO::FETCH_INTO</h3><p>При выборе этого варианта выборки PDO не создаёт новый объект, а обновляет свойства существующего. Однако это возможно только для общедоступных (public) свойств или при использовании в объекте <a href="http://php.net/manual/ru/language.oop5.magic.php">«магического» метода</a> __set.<br /></p><h2>Подготовленные и прямые запросы</h2><p>В PDO два способа выполнения запросов:</p><ul><li>прямой, который состоит из одного шага;</li><li>подготовленный, который состоит из двух шагов.</li></ul><h3>Прямые запросы</h3><p>Существует два метода выполнения прямых запросов:</p><ul><li>query используется для операторов, которые не вносят изменения, например SELECT. Возвращает объект PDOStatemnt, из которого с помощью методов fetch или fetchAll извлекаются результаты запроса;</li><li>exec используется для операторов вроде INSERT, DELETE или UPDATE. Возвращает число обработанных запросом строк.</li></ul><p>Прямые операторы используются только в том случае, если в запросе отсутствуют переменные и есть уверенность, что запрос безопасен и правильно экранирован.</p><h3>Подготовленные запросы</h3><p>PDO поддерживает подготовленные запросы (<a href="http://php.net/manual/ru/pdo.prepared-statements.php">prepared statements</a>), которые полезны для защиты приложения от <a href="https://tproger.ru/translations/webapp-security/#sql_injection">SQL-инъекций</a>: метод prepare выполняет необходимые экранирования.</p><p>Рассмотрим пример. Требуется вставить свойства объекта Planet в таблицу Planets. Сначала подготовим запрос:</p><p>Используем метод prepare, который принимает как аргумент SQL-запрос с псевдопеременными (<a href="http://php.net/manual/ru/pdostatement.bindvalue.php">placeholders</a>). Псевдопеременные могут быть двух типов: неименнованые и именованные.</p><h3>Неименованные псевдопеременные</h3><p>Неименованные псевдопеременные (<a href="http://php.net/manual/ru/pdostatement.bindvalue.php">positional placeholders</a>) отмечаются символом ?. Запрос в результате получается компактным, но требуется предоставить значения для подстановки, размещенные в том же порядке. Они передаются в виде массива через метод execute:</p><h3>Именованные псевдопеременные</h3><p>При использовании именованных псевдопеременных (<a href="http://php.net/manual/ru/pdostatement.bindvalue.php">named placeholders</a>) порядок передачи значений для подстановки не важен, но код в этом случае становится не таким компактным. В метод execute данные передаются в виде ассоциативного массива, в котором каждый ключ соответствует имени псевдопеременной, а значение массива — значению, которое требуется подставить в запрос. Переделаем предыдущий пример:</p><p>Методы prepare и execute используются как при выполнении запросов на изменение, так и при выборке.</p><p>А информацию о количестве обработанных строк при необходимости предоставит метод rowCount.<br /></p><h2>Управление поведением PDO при ошибках</h2><p>Параметр выбора режима ошибок PDO::ATTR_ERRMODE используется для определения поведения PDO в случае ошибок. Доступно три варианта: PDO::ERRMODE_SILENT, PDO::ERRMODE_EXCEPTION и PDO::ERRMODE_WARNING.</p><h3>PDO::ERRMODE_SILENT</h3><p>Вариант по умолчанию. PDO просто запишет информацию об ошибке, которую помогут получить методы <a href="http://php.net/manual/ru/pdo.errorcode.php">errorCode</a> и <a href="http://php.net/manual/ru/pdo.errorinfo.php">errorInfo</a>.</p><h3>PDO::ERRMODE_EXCEPTION</h3><p>Это предпочтительный вариант, при котором в дополнение к информации об ошибке PDO выбрасывает исключение (<a href="http://php.net/PDOException">PDOException</a>). Исключение прерывает выполнение скрипта, что полезно при использовании транзакций PDO. Пример приведён <a href="https://tproger.ru/#transaction">ниже</a> при описании транзакций.</p><h3>PDO::ERRMODE_WARNING</h3><p>В этом случае PDO также записывает информацию об ошибке. Поток выполнения скрипта не прерывается, но выдаются предупреждения.</p><h2>Методы bindValue и bindParam</h2><p>Для подстановки значений в запросе можно также использовать методы bindValue и bindParam. Первый связывает значение переменной с псевдопеременной, которая использована при подготовке запроса:</p><p>Связали значение переменной $planet-&gt;name с псевдопеременной :name. Обратите внимание, что при использовании методов bindValue и bindParam как третий аргумент указывается тип переменной, используя соответствующие константы PDO. В примере — PDO::PARAM_STR.</p><p>Метод bindParam привязывает переменную к псевдопеременной. В этом случае переменная связана с псевдопеременной ссылкой, а значение будет подставлено в запрос только после вызова метода execute. Рассмотрим на примере:</p><h2>Транзакции в PDO</h2><p>Транзакции позволяют сохранить на некоторое время и организовать выполнение нескольких запросов «пакетом». Запросы, включённые в транзакцию, применяются только в том случае, если при выполнении отсутствуют ошибки. Транзакции поддерживаются не всеми СУБД и работают не со всеми SQL-конструкциями, так как некоторые из них вызывают неявное выполнение. Список таких конструкций можно найти на <a href="https://mariadb.com/kb/en/library/sql-statements-that-cause-an-implicit-commit/">сайте MariaDB</a>.</p><p>Представим необычный пример. Пользователю требуется выбрать список планет, причём каждый раз при выполнении запроса текущие данные удаляются из базы, а потом вставляются новые. Если после удаления произойдёт ошибка, то следующий пользователь получит пустой список. Чтобы этого избежать, используем транзакции:</p><p>Метод beginTransaction отключает автоматическое выполнение запросов, а внутри конструкции try-catch запросы выполняются в нужном порядке. Если не возникнет исключений PDOException, запросы выполнятся с помощью метода commit. В противном случае откатятся с помощью метода rollback, а автоматическое выполнение запросов восстановится.</p><p>Таким образом появилась согласованность выполнения запросов. Очевидно, что для этого параметру PDO::ATTR_ERRMODE необходимо установить значение PDO::ERRMODE_EXCEPTION.</p><h2>Заключение</h2><p>Теперь, когда работа с PDO описана, отметим его основные преимущества:</p><ul><li>с PDO легко перенести приложение на другие СУБД;</li><li>поддерживаются все популярные СУБД;</li><li>встроенная система управления ошибками;</li><li>разнообразные варианты представления результатов выборки;</li><li>поддерживаются подготовленные запросы, которые сокращают код и делают его устойчивым к SQL-инъекциям;</li><li>поддерживаются транзакции, которые помогают сохранить целостность данных и согласованность запросов при параллельной работе пользователей.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Автостопом по машинному обучению на Python</title>
      <link>https://tproger.ru/translations/hitchhikers-guide-to-ml</link>
      <comments>https://tproger.ru/translations/hitchhikers-guide-to-ml?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ihor.m 💼]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/hitchhikers-guide-to-ml</guid>
      <description><![CDATA[<p>В этой статье кратко описаны восемь главных алгоритмов машинного обучения и то, как использовать их на практике. Будет полезно для структурирования знаний.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/hitchhikers-guide-to-ml">Автостопом по машинному обучению на Python</a>»</p>]]></description>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Для продолжающих]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 30 Sep 2017 19:18:55 GMT</pubDate>
      <content:encoded><![CDATA[<p>Машинное обучение на подъеме, этот термин медленно забрался на территорию так называемых модных слов (buzzword). Это в значительной степени связано с тем, что многие до конца не осознают, что же на самом деле означает этот термин. Благодаря анализу Google Trends (статистике по поисковым запросам), мы можем изучить график и понять, как рос интерес к термину «машинное обучение» в течение последних 5 лет:</p><figure><img src="https://media.tproger.ru/uploads/2017/09/1-OVVMCFFCcs5sDUdC7TVpHA-280x107.png" alt="" /></figure><h2>Цель</h2><p>Но эта статья не о популярности машинного обучения. Здесь кратко описаны восемь главных алгоритмов машинного обучения и их использование на практике. Обратите внимание, что все модели реализованы на Python и у вас должно быть хотя бы минимальное знание этого языка программирования. Подробное объяснение каждого раздела содержится в прикрепленных англоязычных видео. Сразу оговоримся, что полным новичкам этот текст покажется сложным, он скорее подходит для продолжающих и продвинутых разработчиков, но главы материала можно использовать как план для построения обучения: что стоит знать, в чем стоит разобраться в первую очередь.</p><h2>Классификация</h2><p>Не стесняйтесь пропускать алгоритм, если чего-то не понимаете. Используйте это руководство так, как пожелаете. Вот список:</p><ol><li>Линейная регрессия.</li><li>Логистическая регрессия.</li><li>Деревья решений.</li><li>Метод опорных векторов.</li><li>Метод k-ближайших соседей.</li><li>Алгоритм случайный лес.</li><li>Метод k-средних.</li><li>Метод главных компонент.</li></ol><h2>Наводим порядок</h2><p>Вы явно расстроитесь, если при попытке запустить чужой код вдруг окажется, что для корректной работы у вас нет трех необходимых пакетов, да еще и код был запущен в старой версии языка. Поэтому, чтобы сохранить драгоценное время, сразу используйте Python 3.6.2 и импортируйте нужные библиотеки из вставки кода ниже. Данные брались из датасетов <a href="https://archive.ics.uci.edu/ml/datasets/Diabetes">Diabetes</a> и <a href="https://archive.ics.uci.edu/ml/datasets/Iris">Iris</a> из<a href="https://archive.ics.uci.edu/ml/index.php"> UCI Machine Learning Repository</a>. В конце концов, если вы хотите все это пропустить и сразу посмотреть код, то вот вам ссылка на <a href="https://github.com/conordewey3/HitchHikers-Guide-Machine-Learning">GitHub-репозиторий</a>.</p><h2>Линейная регрессия</h2><p>Возможно, это самый популярный алгоритм машинного обучения на данный момент и в то же время самый недооцененный. Многие специалисты по анализу данных забывают, что из двух алгоритмов с одинаковой производительностью лучше выбирать тот, что проще. <a href="https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F">Линейная регрессия</a> — это алгоритм контролируемого машинного обучения, который прогнозирует результат, основанный на непрерывных функциях. Линейная регрессия универсальна в том смысле, что она имеет возможность запускаться с одной входной переменной (простая линейная регрессия) или с зависимостью от нескольких переменных (множественная регрессия). Суть этого алгоритма заключается в назначении оптимальных весов для переменных, чтобы создать линию (ax + b), которая будет использоваться для прогнозирования вывода. Посмотрите видео с более наглядным объяснением.</p><p>Теперь, когда вы поняли суть линейной регрессии, давайте пойдем дальше и реализуем ее на Python.</p><h3>Начало работы</h3><h3>Визуализация</h3><h3>Реализация</h3><h2>Логистическая регрессия</h2><p><a href="https://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B3%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F">Логистическая регрессия</a> – алгоритм контролируемой классификации. Она позволяет предсказывать значения непрерывной зависимой переменной на интервале от 0 до 1. Когда начинаешь изучать логистическую регрессию, складывается впечатление, что это своего рода узкоспециализированная вещь, и поэтому не уделяешь ей должного внимания. И лишь позже понимаешь, что очень ошибался. Некоторые из основных аспектов логистической регрессии лежат в основе других важных алгоритмов машинного обучения, например, для повышения точности прогноза нейросетевой модели. Имейте это в виду и смотрите видео ниже.</p><p>Теперь попробуем реализовать этот алгоритм на Python.</p><h3>Начало работы</h3><h3>Визуализация</h3><h3>Реализация</h3><h2>Деревья решений</h2><p>Метод <a href="https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D1%80%D0%B5%D0%B2%D0%BE_%D0%BF%D1%80%D0%B8%D0%BD%D1%8F%D1%82%D0%B8%D1%8F_%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B9">деревьев решений</a> (decision trees) – это один из наиболее популярных методов решения задач классификации и прогнозирования. Опыт показывает, что чаще всего данный алгоритм используется именно для классификации. На входе модель принимает набор атрибутов, характеризующих некую сущность, а затем спускается по дереву, тестируя их в зависимости от того, какие значения может принимать целевая функция. Таким образом, классификация каждого нового случая происходит при движении вниз до листа, который и укажет нам значение целевой функции в каждом конкретном случае. Деревья принятия решений становятся все более популярными и могут служить очень сильным инструментом для аналитики данных, особенно в сочетании с простыми методами композиции, такими как случайный лес, бустинг и бэггинг. И снова просмотрите видео ниже, чтобы более подробно изучить базовую функциональность деревьев решений.</p><p>А теперь по традиции перейдем к практике и реализуем данный алгоритм на Python.</p><h3>Начало работы</h3><h3>Реализация</h3><h3>Визуализация</h3><h2>Метод опорных векторов</h2><p><a href="https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BE%D0%BF%D0%BE%D1%80%D0%BD%D1%8B%D1%85_%D0%B2%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2">Метод опорных векторов</a>, также известный как SVM, является широко известным алгоритмом классификации, который создает разделительную линию между разными категориями данных. Как этот вектор вычисляется, можно объяснить простым языком — это всего лишь оптимизация линии таким образом, что ближайшие точки в каждой из групп будут наиболее удалены друг от друга.</p><p>Этот вектор установлен по умолчанию и часто визуализируется как линейный, однако это не всегда так. Вектор также может принимать нелинейный вид, если тип ядра изменен от типа (по умолчанию) «гауссовского» или линейного. Несколькими предложениями данный алгоритм не опишешь, поэтому просмотрите учебное видео ниже.</p><p>И по традиции реализация на Python.</p><h3>Начало работы</h3><h3>Реализация</h3><h3>Визуализация</h3><h2>Метод k-ближайших соседей</h2><p><a href="https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_k-%D0%B1%D0%BB%D0%B8%D0%B6%D0%B0%D0%B9%D1%88%D0%B8%D1%85_%D1%81%D0%BE%D1%81%D0%B5%D0%B4%D0%B5%D0%B9">K-Nearest Neighbors</a>, или KNN, представляет собой контролируемый алгоритм обучения, который используется преимущественно для решения задач классификации. Данный алгоритм наблюдает за разными центрами (центроидами) и сравнивает расстояние между ними, используя для этого различные функции (обычно евклидово расстояние). Затем определяется, к какому классу принадлежит большинство ближайших объектов обучающей выборки – к этому классу относится и неизвестный объект. Посмотрите видео для того, чтобы увидеть что происходит за кулисами данного алгоритма.</p><p>Теперь, когда вы поняли общую концепцию метода k-ближайших соседей, давайте напишем реализацию на Python.</p><h3>Начало работы</h3><h3>Визуализация</h3><h3>Реализация</h3><h2>Случайный лес</h2><p><a href="https://ru.wikipedia.org/wiki/Random_forest">Случайный лес </a>— популярный алгоритм контролируемого обучения, заключающийся в использовании комитета (ансамбля) решающих деревьев. «Ансамбль» означает, что он берет кучу «слабых учеников» и объединяет их, чтобы сформировать один сильный предиктор. «Слабые ученики» — это все случайные реализации деревьев решений, которые объединяются для формирования сильного предсказателя — случайного леса. Все не объяснить. Смотрите видео ниже.</p><p>Теперь мы знаем, что такое случайный лес, пришло время реализации кода на Python.</p><h3>Начало работы</h3><h3>Реализация</h3><h2>Метод k-средних</h2><p><a href="https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_k-%D1%81%D1%80%D0%B5%D0%B4%D0%BD%D0%B8%D1%85">Метод k-средних</a> — это популярный алгоритм неконтролируемой классификации обучения, обычно используемый для решения проблемы кластеризации. K обозначает количество введенных пользователем кластеров. Алгоритм начинается со случайно выбранных точек, а затем оптимизирует кластеры при помощи функций (евклидово расстояние и т. д), чтобы найти наилучшую группировку точек данных. В итоге специалистам по большим данным необходимо выбрать правильное значение K. Вы уже знаете, что для полноты картины нужно посмотреть видео.</p><p>Теперь, когда вы знаете чуть больше о кластеризации k-средних, давайте реализуем алгоритм на Python.</p><h3>Начало работы</h3><h3>Реализация</h3><h3>Визуализация</h3><h2>Метод главных компонент</h2><p><a href="https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D1%8B%D1%85_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82">PCA (Principal Component Analysis)</a> — алгоритм сокращения размерности, который может быть очень полезен для аналитиков. Главное — это то, что данный алгоритм может значительно уменьшить размерность данных при работе с сотнями или даже тысячами различных функций. Данный алгоритм не контролируется, но пользователь должен анализировать результаты и следить за тем, чтобы сохранялось 95% или около этой цифры первоначального набора данных. Не забудьте про видео, ведь оно расскажет намного больше об этом интересном алгоритме.</p><p>Реализация на Python.</p><h3>Начало работы</h3><h3>Реализация</h3><h2>Подводим итоги</h2><p>В данном учебном пособии, мы, не углубляясь, прошлись по всем важным на сегодняшний день алгоритмам машинного обучения. Во время вашего путешествия к мастерству в машинном обучении эта статья поможет вам систематизировать знания в голове.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие метатеги использовать в вебе в 2017 году</title>
      <link>https://tproger.ru/translations/meta-tags-2017</link>
      <comments>https://tproger.ru/translations/meta-tags-2017?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Александр Наливайко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/meta-tags-2017</guid>
      <description><![CDATA[<p>Браузеры интерпретируют метатеги, чтобы правильно отобразить сайт, а поисковики используют их при выборке информации о странице. Стандарты взаимодействия развиваются, и теги — вместе с ними. Разбираем актуальное по теме.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/meta-tags-2017">Какие метатеги использовать в вебе в 2017 году</a>»</p>]]></description>
      <category><![CDATA[SEO]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[Для продолжающих]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 23 Sep 2017 17:25:13 GMT</pubDate>
      <content:encoded><![CDATA[<p>Метатеги в контексте веб-страниц — HTML-теги, которые размещаются в разделе &lt;head&gt; веб-страницы. Браузеры интерпретируют их, чтобы правильно отобразить сайт, а поисковые системы используют при выборке информации о странице. Некоторые теги могут влиять на позиции сайта в результатах поиска.</p><p>Рассмотрим метатеги, которые стоит использовать в 2017 году. Стандарты взаимодействия развиваются, и теги — вместе с ними. Поэтому те теги, которые здесь не описаны, с большой вероятностью уже бесполезны.</p><h2>Основные</h2><p>Определяет <a href="https://www.w3schools.com/tags/att_meta_charset.asp">кодировку веб-страницы</a>:</p><p>Определяет заголовок веб-страницы, который также отображается в результатах поиска Google, Яндекс, Bing и др. Длину заголовка стоит уместить в 70 символов, так как остальное будет отсечено при отображении:</p><p>Определяет краткое описание содержания веб-страницы, которое также может быть использовано в выдаче поисковых систем. Длину описания стоит уместить в 150 символов, так как остальное будет отсечено при отображении:</p><p>Известен как <a href="https://css-tricks.com/snippets/html/responsive-meta-tag/">метатег адаптивного дизайна</a>, потому что описывает, как разметка и контент изменяются в зависимости от размера области просмотра устройства. Атрибут content принимает различные значения, однако указанный выше вариант можно назвать стандартным:</p><p>Определяет базовый URL-адрес для ссылок на внешние файлы, такие, как CSS, Javascript и изображения. В результате браузер найдёт файл независимо от размещения текущей веб-страницы. Это не самый полезный тег, но если его указать, то объём исходного кода страницы уменьшится, а перенос сайта на другой домен принесёт меньше головной боли разработчику:</p><p>Определяет «Имя приложения», которое появляется под иконкой страницы на мобильных устройствах, когда пользователь использует функцию «Добавить на главный экран» в веб-браузере:</p><h2>Взаимодействие с поисковыми системами</h2><p>Иногда требуется запретить или разрешить роботам поисковых систем обрабатывать ту или иную страницу. Метатег robots определяет политику обработки страницы поисковыми роботами. Вот несколько примеров:</p><ul><li>&lt;meta name="robots" content="all"/&gt; — разрешено индексировать текст и ссылки на странице, аналогично &lt;meta name="robots" content="index, follow"/&gt;;</li><li>&lt;meta name="robots" content="noindex"/&gt; — не индексировать текст страницы;</li><li>&lt;meta name="robots" content="nofollow"/&gt; — не переходить по ссылкам на странице;</li><li>&lt;meta name="robots" content="none"/&gt; — запрещено индексировать текст и переходить по ссылкам на странице, аналогично &lt;meta name="robots" content="noindex, nofollow"/&gt;;</li><li>&lt;meta name="robots" content="noarchive"/&gt; — не показывать ссылку на сохраненную копию на странице результатов поиска.</li></ul><h3>Google</h3><p>Как и предыдущий тег, определяет политику обработки страницы поисковым роботом, но только для Google:</p><p>Проверяет веб-сайт на наличие доступа к <a href="https://www.google.ru/webmasters/">панели веб-мастера Google</a> (Google Webmaster Tools):</p><p>Отключает <a href="https://developers.google.com/search/docs/data-types/sitelinks-searchbox#example">панель поиска ссылок Google</a>:</p><p>Запрещает браузеру Google Chrome переводить веб-страницу:</p><p>Подробности работы с Google описаны в <a href="https://support.google.com/webmasters#topic=3309469">Справочном центре</a>.</p><h3>Яндекс</h3><p>Определяет политику обработки страницы роботом Яндекс:</p><p>Проверяет веб-сайт на наличие доступа к <a href="https://webmaster.yandex.ru/">сервису Яндекс.Вебмастер</a>:</p><p>Подробности работы с Яндекс описаны на <a href="https://yandex.ru/support/webmaster/index.html">странице помощи для веб-мастеров</a>.</p><h2>Взаимодействие с социальными сетями</h2><p>Метатеги социальных медиа необязательны, но помогают поделиться ссылкой на веб-страницу в таком виде, чтобы привлечь внимание читателей, увеличить количество лайков и репостов.</p><p>Текст адаптируется для поста, картинка создаётся специально под площадку. Причём они могут даже не отображаться в веб-версии сайта.</p><h3>Open Graph (Facebook, Pinterest, Вконтакте, Одноклассники)</h3><p><a href="http://ogp.me/">Open Graph</a> — разработанная Facebook разметка, позволяющая настраивать превью страницы, ссылка на которую размещена в социальной сети. Open Graph поддерживают социальные сети вроде Вконтакте, Одноклассники, Google+, Twitter и LinkedIn. Как основную используют Facebook и Pinterest.</p><p>Стандартный сниппет выглядит так:</p><p>Facebook поддерживает дополнительные метатеги для изображений и видео.</p><p>Для Pinterest в article:author указывается имя автора или название сайта, но это противоречит требованиям Open Graph на Facebook. Для программистов создано <a href="https://surniaulula.com/2014/03/01/pinterest-articleauthor-incompatible-with-open-graph/">интересное решение</a>. В противном случае используйте более выгодный вариант или разметку Schema вместе с Open Graph.</p><p>Чтобы запретить пользователям пинить свой контент, используйте следующий код:</p><h3>Стандартные метатеги (Twitter)</h3><p>Twitter поддерживает некоторые элементы Open Graph, но в основном использует <a href="https://dev.twitter.com/cards/getting-started">стандартные метатеги</a> для определения расшаренного контента. Проверить описание, или карту, как называет его Twitter, можно с помощью валидатора карт.</p><p>Вот пример описания:</p><p>Примечание twitter:site — ссылка на аккаунт сайта в Twitter, twitter:creator — ссылка на аккаунт автора.</p><h3>Schema (Google+ и Pinterest)</h3><p>Разметка Schema — продукт совместной работы крупнейших поисковых систем, преимущественно используемый в Google+. В Pinterest <a href="https://developers.pinterest.com/docs/rich-pins/articles/">Schema поддерживается как альтернатива Open Graph</a>, но не в полной мере: рекомендуется использовать обе. Разметка Schema громоздкая и менее привлекательная, чем Open Graph, но её словарь описания связанного контента богаче.</p><p>Вот сниппет для Google+:</p><p>Google+ использует Open Graph как резервную разметку, у Pinterest используются дополнительные метатеги Schema, поэтому разумно использовать все три описанные разметки.</p><h2>Разные полезности</h2><h3>Передача реферальных данных</h3><p>При использовании HTTPS реферальные данные по умолчанию не передаются. Это улучшает защиту сайта, но мешает собирать веб-аналитику. С помощью метатега referrer определяется <a href="https://blog.wsol.com/seo-for-https-sites-should-you-implement-the-meta-referrer-tag">политика передачи реферальных данных</a>. Атрибут content принимает различные значения. unsafe-url, например, указывает, что передаётся полная ссылка на страницу.</p><h3>Исключение дублированного контента</h3><p>Если при анализе сайта Google находит две версии одной страницы, каждая из которых имеет свой URL-адрес, будет применён штраф за дублирование контента (duplicate content). Используя canonical, вы говорите поисковикам: «Эй, это наше художественное видение!». Таким образом, штрафных мер не будет.</p><p>Ссылка на <a href="https://www.ampproject.org/">AMP-версию</a> страницы.</p><p>Ссылка на версию веб-страницы, которая переведена на другой язык. Язык текущей страницы указывается следующим образом:</p><h3>RSS</h3><p>С помощью alternate также указывается RSS-версия страницы.</p><p>Аналогично на примере канала Atom.</p><h3>Favicon</h3><p>Ссылки на иконки веб-страницы в нескольких размерах. Проверить правильность описания иконок сайта или сгенерировать новое на основе готового изображения можно на специальных сайтах, таких как <a href="https://realfavicongenerator.net/">realfavicongenerator.net</a>. Обратите внимание, что некоторые новые браузеры требуют иной способ указания этой опции. Например:</p><h4>Apple Touch</h4><h4>Windows Metro</h4><p>Код для Metro, в отличие от предыдущих случаев, требуется сохранить в файл browserconfig.xml в корне сайта.</p><h3>Предварительная загрузка</h3><p>Применение метатега link с опцией предварительной загрузки (dns-prefetch, prefetch, preconnect, subresource, prerender и preload) поможет увеличить скорость работы веб-сайта. Они дают знать браузеру, какие ресурсы понадобятся пользователю в будущем, чтобы подготовиться к загрузке в фоновом режиме.</p><p>Браузер определяет в фоновом режиме IP-адрес указанного домена и, когда потребуется запросить что-либо с ресурса на этом домене, сэкономит время на выполнении DNS lookup.</p><p>Похож на dns-prefetch, но, кроме запроса DNS, браузер предварительно устанавливает TCP и TLS соединение.</p><p>Указывает браузеру ресурс, который требуется сохранить в кэш. Однако загрузка выполняется с низким приоритетом и может быть проигнорирована. Это зависит от обстоятельств. Например, от качества сетевого соединения или для Firefox наличия достаточного для загрузки времени простоя браузера.</p><p>Делает то же, что и prefetch, но приоритет у операции высокий. Если ресурс понадобится на текущей странице или в ближайшее время, то разумно использовать subresource. В остальных случаях лучше, конечно, применить prefetch.</p><p>Браузер загружает указанную страницу, строит DOM, применяет CSS и выполняет JavaScript. Как если бы мы открыли её в скрытой вкладке. Но при использовании требуется уверенность, что указанная страница будет загружена, иначе перечисленные операции будут выполнены зря.</p><p>По сути, это аналог prefetch, но с гарантированной загрузкой. Уже описан в <a href="https://w3c.github.io/preload/">спецификации</a>, но поддерживается пока не всеми браузерами. На момент публикации этой статьи есть поддержка в Firefox, Chrome, Safari, Opera и Android Browser. Проверить актуальность информации можно на сайте <a href="https://caniuse.com/#search=preload">caniuse.com</a>.</p><h2>Разные бесполезности</h2><figure><img src="https://media.tproger.ru/uploads/2017/09/meta-tags-2017-useless.jpg" alt="" /></figure><p>Давайте поговорим начистоту. Ничего страшного не случится, если использовать устаревшие метатеги, но они занимают место в разметке, и их никто не обрабатывает. Долой лишнее из раздела &lt;head&gt;!</p><p>Примеры таких метатегов:</p><ul><li>Author/web author — определяет имя автора страницы. Указывать бессмысленно, так как не используется.</li><li>Revisit after — указывает поисковым роботам время, через которое требуется зайти на страницу снова. Поисковые системы вроде «Яндекс» и Google не учитывают этот параметр.</li><li>Rating — обозначает возрастную категорию контента. Чтобы пометить страницу, на которой размещены изображения для взрослых, требуется пройти запутанную процедуру. Проще отметить «плохие» изображения, <a href="https://productforums.google.com/forum/?hl=en#!category-topic/webmasters/crawling-indexing--ranking/9_HKGegUMvM">разместить в отдельной директории на сайте</a> и сообщить об этом поисковым системам.</li><li>Expiration/date — указывает дату создания и срок актуальности страницы. Если страницы уже не нужны, просто удалите. Дату создания же лучше указать в XML sitemap.</li><li>Copyright — описывает авторские права. Посмотрите на нижний колонтитул сайта. Наверняка там размещена фраза вроде Copyright 20xx. Не стоит дублировать описание ещё в теги.</li><li>Abstract — содержит аннотацию к содержанию страницы и чаще используется на образовательных ресурсах.</li><li>Distribution — описывает права доступа к странице. Как правило, содержит значение global. Изначально задумывалось, что если страница открыта (не защищена паролем), то предназначена для всего мира. Смиритесь и уберите со страницы.</li><li>Generator — указывает, с помощью какой программы создана страница. Как и author, это бесполезно.</li><li>Cache control — указывает, когда и как часто страница кэшируется в браузере. Лучше это определить в <a href="https://www.mnot.net/cache_docs/#META">заголовке HTTP</a>.</li><li>Resource type — указывает тип ресурса страницы, например, document. Не тратьте на это время, так как это работа <a href="https://www.w3schools.com/xml/xml_dtd_intro.asp">DTD</a>.</li></ul><p>Эта шпаргалка поможет понять, что происходит в мире метатегов. Если считаете, что нужно что-то добавить или удалить — пишите в комментарии.</p>]]></content:encoded>
    </item>
    <item>
      <title>«На лучшем языке писать имеешь право»: книги по программированию на Java</title>
      <link>https://tproger.ru/books/java-free-advanced-books</link>
      <comments>https://tproger.ru/books/java-free-advanced-books?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Иван Бирюков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/books/java-free-advanced-books</guid>
      <description><![CDATA[<p>В прошлой подборке мы собрали книги, которые пригодятся начинающим своё знакомство с языком Java. Теперь же настало время книг для прошаренных джавистов :) </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/books/java-free-advanced-books">«На лучшем языке писать имеешь право»: книги по программированию на Java</a>»</p>]]></description>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Для продолжающих]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Книги]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 16 Aug 2017 15:34:34 GMT</pubDate>
      <content:encoded><![CDATA[<p>В отличие от <a href="https://tproger.ru/books/java-free-beginners-books/">прошлой подборки</a>, сейчас мы подготовили для вас список книг для прошаренных Java-программистов. Здесь вы найдете различные материалы и практические руководства по изучению языка с примерами и подробным разбором всех тонкостей работы.</p><p>Микросервисы — это полезно, но у них есть и недостатки. В этой книге доступно рассказывается, как пользоваться популярными фреймворками вроде Dropwizard и Spring Boot и как разворачивать и поддерживать масштабируемые микросервисы при помощи Linux-контейнеров.</p><p>Надеемся, вам не нужно рассказывать, что такое Android и какие преимущества дает умение создавать приложения под него, а по словам авторов, это пособие — как опытный Android-разработчик рядом с вами.</p><p>Прочитав эту книгу, вы наконец-то сможете реализовать ту самую «взрывную» идею приложения или игры: вы узнаете, как правильно задать структуру своего приложения, создать к нему интерфейс и базу данных, а также как сделать, чтобы оно работало на самых разных смартфонах и планшетах, и многое другое.</p><p>RxJava — это популярная среди Android-разработчиков библиотека для обработки асинхронных данных, но разобраться в ней может быть непросто. В этой книге автор рассказывает об основах RxJava и на примере реального сценария показывает, как использование этой библиотеки упрощает реализацию на первый взгляд громоздких задач.</p><p>Десятое издание книги, обновленное в соответствии с Java SE 8. Во втором томе рассказывается о новых развитых функциональных возможностях, появившихся в версии Java SE 8, в том числе о новых интерфейсах API для потоков данных, даты, времени и календаря, а также о возможностях разработки графических пользовательских интерфейсов, обеспечения безопасности, написания платформенно-ориентированного кода и многое другое.</p><p>С приходом DevOps, микросервисов, контейнеров и облачных платформ для разработки пропасть между красивыми решениями и энтерпрайз-разработкой сильно выросла. В этой книге рассказывается о том, как строить современную архитектуру при помощи Java EE.</p><p>В книге рассматриваются фундаментальные возможности Java EE 7, а также теория и практика использования паттернов проектирования на примерах реальных прикладных задач. Не лишним перед прочтением книги будет наличие базовых знаний паттернов проектирования и платформы Java EE.</p><p>«Java Application Development on Linux» — это практическое руководство по полному жизненному циклу разработки Java-приложений на Linux. Рассматриваются такие темы, как анализ бизнес-логики, проектирование баз данных, пользовательские интерфейсы Java-сервлетов, Server Pages (JSP) и графические интерфейсы Swing и Standard Widget Toolkit (SWT).</p><p>Эта книга рассказывает о создании бэкенда веб-приложений при помощи Java Server Faces (JSF), Java Persistence API (JPA) и баз данных MySQL. Процесс разбит на 7 шагов и снабжён практическими примерами.</p><p>Для развёртывания Java-приложений обычно требуется установить Java Development Kit (JDK), сервер приложения, веб-сервер, настроить базу данных и другие компоненты дата-центра. Но этот громоздкий процесс можно существенно упростить при помощи Docker-контейнеров. В этой книге рассказывается об основах использования Docker и популярных вспомогательных фреймворков.</p><p>Java 3D — это клиентский API для отрисовки интерактивной 3D-графики, который можно применять как в играх, так и в научных визуализациях. Разобраться в нём поможет эта книга, предложив как теорию, так и богатый набор практических приложений. Знание OpenGL и Swing для читателя будет существенным плюсом.</p><p>В этой книге подробнейшим образом рассказывается о процессе создания приложений различной сложности на базе нейронных сетей. Каждый тип сетей доступно описывается на примере реальных задач и приложений.</p><p>Эта книга посвящена практическому применению техники многопоточного программированию на языке Java. Книгу легко читать, и она снабжена множество примеров.</p><p>Если вам интересна тема многопоточности, вам подойдёт наша серия статей «Многопоточное программирование в Java 8»:</p><ol><li><a href="https://tproger.ru/translations/java8-concurrency-tutorial-1/">Параллельное выполнение кода с помощью потоков</a>;</li><li><a href="https://tproger.ru/translations/java8-concurrency-tutorial-2/">Синхронизация доступа к изменяемым объектам</a>;</li><li><a href="https://tproger.ru/translations/java8-concurrency-tutorial-3/">Атомарные переменные и конкурентные таблицы</a>.</li></ol><p>Как всегда, если вы знаете книги, которыми стоит поделиться с сообществом, оставляйте их в комментариях.</p>]]></content:encoded>
    </item>
    <item>
      <title>Руководство по Java 9: компиляция и запуск проекта</title>
      <link>https://tproger.ru/translations/java-9-guide-compile-run</link>
      <comments>https://tproger.ru/translations/java-9-guide-compile-run?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Богдан Федоренко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/java-9-guide-compile-run</guid>
      <description><![CDATA[<p>Практика работы с java, javac и jar в Java 9, а также с новыми инструментами jdeps и jlink для управления кодом и модулями.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/java-9-guide-compile-run">Руководство по Java 9: компиляция и запуск проекта</a>»</p>]]></description>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 18 Jul 2017 17:40:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Команды java и javac редко используются Java-программистами. Такие инструменты, как <a href="https://maven.apache.org/">Maven</a> и <a href="http://www.gradle.org/">Gradle</a> делают их почти не нужными. Однако Maven и Gradle до сих пор не предоставляют полную поддержку для Java 9, поэтому, если вы хотите начать использовать её уже сейчас или просто хотите узнать некоторые полезные тонкости до <a href="http://www.java9countdown.xyz/">официального релиза</a>, стоит научиться вызывать java, javac и jar для управления своим кодом.</p><p>Статья призвана показать примеры использования этих команд, а также то, как эти команды изменились по сравнению с прошлыми версиями Java. Дополнительно будут рассмотрены новые инструменты: jdeps и jlink. Предполагается, что вы хоть немного знакомы с предыдущими версиями команд java/javac/jar и с модульной системой Java 9.</p><h2>Установка Java 9</h2><p>Сперва необходимо установить Java 9. Вы можете скачать её с <a href="http://www.oracle.com/technetwork/articles/java/ea-jsp-142245.html">сайта Oracle</a>, но рекомендуется использовать <a href="http://sdkman.io/">SdkMAN!</a>, так как в будущем он позволит вам с легкостью переключаться между разными версиями Java.</p><p>Можно установить SdkMAN! с помощью этой команды:</p><p>Посмотрите, какая сборка является последней:</p><p>Затем установите Java 9:</p><p>Теперь, если у вас установлены другие версии Java, вы можете переключаться между ними с помощью команды:</p><h2>Компиляция и запуск «по-старому»</h2><p>Для начала напишем какой-нибудь код, чтобы проверить наши инструменты. Если не использовать модульный дескриптор, то все выглядит так же, как и раньше.</p><p>Возьмем этот простой Java-класс:</p><p>Теперь, так как мы не использовали никаких особенностей Java 9, мы можем скомпилировать всё как обычно:</p><p>Команда создаст файл класса out/app/Main.class. Запустить его можно так же, как и в прошлых версиях:</p><p>Программа выведет Hello Java 9.</p><p>Теперь создадим библиотеку Greeting также без особенностей Java 9, чтобы посмотреть, как это работает.</p><p>Создадим файл greeting/ser/lib/Greeting.java со следующим кодом:</p><p>Изменим класс Main для использования нашей библиотеки:</p><p>Скомпилируем эту библиотеку:</p><p>Чтобы показать, как работают оригинальные Java-библиотеки, мы превратим эту библиотеку в jar-файл без дескрипторов модулей Java 9:</p><p>Команда создаст файл libs/lib.jar, содержащий класс lib.Greeting.</p><p>Просмотреть информацию о jar-файле можно с помощью опции tf:</p><p>Команда должна вывести:</p><p>Теперь для компиляция app.Main нам необходимо указать компилятору, где найти класс lib.Greeting.</p><p>Используем для этого cp (classpath):</p><p>И то же самое для запуска программы:</p><p>Мы можем упаковать приложение в jar-файл:</p><p>И затем запустить его:</p><p>Вот так выглядит структура нашего проекта на данный момент:</p><h2>Модуляризация проекта</h2><p>Пока что ничего нового, но давайте начнем модуляризацию нашего проекта. Для этого создадим модульный дескриптор (всегда называется module-info.java и размещается в корневой директории src/):</p><p>Команда для компиляции модуля в Java 9 отличается от того, что мы видели раньше. Использование старой команды с добавлением модуля к списку файлов приводит к ошибке:</p><p>Чтобы понять, почему наш код не компилируется, необходимо понять, что такое безымянные модули.</p><p>Любой класс, который загружается не из именованного модуля, автоматически выполняет часть безымянного модуля. В примере выше перед созданием модульного дескриптора наш код не был частью какого-либо модуля, следовательно, он был ассоциирован с безымянным модулем. Безымянный модуль — это механизм совместимости. Проще говоря, это позволяет разработчику использовать в приложениях Java 9 код, который не был модуляризирован. По этой причине код, относящийся к безымянному модулю, имеет правила сродни Java 8 и ранее: он может видеть все пакеты, экспортируемые из других модулей, и все пакеты безымянного модуля.</p><p>Когда модульный дескриптор добавляется к модулю, его код больше не является частью безымянного модуля и не может видеть код других модулей, пока не импортирует их. В случае выше модуль com.app не требует никаких модулей, поэтому модуль библиотеки Greeting для него не виден. Он может видеть только пакеты модуля java.base.</p><p>Модули в Java 9, за исключением неуловимого безымянного модуля описанного выше, должны объявлять, какие другие модули им необходимы. В случае с модулем com.app единственным требованием является библиотека Greeting. Но, как вы могли догадаться, эта библиотека (как и другие библиотеки, не поддерживающие Java 9) не является модулем Java 9. Как же нам включить её в проект?</p><p>В таком случае вам нужно знать имя jar-файла. Если у вас есть зависимость от библиотеки, которая не была конвертирована в модуль Java 9, вам надо знать, какой jar-файл вызывается для этой библиотеки, потому что Java 9 переведёт имя файла в валидный модуль.</p><p>Это называется автоматический модуль.</p><p>Так же, как и безымянные модули, автоматические модули могут читать из других модулей, и все их пакеты являются экспортируемыми. Но, в отличие от безымянных модулей, на автоматические можно ссылаться из явных модулей.</p><p>Чтобы узнать имя автоматического модуля, компилятор конвертирует неальфанумерические, поэтому что-то вроде slf4j-api-1.7.25.jar превратится в имя модуля sl4j.api.</p><p>У нас есть библиотека с именем lib.jar. Давайте переименуем jar-файл в greetings-1.0.jar:</p><p>Это более стандартное имя файла, и теперь мы можем сказать Java включить автоматический модуль с приемлемым именем greetings. И можем вызывать его из com.app модуля:</p><p>Модули не добавлены в classpath. Как и обычные jar-файлы, они используют новый флаг --module-path (-p). Теперь мы можем скомпилировать наши модули следующей командой:</p><p>Чтобы запустить app.Main командой java мы можем использовать новый флаг --module (-m), который принимает либо имя модуля, либо шаблон module-name/main-class:</p><p>И мы получим вывод Hi, there.</p><p>Для создания и использования app.jar в качестве исполняемого jar-файла выполните следующие команды:</p><p>Следующим шагом будет модуляризация библиотек, которые используются нашим приложением.</p><h2>Модуляризация библиотек</h2><p>Для модуляризации библиотеки нельзя сделать ничего лучше, чем использовать jdeps — инструмент для статистического анализа, который является частью Java SE.</p><p>Например, команда, которая позволяет увидеть зависимости нашей небольшой библиотеки, выглядит так:</p><p>А вот результат её выполнения:</p><p>Как и ожидалось, библиотека зависит только от java.base модуля.</p><p>Мы знаем, что com.app зависит от модуля greetings. Давайте попробуем использовать jdeps, чтобы он подтвердил нам это. Для этого нужно удалить файлы module-info.calss и app.jar и затем запустить jdeps:</p><p>Результат:</p><p>Команда:</p><p>Результат:</p><p>Хорошо, но можно лучше. Мы можем попросить jdeps автоматически сгенерировать модульный дескриптор для набора jar-файлов. Просто укажите ему, куда сохранять сгенерированные файлы (например, в папку generated-mods), и где находятся jar-файлы:</p><p>Команда создаст два файла: generated-mods/app/module-info.java и generated-mods/greetings/module-info.java со следующим содержимым:</p><p>Теперь мы можем добавить сгенерированный дескриптор для нашей библиотеки в её исходный код, переупаковать её, и у нас получится полностью модульное приложение:</p><p>Теперь у нас есть полностью модуляризированные библиотека и приложение. После удаления сгенерированных и бинарных файлов, структура нашего приложения выглядит следующим образом:</p><p>Обратите внимание, что для получения хороших данных от jdeps вы должны предоставить местоположение всех jar-файлов, которые используются в приложении, чтобы он мог составить полный граф модуля.</p><p>Наиболее простым способом получить список всех jar-файлов, которые используются в библиотеке, является использование скрипта <a href="https://gradle.org/">Gradle</a>. Он выведет пути локальных jar-файлов для всех зависимостей библиотек, которые вы добавите в секцию зависимостей, и скачает их, если необходимо:</p><p>Если у вас нет Gradle, вы можете использовать SdkMAN! для его установки:</p><p>Для получения списка зависимостей используйте следующую команду:</p><p>Полученную информацию передайте jdeps для анализа и автоматической генерации метаданных.</p><p>Это файл, который jdeps выводит для javaslang.match:</p><h2>Создание собственного образа среды выполнения</h2><p>С помощью <a href="https://docs.oracle.com/javase/9/tools/jlink.htm">jlink</a> Java-приложения могут распространяться как образы, которые не требуют установки JVM.</p><p>Следующая команда создает образ для нашего com.app модуля без оптимизации, сжатия или отладочной информации:</p><p>Меньший размер может быть достигнут использованием некоторых флагов jlink, таких как --strip-debug и --compress:</p><p>Размер пакетов можно посмотреть с помощью команды du -sh:</p><p>Для запуска приложения используйте предоставляемый лаунчер в директории bin:</p><p>Вы должны увидеть сообщение Hi there.</p><p>На этом всё. Разбор нововведений в Java 9 предлагаем прочитать в <a href="https://tproger.ru/translations/java-9-features-examples/">нашей статье</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Большая подборка полезных практических и обучающих материалов по Java</title>
      <link>https://tproger.ru/digest/java</link>
      <comments>https://tproger.ru/digest/java?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Пётр Соковых]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/digest/java</guid>
      <description><![CDATA[<p>Полезные материалы для изучения Java от начального до продвинутого уровня. Курсы, книги, библиотеки, практические задачи и ресурсы по Java 9 — все в одном месте.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/digest/java">Большая подборка полезных практических и обучающих материалов по Java</a>»</p>]]></description>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Обучение программированию]]></category>
      <category><![CDATA[Шпаргалки]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Для продолжающих]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Подборки]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 23 Feb 2016 09:41:45 GMT</pubDate>
      <content:encoded><![CDATA[<p><b>Key Takeaways</b><br />- Java остается одним из самых востребованных языков программирования<br />- Для изучения доступны бесплатные курсы, книги и практические задачи<br />- Ключевые библиотеки (JUnit, HttpClient, Commons) ускоряют промышленную разработку<br />- Java 9 принесла модульную систему, JShell и улучшения Stream API</p><p>Java — язык программирования, который очень строго соответствует принципам объектно-ориентированного программирования. В этой статье вы найдете несколько полезных материалов, с которых стоит начать знакомство с языком.</p><h2>Для начинающих</h2><ul><li>Отличная <a href="http://www.skipy.ru/philosophy/beginning.html">статья</a>, в которой описано, как стоит подходить к изучению Java. После прочтения стоит заглянуть и в другие разделы сайта <a href="http://www.skipy.ru">Skipy.ru</a>, это уже будет полезно не только начинающим.</li><li>Study-Java — сайт, полностью состоящий из туториалов по Java, которые подскажут вам, в каком направлении стоит идти и какие навыки нужно вырабатывать в первую очередь.</li><li><a href="http://www.studytonight.com/java/">Курс</a> по основам языка Java.</li><li>Обширное <a href="http://beginnersbook.com/java-tutorial-for-beginners-with-examples/">руководство</a> по многим темам с примерами кода.</li><li><a href="https://stepik.org/course/Java-Базовый-курс-187">Базовый курс</a> по Java на ресурсе Stepik.</li><li>Более <a href="https://jsehelper.blogspot.ru/2016/01/blog-post_59.html">350 вопросов с ответами</a> для подготовки к интервью на позицию Junior Java Developer.</li><li>Наша <a href="https://tproger.ru/digest/java-learning-materials/">подборка материалов</a> для изучения языка Java.</li><li><a href="https://www.ntu.edu.sg/home/ehchua/programming/index.html">Подборка полезных советов</a> от Наньянского технологического университета — там есть аналогичные материалы и по другим темам.</li></ul><p>Форумы, на которых вы можете задать возникшие вопросы:</p><ul><li><a href="http://javatalks.ru/">JavaTalks</a>;</li><li><a href="http://forum.vingrad.ru/forum/java-forum.html">VPF:Java</a>;</li><li>Раздел Java на SQL.ru;</li><li>Раздел Java на <a href="http://www.cyberforum.ru/java/">CyberForum</a></li><li>Группа <a href="http://ru-java.livejournal.com/">ru-java</a> в ЖЖ;</li><li>И, конечно же, <a href="http://vk.com/topic-30666517_28097974">обсуждение</a> в нашей группе. Не забывайте про него.</li></ul><h2>Для продвинутых</h2><ul><li>Раздел Java на <a href="http://www.developer.com/java">developer.com</a> собрал в себе руководства как по целым пластам языка, вроде Enterprise Edition, так и разъяснения отдельных нюансов, вроде новомодных лямбда-выражений. Вот, например, <a href="http://www.developer.com/java/other/article.php/3556176/An-Introduction-to-Java-Annotations.htm">статья</a>, прочитав которую, вы разберётесь с тем, что такое аннотации, зачем они нужны и как правильно их использовать.</li><li>На сайте Tutorials Point есть <a href="http://www.tutorialspoint.com/java/index.htm">раздел</a> с исчерпывающим количеством туториалов по Java. Также там есть отдельный <a href="http://www.tutorialspoint.com/java8/index.htm">раздел для Java 8</a>.</li><li><a href="http://java2s.com/">Java2S</a> — коллекция примеров на все случаи жизни. Примечательно, что здесь есть не только чистая Java, но и работа с разными библиотеками, например JUnit. Хорошо описаны и нововведения Java 8 — Date-Time API, лямбды, потоки (streams).</li><li><a href="https://www.youtube.com/channel/UCxiBXBY1a-axNVGIvQKGcNA">Oskar Veerhoek</a> — канал на YouTube, посвящённый OpenGL. Если вы собираетесь связать свою жизнь с программированием, маловероятно, что вам никогда не придётся работать с графикой. В течение курса из 41 видео автор расскажет вам, как работать с OpenGL в Java. Курс начинается с самых основ и написания 2D Minecraft'а, а заканчивается шейдерами, освещением и созданием 3D комнаты.</li></ul><h2>Для всех</h2><ul><li><a href="http://www.java-tips.org/">Java-Tips</a> — сборник готовых рецептов, шпаргалок, туториалов и полезных библиотек… Сайт будет незаменим для любого Java-программиста, особенно если вы только начинаете изучать язык. Отдельное спасибо стоит сказать тому, кто сортировал это всё — вам не составит труда найти здесь то, что вам нужно. Присутствуют материалы как по Java SE, так и по Enterprise и Micro версиям.</li><li>Регулярно обновляемый <a href="http://javaconceptoftheday.com">список</a> вопросов и ответов.</li><li><a href="http://findnerd.com/NerdDigest/JAVA/">Примеры</a> решённых практических задач.</li><li>Структурированный <a href="https://metanit.com/java/tutorial/">справочник</a> по языку.</li><li>Подробное <a href="https://www.tutorialspoint.com/java/index.htm">руководство</a> с примерами по каждой теме.</li><li>Обучающий <a href="http://www.w3resource.com/java-tutorial/">материал</a> от w3resource.</li><li><a href="http://www.oracle.com/technetwork/java/index-138747.html">Учебное пособие</a> от Oracle, создателей языка.</li><li>Помните, что <a href="https://docs.oracle.com/javase/7/docs/api/">официальная документация</a> — это источник самой достоверной и качественной информации.</li><li>Напоминаем, что на нашем сайте тоже <a href="https://tproger.ru/tag/java/">есть</a> порядочное количество статей по этому языку.</li></ul><h2>Практика</h2><ul><li>Бесплатные задачи, отсортированные по категориям на Codingbat;</li><li>Cписок задач от автора блога eax.me;</li><li>Олимпиадные задачи с ACMP;</li><li>Олимпиадные задачи с Codeforces;</li><li>Задачи с ответами на <a href="https://www.codewars.com">Codewars</a>.</li></ul><h2>Полезные библиотеки</h2><ul><li><a href="http://www.junit.org/">JUnit</a><br />Любой код должен сопровождаться тестированием. Многие очень напрасно об этом забывают. Эта библиотека предназначена для автоматизации модульного тестирования. Еще несколько инструментов для тестирования в Java, вы найдете в <a href="https://tproger.ru/translations/12-tools-for-unit-tests/">нашей подборке</a>.</li><li><a href="http://hc.apache.org/httpclient-3.x/">HttpClient</a><br />Библиотека для работы с HTTP ресурсами.</li><li><a href="http://commons.apache.org/lang/">CommonsLang</a><br />То, что «забыли» включить в JDK.</li><li><a href="http://commons.apache.org/math/">CommonsMath</a><br />Отличное дополнение к java.math.</li><li><a href="http://commons.apache.org/logging/">CommonsLogging</a><br />Если вы используете для логирования System.out.println(), то вам стоит отрубить себе рук лучше воспользуйтесь этой библиотекой, так будет правильнее.</li><li><a href="http://commons.apache.org/net/">CommonsNet</a><br />Логическое продолжение java.net, множество классов для работы с сетевыми протоколами.</li><li><a href="http://commons.apache.org/vfs/">CommonsVFS</a><br />Библиотека, которая поможет вам абстрагироваться от способа хранения файлов — вы сможете достаточно обобщённо иметь к ним доступ по FTP, SFTP, WEBDAV, (G)ZIP и т.д.</li><li><a href="http://commons.apache.org/io/">CommonsIO</a><br />С ней работать с вводом-выводом станет значительно проще.</li></ul><h2>Java 9</h2><p>О том, какие изменения появились в Java 9, читайте в <a href="https://tproger.ru/translations/java-9-features-examples/">нашем обзоре</a> с примерами.</p><h3>Статьи</h3><ul><li><a href="https://www.sitepoint.com/ultimate-guide-to-java-9/">Подробный гайд по Java 9</a>;</li><li><a href="https://www.infoq.com/articles/Latest-Project-Jigsaw-Usage-Tutorial">Знакомство с Project Jigsaw</a>;</li><li>Java 9 Stream API:  <a href="http://blog.codefx.org/java/dev/java-9-stream/">введение</a> и <a href="http://www.baeldung.com/java9-stream-collectors">материал по коллекторам</a>;</li><li><a href="http://iteratrlearning.com/java/2017/03/12/java9-process-api.html">Java 9 Process API</a>;</li><li><a href="http://blog.joda.org/2017/02/java-time-jsr-310-enhancements-java-9.html">Улучшения в Java Time (JSR-310)</a>;</li><li><a href="https://www.voxxed.com/blog/2016/10/java-9-series-concurrency-updates/">Конкурентность</a>;</li><li><a href="http://blog.codefx.org/java/dev/java-9-optional/">Новое в Optional</a>;</li><li><a href="https://www.sitepoint.com/deep-dive-into-java-9s-stack-walking-api/">Разбираемся с Stack-Walking API</a>;</li><li><a href="http://www.baeldung.com/java-9-collections-factory-methods">Коллекции</a>;</li><li><a href="http://marxsoftware.blogspot.de/2016/08/applying-jdk-9-deprecated-enhancements.html">«Applying @Deprecated Enhancements»</a>;</li><li><a href="https://www.voxxed.com/blog/2016/11/java-9-series-variable-handles/">Variable Handles</a>;</li><li><a href="https://www.sitepoint.com/reflection-vs-encapsulation-in-the-java-module-system/">Рефлексия vs Инкапсуляция</a>;</li><li>Создание multi-release JAR-файлов при помощи Maven: <a href="http://word-bits.flurg.com/multrelease-jars/">о формате JAR</a>, и <a href="http://in.relation.to/2017/02/13/building-multi-release-jars-with-maven/">о формате JAR с использованием Maven</a>;</li><li><a href="https://www.infoq.com/news/2017/02/java-memory-limit-container">Ограничения памяти и Docker</a>;</li><li><a href="http://jakubdziworski.github.io/java/2016/07/31/jshell-getting-started-examples.html">Введение в JShell</a>.</li></ul><p>Больше статей можно найти на <a href="http://www.baeldung.com/java-9">этом сайте</a>.</p><h3>Блоги</h3><ul><li><a href="https://blogs.oracle.com/java/">Oracle</a> (нет тега Java 9);</li><li><a href="http://sitepoint.com/tag/java-9/">SitePoint</a>;</li><li><a href="https://www.voxxed.com/blog/tag/java-9/">Voxxed</a> (выделим <a href="https://www.voxxed.com/blog/tag/java-9-series/">отличный цикл</a>);</li><li><a href="http://www.baeldung.com/tag/java-9/">Baeldung</a>;</li><li><a href="http://iteratrlearning.com/articles">Iteratr Learning</a> (нет тега Java 9);</li><li><a href="http://blog.codefx.org/tag/java-9/">CodeFX</a>;</li><li><a href="http://blog.joda.org/search/label/java9">Joda.</a></li></ul><h3>Книги и курсы</h3><ul><li>Курс «Java 9 Modularity: First Look»;</li><li>Книга <a href="http://shop.oreilly.com/product/0636920049494.do">«Java 9 Modularity»</a>;</li><li>Книга «Mastering Java 9»;</li><li>Книга «Modular Programming in Java 9»;</li><li>Книга «Java 9 with JShell»;</li><li>Книга «Java 9 Module System».</li></ul><p>В комментариях пишите, какие ресурсы были полезны для вас при изучении Java, самое интересное добавим в статью.</p><h2>Часто задаваемые вопросы</h2><h3>Сколько времени нужно, чтобы выучить Java?</h3><p>Основы синтаксиса можно освоить за 2–3 месяца при регулярных занятиях. Для уверенного владения языком на уровне Junior-разработчика обычно требуется 6–12 месяцев практики, включая работу с библиотеками и фреймворками.</p><h3>С чего лучше начать изучение Java новичку?</h3><p>Начните с базового курса на Stepik или официального учебного пособия от Oracle. Параллельно решайте задачи на Codewars или Codingbat — практика важнее теории. Когда освоите основы, переходите к изучению библиотек JUnit и Apache Commons.</p><h3>Java или Kotlin — что выбрать в 2026 году?</h3><p>Оба языка работают на JVM и востребованы на рынке. Java остается стандартом для enterprise-разработки, банковских систем и масштабных серверных приложений. Kotlin чаще выбирают для Android и новых проектов. Знание Java даёт фундамент, с которым переход на Kotlin занимает считанные недели.</p>]]></content:encoded>
    </item>
    <item>
      <title>Методы оптимизации при разработке в Unity 3D</title>
      <link>https://tproger.ru/projects/optimization-methods-unity</link>
      <comments>https://tproger.ru/projects/optimization-methods-unity?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Саша Ушатинская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/projects/optimization-methods-unity</guid>
      <description><![CDATA[<p>Производительность решает всё для мобильных игр, и подходы к оптимизации проверены на игре «Spearfishing 3D — подводная охота» для iOS.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/projects/optimization-methods-unity">Методы оптимизации при разработке в Unity 3D</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Для продолжающих]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Рассказы о своих проектах]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 08 Mar 2013 12:24:40 GMT</pubDate>
      <content:encoded><![CDATA[<p>Производительность имеет решающее значение для мобильных игр. Особенно если игра сочетает в себе физику, AI (искусственный интеллект) и полностью анимированных персонажей 3D-мира. Некоторое время назад мы сделали игру под названием «Spearfishing 3D — подводная охота» для iOS. За первые полгода после релиза игра была скачана около двух миллионов раз и попала в топ-10 в категории «Игры» в разных странах мира. Одна из основных проблем, которую нам понадобилось решить, — обеспечение работы игры с 60 fps. Это стало проще с выпуском iPad и iPhone 4, но мы по-прежнему должны поддерживать как минимум 30 fps для iPhone 3G/3GS. В этой статье я опишу подходы, которые мы использовали для оптимизации игр на основе Unity.</p><h2>Использование Performance Profiler</h2><p>Первое место, куда нужно смотреть, когда хочется улучшить производительность — это Unity Profiler. Эта функциональность доступна в Unity Pro и позволяет анализировать проблемные места. Профайлер — бесценный инструмент. С его помощью можно определить, где возникают проблемы с частотой кадров. Для его использования запустите игру на мобильном устройстве и профайлер на PC. Когда вы запускаете игру, профайлер начинает загружать данные о производительности.</p><p>Чтобы использовать профайлер на мобильных устройствах, сделайте билд в Developer mode. Из документации Unity:</p><blockquote>Чтобы иметь возможность подключиться к плееру, плеер должен быть запущен с помощью опции Development Build, которая находится в диалоговом окне Build Settings.</blockquote><p>Здесь также можно отметить флажок для автоматического соединения редактора и плеера. Профайлер показывает график использования CPU во время игры. Просто подключите мобильное устройство к машине для разработки и проходите игру. Профайлер покажет все проблемы в режиме реального времени. Он разбивает активности на Rendering, Scripts, Physics, GarbageCollector, VSync и другие. В мобильных играх часто бывают проблемы с рендерингом. Иногда скачки производительности возникают в скриптах при загрузке сцены, но в этом нет ничего необычного. Некоторые скачки связаны с физикой.</p><h2>Физика и искусственный интеллект</h2><p>Я опишу несколько основных идей оптимизации кода физики и перейду к графике.</p><ul><li>Старайтесь, чтобы как можно меньше объектов двигалось одновременно. «Спящие» объекты намного дешевле.</li><li>То же самое касается искусственного интеллекта. Если объект находится далеко от главного героя или его не видно, не запускайте скрипты искусственного интеллекта.</li><li>Рейкасты очень дорогие. Не делайте рейкаст на каждый фрейм — попробуйте кэшировать результаты и пропустить некоторые фреймы.</li><li>Старайтесь избегать сложных меш коллайдеров.</li><li>Проверьте функции Update(). Они запускают каждый кадр и, следовательно, дорогие. Вместо этого используйте Coroutines.</li></ul><h2>Static batching</h2><p>Это фича Unity, которая экономит много циклов CPU. Каждый раз, когда объект рендерится, происходит Draw Call — команда для CPU или GPU о том, что объект должен отрендериться. Unity запускает несколько вызовов отрисовки и накладывает их друг на друга, это и формирует сцену. Однако каждый Draw Call требует ресурсов CPU, поэтому мы хотим минимизировать их количество.</p><p>Тут и стоит использовать Batching. Он нужен для того, чтобы не делать лишние Draw Calls. Batching бывает двух видов: статический и динамический. Статический дает лучшую производительность, поэтому мы всегда стараемся использовать его.</p><p>Чтобы эффективно применять Static Batching, используйте как можно меньше различных материалов. Для этого скомбинируйте все материалы в одну большую текстуру. Последний шаг — добавить Lightmap к сцене. Поскольку мы практически не используем память для текстуры объектов, можно сделать довольно подробную Lightmap, и проблем с памятью не возникнет.</p><p>Для использования Static Batching поставьте флажок Static в свойствах объекта. Его можно использовать только для объектов, которые не перемещаются, не вращаются и не масштабируются в сцене.</p><h2>Dynamic Batching</h2><p>Для не статических объектов можно использовать Dynamic Batching. Объекты с Dynamic Batching требуют определенные ресурсы на каждую вершину, поэтому он применяется только к мешам, содержащим менее 900 вершин. Наш шейдер использует Vertex Position, UV и Colors. Таким образом, у нас может быть до 300 вершин на объект.</p><p>Некоторые полезные советы из руководства Unity:</p><ul><li>Динамический батчинг связан с дополнительной нагрузкой для каждой вершины, так что он применим только к мешам, в сумме содержащим менее 900 вершин.</li><li>Если ваш шейдер использует Vertex Position, Normal и единственный UV, то вы можете батчить до 300 вершин; тогда как если шейдер использует Vertex Position, Normal, UV0, UV1 и Tangent, то только 180 вершин.</li><li>Не масштабируйте. Объекты с масштабом (1,1,1) и (2,2,2) не будут батчиться.</li><li>Равномерно масштабированные объекты не будут батчиться с неравномерно масштабированными.</li><li>Использование различных материалов приведет к сбою батчинга.</li><li>Объекты с Lightmap имеют дополнительный (скрытый) параметр материала: смещение/масштаб в Lightmap, поэтому объекты с Lightmap не будут батчиться.</li></ul><p>Заметьте: если у объекта есть анимация, но при этом есть часть, которая никогда не двигается, можно отметить эту часть как статическую, и она не будет мешать анимации.</p>]]></content:encoded>
    </item>
  </channel>
</rss>