PageSourceSearch

https://alfa-brain.com/courses

html alfa-brain.com collected 2026-10-08 16:39:02 UTC 444,101 bytes, 16 lines download raw bytes

1<!DOCTYPE html><html lang="ru"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>Список всех курсов</title><meta name="description" content="Список всех курсов"/><meta name="yandex-verification" content="a06f5fa7c95eb8d3"/><meta name="next-head-count" content="5"/><link rel="icon" href="/favicon.ico" type="image/x-icon"/><link rel="apple-touch-icon" sizes="180x180" href="https://storage.yandexcloud.net/alfa-code-public-bucket/Images/favicon/apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="https://storage.yandexcloud.net/alfa-code-public-bucket/Images/favicon/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="https://storage.yandexcloud.net/alfa-code-public-bucket/Images/favicon/favicon-16x16.png"/><link rel="manifest" href="https://storage.yandexcloud.net/alfa-code-public-bucket/Images/favicon/site.webmanifest"/><link rel="mask-icon" href="https://storage.yandexcloud.net/alfa-code-public-bucket/Images/favicon/safari-pinned-tab.svg" color="#5bbad5"/><meta name="msapplication-TileColor" content="#2d89ef"/><meta name="theme-color" content="#ffffff"/><meta name="keywords" content="курсы html, курсы html5, курсы js, курсы javascript курсы css, курсы css3, курсы верстки, онлайн-курсы html, онлайн-курсы css, онлайн-курсы верстки, учить html, учить css, учить верстку"/><meta name="robots" content="index, follow"/><meta property="og:title" content="Alfa Brain — IT-обучение и разработка на заказ"/><meta property="og:description" content="Онлайн-курсы и кастомная разработка веб-приложений под ключ."/><meta property="og:image" content="https://alfa-brain.com/_next/static/media/symbol_color.jpg"/><meta property="og:url" content="https://alfa-brain.com"/><meta name="twitter:card" content="summary_large_image"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/114f508574d22b37.css" as="style"/><link rel="stylesheet" href="/_next/static/css/114f508574d22b37.css" data-n-g=""/><link rel="preload" href="/_next/static/css/7a9dbf4b9c555bc5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/7a9dbf4b9c555bc5.css" data-n-p=""/><link rel="preload" href="/_next/static/css/a41b1c8ac8ed7946.css" as="style"/><link rel="stylesheet" href="/_next/static/css/a41b1c8ac8ed7946.css" data-n-p=""/><noscript data-n-css=""></noscript>
1<script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script>
1<script src="/_next/static/chunks/webpack-d7f4be85b7abea11.js" defer=""></script>
1<script src="/_next/static/chunks/framework-173a8137c29bdf32.js" defer=""></script>
1<script src="/_next/static/chunks/main-1020a4cac268d1b7.js" defer=""></script>
1<script src="/_next/static/chunks/pages/_app-c9d16ec318907eb6.js" defer=""></script>
1<script src="/_next/static/chunks/2691-fe815f661bcdbdfa.js" defer=""></script>
1<script src="/_next/static/chunks/9318-4450a866d12d63b1.js" defer=""></script>
1<script src="/_next/static/chunks/2689-79baa285f8c2fa7f.js" defer=""></script>
1<script src="/_next/static/chunks/6045-0a7067922e523914.js" defer=""></script>
1<script src="/_next/static/chunks/4939-905ba600ecb80685.js" defer=""></script>
1<script src="/_next/static/chunks/5791-cb2d4d87b6437230.js" defer=""></script>
1<script src="/_next/static/chunks/7815-de937ecffcbbc5a3.js" defer=""></script>
1<script src="/_next/static/chunks/2820-75c7d665a1ec08fc.js" defer=""></script>
1<script src="/_next/static/chunks/9267-4437fc6a18be5080.js" defer=""></script>
1<script src="/_next/static/chunks/7853-65bdc258ab0a514e.js" defer=""></script>
1<script src="/_next/static/chunks/pages/courses-bbcc9a047c0dd305.js" defer=""></script>
1<script src="/_next/static/lM7wordKHU1J6uTsmE0dZ/_buildManifest.js" defer=""></script>
1<script src="/_next/static/lM7wordKHU1J6uTsmE0dZ/_ssgManifest.js" defer=""></script>
1</head><body><div id="metrics" data-ga-id="G-KYBKY1307L" data-ym-id="95885896">
1<script id="yandex-metrica">
vendor: 508 bytes, lines 1-8
1
2                    (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
3                    m[i].l=1*new Date();
4                    for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
5                    k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
6                    (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
7
8                    ym(
895885896
vendor: 219 bytes, lines 8-13
8, "init", {
9                            clickmap:true,
10                            trackLinks:true,
11                            accurateTrackBounce:true,
12                            webvisor:true
13                    });
13</script>
13</div><div id="__next"><style>#nprogress{pointer-events:none}#nprogress .bar{background:#2299DD;position:fixed;z-index:1600;top: 0;left:0;width:100%;height:3px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #2299DD,0 0 5px #2299DD;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1600;top: 15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#2299DD;border-left-color:#2299DD;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}</style><div class="styles_container__fPQGY  "><header class="styles_header__o34Uv"><div class="styles_logoWrapper__SfT11"><a class="logo-style_logoLink__fbz9Y undefined" href="/"><img blurWidth="0" blurHeight="0" alt="Alfa Brain" title="Логотип Alfa Brain" loading="lazy" width="726" height="150" decoding="async" data-nimg="1" class="logo-style_logo__Ncatq" style="color:transparent" src="/_next/static/media/logo_horizontal_color.8ef87877.svg"/></a></div><button class="styles_mobileMenuButton__0rKe3" data-test-id="mobile-menu-button"></button><div class="styles_headerContent__60LgX "><nav class="styles_headerNavigation__rMauE styles_navigation__gWq4J"><ul><li><a href="/courses">Курсы</a></li><li><a href="/programs">Учебные программы</a></li><li><a href="/blog">Блог</a></li></ul></nav><div class="styles_foreignContent__4uvhW"><div class="header-user_container__JUpSL"><a class="header-user_link__eBJQ9" data-test-id="login-link" href="/signin">Войти</a><a href="/signup" class="button-style_button___kdxV
14                      button-style_buttonSecondary__1qay9
15                      header-user_buttonLink__A10rz">Зарегистрироваться</a></div></div></div></header></div><style data-emotion="css-global l0up9m">:root{--joy-fontSize-xs:0.75rem;--joy-fontSize-sm:0.875rem;--joy-fontSize-md:1rem;--joy-fontSize-lg:1.125rem;--joy-fontSize-xl:1.25rem;--joy-fontSize-xl2:1.5rem;--joy-fontSize-xl3:1.875rem;--joy-fontSize-xl4:2.25rem;--joy-fontFamily-body:"Inter",var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");--joy-fontFamily-display:"Inter",var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");--joy-fontFamily-code:Source Code Pro,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;--joy-fontFamily-fallback:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--joy-fontWeight-sm:300;--joy-fontWeight-md:500;--joy-fontWeight-lg:600;--joy-fontWeight-xl:700;--joy-focus-thickness:2px;--joy-lineHeight-xs:1.33334;--joy-lineHeight-sm:1.42858;--joy-lineHeight-md:1.5;--joy-lineHeight-lg:1.55556;--joy-lineHeight-xl:1.66667;--joy-radius-xs:2px;--joy-radius-sm:6px;--joy-radius-md:8px;--joy-radius-lg:12px;--joy-radius-xl:16px;--joy-shadow-xs:var(--joy-shadowRing, 0 0 #000),0px 1px 2px 0px rgba(var(--joy-shadowChannel, 21 21 21) / var(--joy-shadowOpacity, 0.08));--joy-shadow-sm:var(--joy-shadowRing, 0 0 #000),0px 1px 2px 0px rgba(var(--joy-shadowChannel, 21 21 21) / var(--joy-shadowOpacity, 0.08)),0px 2px 4px 0px rgba(var(--joy-shadowChannel, 21 21 21) / var(--joy-shadowOpacity, 0.08));--joy-shadow-md:var(--joy-shadowRing, 0 0 #000),0px 2px 8px -2px rgba(var(--joy-shadowChannel, 21 21 21) / var(--joy-shadowOpacity, 0.08)),0px 6px 12px -2px rgba(var(--joy-shadowChannel, 21 21 21) / var(--joy-shadowOpacity, 0.08));--joy-shadow-lg:var(--joy-shadowRing, 0 0 #000),0px 2px 8px -2px rgba(var(--joy-shadowChannel, 21 21 21) / var(--joy-shadowOpacity, 0.08)),0px 12px 16px -4px rgba(var(--joy-shadowChannel, 21 21 21) / var(--joy-shadowOpacity, 0.08));--joy-shadow-xl:var(--joy-shadowRing, 0 0 #000),0px 2px 8px -2px rgba(var(--joy-shadowChannel, 21 21 21) / var(--joy-shadowOpacity, 0.08)),0px 20px 24px -4px rgba(var(--joy-shadowChannel, 21 21 21) / var(--joy-shadowOpacity, 0.08));--joy-zIndex-badge:1;--joy-zIndex-table:10;--joy-zIndex-popup:1000;--joy-zIndex-modal:1300;--joy-zIndex-tooltip:1500;}</style><style data-emotion="css-global 1o9g6oa">:root,[data-joy-color-scheme="light"]{--joy-palette-primary-50:#EDF5FD;--joy-palette-primary-100:#E3EFFB;--joy-palette-primary-200:#C7DFF7;--joy-palette-primary-300:#97C3F0;--joy-palette-primary-400:#4393E4;--joy-palette-primary-500:#0B6BCB;--joy-palette-primary-600:#185EA5;--joy-palette-primary-700:#12467B;--joy-palette-primary-800:#0A2744;--joy-palette-primary-900:#051423;--joy-palette-primary-plainColor:var(--joy-palette-primary-500, #0B6BCB);
15--joy-palette-primary-plainHoverBg:var(--joy-palette-primary-50, #EDF5FD);--joy-palette-primary-plainActiveBg:var(--joy-palette-primary-100, #E3EFFB);--joy-palette-primary-plainDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-primary-outlinedColor:var(--joy-palette-primary-500, #0B6BCB);--joy-palette-primary-outlinedBorder:var(--joy-palette-primary-300, #97C3F0);--joy-palette-primary-outlinedHoverBg:var(--joy-palette-primary-100, #E3EFFB);--joy-palette-primary-outlinedActiveBg:var(--joy-palette-primary-200, #C7DFF7);--joy-palette-primary-outlinedDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-primary-outlinedDisabledBorder:var(--joy-palette-neutral-200, #DDE7EE);--joy-palette-primary-softColor:var(--joy-palette-primary-700, #12467B);--joy-palette-primary-softBg:var(--joy-palette-primary-100, #E3EFFB);--joy-palette-primary-softHoverBg:var(--joy-palette-primary-200, #C7DFF7);--joy-palette-primary-softActiveColor:var(--joy-palette-primary-800, #0A2744);--joy-palette-primary-softActiveBg:var(--joy-palette-primary-300, #97C3F0);--joy-palette-primary-softDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-primary-softDisabledBg:var(--joy-palette-primary-50, #EDF5FD);--joy-palette-primary-solidColor:var(--joy-palette-common-white, #FCFCFD);--joy-palette-primary-solidBg:var(--joy-palette-primary-500, #0B6BCB);--joy-palette-primary-solidHoverBg:var(--joy-palette-primary-600, #185EA5);--joy-palette-primary-solidActiveBg:var(--joy-palette-primary-700, #12467B);--joy-palette-primary-solidDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-primary-solidDisabledBg:var(--joy-palette-primary-100, #E3EFFB);--joy-palette-primary-mainChannel:11 107 203;--joy-palette-primary-lightChannel:199 223 247;--joy-palette-primary-darkChannel:18 70 123;--joy-palette-neutral-50:#F5F7FA;--joy-palette-neutral-100:#EAEEF6;--joy-palette-neutral-200:#DDE7EE;--joy-palette-neutral-300:#CDD7E1;--joy-palette-neutral-400:#9FA6AD;--joy-palette-neutral-500:#636B74;--joy-palette-neutral-600:#555E68;--joy-palette-neutral-700:#32383E;--joy-palette-neutral-800:#23272B;--joy-palette-neutral-900:#121416;--joy-palette-neutral-plainColor:var(--joy-palette-neutral-700, #32383E);--joy-palette-neutral-plainHoverBg:var(--joy-palette-neutral-50, #F5F7FA);--joy-palette-neutral-plainActiveBg:var(--joy-palette-neutral-100, #EAEEF6);--joy-palette-neutral-plainDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-neutral-outlinedColor:var(--joy-palette-neutral-700, #32383E);--joy-palette-neutral-outlinedBorder:var(--joy-palette-neutral-300, #CDD7E1);--joy-palette-neutral-outlinedHoverBg:var(--joy-palette-neutral-100, #EAEEF6);--joy-palette-neutral-outlinedActiveBg:var(--joy-palette-neutral-200, #DDE7EE);--joy-palette-neutral-outlinedDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-neutral-outlinedDisabledBorder:var(--joy-palette-neutral-200, #DDE7EE);--joy-palette-neutral-softColor:var(--joy-palette-neutral-700, #32383E);--joy-palette-neutral-softBg:var(--joy-palette-neutral-100, #EAEEF6);--joy-palette-neutral-softHoverBg:var(--joy-palette-neutral-200, #DDE7EE);--joy-palette-neutral-softActiveColor:var(--joy-palette-neutral-800, #23272B);--joy-palette-neutral-softActiveBg:var(--joy-palette-neutral-300, #CDD7E1);--joy-palette-neutral-softDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-neutral-softDisabledBg:var(--joy-palette-neutral-50, #F5F7FA);--joy-palette-neutral-solidColor:var(--joy-palette-common-white, #FCFCFD);--joy-palette-neutral-solidBg:var(--joy-palette-neutral-500, #636B74);--joy-palette-neutral-solidHoverBg:var(--joy-palette-neutral-600, #555E68);--joy-palette-neutral-solidActiveBg:var(--joy-palette-neutral-700, #32383E);--joy-palette-neutral-solidDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-neutral-solidDisabledBg:var(--joy-palette-neutral-100, #EAEEF6);--joy-palette-neutral-mainChannel:99 107 116;--joy-palette-neutral-lightChannel:221 231 238;--joy-palette-neutral-darkChannel:50 56 62;--joy-palette-danger-50:#FEF6F6;--joy-palette-danger-100:#FCE4E4;--joy-palette-danger-200:#F7C5C5;--joy-palette-danger-300:#F09898;--joy-palette-danger-400:#E47474;--joy-palette-danger-500:#C41C1C;--joy-palette-danger-600:#A51818;--joy-palette-danger-700:#7D1212;--joy-palette-danger-800:#430A0A;--joy-palette-danger-900:#240505;--joy-palette-danger-plainColor:var(--joy-palette-danger-500, #C41C1C);--joy-palette-danger-plainHoverBg:var(--joy-palette-danger-50, #FEF6F6);--joy-palette-danger-plainActiveBg:var(--joy-palette-danger-100, #FCE4E4);--joy-palette-danger-plainDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-danger-outlinedColor:var(--joy-palette-danger-500, #C41C1C);--joy-palette-danger-outlinedBorder:var(--joy-palette-danger-300, #F09898);--joy-palette-danger-outlinedHoverBg:var(--joy-palette-danger-100, #FCE4E4);--joy-palette-danger-outlinedActiveBg:var(--joy-palette-danger-200, #F7C5C5);--joy-palette-danger-outlinedDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-danger-outlinedDisabledBorder:var(--joy-palette-neutral-200, #DDE7EE);--joy-palette-danger-softColor:var(--joy-palette-danger-700, #7D1212);--joy-palette-danger-softBg:var(--joy-palette-danger-100, #FCE4E4);--joy-palette-danger-softHoverBg:var(--joy-palette-danger-200, #F7C5C5);--joy-palette-danger-softActiveColor:var(--joy-palette-danger-800, #430A0A);--joy-palette-danger-softActiveBg:var(--joy-palette-danger-300, #F09898);--joy-palette-danger-softDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-danger-softDisabledBg:var(--joy-palette-danger-50, #FEF6F6);--joy-palette-danger-solidColor:var(--joy-palette-common-white, #FCFCFD);--joy-palette-danger-solidBg:var(--joy-palette-danger-500, #C41C1C);--joy-palette-danger-solidHoverBg:var(--joy-palette-danger-600, #A51818);--joy-palette-danger-solidActiveBg:var(--joy-palette-danger-700, #7D1212);--joy-palette-danger-solidDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-danger-solidDisabledBg:var(--joy-palette-danger-100, #FCE4E4);--joy-palette-danger-mainChannel:196 28 28;--joy-palette-danger-lightChannel:247 197 197;--joy-palette-danger-darkChannel:125 18 18;--joy-palette-success-50:#F6FEF6;--joy-palette-success-100:#E3FBE3;--joy-palette-success-200:#C7F7C7;--joy-palette-success-300:#A1E8A1;--joy-palette-success-400:#51BC51;--joy-palette-success-500:#1F7A1F;--joy-palette-success-600:#136C13;--joy-palette-success-700:#0A470A;--joy-palette-success-800:#042F04;--joy-palette-success-900:#021D02;--joy-palette-success-plainColor:var(--joy-palette-success-500, #1F7A1F);--joy-palette-success-plainHoverBg:var(--joy-palette-success-50, #F6FEF6);--joy-palette-success-plainActiveBg:var(--joy-palette-success-100, #E3FBE3);--joy-palette-success-plainDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-success-outlinedColor:var(--joy-palette-success-500, #1F7A1F);--joy-palette-success-outlinedBorder:var(--joy-palette-success-300, #A1E8A1);--joy-palette-success-outlinedHoverBg:var(--joy-palette-success-100, #E3FBE3);--joy-palette-success-outlinedActiveBg:var(--joy-palette-success-200, #C7F7C7);--joy-palette-success-outlinedDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-success-outlinedDisabledBorder:var(--joy-palette-neutral-200, #DDE7EE);--joy-palette-success-softColor:var(--joy-palette-success-700, #0A470A);--joy-palette-success-softBg:var(--joy-palette-success-100, #E3FBE3);--joy-palette-success-softHoverBg:var(--joy-palette-success-200, #C7F7C7);--joy-palette-success-softActiveColor:var(--joy-palette-success-800, #042F04);--joy-palette-success-softActiveBg:var(--joy-palette-success-300, #A1E8A1);--joy-palette-success-softDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-success-softDisabledBg:var(--joy-palette-success-50, #F6FEF6);--joy-palette-success-solidColor:var(--joy-palette-common-white, #FCFCFD);--joy-palette-success-solidBg:var(--joy-palette-success-500, #1F7A1F);--joy-palette-success-solidHoverBg:var(--joy-palette-success-600, #136C13);--joy-palette-success-solidActiveBg:var(--joy-palette-success-700, #0A470A);--joy-palette-success-solidDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-success-solidDisabledBg:var(--joy-palette-success-100, #E3FBE3);--joy-palette-success-mainChannel:31 122 31;--joy-palette-success-lightChannel:199 247 199;--joy-palette-success-darkChannel:10 71 10;--joy-palette-warning-50:#FEFAF6;--joy-palette-warning-100:#FDF0E1;--joy-palette-warning-200:#FCE1C2;--joy-palette-warning-300:#F3C896;--joy-palette-warning-400:#EA9A3E;--joy-palette-warning-500:#9A5B13;--joy-palette-warning-600:#72430D;--joy-palette-warning-700:#492B08;--joy-palette-warning-800:#2E1B05;--joy-palette-warning-900:#1D1002;--joy-palette-warning-plainColor:var(--joy-palette-warning-500, #9A5B13);--joy-palette-warning-plainHoverBg:var(--joy-palette-warning-50, #FEFAF6);--joy-palette-warning-plainActiveBg:var(--joy-palette-warning-100, #FDF0E1);--joy-palette-warning-plainDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-warning-outlinedColor:var(--joy-palette-warning-500, #9A5B13);--joy-palette-warning-outlinedBorder:var(--joy-palette-warning-300, #F3C896);--joy-palette-warning-outlinedHoverBg:var(--joy-palette-warning-100, #FDF0E1);--joy-palette-warning-outlinedActiveBg:var(--joy-palette-warning-200, #FCE1C2);--joy-palette-warning-outlinedDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-warning-outlinedDisabledBorder:var(--joy-palette-neutral-200, #DDE7EE);--joy-palette-warning-softColor:var(--joy-palette-warning-700, #492B08);--joy-palette-warning-softBg:var(--joy-palette-warning-100, #FDF0E1);--joy-palette-warning-softHoverBg:var(--joy-palette-warning-200, #FCE1C2);--joy-palette-warning-softActiveColor:var(--joy-palette-warning-800, #2E1B05);--joy-palette-warning-softActiveBg:var(--joy-palette-warning-300, #F3C896);--joy-palette-warning-softDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-warning-softDisabledBg:var(--joy-palette-warning-50, #FEFAF6);--joy-palette-warning-solidColor:var(--joy-palette-common-white, #FCFCFD);--joy-palette-warning-solidBg:var(--joy-palette-warning-500, #9A5B13);--joy-palette-warning-solidHoverBg:var(--joy-palette-warning-600, #72430D);--joy-palette-warning-solidActiveBg:var(--joy-palette-warning-700, #492B08);--joy-palette-warning-solidDisabledColor:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-warning-solidDisabledBg:var(--joy-palette-warning-100, #FDF0E1);--joy-palette-warning-mainChannel:154 91 19;--joy-palette-warning-lightChannel:252 225 194;--joy-palette-warning-darkChannel:73 43 8;--joy-palette-common-white:#FBFCFD;--joy-palette-common-black:#0E0E10;--joy-palette-text-primary:var(--joy-palette-neutral-800, #23272B);--joy-palette-text-secondary:var(--joy-palette-neutral-700, #32383E);--joy-palette-text-tertiary:var(--joy-palette-neutral-600, #555E68);--joy-palette-text-icon:var(--joy-palette-neutral-500, #636B74);--joy-palette-background-body:var(--joy-palette-neutral-50, #F5F7FA);--joy-palette-background-surface:var(--joy-palette-common-white, #FCFCFD);--joy-palette-background-popup:var(--joy-palette-common-white, #FCFCFD);--joy-palette-background-level1:var(--joy-palette-neutral-100, #EAEEF6);--joy-palette-background-level2:var(--joy-palette-neutral-200, #DDE7EE);--joy-palette-background-level3:var(--joy-palette-neutral-300, #CDD7E1);--joy-palette-background-tooltip:var(--joy-palette-neutral-500, #636B74);--joy-palette-background-backdrop:rgba(var(--joy-palette-neutral-darkChannel, 18 20 22) / 0.25);--joy-palette-divider:rgba(var(--joy-palette-neutral-mainChannel, 99 107 116) / 0.3);--joy-palette-focusVisible:var(--joy-palette-primary-500, #0B6BCB);
15--joy-shadowRing:0 0 #000;--joy-shadowChannel:21 21 21;--joy-shadowOpacity:0.08;}</style><style data-emotion="css-global 1vmurm9">[data-joy-color-scheme="dark"]{--joy-palette-primary-50:#EDF5FD;--joy-palette-primary-100:#E3EFFB;--joy-palette-primary-200:#C7DFF7;--joy-palette-primary-300:#97C3F0;--joy-palette-primary-400:#4393E4;--joy-palette-primary-500:#0B6BCB;--joy-palette-primary-600:#185EA5;--joy-palette-primary-700:#12467B;--joy-palette-primary-800:#0A2744;--joy-palette-primary-900:#051423;--joy-palette-primary-plainColor:var(--joy-palette-primary-300, #97C3F0);--joy-palette-primary-plainHoverBg:var(--joy-palette-primary-800, #0A2744);--joy-palette-primary-plainActiveBg:var(--joy-palette-primary-700, #12467B);--joy-palette-primary-plainDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-primary-outlinedColor:var(--joy-palette-primary-200, #C7DFF7);--joy-palette-primary-outlinedBorder:var(--joy-palette-primary-700, #12467B);--joy-palette-primary-outlinedHoverBg:var(--joy-palette-primary-800, #0A2744);--joy-palette-primary-outlinedActiveBg:var(--joy-palette-primary-700, #12467B);--joy-palette-primary-outlinedDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-primary-outlinedDisabledBorder:var(--joy-palette-neutral-800, #23272B);--joy-palette-primary-softColor:var(--joy-palette-primary-200, #C7DFF7);--joy-palette-primary-softBg:var(--joy-palette-primary-800, #0A2744);--joy-palette-primary-softHoverBg:var(--joy-palette-primary-700, #12467B);--joy-palette-primary-softActiveColor:var(--joy-palette-primary-100, #E3EFFB);--joy-palette-primary-softActiveBg:var(--joy-palette-primary-600, #185EA5);--joy-palette-primary-softDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-primary-softDisabledBg:var(--joy-palette-primary-900, #051423);--joy-palette-primary-solidColor:var(--joy-palette-common-white, #FCFCFD);--joy-palette-primary-solidBg:var(--joy-palette-primary-500, #0B6BCB);--joy-palette-primary-solidHoverBg:var(--joy-palette-primary-600, #185EA5);--joy-palette-primary-solidActiveBg:var(--joy-palette-primary-700, #12467B);--joy-palette-primary-solidDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-primary-solidDisabledBg:var(--joy-palette-primary-800, #0A2744);--joy-palette-primary-mainChannel:67 147 228;--joy-palette-primary-lightChannel:199 223 247;--joy-palette-primary-darkChannel:18 70 123;--joy-palette-neutral-50:#F5F7FA;--joy-palette-neutral-100:#EAEEF6;--joy-palette-neutral-200:#DDE7EE;--joy-palette-neutral-300:#CDD7E1;--joy-palette-neutral-400:#9FA6AD;--joy-palette-neutral-500:#636B74;--joy-palette-neutral-600:#555E68;--joy-palette-neutral-700:#32383E;--joy-palette-neutral-800:#23272B;--joy-palette-neutral-900:#121416;--joy-palette-neutral-plainColor:var(--joy-palette-neutral-300, #CDD7E1);--joy-palette-neutral-plainHoverBg:var(--joy-palette-neutral-800, #23272B);--joy-palette-neutral-plainActiveBg:var(--joy-palette-neutral-700, #32383E);--joy-palette-neutral-plainDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-neutral-outlinedColor:var(--joy-palette-neutral-200, #DDE7EE);--joy-palette-neutral-outlinedBorder:var(--joy-palette-neutral-700, #32383E);--joy-palette-neutral-outlinedHoverBg:var(--joy-palette-neutral-800, #23272B);--joy-palette-neutral-outlinedActiveBg:var(--joy-palette-neutral-700, #32383E);--joy-palette-neutral-outlinedDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-neutral-outlinedDisabledBorder:var(--joy-palette-neutral-800, #23272B);--joy-palette-neutral-softColor:var(--joy-palette-neutral-200, #DDE7EE);--joy-palette-neutral-softBg:var(--joy-palette-neutral-800, #23272B);--joy-palette-neutral-softHoverBg:var(--joy-palette-neutral-700, #32383E);--joy-palette-neutral-softActiveColor:var(--joy-palette-neutral-100, #EAEEF6);--joy-palette-neutral-softActiveBg:var(--joy-palette-neutral-600, #555E68);--joy-palette-neutral-softDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-neutral-softDisabledBg:var(--joy-palette-neutral-900, #121416);--joy-palette-neutral-solidColor:var(--joy-palette-common-white, #FCFCFD);--joy-palette-neutral-solidBg:var(--joy-palette-neutral-500, #636B74);--joy-palette-neutral-solidHoverBg:var(--joy-palette-neutral-600, #555E68);--joy-palette-neutral-solidActiveBg:var(--joy-palette-neutral-700, #32383E);--joy-palette-neutral-solidDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-neutral-solidDisabledBg:var(--joy-palette-neutral-800, #23272B);--joy-palette-neutral-mainChannel:159 166 173;--joy-palette-neutral-lightChannel:221 231 238;--joy-palette-neutral-darkChannel:50 56 62;--joy-palette-danger-50:#FEF6F6;--joy-palette-danger-100:#FCE4E4;--joy-palette-danger-200:#F7C5C5;--joy-palette-danger-300:#F09898;--joy-palette-danger-400:#E47474;--joy-palette-danger-500:#C41C1C;--joy-palette-danger-600:#A51818;--joy-palette-danger-700:#7D1212;--joy-palette-danger-800:#430A0A;--joy-palette-danger-900:#240505;--joy-palette-danger-plainColor:var(--joy-palette-danger-300, #F09898);--joy-palette-danger-plainHoverBg:var(--joy-palette-danger-800, #430A0A);--joy-palette-danger-plainActiveBg:var(--joy-palette-danger-700, #7D1212);--joy-palette-danger-plainDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-danger-outlinedColor:var(--joy-palette-danger-200, #F7C5C5);--joy-palette-danger-outlinedBorder:var(--joy-palette-danger-700, #7D1212);--joy-palette-danger-outlinedHoverBg:var(--joy-palette-danger-800, #430A0A);--joy-palette-danger-outlinedActiveBg:var(--joy-palette-danger-700, #7D1212);--joy-palette-danger-outlinedDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-danger-outlinedDisabledBorder:var(--joy-palette-neutral-800, #23272B);--joy-palette-danger-softColor:var(--joy-palette-danger-200, #F7C5C5);--joy-palette-danger-softBg:var(--joy-palette-danger-800, #430A0A);--joy-palette-danger-softHoverBg:var(--joy-palette-danger-700, #7D1212);--joy-palette-danger-softActiveColor:var(--joy-palette-danger-100, #FCE4E4);--joy-palette-danger-softActiveBg:var(--joy-palette-danger-600, #A51818);--joy-palette-danger-softDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-danger-softDisabledBg:var(--joy-palette-danger-900, #240505);--joy-palette-danger-solidColor:var(--joy-palette-common-white, #FCFCFD);--joy-palette-danger-solidBg:var(--joy-palette-danger-500, #C41C1C);--joy-palette-danger-solidHoverBg:var(--joy-palette-danger-600, #A51818);--joy-palette-danger-solidActiveBg:var(--joy-palette-danger-700, #7D1212);--joy-palette-danger-solidDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-danger-solidDisabledBg:var(--joy-palette-danger-800, #430A0A);--joy-palette-danger-mainChannel:228 116 116;--joy-palette-danger-lightChannel:247 197 197;--joy-palette-danger-darkChannel:125 18 18;--joy-palette-success-50:#F6FEF6;--joy-palette-success-100:#E3FBE3;--joy-palette-success-200:#C7F7C7;--joy-palette-success-300:#A1E8A1;--joy-palette-success-400:#51BC51;--joy-palette-success-500:#1F7A1F;--joy-palette-success-600:#136C13;--joy-palette-success-700:#0A470A;--joy-palette-success-800:#042F04;--joy-palette-success-900:#021D02;--joy-palette-success-plainColor:var(--joy-palette-success-300, #A1E8A1);--joy-palette-success-plainHoverBg:var(--joy-palette-success-800, #042F04);--joy-palette-success-plainActiveBg:var(--joy-palette-success-700, #0A470A);--joy-palette-success-plainDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-success-outlinedColor:var(--joy-palette-success-200, #C7F7C7);--joy-palette-success-outlinedBorder:var(--joy-palette-success-700, #0A470A);--joy-palette-success-outlinedHoverBg:var(--joy-palette-success-800, #042F04);--joy-palette-success-outlinedActiveBg:var(--joy-palette-success-700, #0A470A);--joy-palette-success-outlinedDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-success-outlinedDisabledBorder:var(--joy-palette-neutral-800, #23272B);--joy-palette-success-softColor:var(--joy-palette-success-200, #C7F7C7);--joy-palette-success-softBg:var(--joy-palette-success-800, #042F04);--joy-palette-success-softHoverBg:var(--joy-palette-success-700, #0A470A);--joy-palette-success-softActiveColor:var(--joy-palette-success-100, #E3FBE3);--joy-palette-success-softActiveBg:var(--joy-palette-success-600, #136C13);--joy-palette-success-softDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-success-softDisabledBg:var(--joy-palette-success-900, #021D02);--joy-palette-success-solidColor:var(--joy-palette-common-white, #FCFCFD);--joy-palette-success-solidBg:var(--joy-palette-success-500, #1F7A1F);--joy-palette-success-solidHoverBg:var(--joy-palette-success-600, #136C13);--joy-palette-success-solidActiveBg:var(--joy-palette-success-700, #0A470A);--joy-palette-success-solidDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-success-solidDisabledBg:var(--joy-palette-success-800, #042F04);--joy-palette-success-mainChannel:81 188 81;--joy-palette-success-lightChannel:199 247 199;--joy-palette-success-darkChannel:10 71 10;--joy-palette-warning-50:#FEFAF6;--joy-palette-warning-100:#FDF0E1;--joy-palette-warning-200:#FCE1C2;--joy-palette-warning-300:#F3C896;--joy-palette-warning-400:#EA9A3E;--joy-palette-warning-500:#9A5B13;--joy-palette-warning-600:#72430D;--joy-palette-warning-700:#492B08;--joy-palette-warning-800:#2E1B05;--joy-palette-warning-900:#1D1002;--joy-palette-warning-plainColor:var(--joy-palette-warning-300, #F3C896);--joy-palette-warning-plainHoverBg:var(--joy-palette-warning-800, #2E1B05);--joy-palette-warning-plainActiveBg:var(--joy-palette-warning-700, #492B08);--joy-palette-warning-plainDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-warning-outlinedColor:var(--joy-palette-warning-200, #FCE1C2);--joy-palette-warning-outlinedBorder:var(--joy-palette-warning-700, #492B08);--joy-palette-warning-outlinedHoverBg:var(--joy-palette-warning-800, #2E1B05);--joy-palette-warning-outlinedActiveBg:var(--joy-palette-warning-700, #492B08);--joy-palette-warning-outlinedDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-warning-outlinedDisabledBorder:var(--joy-palette-neutral-800, #23272B);--joy-palette-warning-softColor:var(--joy-palette-warning-200, #FCE1C2);--joy-palette-warning-softBg:var(--joy-palette-warning-800, #2E1B05);--joy-palette-warning-softHoverBg:var(--joy-palette-warning-700, #492B08);--joy-palette-warning-softActiveColor:var(--joy-palette-warning-100, #FDF0E1);--joy-palette-warning-softActiveBg:var(--joy-palette-warning-600, #72430D);--joy-palette-warning-softDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-warning-softDisabledBg:var(--joy-palette-warning-900, #1D1002);--joy-palette-warning-solidColor:var(--joy-palette-common-white, #FCFCFD);--joy-palette-warning-solidBg:var(--joy-palette-warning-500, #9A5B13);--joy-palette-warning-solidHoverBg:var(--joy-palette-warning-600, #72430D);--joy-palette-warning-solidActiveBg:var(--joy-palette-warning-700, #492B08);--joy-palette-warning-solidDisabledColor:var(--joy-palette-neutral-500, #636B74);--joy-palette-warning-solidDisabledBg:var(--joy-palette-warning-800, #2E1B05);--joy-palette-warning-mainChannel:234 154 62;--joy-palette-warning-lightChannel:252 225 194;--joy-palette-warning-darkChannel:73 43 8;--joy-palette-common-white:#FBFCFD;--joy-palette-common-black:#0E0E10;--joy-palette-text-primary:var(--joy-palette-neutral-100, #EAEEF6);--joy-palette-text-secondary:var(--joy-palette-neutral-300, #CDD7E1);--joy-palette-text-tertiary:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-text-icon:var(--joy-palette-neutral-400, #9FA6AD);--joy-palette-background-body:var(--joy-palette-common-black, #09090B);--joy-palette-background-surface:var(--joy-palette-neutral-900, #121416);--joy-palette-background-popup:var(--joy-palette-common-black, #09090B);--joy-palette-background-level1:var(--joy-palette-neutral-800, #23272B);--joy-palette-background-level2:var(--joy-palette-neutral-700, #32383E);--joy-palette-background-level3:var(--joy-palette-neutral-600, #555E68);--joy-palette-background-tooltip:var(--joy-palette-neutral-600, #555E68);--joy-palette-background-backdrop:rgba(var(--joy-palette-neutral-darkChannel, 245 247 250) / 0.25);--joy-palette-divider:rgba(var(--joy-palette-neutral-mainChannel, 99 107 116) / 0.16);--joy-palette-focusVisible:var(--joy-palette-primary-500, #0B6BCB);
15--joy-shadowRing:0 0 #000;--joy-shadowChannel:0 0 0;--joy-shadowOpacity:0.6;}</style><div class="styles_container__fPQGY styles_paddings__BEZnI "><h1>Курсы</h1><div class="styles_container__laEkL"><div class="MuiBox-root css-0"><div><style data-emotion="css 1ey6qad">.css-1ey6qad{--Icon-fontSize:calc(1em * var(--joy-lineHeight-xs, 1.33334));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-weight:var(--joy-fontWeight-lg, 600);font-size:var(--Typography-fontSize, var(--joy-fontSize-lg, 1.125rem));line-height:var(--joy-lineHeight-xs, 1.33334);color:var(--joy-palette-text-primary, var(--joy-palette-neutral-800, #23272B));margin-bottom:16px;}</style><p id="fav-movie" class="MuiTypography-root MuiTypography-title-lg css-1ey6qad">Фильтры</p><style data-emotion="css zefc5s">.css-zefc5s{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:8px;}</style><div class="MuiBox-root css-zefc5s" role="group" aria-labelledby="fav-movie"><style data-emotion="css 1do47h7">.css-1do47h7{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-background-surface);--variant-borderWidth:0px;color:var(--joy-palette-neutral-plainColor, var(--joy-palette-neutral-700, #32383E));}.css-1do47h7.Mui-disabled{color:var(--joy-palette-neutral-plainDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-1do47h7.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-neutral-plainDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}</style><div class="MuiChip-root MuiChip-colorNeutral MuiChip-sizeMd MuiChip-variantPlain css-1do47h7"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rql76:"><style data-emotion="css idctgc">.css-idctgc{--Icon-fontSize:var(--Checkbox-size);--Checkbox-size:1.25rem;--Checkbox-gap:0.625rem;font-size:var(--joy-fontSize-md);position:initial;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--joy-fontFamily-body);line-height:var(--Checkbox-size);color:var(--joy-palette-neutral-outlinedColor, var(--joy-palette-neutral-700, #32383E));}.css-idctgc~*{--FormHelperText-margin:0.25rem 0 0 1.875rem;}.css-idctgc.Mui-disabled{color:var(--joy-palette-neutral-outlinedDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}</style><span class="MuiCheckbox-root MuiCheckbox-variantOutlined MuiCheckbox-colorNeutral MuiCheckbox-sizeMd css-idctgc"><style data-emotion="css 1np4wcj">.css-1np4wcj{--Icon-color:var(--joy-palette-text-icon);box-sizing:border-box;border-radius:min(var(--joy-radius-sm), 0.25rem);width:var(--Checkbox-size);height:var(--Checkbox-size);display:contents;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}.css-1np4wcj.Mui-checked,.css-1np4wcj.MuiCheckbox-indeterminate{--Icon-color:currentColor;}</style><span class="MuiCheckbox-checkbox css-1np4wcj"><style data-emotion="css 7gofqo">.css-7gofqo{border-radius:var(--Checkbox-actionRadius, var(--unstable_actionRadius, inherit));text-align:left;position:absolute;top:calc(-1 * var(--variant-borderWidth, 0px));left:calc(-1 * var(--variant-borderWidth, 0px));bottom:calc(-1 * var(--variant-borderWidth, 0px));right:calc(-1 * var(--variant-borderWidth, 0px));z-index:1;--variant-borderWidth:1px;color:var(--joy-palette-neutral-outlinedColor, var(--joy-palette-neutral-700, #32383E));border:var(--variant-borderWidth) solid;border-color:var(--joy-palette-neutral-outlinedBorder, var(--joy-palette-neutral-300, #CDD7E1));}.css-7gofqo.Mui-focusVisible,.css-7gofqo:focus-visible{outline-offset:var(--focus-outline-offset, var(--joy-focus-thickness, 2px));outline:var(--joy-focus-thickness, 2px) solid var(--joy-palette-focusVisible, #0B6BCB);}.css-7gofqo:hover{background-color:var(--joy-palette-neutral-outlinedHoverBg, var(--joy-palette-neutral-100, #EAEEF6));}.css-7gofqo:active{background-color:var(--joy-palette-neutral-outlinedActiveBg, var(--joy-palette-neutral-200, #DDE7EE));}.css-7gofqo.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-neutral-outlinedDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));border-color:var(--joy-palette-neutral-outlinedDisabledBorder, var(--joy-palette-neutral-200, #DDE7EE));}</style><span class="MuiCheckbox-action css-7gofqo"><style data-emotion="css 1jj0cvj">.css-1jj0cvj{margin:0;opacity:0;position:absolute;width:100%;height:100%;cursor:pointer;}</style><input type="checkbox" id=":R9aql76:" class="MuiCheckbox-input css-1jj0cvj"/></span></span><style data-emotion="css 1vyzt37">.css-1vyzt37{-webkit-flex:1;-ms-flex:1;flex:1;min-width:0;z-index:1;pointer-events:none;}</style><label for=":R9aql76:" class="MuiCheckbox-label css-1vyzt37">Платные</label></span></span></div><div class="MuiChip-root MuiChip-colorNeutral MuiChip-sizeMd MuiChip-variantPlain css-1do47h7"><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":R1al76:"><span class="MuiCheckbox-root MuiCheckbox-variantOutlined MuiCheckbox-colorNeutral MuiCheckbox-sizeMd css-idctgc"><span class="MuiCheckbox-checkbox css-1np4wcj"><span class="MuiCheckbox-action css-7gofqo"><input type="checkbox" id=":R9bal76:" class="MuiCheckbox-input css-1jj0cvj"/></span></span><label for=":R9bal76:" class="MuiCheckbox-label css-1vyzt37">Бесплатные</label></span></span></div></div></div></div></div><div class="styles_container__laEkL"><a class="styles_card__xDl4s" href="/courses/acf3b26b-2064-4054-886f-aab3cdea2574"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/acf3b26b-2064-4054-886f-aab3cdea2574/preview.jpg" width="100%" height="100%" alt="Обложка курса Современная веб-разработка без сборки и транспиляции" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Современная веб-разработка без сборки и транспиляции</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl90f76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/0af5a4cf-adca-4b24-96ec-855640a71bf0"><div><div class="styles_imageSpace__vlZiS"><img src="https://img.youtube.com/vi/TGqixbqAlxQ/sddefault.jpg" width="100%" height="100%" alt="Обложка курса Redux-Saga от webDev" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Redux-Saga от webDev</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl90n76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/e1060810-59d4-42ea-ab03-cd9b0de419fc"><div><div class="styles_imageSpace__vlZiS"><img src="https://d2h1bfu6zrdxog.cloudfront.net/wp-content/uploads/2022/04/coderpad-regex-the-complete-guide.jpg" width="100%" height="100%" alt="Обложка курса Регулярные выражения - Основы" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Регулярные выражения - Основы</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl90v76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/ea716172-d74b-476f-a819-8891e073b739"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/ea716172-d74b-476f-a819-8891e073b739/preview.jpeg" width="100%" height="100%" alt="Обложка курса Компьютерные сети" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Компьютерные сети</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl91776:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/eae48574-181a-481f-a765-09f5bde95811"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20Syntax%20and%20Operators%20By%20Paul%20D%20Sheriff/images/java-script-syntax.jpeg" width="100%" height="100%" alt="Обложка курса JavaScript Syntax and Operators By Paul D Sheriff" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">JavaScript Syntax and Operators By Paul D Sheriff</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl91f76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/ef80f305-843b-48a7-8d48-44ee210830b7"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/Cypress%204%20-%20End-to-end%20JavaScript%20Testing%20By%20adhithi-ravichandran/preview.jpeg" width="100%" height="100%" alt="Обложка курса Cypress 4 - End-to-end JavaScript Testing By adhithi-ravichandran" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Cypress 4 - End-to-end JavaScript Testing By adhithi-ravichandran</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl91n76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/15e07d68-b066-449b-9ff9-717d20dc104e"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20Variables%20and%20Types%20By%20Barry%20Luijbregts/preview.jpeg" width="100%" height="100%" alt="Обложка курса JavaScript Variables and Types By Barry Luijbregts" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">JavaScript Variables and Types By Barry Luijbregts</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl91v76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/1b0008e5-dba5-4ff6-a654-e8127ac7e6c0"><div><div class="styles_imageSpace__vlZiS"><img src="https://miro.medium.com/max/1400/1*GPqO1CPRP1AymEOn7osqsg.jpeg" width="100%" height="100%" alt="Обложка курса Redux 3 Saga" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Redux 3 Saga</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl92776:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/d7f11916-21ee-49b7-bcb6-470b9c975d52"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20Promises%20and%20Async%20Programming%20By%20Nate%20Taylor/preview.jpeg" width="100%" height="100%" alt="Обложка курса JavaScript Promises and Async Programming By Nate Taylor" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">JavaScript Promises and Async Programming By Nate Taylor</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl92f76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/f2a0cdbb-b048-44fc-969e-fcef2b31f23f"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/f2a0cdbb-b048-44fc-969e-fcef2b31f23f/preview.jpg" width="100%" height="100%" alt="Обложка курса Linux Essentials - Ваши первые 100 команд" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Linux Essentials - Ваши первые 100 команд</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl92n76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/10cce5f3-b479-420a-ae74-24037f7c73b0"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/10cce5f3-b479-420a-ae74-24037f7c73b0/preview.jpg" width="100%" height="100%" alt="Обложка курса Как начать делать ИГРЫ в GODOT 4" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Как начать делать ИГРЫ в GODOT 4</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl92v76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/469dea43-625d-4ab3-a82f-28718cdbbefc"><div><div class="styles_imageSpace__vlZiS"><img src="https://img.youtube.com/vi/zpxQK8oZTcI/maxresdefault.jpg" width="100%" height="100%" alt="Обложка курса Курс сетевых технологий. Cisco." class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Курс сетевых технологий. Cisco.</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl93776:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/46ed5324-0cb5-4c3f-bab1-a57820720274"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/46ed5324-0cb5-4c3f-bab1-a57820720274/preview.jpg" width="100%" height="100%" alt="Обложка курса Компьютерная графика: основы" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Компьютерная графика: основы</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl93f76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/89fe7709-ca94-4639-9e28-52e0b1628ad7"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/89fe7709-ca94-4639-9e28-52e0b1628ad7/preview.jpeg" width="100%" height="100%" alt="Обложка курса Веб-разработка с использованием HTML и CSS - Общая картина" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Веб-разработка с использованием HTML и CSS - Общая картина</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl93n76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/a162d518-48e7-4db0-94de-84d8e124f751"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/Working%20with%20JavaScript%20Modules%20By%20Jonathan%20Mills/preview.jpeg" width="100%" height="100%" alt="Обложка курса Working with JavaScript Modules By Jonathan Mills" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Working with JavaScript Modules By Jonathan Mills</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl93v76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/9ece08dc-7318-4750-9c6b-b8c63a253d2d"><div><div class="styles_imageSpace__vlZiS"><img src="https://img.youtube.com/vi/WAdMv_-iy4o/maxresdefault.jpg" width="100%" height="100%" alt="Обложка курса Маршрутизация и коммутация | Маршрутизация и коммутация для начинающих" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Маршрутизация и коммутация | Маршрутизация и коммутация для начинающих</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl94776:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/cbbe023d-0bac-4f26-9ce0-42f2b2d95306"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/cbbe023d-0bac-4f26-9ce0-42f2b2d95306/preview.jpg" width="100%" height="100%" alt="Обложка курса GIT - От основ к уверенной работе (В разработке)" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">GIT - От основ к уверенной работе (В разработке)</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl94f76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/62c7915b-f2bd-4a2d-bdc9-6f4960cdc0db"><div><div class="styles_imageSpace__vlZiS"><img src="https://blog.invgate.com/hubfs/what-is-wireshark.jpg" width="100%" height="100%" alt="Обложка курса Основы Wireshark и сетевого анализа" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Основы Wireshark и сетевого анализа</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl94n76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/2291e058-9828-4821-84a7-c316e7ec2430"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20-%20Getting%20Started%20By%20Mark%20Zamoyta/images/preview.jpeg" width="100%" height="100%" alt="Обложка курса JavaScript - Начало работы" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">JavaScript - Начало работы</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl94v76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/9b0126cd-057b-443d-b0d7-223911a3341a"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/9b0126cd-057b-443d-b0d7-223911a3341a/preview.jpg" width="100%" height="100%" alt="Обложка курса Монорепозитории с Turborepo: от настройки до автоматизации" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Монорепозитории с Turborepo: от настройки до автоматизации</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl95776:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/7c0b36e2-693f-4c16-a743-41371f86eed5"><div><div class="styles_imageSpace__vlZiS"><img src="https://img.youtube.com/vi/_8yZYhAkQjQ/maxresdefault.jpg" width="100%" height="100%" alt="Обложка курса Изучение C# для начинающих" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Изучение C# для начинающих</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
15-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl95f76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/484bac11-71b4-4f9c-bee1-0d566e8f5b73"><div><div class="styles_imageSpace__vlZiS">
15<img src="https://webdevnet.ru/wp-content/uploads/2020/02/pipe-copy.jpg" width="100%" height="100%" alt="Обложка курса Webpack - Курс" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Webpack - Курс</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl95n76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/3ad7f3c7-d2bb-453b-a5ec-0af995b878a9"><div><div class="styles_imageSpace__vlZiS"><img src="https://miro.medium.com/v2/resize:fit:1358/1*Ch-mZ_z7AIl6OGw7gMTiCg.png" width="100%" height="100%" alt="Обложка курса Тестирования безопасности веб-приложений - Burp Suite (BETA)" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Тестирования безопасности веб-приложений - Burp Suite (BETA)</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl95v76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/4d9343b1-2c74-44a5-8f3f-5957635d8739"><div><div class="styles_imageSpace__vlZiS"><img src="https://s3.amazonaws.com/coursesity-blog/2021/08/VIM_tutorials.png" width="100%" height="100%" alt="Обложка курса Основы Vim для Новичков" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Основы Vim для Новичков</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl96776:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/5c5d3bcb-dbdf-4cb0-8eda-3bac693b4129"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/Modern%20Java%20-%20The%20Big%20Picture%20By%20Sander%20Mak/preview.jpeg" width="100%" height="100%" alt="Обложка курса Modern Java - The Big Picture By Sander Mak" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Modern Java - The Big Picture By Sander Mak</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl96f76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/6d6e5090-28e6-4427-b58e-bae7ae6ed539"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20Security%20-%20Best%20Practices%20By%20Marcin%20Hoppe/preview.jpeg" width="100%" height="100%" alt="Обложка курса JavaScript Security - Best Practices By Marcin Hoppe" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">JavaScript Security - Best Practices By Marcin Hoppe</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl96n76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/78cb5ba0-8dbf-415d-b890-d3dff71a124a"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/78cb5ba0-8dbf-415d-b890-d3dff71a124a/preview.webp" width="100%" height="100%" alt="Обложка курса Базовый Python 3: Начало работы" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Базовый Python 3: Начало работы</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl96v76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/8093f206-9a5f-41a8-8ccf-5a122cecb955"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20Arrays%20and%20Collections%20By%20Jeff%20Batt/preview.jpg" width="100%" height="100%" alt="Обложка курса JavaScript Arrays and Collections By Jeff Batt" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">JavaScript Arrays and Collections By Jeff Batt</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl97776:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/820ce75d-ed75-43a5-9669-afd89d49c9e3"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/820ce75d-ed75-43a5-9669-afd89d49c9e3/preview.jpeg" width="100%" height="100%" alt="Обложка курса React Context - Эффективное управление состоянием приложения" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">React Context - Эффективное управление состоянием приложения</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl97f76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/a5410ebb-6cad-4e7e-b114-1da92568d33b"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/Javascript%20Generators%20and%20Iterators%20By%20Marques%20Woodson/preview.jpeg" width="100%" height="100%" alt="Обложка курса Javascript Generators and Iterators By Marques Woodson" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Javascript Generators and Iterators By Marques Woodson</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl97n76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/b11f8f23-f232-453b-9d57-58a415f62020"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/b11f8f23-f232-453b-9d57-58a415f62020/preview.jpg" width="100%" height="100%" alt="Обложка курса Redux Saga от DevMagazine" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Redux Saga от DevMagazine</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl97v76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/b3e42984-a4d8-481f-b3f4-c91c05e4e345"><div><div class="styles_imageSpace__vlZiS"><img src="https://i.ytimg.com/vi/DOVsoWJAxuM/maxresdefault.jpg" width="100%" height="100%" alt="Обложка курса Linux Crash Course" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Linux Crash Course</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl98776:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/bb49eba7-a5b4-4fda-9eda-7fc93e353e58"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20-%20Functions%20By%20Prateek%20Parekh/preview.png" width="100%" height="100%" alt="Обложка курса JavaScript - Functions By Prateek Parekh" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">JavaScript - Functions By Prateek Parekh</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl98f76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/d3b71a38-c6f8-4164-b06f-bf7538da6bdf"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20Objects%2C%20Prototypes%2C%20and%20Classes%20By%20Jim%20Cooper/preview.jpeg" width="100%" height="100%" alt="Обложка курса JavaScript Objects, Prototypes, and Classes By Jim Cooper" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">JavaScript Objects, Prototypes, and Classes By Jim Cooper</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl98n76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/e8a68e40-40ff-44f5-a100-f9380b2efc4f"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/e8a68e40-40ff-44f5-a100-f9380b2efc4f/preview.jpg" width="100%" height="100%" alt="Обложка курса English: Pronouns - Местоимения (Курс в разработке/дополняется)" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">English: Pronouns - Местоимения (Курс в разработке/дополняется)</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl98v76:">Бесплатно</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/63c6fa4e-356c-48c7-888b-b59e741b2aa8"><div><div class="styles_imageSpace__vlZiS"><img src="https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/63c6fa4e-356c-48c7-888b-b59e741b2aa8/preview.jpg" width="100%" height="100%" alt="Обложка курса Git: Профессиональный курс" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">Git: Профессиональный курс</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 1xt77uk">.css-1xt77uk{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-success-solidBg, var(--joy-palette-success-500, #1F7A1F));--variant-borderWidth:0px;color:var(--joy-palette-success-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-1xt77uk.Mui-disabled{color:var(--joy-palette-success-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-1xt77uk.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-success-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-success-solidDisabledBg, var(--joy-palette-success-100, #E3FBE3));}</style><span class="MuiChip-root MuiChip-colorSuccess MuiChip-sizeMd MuiChip-variantSolid css-1xt77uk"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl99776:">100₽</span></span></p></div></div></div></a><a class="styles_card__xDl4s" href="/courses/b0a3efc3-21c6-4f11-a74f-96fd18079388"><div><div class="styles_imageSpace__vlZiS"><img src="https://img.youtube.com/vi/HkoRkNLWQzY/maxresdefault.jpg" width="100%" height="100%" alt="Обложка курса ComfyUI Course - Learn ComfyUI From Scratch" class="styles_courseImage__COlId"/></div><div class="styles_infoSpace__hHx5o"><h2 class="styles_header__TYKE1">ComfyUI Course - Learn ComfyUI From Scratch</h2><div>Цена: <style data-emotion="css 1lzlr6t">.css-1lzlr6t{--Icon-fontSize:calc(1em * var(--joy-lineHeight-md, 1.5));margin:var(--Typography-margin, 0px);
15display:block;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--Typography-fontSize, var(--joy-fontSize-md, 1rem));line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-secondary, var(--joy-palette-neutral-700, #32383E));font-weight:var(--joy-fontWeight-lg);margin-top:8px;}</style><p class="MuiTypography-root MuiTypography-body-md css-1lzlr6t"><style data-emotion="css 122skyt">.css-122skyt{--Chip-decoratorChildOffset:min(calc(var(--Chip-paddingInline) - (var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2), var(--Chip-paddingInline));--Chip-decoratorChildRadius:max(var(--_Chip-radius) - var(--variant-borderWidth, 0px) - var(--_Chip-paddingBlock), min(var(--_Chip-paddingBlock) + var(--variant-borderWidth, 0px), var(--_Chip-radius) / 2));--Chip-deleteRadius:var(--Chip-decoratorChildRadius);--Chip-deleteSize:var(--Chip-decoratorChildHeight);--Avatar-radius:var(--Chip-decoratorChildRadius);--Avatar-size:var(--Chip-decoratorChildHeight);--Icon-margin:initial;--Icon-color:currentColor;--unstable_actionRadius:var(--_Chip-radius);--Chip-paddingInline:0.75rem;--Chip-decoratorChildHeight:min(1.375rem, var(--_Chip-minHeight));--Icon-fontSize:var(--joy-fontSize-lg);--_Chip-minHeight:var(--Chip-minHeight, 2rem);gap:0.375rem;--_Chip-radius:var(--Chip-radius, 1.5rem);--_Chip-paddingBlock:max((var(--_Chip-minHeight) - 2 * var(--variant-borderWidth, 0px) - var(--Chip-decoratorChildHeight)) / 2, 0px);min-height:var(--_Chip-minHeight);max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content;padding-inline:var(--Chip-paddingInline);border-radius:var(--_Chip-radius);position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;white-space:nowrap;-webkit-text-decoration:none;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-family:var(--joy-fontFamily-body, "Inter", var(--joy-fontFamily-fallback, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"));font-size:var(--joy-fontSize-sm, 0.875rem);line-height:var(--joy-lineHeight-md, 1.5);color:var(--joy-palette-text-tertiary, var(--joy-palette-neutral-600, #555E68));font-weight:var(--joy-fontWeight-md);background-color:var(--joy-palette-primary-solidBg, var(--joy-palette-primary-500, #0B6BCB));--variant-borderWidth:0px;color:var(--joy-palette-primary-solidColor, var(--joy-palette-common-white, #FCFCFD));}.css-122skyt.Mui-disabled{color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));}.css-122skyt.Mui-disabled{pointer-events:none;cursor:default;--Icon-color:currentColor;color:var(--joy-palette-primary-solidDisabledColor, var(--joy-palette-neutral-400, #9FA6AD));background-color:var(--joy-palette-primary-solidDisabledBg, var(--joy-palette-primary-100, #E3EFFB));}</style><span class="MuiChip-root MuiChip-colorPrimary MuiChip-sizeMd MuiChip-variantSolid css-122skyt"><style data-emotion="css tymi7a">.css-tymi7a{display:inline-block;overflow:hidden;text-overflow:ellipsis;-webkit-order:1;-ms-flex-order:1;order:1;min-inline-size:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}</style><span class="MuiChip-label MuiChip-labelMd css-tymi7a" id=":Rl99f76:">Бесплатно</span></span></p></div></div></div></a></div></div><footer><div class="styles_container__fPQGY  styles_footerMainContent__MoTqb"><div class="styles_footer__7_eib"><div class="styles_footer_1__gE0NT"><a class="logo-style_logoLink__fbz9Y undefined" href="/"><img blurWidth="0" blurHeight="0" alt="Alfa Brain" title="Логотип Alfa Brain" loading="lazy" width="726" height="150" decoding="async" data-nimg="1" class="logo-style_logo__Ncatq" style="color:transparent" src="/_next/static/media/logo_horizontal_color.8ef87877.svg"/></a><p class="styles_text__cMwwH">Платформа для обучения IT-специалистов и разработки цифровых решений. Видео-курсы и профессиональные веб-приложения — всё в одном месте.</p></div><div class="styles_footer_2__vy9SQ"><h4 class="styles_footer_header__R6Ux_">Платформа</h4><ul class="styles_list__aYc5H"><li><a href="/courses">Образование</a></li><li><a target="_blank" href="https://www.youtube.com/@alfa-brain-channel">YouTube канал</a></li><li><a target="_blank" href="https://t.me/alfa_brain">Telegram канал</a></li></ul></div><div class="styles_footer_2__vy9SQ"><h4 class="styles_footer_header__R6Ux_">Политики</h4><ul class="styles_list__aYc5H"><li><a href="/privacy-policy">Политика конфиденциальности</a></li><li><a href="/agreement">Соглашение</a></li><li><a href="/purchases-and-refunds">Политика покупок и возвратов</a></li></ul></div><div class="styles_footer_2__vy9SQ"><h4 class="styles_footer_header__R6Ux_">Контакты</h4><ul class="styles_list__aYc5H"><li><a href="/cdn-cgi/l/email-protection#8ffcfaffffe0fdfbcfeee3e9eea2edfdeee6e1a1ece0e2" class="styles_email__MkUMR"><span class="__cf_email__" data-cfemail="acdfd9dcdcc3ded8eccdc0cacd81cedecdc5c282cfc3c1">[email&#160;protected]</span></a></li><li><a class="styles_email__MkUMR" href="tel:+79657989424">🇷🇺 +7-965-798-94-24</a></li><li><a class="styles_email__MkUMR" href="tel:+998901941466">🇺🇿 +998-90-194-14-66</a></li></ul></div></div></div><div class="styles_copyright__pB_Rp"><span>© «Alfa Brain» 2025</span></div></footer><div class="Toastify"></div></div>
vendor: 108 bytes, line 15
15<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
15<script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"courses":[{"uuid":"acf3b26b-2064-4054-886f-aab3cdea2574","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Современная веб-разработка без сборки и транспиляции","description":"## 🎯 Короткое описание курса\n\nЭтот курс — для разработчиков, уставших от чрезмерной сложности современного веба.  \nМы покажем, как создавать клиент-серверные приложения **без сборщиков, без транспиляции и без избыточных инструментов** — используя нативные возможности браузера и Node.js.  \n\nТы поймёшь, что веб можно упростить: писать меньше конфигов и больше кода, следовать KISS и запускать проекты без тяжёлых пайплайнов.  \n\nКурс подойдёт:\n- начинающим, у кого рябит в глазах от Babel/Webpack/Vite;\n- опытным разработчикам, которые хотят освежить взгляд;\n- тем, кто хочет создавать маленькие, понятные, поддерживаемые проекты без «индустриального комбината» вокруг.\n\nГлавная мысль: **веб может быть простым — если перестать усложнять.**","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/acf3b26b-2064-4054-886f-aab3cdea2574/preview.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"title":"Проблемы современной веб-разработки","queue":0,"materials":[{"title":"Как веб стал чрезмерно сложным: исторические причины","queue":0,"uuid":"12accfc5-6eff-49d6-a60b-fc872d3f4a66"},{"title":"TypeScript как псевдоязык","queue":1,"uuid":"1e0be73c-c122-42d2-82cf-cf1b5ade7be8"},{"title":"Конфигурационный ад и несовместимость транспиляторов","queue":2,"uuid":"58fcf82e-a171-4c24-8951-89f80441560c"},{"title":"Мы всё ещё компилируем то, что не нужно компилировать","queue":3,"uuid":"761c9d40-0e81-4984-bb29-5a3ca0766cde"}],"uuid":"fded7708-b2c2-49cd-8d37-5f0f541622ad"},{"title":"Новый подход: минимализм и отказ от сборки","queue":1,"materials":[{"title":"Что такое Zero-Build (No-Build) разработка","queue":0,"uuid":"64ce751f-6c9f-4535-8a47-1614f614fd97"},{"title":"Нативные ES-модули в браузерах и Node.js","queue":1,"uuid":"96b04747-89a2-4edd-a598-81a8e2966db9"},{"title":"TypeScript без компиляции: запуск TS в рантайме","queue":2,"uuid":"48c06e64-b0ec-407f-9455-8b4eda822ed4"},{"title":"Фреймворки, не требующие сборки","queue":3,"uuid":"52906741-db0b-4921-8922-142c3d78bfb4"}],"uuid":"d9db25ca-3eaa-46ea-ab13-a222cca3bef3"},{"title":"Создаём сервер без сборки","queue":2,"materials":[{"title":"Минимальный сервер на Node ESM","queue":0,"uuid":"7a833d1d-c3c0-4ec5-84d7-1ce0f5dd2f98"},{"title":"Создание API без сборки","queue":1,"uuid":"fb31a807-9941-4a4e-ba01-11bfa230b880"},{"title":"Выдача статики без Webpack/Vite","queue":2,"uuid":"5fd35740-7091-42f3-878b-d91ba2fb5372"}],"uuid":"2cb5b274-9af6-442e-8f95-c96644595c70"},{"title":"Клиентское приложение без сборки","queue":3,"materials":[{"title":"Создание клиентского JS на нативных ES-модулях","queue":0,"uuid":"efdbcf97-45f0-4c6f-a9c8-af6a3be464bc"},{"title":"Мини-компоненты без React ","queue":1,"uuid":"60e239ea-8b18-4c80-ac24-eaee97d8c53a"},{"title":"Организация кода без bundler","queue":2,"uuid":"d7ccb680-ee85-4ab0-846b-8c8c2d64d025"}],"uuid":"d165c541-124e-44a1-8685-9386443b10ab"},{"title":"TypeScript в No-Build разработке","queue":4,"materials":[{"title":"Запуск TypeScript-сервера в рантайме","queue":0,"uuid":"8bc3bd8c-c9f5-474a-a82f-9a57cc42e55d"},{"title":"Как JSDoc заменяет TS ","queue":1,"uuid":"7ee85123-1293-468f-9bc0-85d6185ea7c1"},{"title":"Какие фреймворки ближе всего к No-Build","queue":2,"uuid":"4a7e2ce9-2a9f-49da-81da-c8af256b7717"}
15],"uuid":"87fd7d3b-96df-4568-9379-0d619d43002e"},{"title":"Итоговый проект — мини-Dashboard","queue":5,"materials":[{"title":"Архитектура мини-Dashboard","queue":0,"uuid":"b8781e5c-1ef8-4f9f-b1d9-45b72ec62540"},{"title":"Настраиваем сервер на TypeScript + tsx","queue":1,"uuid":"1aa0525f-de14-4073-97f8-ea4007a735cb"},{"title":"Создаём API для Dashboard","queue":2,"uuid":"b383fc59-c1b4-43fd-b358-86c18b30c75c"},{"title":"Dashboard на клиентской стороне (Preact + HTM + JSDoc)","queue":3,"uuid":"2d13d971-d0b4-44d9-8bb7-89c7db5deac1"}],"uuid":"db0c7b32-82cc-4688-9db4-4aa23b14ad34"},{"title":"Заключение","queue":6,"materials":[{"title":"Итоги курса","queue":0,"uuid":"55c75113-c390-4c13-bd91-e7b581cc0fdf"}],"uuid":"8f9e4862-6ce1-4114-a8c3-96e90165a807"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2025-11-29T10:01:36.042Z","updatedAt":"2025-11-30T10:18:40.923Z"},{"uuid":"0af5a4cf-adca-4b24-96ec-855640a71bf0","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Redux-Saga от webDev","description":"\u003ca href=\"https://www.youtube.com/playlist?list=PLNkWIWHIRwMFrVMaVMOYflo8R4QBk4vk0\" target=\"_blank\"\u003ehttps://www.youtube.com/playlist?list=PLNkWIWHIRwMFrVMaVMOYflo8R4QBk4vk0\u003c/a\u003e\n\nВ данном видеокурсе мы с вами рассмотрим Redux-Saga.\nRedux-saga - это библиотека, которая призвана упростить и улучшить выполнение сайд-эффектов в Redux приложениях. Основная особенность Саги это создать множества процессов. И обрабатывать эти процессы по отдельности. \nВ курсе мы разберём основные концепции: \"вотчеры\", \"воркеры\" и \"эффекты\". С помощью Redux-saga научимся осуществлять асинхронные запросы, записывать данные в стор и обрабатывать ошибки. По результату курса создадим небольшое новостное приложение и загрузим его на бесплатный сервис Netlify.","image":"https://img.youtube.com/vi/TGqixbqAlxQ/sddefault.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"uuid":"02a58b82-6dd5-4bc7-b3e4-324671c6d8c2","title":"Секция: Playlist","queue":0,"materials":[{"title":"Redux-Saga #0 Введение (Introduction)","queue":0,"uuid":"d48b29dd-633d-4de4-ad64-b427fe3f6ac0"},{"title":"Redux-Saga #1 Основные понятия (Basic Concepts)","queue":1,"uuid":"26e07709-64bb-4810-91e1-2a2f4ac09f4c"},{"title":"Redux-Saga #2 Установка и настройка окружения (Setup Environment)","queue":2,"uuid":"7f599ae8-acaa-4ef5-827b-1460f14c88c1"},{"title":"Redux-Saga #3 Интеграция Redux (Redux Integration)","queue":3,"uuid":"c86b6440-8a02-46bb-8fdc-9f80102e593a"},{"title":"Redux-Saga #4 Интеграция Redux-Saga (Redux-Saga Integration)","queue":4,"uuid":"100e1396-04dc-4c5c-8b58-5b793804cdbb"},{"title":"Redux-Saga #5 Эффекты и запрос данных (Effects \u0026 Data Fetching)","queue":5,"uuid":"4321d56f-4ba4-488d-b3f7-d51b61c449be"},{"title":"Redux-Saga #6 Сохранение данных в стор (Saving Data Into Redux-Store)","queue":6,"uuid":"95c9d6fc-247e-4d3e-a80c-2be9b09b4afe"},{"title":"Redux-Saga #7 Параллельные задачи (Parallel Tasks)","queue":7,"uuid":"43d38f51-c7cf-4c73-85a9-d339612336d2"},{"title":"Redux-Saga #8 Обработка ошибок (Errors Handling)","queue":8,"uuid":"f99f404b-d7b2-4a7a-bad9-830e9ef2853b"},{"title":"Redux-Saga #9 Интеграция React Router (React Router Integration)","queue":9,"uuid":"dd062ba1-1792-4ec1-9add-eb61d0e87f6c"},{"title":"Redux-Saga #10 Структура корневой Саги (Root Saga Structure)","queue":10,"uuid":"fd79a93a-5513-445e-930d-448fc9493b36"},{"title":"Redux-Saga #11 Интеграция Connected-React-Router (Connected-React-Router Integration)","queue":11,"uuid":"b4aef287-48aa-4b5b-b512-fbc994b1a6a5"},{"title":"Redux-Saga #12 Полезные эффекты (Useful Effects)","queue":12,"uuid":"74e919f2-f525-4097-806a-9953d84d30b5"},{"title":"Redux-Saga #13 Деплой на Netlify (Deploying To Netlify)","queue":13,"uuid":"27ef9283-1b2d-46f9-a4e6-07311f9c1e84"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2023-09-13T13:57:43.601Z","updatedAt":"2023-09-17T11:03:14.105Z"},{"uuid":"e1060810-59d4-42ea-ab03-cd9b0de419fc","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Регулярные выражения - Основы","description":"Этот курс познакомит вас с основами регулярных выражений.","image":"https://d2h1bfu6zrdxog.cloudfront.net/wp-content/uploads/2022/04/coderpad-regex-the-complete-guide.jpg","data":{"status":"active","courseContent":{"sets":[{"title":"Регулярные выражения - Основы","version":"1","description":"Этот курс познакомит вас с основами регулярных выражений.","sections":[{"uuid":"c06d1afc-f0bf-4dec-987b-4a81a8b8d721","title":"Основы регулярных выражений","queue":0,"materials":[{"title":"Введение в Регулярные выражения","queue":0,"uuid":"cf2ddc65-971b-43f4-b1ef-576cd6cac815"},{"title":"Что такое регулярные выражения и почему они так полезны","queue":1,"uuid":"e6c8c5be-1cc2-46e2-ad90-37156ff454c2"},{"title":"Краткая история","queue":2,"uuid":"208f58d0-91fa-4ec1-a2bd-48ed0867dfb6"},{"title":"Как это работает","queue":3,"uuid":"bc68df83-f74a-4304-ae63-4e5c8fe2e04a"}]},{"uuid":"e6bb528d-6e01-47d6-9109-9b150a4bcbb9","title":"Создание вашего первого Регулярного выражения","queue":1,"materials":[{"title":"Ваше первое Регулярное выражение","queue":0,"uuid":"9ea6ebc9-1149-49d0-a42d-f2c59e544de8"}]},{"uuid":"ac6cd606-8a8a-47da-aaed-e6fcd42fca17","title":"Синтаксис в деталях","queue":2,"materials":[{"title":"Введение в синтаксис","queue":0,"uuid":"3e24eb9b-c5f7-4c18-8824-1e115aedc9d6"},{"title":"О движках и диалектах","queue":1,"uuid":"3087df75-9ad2-4593-9785-dd9cf0b55457"},{"title":"Совпадающие символы","queue":2,"uuid":"af85854f-b381-4383-8b95-386c136e7516"},{"title":"Meta Characters - Character Classes","queue":3,"uuid":"6d8588cc-6936-448
150-807a-dcffd4676721"},{"title":"Мета-символы - Подстановочный знак","queue":4,"uuid":"dd5f8dea-a8d7-470d-afc8-938be53ec558"},{"title":"Метасимволы - Квантификаторы и Жадность","queue":5,"uuid":"7e5bec13-ca2d-4b33-bc42-4450b55ed68c"},{"title":"Мета-символы - Чередование","queue":6,"uuid":"b1159e44-0dd5-4d0d-a3a0-bfb7ceb3e574"},{"title":"Метасимволы - Подшаблоны и группировка","queue":7,"uuid":"0799d0a7-b56d-4288-9bcc-04680d24bbae"},{"title":"Мета-символы - якоря и границы","queue":8,"uuid":"9efe6ae6-7212-4158-8311-5073ce750ced"},{"title":"Метасимволы - экранирование и обратная косая черта","queue":9,"uuid":"5dae6ab4-3cc7-4ea5-bb72-069c63ce558d"},{"title":"Метасимволы - заключение","queue":10,"uuid":"d9b47957-7cb2-4c27-a20d-c544acd1f8dc"}]},{"uuid":"d1d1fe5c-e41a-4573-8f3c-43582636044c","title":"Короткие коды, модификаторы и разделители","queue":3,"materials":[{"title":"Короткие коды","queue":0,"uuid":"46065963-d259-4e3a-9383-9b3b3541096d"},{"title":"Короткие коды в Юникоде","queue":1,"uuid":"0f2c5683-50a4-4394-b9e2-6e4815d63477"},{"title":"Модификаторы","queue":2,"uuid":"981cd1da-f290-4db3-9d35-d81d757af6ae"},{"title":"Разделители","queue":3,"uuid":"1715cf29-7947-43b4-94e2-2ee1eb1fb1a2"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-12-30T14:54:13.112Z","updatedAt":"2023-10-24T08:25:57.944Z"},{"uuid":"ea716172-d74b-476f-a819-8891e073b739","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Компьютерные сети","description":"Лекции по курсу \"Компьютерные сети\", начальный уровень.\r\n\r\nАвтор и владелец курса: Andrey Sozykin","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/ea716172-d74b-476f-a819-8891e073b739/preview.jpeg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"Компьютерные сети, учебный курс.","description":"Лекции по курсу \"Компьютерные сети\"","sections":[{"title":"Компьютерные сети","queue":0,"materials":[{"title":"Введение в компьютерные сети | Курс \"Компьютерные сети\"","queue":0,"uuid":"036591a9-bf3f-493d-9a9b-6d28b334213d"},{"title":"Классификация сетей | Курс \"Компьютерные сети\"","queue":1,"uuid":"28498de6-5411-4fde-b714-2636d886b497"},{"title":"Топологии сетей | Курс \"Компьютерные сети\"","queue":2,"uuid":"74996c8d-07cc-4189-84f4-b0928b43757f"},{"title":"Стандарты компьютерных сетей | Курс \"Компьютерные сети\"","queue":3,"uuid":"c2895a08-5e8d-4df2-862d-86f9ffdecfc1"},{"title":"Основы организации компьютерных сетей  | Курс \"Компьютерные сети\"","queue":4,"uuid":"cec0e4b7-c912-4798-953a-91eaa42ee89e"},{"title":"Модель OSI | Курс \"Компьютерные сети\"","queue":5,"uuid":"c12f7b19-d527-4bd2-b9bb-f9845eafbd68"},{"title":"Модель и стек протоколов TCP/IP | Курс \"Компьютерные сети\"","queue":6,"uuid":"d92de32e-f19b-4be7-b4d7-9596690f22f3"},{"title":"Физический уровень | Курс \"Компьютерные сети\"","queue":7,"uuid":"3706b6c3-f734-4ec7-9b6a-515bd89598ea"},{"title":"Канальный уровень | Курс \"Компьютерные сети\"","queue":8,"uuid":"7e75ad78-7d03-4e87-8faf-6790bd588350"},{"title":"Технология Ethernet | Курс \"Компьютерные сети\"","queue":9,"uuid":"9b469148-6ac9-4224-bf93-d2c1b160831c"},{"title":"MAC адреса | Курс \"Компьютерные сети\"","queue":10,"uuid":"e2ba017d-98f6-451c-b4ad-b61d71950f43"},{"title":"Ethernet. Метод CSMA/CD | Курс \"Компьютерные сети\"","queue":11,"uuid":"19af56a5-1c14-482a-8c73-0c9bb95ba546"},{"title":"Коммутаторы Ethernet | Курс \"Компьютерные сети\"","queue":12,"uuid":"5432f940-6fd4-42f4-aa40-2ab027748664"},{"title":"VLAN  | Курс \"Компьютерные сети\"","queue":13,"uuid":"9260bb16-0a49-4839-bf7d-af89df5eb8c9"},{"title":"Протокол STP | Курс \"Компьютерные сети\"","queue":14,"uuid":"54e0904c-52ac-4353-8780-1a0ca6181443"},{"title":"Wi-Fi | Курс \"Компьютерные сети\"","queue":15,"uuid":"a33975c4-54b5-4a0e-9901-613db1d4a947"},{"title":"Wi-Fi. Управление доступом к разделяемой среде | Курс \"Компьютерные сети\"","queue":16,"uuid":"07e1ecf7-88c1-4ee8-aec7-db51eff8915d"},{"title":"Wi-Fi. Формат кадра | Курс \"Компьютерные сети\"","queue":17,"uuid":"33f49169-ed3c-46fd-a186-d24274d02cb5"},{"title":"Сервисы Wi-Fi | Курс \"Компьютерные сети\"","queue":18,"uuid":"35c26159-cc41-4a28-9842-6e7d08f6df46"},{"title":"Сетевой уровень | Курс \"Компьютерные сети\"","queue":19,"uuid":"666133ba-50af-4a73-9c3b-6ef0c02f1cff"},{"title":"IP-адреса | Курс \"Компьютерные сети\"","queue":20,"uuid":"96e96a50-c743-498d-a2a5-4b080e6fa547"},{"title":"IP адреса, часть 2  | Курс \"Компьютерные сети\"","queue":21,"uuid":"5a7d29ee-6f30-4493-b3cb-db4e6eb93868"},{"title":"Протокол IP | Курс \"Компьютерные сети\"","queue":22,"uuid":"6f390d1c-6d78-4581-b879-788a2f1447ce"},{"title":"Протокол IP: маршрутизация | Курс \"Компьютерные сети\"","queue":23,"uuid":"e1f39fa5-5b4b-4a7d-a77d-bbc50a8407d4"},{"title":"Протокол IP: фрагментация | Курс \"Компьютерные сети\"","queue":24,"uuid":"78ffa278-c030-4f97-9f16-b2ad05242c2c"},{"title":"Управляющие протоколы сетевого уровня  | Курс \"Компьютерные сети\"","queue":25,"uuid":"e9691b3d-3e39-43b0-ad8d-de208ef843e4"},{"title":"Протокол DHCP | Курс \"Компьютерные сети\"","queue":26,"uuid":"1f8f5c13-430e-4cfe-964c-97246130f96f"},{"title":"Протокол ARP | Курс \"Компьютерные сети\"","queue":27,"uuid":"11131d9b-bac8-4764-9e28-7e1fe22c5190"},{"title":"Протокол ICMP  | Курс \"Компьютерные сети\"","queue":28,"uuid":"f85ef360-4444-4d0e-b7d3-7bd7ea0fe8b7"},{"title":"Передача пакетов на сетевом и канальном уровнях | Курс \"Компьютерные сети\"","queue":29,"uuid":"c24e7ee3-718c-4c36-bb9b-cd6156e9b813"},{"title":"Транспортный уровень | Курс \"Компьютерные сети\"","queue":30,"uuid":"f938fdfc-3375-434e-8901-d4eea8d65e6a"},{"title":"Протокол UDP  | Курс \"Компьютерные сети\"","queue":31,"uuid":"d1dc4166-23f7-41ea-8af8-826844d9128b"},{"title":"Протокол TCP | Курс \"Компьютерные сети\"","queue":32,"uuid":"e452567d-1518-44b2-a98c-2df455f3a0f9"},{"title":"Протокол TCP: скользящее окно | Курс \"Компьютерные сети\"","queue":33,"uuid":"88fc6642-487b-4408-a354-8d6a76fbb868"},{"title":"Протокол TCP: соединение | Курс \"Компьютерные сети\"","queue":34,"uuid":"28943bb9-3c95-472e-a5d7-14c148efd299"},{"title":"Протокол TCP: формат заголовка | Курс \"Компьютерные сети\"","queue":35,"uuid":"c7e912dd-2e11-401e-8c17-607dcddf1776"},{"title":"Протокол TCP: управление потоком | Курс \"Компьютерные сети\"","queue":36,"uuid":"3555cd6d-0ee3-438b-afad-91f101b88cff"},{"title":"Протокол TCP: управление перегрузкой | Курс \"Компьютерные сети\"","queue":37,"uuid":"bd58b1da-075a-4ff2-
15a03a-c5cf1c001d12"},{"title":"Протокол TCP: управление перегрузкой, часть 2 | Курс \"Компьютерные сети\"","queue":38,"uuid":"04b58676-661e-4b8d-af8e-e7d493f241b0"},{"title":"Интерфейс сокетов | Курс \"Компьютерные сети\"","queue":39,"uuid":"e3590df6-77eb-48fb-abd5-efcdfb89a747"},{"title":"Протоколы, интерфейсы и сервисы. Примеры | Курс \"Компьютерные сети\"","queue":40,"uuid":"f47f08b1-8a60-44f4-8d07-a3a9e6598be9"},{"title":"Трансляция сетевых адресов (NAT) | Курс \"Компьютерные сети\"","queue":41,"uuid":"548972fa-5330-4994-b7ec-62c616548607"},{"title":"Межсетевые экраны | Курс \"Компьютерные сети\"","queue":42,"uuid":"31b7a479-09f1-4833-8b55-fcd2ce2ebc47"},{"title":"Прикладной уровень  | Курс \"Компьютерные сети\"","queue":43,"uuid":"95f474f9-12dc-4694-bf3c-b887632d7e1e"},{"title":"Система доменных имен DNS  | Курс \"Компьютерные сети\"","queue":44,"uuid":"c597d0e2-a63f-481e-9b3d-e0cce5323a3d"},{"title":"Протокол DNS  | Курс \"Компьютерные сети\"","queue":45,"uuid":"f1180ed1-115f-4790-856b-a3ccf202dfdf"},{"title":"Типы записей DNS  | Курс \"Компьютерные сети\"","queue":46,"uuid":"4bfb6951-026c-4f3c-b5ea-ef569f09066d"},{"title":"Протокол HTTP | Курс \"Компьютерные сети\"","queue":47,"uuid":"b24a2799-ef7c-4d23-b267-547058c704e5"},{"title":"Постоянное соединение в HTTP | Курс \"Компьютерные сети\"","queue":48,"uuid":"37eaf5a7-a7d6-4f06-b642-ad4ec8850240"},{"title":"Кэширование в HTTP | Курс \"Компьютерные сети\"","queue":49,"uuid":"e1048200-e494-438f-98f1-de9f1f888db1"},{"title":"Электронная почта  | Курс \"Компьютерные сети\"","queue":50,"uuid":"16122bda-bd21-4ba8-9211-18012b3b8516"},{"title":"Протокол SMTP | Курс \"Компьютерные сети\"","queue":51,"uuid":"4b9b1c5a-04ef-43d2-ae02-1c3dab6693f4"},{"title":"Протокол POP3 | Курс \"Компьютерные сети\"","queue":52,"uuid":"aca41785-ebfe-4eb7-ad9f-2ff0dffb75f6"},{"title":"Протокол IMAP | Курс \"Компьютерные сети\"","queue":53,"uuid":"8e4e02fb-6a3a-4d16-8b02-348f29edfb9d"},{"title":"Протокол FTP | Курс \"Компьютерные сети\"","queue":54,"uuid":"a3d365ab-3ac6-4f71-9ae3-ff5159a135ef"},{"title":"Заключение  | Курс \"Компьютерные сети\"","queue":55,"uuid":"17944cf9-9a46-427f-82ce-5a2a5dcc2799"}],"uuid":"36f3b74b-18d7-4d72-bbf7-006173ac1e75"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-05-01T13:36:07.244Z","updatedAt":"2023-10-24T08:28:17.661Z"},{"uuid":"eae48574-181a-481f-a765-09f5bde95811","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"JavaScript Syntax and Operators By Paul D Sheriff","description":"JavaScript Syntax and Operators By Paul D Sheriff","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20Syntax%20and%20Operators%20By%20Paul%20D%20Sheriff/images/java-script-syntax.jpeg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"JavaScript Syntax and Operators By Paul D Sheriff","description":"JavaScript Syntax and Operators By Paul D Sheriff","sections":[{"title":"1. Course Overview","queue":0,"materials":[{"title":"1. Course Overview","queue":0,"uuid":"d3ecd60e-aa25-4046-8faa-9728c9262a19"}],"uuid":"985a783f-6ab3-40e9-9191-79b775f1f2dc"},{"title":"2. All About the Switch Statement","queue":1,"materials":[{"title":"1. Course Intro, Assumptions, and Related Courses","queue":0,"uuid":"cfe06254-2d64-4b9a-8646-526e242e088c"},{"title":"2. Modules in This Course","queue":1,"uuid":"c66d4eb7-d5f6-4bde-8d26-c07186d6bf46"},{"title":"3. How the Switch Statement Works","queue":2,"uuid":"6571c
1553b-5ee4-407d-8e27-67715c869be4"},{"title":"4. Simple Switch Statement Demo","queue":3,"uuid":"6ab46964-bbff-420b-bf4a-00a2aed5dfe8"},{"title":"5. Multiple Case Statements and Forget a Break","queue":4,"uuid":"263c09be-cca0-4c6d-acc7-d91a9082fe56"},{"title":"6. Switch Uses Strict Comparison","queue":5,"uuid":"50bd30dc-f128-4bd8-bdf2-de380d668eb9"},{"title":"7. Block-level Scope Issue with Switch Statements","queue":6,"uuid":"355af0c7-b350-479b-93cf-6e01a7c6ad73"},{"title":"8. Module Summary","queue":7,"uuid":"9acb9dc3-eadb-42ad-98c9-79b11d5cdc1d"}],"uuid":"5f689cd8-770f-4b3d-8ca6-7517d9fb2f9b"},{"title":"3. The Difference Between forin and forof","queue":2,"materials":[{"title":"1. Using a forin Loop","queue":0,"uuid":"4340f186-97d4-4fe1-9d98-0165a9de96ad"},{"title":"2. Using a forof loop","queue":1,"uuid":"835060ed-c2ca-4e67-86a9-9dfb27b68094"},{"title":"3. Break and Continue Statements","queue":2,"uuid":"01fc02d4-2094-421d-9d93-5d03936c4ff2"},{"title":"4. Labeled Statements","queue":3,"uuid":"3050432d-28f4-4253-b9c0-534b2c123265"},{"title":"5. Module Summary","queue":4,"uuid":"1b1f5ce1-4d42-4e5c-aa7c-347c24acf3b0"}],"uuid":"4a1b9014-fa19-4961-b30b-af23d356bef7"},{"title":"4. Using Math and Comparison Operators","queue":3,"materials":[{"title":"1. Mathematical Operators","queue":0,"uuid":"f6ddf43e-e3e5-4083-a0c1-4b671cc82cc0"},{"title":"2. Plus Sign with Strings and Numbers","queue":1,"uuid":"df2d1149-4dbf-4d7c-8a8f-cff8377848b6"},{"title":"3. Assignment Operators","queue":2,"uuid":"74bcb5ac-a1d3-4e95-93fb-7f543ac9b7ae"},{"title":"4. Comparison and Ternary Operators","queue":3,"uuid":"ddba1e98-82a1-4346-bc40-7697fdc2f639"},{"title":"5. The Effect of use strict","queue":4,"uuid":"af502b7e-0ce4-48eb-bc61-58a7a305e802"},{"title":"6. Module Summary","queue":5,"uuid":"b2f77721-e7f9-42b2-86ed-c8350aca5264"}],"uuid":"709f9e0e-c03e-435b-af50-d96ec31cdd73"},{"title":"5. Working with Logical Operators and Short-circuit Evaluation","queue":4,"materials":[{"title":"1. Truthy and Falsy","queue":0,"uuid":"e1644e6d-8dca-4bf8-9925-a04dbb5709a5"},{"title":"2. Logical Operators","queue":1,"uuid":"2650dada-490e-4828-b2e9-e46dc6c4df0f"},{"title":"3. Short Circuiting","queue":2,"uuid":"39543c30-654a-488b-bb6f-af3706445f91"},{"title":"4. Operator Precedence","queue":3,"uuid":"e8a771f6-5c2c-4183-a0e2-a10b85bd9d18"}],"uuid":"72f4a91d-7dab-4712-b7aa-d90b63e0e218"},{"title":"6. Utilizing JavaScript Exception Handling","queue":5,"materials":[{"title":"1. Try, Catch, and Finally Blocks","queue":0,"uuid":"7749b741-ecb3-4632-8833-aeff6a1a0cc3"},{"title":"2. Throw a Custom Error Object","queue":1,"uuid":"6dc064bd-ca8f-4362-8cb7-1845e19421b0"},{"title":"3. Detect the Error Type","queue":2,"uuid":"c6d84e5f-dd0c-465d-af73-bf9e6adedb11"},{"title":"4. Module Summary","queue":3,"uuid":"82722368-b3b0-4fc8-baac-c1cc7b7a275f"}],"uuid":"6ebb9ec5-464e-4ea3-89b0-4042449fd409"},{"title":"7. How to Determine JavaScript Variable Data Types","queue":6,"materials":[{"title":"1. Data Types and Detection Methods","queue":0,"uuid":"49587bef-4bc0-4612-ac6d-3334f7a3f8fc"},{"title":"2. The typeof Operator","queue":1,"uuid":"252072b5-2d61-4e2e-a6df-c7e21463962a"},{"title":"3. Using the Constructor Property to Determine Type","queue":2,"uuid":"be981167-b6e1-41e2-bbdd-f39e33d7d094"},{"title":"4. Helper Functions for the Constructor Property","queue":3,"uuid":"65bfefc6-ca47-40fd-9d8d-ce9e0947c459"},{"title":"5. The instanceof Operator","queue":4,"uuid":"fa9d9263-c5c0-4d7f-899d-54ed09445ebe"},{"title":"6. Module Summary","queue":5,"uuid":"1b63185f-0c3b-46a7-85d1-933d2fe5e986"}],"uuid":"0b42c5ab-2cba-4548-9cc7-0b2d40e7b9cb"},{"title":"8. Understanding this in JavaScript","queue":7,"materials":[{"title":"1. Introduction to this","queue":0,"uuid":"fe8bdad1-4970-4f5b-aa6f-7971e8220554"},{"title":"2. this in Global and Function Scope","queue":1,"uuid":"b1fa8e3f-c4c2-4c60-a9a9-94eab07546a2"},{"title":"3. this in Event Handlers","queue":2,"uuid":"61a169ff-96e0-400e-be39-98ce2d2238dc"},{"title":"4. this in an Object Literal","queue":3,"uuid":"8d7494d9-b70a-4513-b7ec-d43fb211b8c4"},{"title":"5. this with call() and apply() Methods","queue":4,"uuid":"1db2cdd6-42e7-4760-a751-582acf881a8c"},{"title":"6. this in Constructor Functions","queue":5,"uuid":"251dbcce-d8ba-41fc-a96b-7cfce3e12795"},{"title":"7. Module Summary","queue":6,"uuid":"f79b4a4a-0d54-4a6e-b732-9c44902bd4b4"}],"uuid":"5b91f534-760b-496b-8f9d-a83e2ee004dc"},{"title":"9. Using the Powerful Spread Operator","queue":8,"materials":[{"title":"1. Copy a String to an Array Using Spread","queue":0,"uuid":"db87b9a2-77d8-4bb0-a9bc-3e6966ea0aec"},{"title":"2. Copy an Array of Primitives Using Spread","queue":1,"uuid":"073db241-d074-4fd4-bb65-b63647ae89fd"},{"title":"3. Copy an Array of Objects","queue":2,"uuid":"c3521a15-387b-450d-b1b3-b37916928a95"},{"title":"4. Concatenate Two Arrays Together","queue":3,"uuid":"b0e07960-1e77-4ef6-abee-278394fc4a59"},{"title":"5. Using Spread to Pass Parameters to a Constructor","queue":4,"uuid":"8075a82d-b2f8-48dc-a435-f09d7cbd05e2"},{"title":"6. Pass Parameters to a Function","queue":5,"uuid":"37760c08-47c7-45d2-b8a3-6c46b0385d97"},{"title":"7. Shallow Copy on Object Literals","queue":6,"uuid":"46a18cd0-a382-496d-92d2-2624e6d87d3d"},{"title":"8. Module and Course Summary","queue":7,"uuid":"f97f9d40-5749-4efc-8b43-fbfc8ea69a2e"}],"uuid":"28ccbf94-c3bf-4ca1-b212-b542da2b3b78"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-04-21T22:40:30.235Z","updatedAt":"2023-10-24T
1508:28:42.918Z"},{"uuid":"ef80f305-843b-48a7-8d48-44ee210830b7","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Cypress 4 - End-to-end JavaScript Testing By adhithi-ravichandran","description":"Cypress 4 - End-to-end JavaScript Testing By adhithi-ravichandran","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/Cypress%204%20-%20End-to-end%20JavaScript%20Testing%20By%20adhithi-ravichandran/preview.jpeg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"Cypress 4 - End-to-end JavaScript Testing By adhithi-ravichandran","description":"Cypress 4 - End-to-end JavaScript Testing By adhithi-ravichandran","sections":[{"title":"1. Course Overview","queue":0,"materials":[{"title":"1. Course Overview","queue":0,"uuid":"c69e6b31-4675-4f7c-b921-1b10f47ccb63"}],"uuid":"a0f22eb8-619c-41c8-a0fa-02dbeff7d7af"},{"title":"2. Cypress - Fast, Easy, and Reliable Testing","queue":1,"materials":[{"title":"1. Version Check","queue":0,"uuid":"edef38d6-d854-452b-95d4-8d1125afb284"},{"title":"2. Introduction","queue":1,"uuid":"e7f4ec8b-a7c8-48d4-9aa5-7e81f90545ca"},{"title":"3. What Is End-to-end Testing","queue":2,"uuid":"38347106-d203-45d5-a792-f1c46edaedd1"},{"title":"4. What Is Cypress","queue":3,"uuid":"e38ec57d-19a0-4afb-a579-7f24a7c73c4e"},{"title":"5. How Cypress Is Different","queue":4,"uuid":"8b8af75e-beba-4f6e-9879-5830fa237bd7"},{"title":"6. Tradeoffs","queue":5,"uuid":"47c5891d-70b2-45ef-948a-fe2b63caa27f"},{"title":"7. Summary","queue":6,"uuid":"c6071a61-bb39-4cb0-8e46-3dd41d
15ddbe48"}],"uuid":"261a29bc-a6c2-48bc-a4a0-f85517b8d48a"},{"title":"3. Writing and Running Your First Tests","queue":2,"materials":[{"title":"1. Introduction","queue":0,"uuid":"2df146ea-612b-4943-8f96-f1a4e842e4e5"},{"title":"2. Demo App","queue":1,"uuid":"a76d37a0-012f-45e7-b24d-8ce110e0b0eb"},{"title":"3. Installation and Environment Setup","queue":2,"uuid":"8b80f02c-5fa0-41b5-aefd-4b6859aad707"},{"title":"4. Cypress Test Runner","queue":3,"uuid":"e22d376e-a6f9-4882-b156-eaf14eb0d831"},{"title":"5. Write and Run First Tests","queue":4,"uuid":"f3ce2116-3ef5-44c8-b95f-960ec8f96231"},{"title":"6. Summary","queue":5,"uuid":"f0efc258-0ea6-49dc-a543-9bee9afc0031"}],"uuid":"abf3306e-bfa7-4cbe-a6f8-154679e8d7db"},{"title":"4. Cypress Core Concepts","queue":3,"materials":[{"title":"1. Introduction","queue":0,"uuid":"3db30ce9-2c3a-414b-8f0b-a145ceb8a857"},{"title":"2. Organizing Tests","queue":1,"uuid":"f8a2219c-358b-4a4e-964a-a6281266669e"},{"title":"3. Interacting with Elements","queue":2,"uuid":"5cc4ca5a-83de-49da-9d8d-ce7f4a226d33"},{"title":"4. Test Register Workflow","queue":3,"uuid":"f17fe9f2-f5ea-4bb6-9a7e-e129fb87cfc8"},{"title":"5. Test Login Workflow","queue":4,"uuid":"88d73d41-1dba-479d-8d16-38c301b60a25"},{"title":"6. Assertions","queue":5,"uuid":"15a77d5f-1a5e-4f52-b503-2a41dca2ef2c"},{"title":"7. Assertions Demo","queue":6,"uuid":"babc225c-fb19-4bdb-967e-41568b91a437"},{"title":"8. Test New Post Workflow","queue":7,"uuid":"de1371cb-16ba-4e05-bbc3-90ac381aba97"},{"title":"9. Cypress Retry-ability","queue":8,"uuid":"258137d7-3c69-42f4-923a-5f1823eb3794"},{"title":"10. Aliases","queue":9,"uuid":"a5841f60-d9cc-44ea-8bc3-bbab701b598f"},{"title":"11. Summary","queue":10,"uuid":"99de7cbe-1f13-4330-90cb-612f8608de70"}],"uuid":"8457354b-fecf-4c6d-b9b9-05a78df8bc3c"},{"title":"5. Cypress Ecosystem and Tooling","queue":4,"materials":[{"title":"1. Introduction","queue":0,"uuid":"9759e385-ba74-431b-8f1a-1ab4f325b608"},{"title":"2. Testing Network Requests","queue":1,"uuid":"6b6eed4c-7a38-44b9-bb22-0a5d4b44df5b"},{"title":"3. Testing Network Requests Demo","queue":2,"uuid":"eebec845-e861-4123-b607-410cefe0d894"}
15,{"title":"4. Screenshots and Videos","queue":3,"uuid":"90ca8dc9-c9d2-4b72-b976-c40402c79799"},{"title":"5. Browser Support","queue":4,"uuid":"ea3e5dee-e269-4c67-a56a-bf2d61a6f9a4"},{"title":"6. Code Coverage","queue":5,"uuid":"4f59115d-4087-43dc-953c-17ede7730693"},{"title":"7. Plugins","queue":6,"uuid":"3dbebe14-415a-48a9-bd5c-55063b12497c"},{"title":"8. Summary","queue":7,"uuid":"dc6a85df-648d-43c7-a750-fb30ebc1a8b1"}],"uuid":"49def05c-1a8f-41cd-af1c-d4c1180cb61c"},{"title":"6. Summary and Next Steps","queue":5,"materials":[{"title":"1. Summary","queue":0,"uuid":"f92605e6-228a-4ae1-995c-2e579e3433d0"}],"uuid":"371b19c3-a6e2-446c-a352-7c4f641f2025"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-05-01T18:06:29.771Z","updatedAt":"2023-10-24T08:27:57.118Z"},{"uuid":"15e07d68-b066-449b-9ff9-717d20dc104e","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"JavaScript Variables and Types By Barry Luijbregts","description":"JavaScript Variables and Types By Barry Luijbregts","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20Variables%20and%20Types%20By%20Barry%20Luijbregts/preview.jpeg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"JavaScript Variables and Types By Barry Luijbregts","description":"JavaScript Variables and Types By Barry Luijbregts","sections":[{"title":"1. Course Overview","queue":0,"materials":[{"title":"1. Course Overview","queue":0,"uuid":"b522151f-3092-4d44-91dd-ff9dd28fb676"}],"uuid":"2bc76956-b8dd-4354-9304-2945a1ae7fbe"},{"title":"2. Using Variables, Literals, and Assignments","queue":1,"materials":[{"title":"1. How This Course Works","queue":0,"uuid":"41ad690f-92a2-4bc8-b2af-2757db5c2be8"},{"title":"2. Using Template Literals","queue":1,"uuid":"59de9a5c-776f-4c50-9ad7-d7b11a07b59a"},{"title":"3. Create a Tagged Template Literal","queue":2,"uuid":"5467f1c4-c38c-46d4-a1c9-fe0d68f3cb7b"},{"title":"4. The Difference Between Let and Const","queue":3,"uuid":"7bb489be-59eb-44ff-8427-f4f3f8e433c9"},{"title":"5. Use the Destructing Syntax to Get Values from Arrays and Objects","queue":4,"uuid":"0a6dbb50-d6da-488f-828a-6487915d93d9"},{"title":"6. Summary and Where to Go Next","queue":5,"uuid":"1954c10c-85e8-4f8e-8e3a-3b6de2bd7e9b"}],"uuid":"bcf8a9e9-1a06-43ac-bca6-fbe97ba2f55a"},{"title":"3. Applying Primitive Types","queue":2,"materials":[{"title":"1. Introduction","queue":0,"uuid":"29774fb0-6dc9-4c58-888e-5219c8436a4d"},{"title":"2. Test Strings for Specific Content","queue":1,"uuid":"a149b8c6-2255-403e-861b-10469fbfa0f5"},{"title":"3. Test Numbers for Type and Safety","queue":2,"uuid":"4e998d7d-5796-4254-8785-06b4b6c1888c"},{"title":"4. Understanding Symbols","queue":3,"uuid":"49639aaf-158a-4c13-9aaf-ac5cfc955268"},{"title":"5. Summary and Where to Go Next","queue":4,"uuid":"4d9371eb-f842-44f7-9434-637b8fe3fc64"}],"uuid":"0c22da77-885d-4839-bf12-68761028df85"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-04-24T22:05:01.433Z","updatedAt":"2023-10-24T08:28:36.062Z"},{"uuid":"1b0008e5-dba5-4ff6-a654-e8127ac7e6c0","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Redux 3 Saga","description":"Redux Saga - это библиотека с более чем 22000 звезд на GitHub. Она позволяет быстро создавать асинхронные приложения с помощью нового инструмента под названием ES6 Generators. В этом курсе вы узнаете о Redux Saga, ES6, тестировании, эффектах и каналах.","image":"https://miro.medium.com/max/1400/1*GPqO1CPRP1AymEOn7osqsg.jpeg","data":{"status":"active","courseContent":{"sets":[{"title":"Redux Saga","version":"1","description":"Redux Saga - это библиотека с более чем 22000 звезд на GitHub. Она позволяет быстро создавать асинхронные приложения с помощью нового инструмента под наÐ
15·Ð²Ð°Ð½Ð¸ÐµÐ¼ ES6 Generators. В этом курсе вы узнаете о Redux Saga, ES6, тестировании, эффектах и каналах.","sections":[{"uuid":"d43a7348-425d-4859-8a41-4c66870f31df","title":"Обзор курса","queue":0,"materials":[{"title":"Обзор курса","queue":0,"uuid":"a4446029-2f4d-4f71-a650-096b262d1fb8"}]},{"uuid":"2f8b3761-5143-46cb-9011-925e4cfbab28","title":"Введение","queue":1,"materials":[{"title":"Проверка версии","queue":0,"uuid":"e47e5e3d-4be3-421d-8efb-0e2b51d99a30"},{"title":"Введение","queue":1,"uuid":"b9a5e1f0-d3f7-4543-abab-2867f21eeabe"},{"title":"Почему Redux?","queue":2,"uuid":"28144168-26e2-47aa-bfa5-807677aa0a0a"},{"title":"Для кого этот курс","queue":3,"uuid":"2eb27be3-0996-4964-a85e-f5c3959e7b62"},{"title":"Что курс покрывает/не покрывает","queue":4,"uuid":"85deffa3-ae6a-4f0c-9800-07b84100c38e"},{"title":"Roadmap курса","queue":5,"uuid":"92f83ab9-d3d2-4db6-9fb0-672c53ef6b0b"},{"title":"Предварительные условия","queue":6,"uuid":"f8403408-72e2-4842-8ced-9d928280fd12"},{"title":"Обзор и Демо","queue":7,"uuid":"c942daee-7d58-45ec-8ce2-b3d61af0c037"}]},{"uuid":"97fc6607-8774-4997-9d62-9ed29acbfb79","title":"Введение в Redux Saga","queue":2,"materials":[{"title":"Что такое Redux Saga?","queue":0,"uuid":"4e49a624-538b-4c9a-bd1f-715ada545714"},{"title":"Что есть Saga?","queue":1,"uuid":"97712c39-2b90-4b20-a6e3-f18e1dd4f7a3"},{"title":"Зачем использовать Redux Saga","queue":2,"uuid":"05d9257d-fe78-412d-b600-75980ae008a7"},{"title":"Redux Thunk VS Redux Saga","queue":3,"uuid":"5fa85a3b-a807-4fc0-9af7-d2ac5888481e"},{"title":"Настройка приложения (Demo)","queue":4,"uuid":"d3b1fdc0-85b4-4ab6-b5d8-28823df4cf4b"},{"title":"Установка и конфигурация Redux Saga","queue":5,"uuid":"57b55c59-55cf-48f8-8702-40003059aae8"},{"title":"Пробуем Redux Saga на практике (Demo)","queue":6,"uuid":"177f18a2-cd4b-4c71-a278-603d2d21a548"},{"title":"Заключение","queue":7,"uuid":"f9fb0221-5674-48ff-ae23-867ffb6e6a74"}]},{"uuid":"4c2d5f66-7270-4e9c-aa37-c89d6bb62c0f","title":"Асинхронный ES6 и команда Yield","queue":3,"materials":[{"title":"Введение","queue":0,"uuid":"7cf13252-d312-4815-b895-f452f9c702cd"},{"title":"Что такое Yield?","queue":1,"uuid":"ee630a1a-b025-47c3-9425-1141ccb5c95b"},{"title":"Преимущества и недостатки Yield","queue":2,"uuid":"8f4dfad5-dee2-485d-9a79-08b5125a7829"},{"title":"Функция Генератор","queue":3,"uuid":"9e47dde7-d97b-443f-b819-203f97abf5e7"},{"title":"Создание Генератора (Demo)","queue":4,"uuid":"10075f11-21c9-4df2-aec0-491e3377944e"},{"title":"Yield и Обещания","queue":5,"uuid":"4b343f58-a3f3-4284-96ea-758c006a0289"},{"title":"Оборачиваем Генератор","queue":6,"uuid":"4032a3b0-dd0a-42db-8fd7-58ab486d08e2"},{"title":"Используем Generator в Saga","queue":7,"uuid":"d25126f8-a390-407a-855e-69b810e29e96"},{"title":"Итог секции Асинхронный ES6 и команда Yield","queue":8,"uuid":"02b47eeb-40ff-4e9e-b612-97ece3e87441"}]},{"uuid":"d44aeff3-57d6-47c9-b8d3-d9b3cb5c315b","title":"Эффекты Redux Saga","queue":4,"materials":[{"title":"Введение - Redux Saga Effects","queue":0,"uuid":"dd0f3e5e-104b-415c-8de2-c954a097bac1"},{"title":"Введение в Эффекты","queue":1,"uuid":"dc0bd529-69c3-4b44-a726-476fcdff0855"},{"title":"Эффект Take","queue":2,"uuid":"fe50c3aa-36f5-49a9-86ad-d974153dfa91"},{"title":"Эффект Put","queue":3,"uuid":"157a33c4-7e61-41df-9edc-c4029ae5b9d5"},{"title":"Эффект Call","queue":4,"uuid":"e46a278d-4a07-4516-8b2e-7c629336c7b4"},{"title":"Применение Take, Put, Call","queue":5,"uuid":"4dcfd67e-2905-426a-919c-14f93711d714"},{"title":"Эффект Fork","queue":6,"uuid":"45fc015d-a710-4c91-829f-27af6cc33830"},{"title":"Применение Fork","queue":7,"uuid":"98f48e70-6ba8-4c46-8986-d88fe813e60c"},{"title":"Эффект TakeEvery","queue":8,"uuid":"fe2ba3bb-f250-4b06-a5a0-53e621f6f160"},{"title":"Cancel и Cancelled","queue":9,"uuid":"60334d40-c99e-4776-899e-7882e03ffe10"},{"title":"Эффект TakeLatest","queue":10,"uuid":"f4c087b7-e3e6-4c8e-a8e2-1a21661de497"},{"title":"Эффект Select","queue":11,"uuid":"016ea072-5e45-4d3a-a956-ae958c3aaa10"},{"title":"Эффект Spawn","queue":12,"uuid":"dc96e72c-b669-4bbb-be77-24296810243c"},{"title":"Эффект All","queue":13,"uuid":"dcce92b1-37ab-4b3d-b2fc-9cd90fa6d484"},{"title":"Итоги - Эффекты Redux Saga","queue":14,"uuid":"7047eaba-3da1-4a00-b0dc-ade544c77f2c"}]},{"uuid":"7041d9d6-f255-4039-bbde-c8e85760c3f6","title":"Каналы (Channels)","queue":5,"materials":[{"title":"Введение в Каналы","queue":0,"uuid":"11c46097-873f-48a2-9a21-3136af2ead42"},{"title":"Что такое Каналы?","queue":1,"uuid":"47b27b25-f525-4c89-8888-06c4c38a2753"},{"title":"Generic Channels","queue":2,"uuid":"07b96026-e422-4bbe-97b3-6541472b539a"},{"title":"Событие Каналов","queue":3,"uuid":"7f408f9c-d057-4e32-9d0c-efb52abca2ff"},{"title":"Shipping Saga","queue":4,"uuid":"35764c4f-249f-49ce-bd41-8d12ecfd6e46"},{"title":"Tax Rate Saga","queue":5,"uuid":"32065d00-7c7e-4600-be62-bed9a5934614"},{"title":"Проверка доступности Saga","queue":6,"uuid":"3f58390f-ec62-4522-a81a-1bb0eedb4d56"}
15,{"title":"Checkout Saga","queue":7,"uuid":"8fe3d368-c27e-4f84-a299-9ec8138c8740"},{"title":"Итоги - Каналы","queue":8,"uuid":"d25ac4d5-d81c-4a30-be89-f30fba9ccd32"}]},{"uuid":"6ba83feb-8d00-4e9e-95dd-bc168a4b19d8","title":"Тестирование Redux Saga","queue":6,"materials":[{"title":"Обзор - Тестирование Redux Saga","queue":0,"uuid":"46713465-c941-476c-855c-b8faef2e12eb"},{"title":"Тестирование Redux Saga приложения","queue":1,"uuid":"7d0eef06-74d1-407d-9fc4-ca27428d3c7d"},{"title":"Методы тестирования Redux Saga","queue":2,"uuid":"ef498b2b-56fc-4608-a246-92931d7f95d3"},{"title":"Внедрение тестов / User Status Saga Test","queue":3,"uuid":"f2837a12-ef1b-4a0f-82df-3aabf2044d9c"},{"title":"Внедрение тестов / Item Quantity Saga","queue":4,"uuid":"7decf63d-f0ba-4f2d-b1f4-7069e49ebbb3"},{"title":"Итоги - Тестирование Redux Saga","queue":5,"uuid":"02b5d95f-8250-4789-aa1c-08d7cb5e6903"}]},{"uuid":"bf396294-ea24-40e8-87ac-0e3aa1eed441","title":"Заключение","queue":7,"materials":[{"title":"Резюме","queue":0,"uuid":"14498f00-e47e-4cc2-a0cb-5f7ff079563e"},{"title":"Продолжение разработки приложения","queue":1,"uuid":"6ec0916d-8cf3-4024-95a0-ba36b1db5623"},{"title":"Спасибо тебе","queue":2,"uuid":"4f393bd9-41d3-4351-8c86-fc6be624a4cf"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-11-27T13:05:30.515Z","updatedAt":"2023-10-24T08:26:44.773Z"},{"uuid":"d7f11916-21ee-49b7-bcb6-470b9c975d52","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"JavaScript Promises and Async Programming By Nate Taylor","description":"JavaScript Promises and Async Programming By Nate Taylor","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20Promises%20and%20Async%20Programming%20By%20Nate%20Taylor/preview.jpeg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"JavaScript Promises and Async Programming By Nate Taylor","description":"JavaScript Promises and Async Programming By Nate Taylor","sections":[{"title":"1. Course Overview","queue":0,"materials":[{"title":"1. Course Overview","queue":0,"uuid":"24febc02-7175-4e96-9d5d-040f0bcc4fcd"}],"uuid":"0fcb2dbe-c1b1-4487-8c3c-89a14a4b6572"},{"title":"2. Understanding Promises","queue":1,"materials":[{"title":"1. Understanding Promises","queue":0,"uuid":"b70e766d-8e82-43bc-ba21-a66a52fb2242"},{"title":"2. Building a Callback Pyramid","queue":1,"uuid":"b72afca2-baa4-424e-b8d8-d6dae7426e26"},{"title":"3. Why Is the Pyramid Bad","queue":2,"uuid":"5e72820e-2288-458b-9639-0c86ede40d07"},{"title":"4. Solving the Callback Pyramid","queue":3,"uuid":"6e7e4717-f820-4bb7-b56b-e855e8ca71e5"},{"title":"5. Setting up the Sample Project","queue":4,"uuid":"6c7ceba7-4cd7-4145-9c87-0dbc27f76305"}],"uuid":"412c8de3-053c-43a3-9626-d9cb2781774c"},{"title":"3. Consuming Promises","queue":2,"materials":[{"title":"1. Consuming Promises","queue":0,"uuid":"420e7578-de55-404b-bb1a-fc963161f372"},{"title":"2. Handling Errors with Promises","queue":1,"uuid":"cf3f7fa6-3ef7-4e85-8730-58e5515a8705"},{"title":"3. Chaining Promises","queue":2,"uuid":"437ad678-165f-434a-b6fb-119af4b48668"},{"title":"4. Catching Errors in a Chain","queue":3,"uuid":"79f0874a-f96b-4636-8c2f-ad8c46abe41e"}
15,{"title":"5. Performing One Last Operation","queue":4,"uuid":"9bccd803-42e2-4bc8-bcff-3ddbf807dfcd"}],"uuid":"35d35125-9280-4e15-8474-8b0febb9b2fc"},{"title":"4. Creating and Queuing Promises","queue":3,"materials":[{"title":"1. Creating Promises","queue":0,"uuid":"a7c82281-4cda-4662-acfd-08563d7926b4"},{"title":"2. Understanding Promise States","queue":1,"uuid":"82aefc86-2943-42d8-b061-483ce56ac73f"},{"title":"3. Rejecting a Promise","queue":2,"uuid":"d711654e-efe1-44c3-a5c7-21f443feec20"},{"title":"4. Waiting for All Promises to Resolve","queue":3,"uuid":"a825b69d-462a-4321-ac85-32667d9285f6"},{"title":"5. Settling All Promises","queue":4,"uuid":"120fa659-f209-407c-bbf6-0de9c5695400"},{"title":"6. Racing Promises","queue":5,"uuid":"c1713076-bdd5-4088-a816-a5d4d3ee3193"}],"uuid":"ee20fd90-36e4-44d0-8891-7c01bfaf0243"},{"title":"5. Iterating with AsyncAwait","queue":4,"materials":[{"title":"1. Iterating with AsyncAwait","queue":0,"uuid":"760d9b70-d473-4a6b-9188-7437c0e7112e"},{"title":"2. Awaiting a Call","queue":1,"uuid":"a0c2ad4d-3621-427c-a595-d7b6a42b7739"},{"title":"3. Handling Errors with AsyncAwait","queue":2,"uuid":"40cf995f-24ca-4f08-baac-a5d241b73ab3"},{"title":"4. Chaining AsyncAwait","queue":3,"uuid":"9f0c5096-06c2-4272-be46-ab5bcb967c7d"},{"title":"5. Awaiting Concurrent Requests","queue":4,"uuid":"d52d2667-4703-4ef3-ba21-57b396a6f32d"},{"title":"6. Awaiting Parallel Calls","queue":5,"uuid":"84ef3df0-9191-4d09-ba27-d69e51ef2685"},{"title":"7. Summary","queue":6,"uuid":"a5a9f20d-6cd0-4fa7-87fc-cfe5dce58631"}],"uuid":"cbef731e-99cc-42b3-a932-366de4b2345a"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-05-02T10:49:58.889Z","updatedAt":"2023-10-24T08:27:33.857Z"},{"uuid":"f2a0cdbb-b048-44fc-969e-fcef2b31f23f","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Linux Essentials - Ваши первые 100 команд","description":"Учебный курс по 100 командам Linux - это идеальное введение в мир Linux для новичков. Курс покрывает основные команды для работы с файлами (например, `ls`, `cp`, `mv`), управления процессами (`ps`, `kill`) и мониторинга системы (`top`, `vmstat`). Он объясняет каждую команду ясно и доступно, с практическими примерами, помогая новичкам быстро освоиться в Linux.","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/f2a0cdbb-b048-44fc-969e-fcef2b31f23f/preview.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"uuid":"68150420-6d18-467c-a363-9e75e2aba444","title":"Playlist","queue":0,"materials":[{"title":"Linux exit command summary with examples","queue":0,"uuid":"4fc72da5-e992-41e9-b269-c40403828b26"},{"title":"Linux whatis command summary with examples","queue":1,"uuid":"2b8a9b0b-a4fe-4d81-82a6-339441ccef67"},{"title":"Linux clear command summary with examples","queue":2,"uuid":"8ca587d3-39ff-4a3c-9c74-067d298901f6"},{"title":"Linux man command summary with examples","queue":3,"uuid":"480280df-b6f9-475e-9bf0-f5fca378e944"},{"title":"Linux less command summary with examples","queue":4,"uuid":"e6c04bde-9efe-432c-9c1e-cd8a045ad1b6"},{"title":"Linux pwd command summary with examples","queue":5,"uuid":"74932e3a-6d2c-40be-80f8-26888dbfa3fe"},{"title":"Linux ls command summary with examples","queue":6,"uuid":"b45ac07a-a150-40bf-8217-03b62a957c36"},{"title":"Linux cd command summary with examples","queue":7,"uuid":"06f790f2-1d8b-4a61-923f-86f63c34844a"},{"title":"Linux bash command summary with examples","queue":8,"uuid":"104c698b-afe3-4ac5-a72e-6889e6360d54"},{"title":"Linux cat command summary with examples","queue":9,"uuid":"bf0823f6-11f5-446f-94f4-f8333e877b4f"},{"title":"Linux type command summary with examples","queue":10,"uuid":"bb3ea684-3889-48de-bacb-2bcb3d347008"},{"title":"Linux alias command summary with examples","queue":11,"uuid":"e2e2207e-1a0a-4531-8440-1b73774be551"},{"title":"Linux whoami command summary with examples","queue":12,"uuid":"8c276d5a-dcbf-4627-bd7e-642672cfe7cc"},{"title":"Linux whereis command summary with examples","queue":13,"uuid":"b45623d8-ba62-4319-80cd-22b734c949a2"},{"title":"Linux date command summary with examples","queue":14,"uuid":"eb2c488a-dd25-46c7-a6a0-21a3ff787974"},{"title":"Linux touch command summary with examples","queue":15,"uuid":"ab0a73f0-d584-41a2-877b-e963d821510f"},{"title":"Linux file command summary with examples","queue":16,"uuid":"92f68cdd-4406-43cd-9993-eff31bb2ac22"},{"title":"Linux which command summary with examples","queue":17,"uuid":"5bda1120-312e-4f8b-b92c-1b212c38cf7d"},{"title":"Linux echo command summary with examples","queue":18,"uuid":"a7a40671-b9a2-4e29-a559-8dd3c07c1aa6"},{"title":"Linux nano command summary with examples","queue":19,"uuid":"4d7e4889-d746-416c-958d-717622446371"},{"title":"Linux ln command summary with examples","queue":20,"uuid":"f0ea907e-eb18-4acd-835e-f6a13f65ba74"},{"title":"Linux mkdir command summary with examples","queue":21,"uuid":"10b0f0b0-856f-4f1b-afab-d10918906dcd"},{"title":"Linux cp command summary with examples","queue":22,"uuid":"b2837b42-33a1-4aa1-9505-1f116116931c"},{"title":"Linux mv command summary with examples","queue":23,"uuid":"6cee4889-3b7d-4799-b91f-5e6a7a734843"},{"title":"Linux rm command summary with examples","queue":24,"uuid":"46a8455a-6485-44ec-82ac-6ca1e99d9bbb"},{"title":"Linux wc command summary with examples","queue":25,"uuid":"c7824696-4c12-4a92-bd70-9a2efed8e4ed"},{"title":"Linux head command summary with examples","queue":26,"uuid":"9feab9de-5df7-4bc6-98c0-9e7ff4d20503"},{"title":"Linux tail command summary with examples","queue":27,"uuid":"822ae276-31d6-4530-8e7f-b54ef572f866"},{"title":"Linux apropos command summary with examples","queue":28,"uuid":"b9cfaa94-1422-4d75-8a61-48fb971a0c4b"},{"title":"Linux find command summary with examples","queue":29,"uuid":"f8a76f1a-078c-43e0-ab3c-088580473ffb"},{"title":"Linux sort command summary with examples","queue":30,"uuid":"e86ea4ab-c3c7-48e5-a104-f446340f756b"},{"title":"Linux uniq command summary with examples","queue":31,"uuid":"b0178713-660e-4a19-934c-7ff9af0a434c"},{"title":"Linux cut command summary with examples","queue":32,"uuid":"f796370e-91ce-4063-b8a7-9a5f74fa08de"},{"title":"Linux diff command summary with examples","queue":33,"uuid":"d5cba13d-ea69-4c6a-9351-a9f76d31bb56"},{"title":"Linux comm command summary with examples","queue":34,"uuid":"3a235262-d9ed-475f-aa2f-e5fe0594c006"},{"title":"Linux sdiff command summary with examples","queue":35,"uuid":"47877f77-fe2c-4807-bfaa-8f0883b119c8"},{"title":"Linux paste command summary with examples","queue":36,"uuid":"6cad9950-53f3-44a7-9759-3c02a54c2c61"},{"title":"Linux join command summary with examples","queue":37,"uuid":"d94500c9-8607-4d07-981a-390c55a43afd"},{"title":"Linux grep command summary with examples","queue":38,"uuid":"5e2a1e6b-966f-439d-ae3a-911359507595"},{"title":"Linux sed command summary with examples","queue":39,"uuid":"ee09cc3a-3f98-48ce-9082-ad21762128ad"},{"title":"Linux calendar command summary with examples","queue":40,"uuid":"116eb5cc-8a01-4d3e-863e-f62f598833d9"},{"title":"Linux cal command summary with examples","queue":41,"uuid":"e84a64d2-5287-4cd1-87c9-cd8809b6ec42"},{"title":"Linux sleep command summary with examples","queue":42,"uuid":"e0686057-f0e1-4e11-aac6-cd57b5aa46fb"},{"title":"Linux crontab command summary with examples","queue":43,"uuid":"44098d0f-105f-41b9-a005-de27d900dc75"},{"title":"Linux ps command summary with examples","queue":44,"uuid":"f02141cc-b617-4611-898b-029e2aab34bd"},{"title":"Linux printenv command summary with examples","queue":45,"uuid":"e786d035-cab7-45c4-bb3e-2715b6946272"},{"title":"Linux export command summary with examples","queue":46,"uuid":"ea118a61-0ff5-4d99-bf9b-b62b1be27833"},{"title":"Linux set command summary with examples","queue":47,"uuid":"2dea2b5b-83a9-4980-95ab-695a8e9511b9"},{"title":"Linux unset command summary with examples","queue":48,"uuid":"42ab1923-3ded-4d2c-b3d5-1b24765b7dc5"},{"title":"Linux stat command summary with examples","queue":49,"uuid":"ec16bbde-f394-4824-89df-29450088ca1d"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2023-12-07T18:01:07.700Z","updatedAt":"2023-12-07T18:35:26.607Z"},{"uuid":"10cce5f3-b479-420a-ae74-24037f7c73b0","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Как начать делать ИГРЫ в GODOT 4","description":"\"Быстрый старт с Godot: Создание игр с удовольствием! 🎮 🚀 Преодолейте начальные барьеры и начните свою игровую историю.\n\nАвтор: https://www.youtube.com/@GameCrafter_GD","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/10cce5f3-b479-420a-ae74-24037f7c73b0/preview.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"uuid":"05a4ac45-75fd-4147-aecf-7a8af1372f83","title":"Секция: Playlist","queue":0,"materials":[{"title":"Как начать делать ИГРЫ в GODOT 4 | Урок 1 | Самый подробный курс по Годот для начинающих с нуля!","queue":0,"uuid":"d3b2f088-c769-4d87-89a6-6f68265ec8f1"},{"title":"Как добавить эффект Parallax в GODOT 4 | Урок 2 | Подробный курс по Годот для начинающих с нуля","queue":1,"uuid":"a7b86804-8dad-4dc7-baec-f5f4bf17f60d"},{"title":"Godot урок 3 (Создаем персонажа) Курс для Новичков: Создание Игр С нуля,  #godot #gamedev #games","queue":2,"uuid":"d7364b48-3d2e-4c4a-841f-00ecb52f0d93"},{"title":"Godot  урок 4 (TileMap + анимация) Курс для Новичков: Создание Игр С нуля,  #godot #gamedev #games","queue":3,"uuid":"f6dcf96d-a905-4865-9fe1-c094cb093aa6"},{"title":"Godot урок 5 (Добавляем Моба) Курс для Новичков: Создание Игр С нуля,  #godot #gamedev #games","queue":4,"uuid":"c49aed4b-0c40-4fd8-a56d-ada19d446eab"}
15,{"title":"Godot  урок 6 (Анимация моба + UI) Курс для Новичков: Создание Игр С нуля,  #godot #gamedev #games","queue":5,"uuid":"1ecc0fd9-088b-442c-bcb1-206ee40a5a30"},{"title":"Godot урок 7 (Лут, Tween, Timer) Курс для Новичков: Создание Игр С нуля,   #godot #gamedev #games","queue":6,"uuid":"7bc64b71-d9fd-4bf4-a171-41e5f76e8f9f"},{"title":"Godot урок 8 (game design, state machine) Как создать 2д игру с нуля на ГОДОТ,  #godot #gamedev","queue":7,"uuid":"f38903d7-ea2b-4c14-9823-7cca7572d1f5"},{"title":"Godot урок 9 (Подсчет дней) Как создать 2д игру с нуля на ГОДОТ  #godot #gamedev #gdscript #turorial","queue":8,"uuid":"43ebcde8-b845-4b05-b38d-59b11b66d284"},{"title":"Как пользоваться Collision Layer и Mask в GODOT 4 | Урок 10 | Подробный курс по Годот для начинающих","queue":9,"uuid":"a5c0b60c-0c9d-4159-a54c-5ebca6bc1d09"},{"title":"Супер переменная SetGet (3в1) и AutoLoad в GODOT 4 | Урок 11 | Подробный курс по Годот с нуля","queue":10,"uuid":"e1c3d360-bab6-4a14-b62b-dd43b1968564"},{"title":"Как добавить HealthBar в GODOT 4 | Урок 12 | Подробный курс по Годот с нуля","queue":11,"uuid":"ab654fd3-8de1-4284-8961-c307cf03926c"},{"title":"Как добавить Атаку Блок и Уклонение в GODOT 4 | Урок 13 | Подробный курс по Годот с нуля","queue":12,"uuid":"0ab252c7-239c-435b-a074-bde30607f572"},{"title":"Как использовать композицию в GODOT 4 | Урок 14 | подробный курс с нуля","queue":13,"uuid":"fa6282de-bdcb-4108-b5f5-ff7d03293975"},{"title":"Глобальная переменная в GODOT 4 | Урок 15 | подробный курс по Годот для начинающих с нуля","queue":14,"uuid":"57667760-d2eb-4ce8-b9c3-fff4fada5bb8"},{"title":"Добавляем выносливость игроку в GODOT 4 | Урок 16 | подробный курс для начинающих с нуля","queue":15,"uuid":"c214dae9-cdba-416c-9aa1-5343e00a46fe"},{"title":"Добавляем HP регенерацию игроку в GODOT 4 | Урок 17 | подробный курс по ГОДОТ для начинающих с нуля","queue":16,"uuid":"dbf59d28-ceca-47ad-aa77-1cd56df58aff"},{"title":"Spawn врагов в GODOT 4 | Урок 18 | подробный курс по ГОДОТ для начинающих с нуля на русском языке","queue":17,"uuid":"d7a65f18-dd28-46dd-a097-2612a07e22bc"},{"title":"Knockback (отталкивание) в GODOT 4 | Урок 19 | курс по ГОДОТ для начинающих с нуля на русском языке","queue":18,"uuid":"720371c2-af7c-4423-8894-8114dbe456b5"},{"title":"Pause Menu (Паузы) в GODOT 4 | Урок 20 | курс по ГОДОТ для начинающих с нуля на русском языке","queue":19,"uuid":"5283d91b-ff0d-4f4b-8e13-5ac84b0a3345"},{"title":"Spawn предметов + Цикл \"for\" в GODOT 4 | Урок 21 | курс по ГОДОТ для начинающих на русском языке","queue":20,"uuid":"ba675713-8e10-48a3-bc82-f30ee5aa8152"},{"title":"UI (user interface) + Themes в GODOT 4 | Урок 22 | курс по ГОДОТ для начинающих на русском языке","queue":21,"uuid":"8b23d028-f9e4-47c8-92a5-6ee9c42d8b5c"},{"title":"Save \u0026 Load (Сохранение) в GODOT 4 | Урок 23 | курс по ГОДОТ для начинающих на русском языке","queue":22,"uuid":"2aa513a8-5bf4-44f1-a840-787fc4633060"},{"title":"PointLight + randf_range (фонари) в GODOT 4 | Урок 24 | курс ГОДОТ для начинающих на русском языке","queue":23,"uuid":"45bc9111-a205-46a4-bd4e-44b28781d120"},{"title":"Particles (частицы) в GODOT 4 | Урок 25 | курс по ГОДОТ для начинающих на русском языке","queue":24,"uuid":"8922944a-b1b0-4e00-a689-c5dc93b73732"},{"title":"Android debug export в GODOT 4 | Урок 26 | курс по ГОДОТ для начинающих на русском языке","queue":25,"uuid":"2bfa3b08-8031-4380-b532-046268c2e4a1"},{"title":"Touch buttons (кнопки для мобилы) GODOT 4 | Урок 27 | курс по ГОДОТ для начинающих на русском языке","queue":26,"uuid":"49c73d23-4204-4e3f-b0b4-08a63dc336ce"},{"title":"Музыка и звуковые эффекты в GODOT 4 | Урок 28 | курс по ГОДОТ для начинающих на русском языке","queue":27,"uuid":"8a302af0-8bc2-45d4-a09c-c81878daa0fe"},{"title":"Доработка механики спавна врагов в GODOT 4 | Урок 29 | курс по ГОДОТ для начинающих на русском языке","queue":28,"uuid":"789cfca1-a590-4611-b168-0645d96bb755"}
15,{"title":"Наследование сцен и скриптов (Inheritance) в GODOT 4 | Урок 30 | курс для начинающих","queue":29,"uuid":"7d9baad7-a4d1-4dec-98a8-6e7c5f61c90d"},{"title":"Touchscreen buttons (исправление) в GODOT 4 | Урок 31 | курс для начинающих на русском языке","queue":30,"uuid":"fe8ee10e-8101-40fb-8104-1ee032be572d"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2024-05-24T15:16:49.136Z","updatedAt":"2024-05-24T15:19:51.474Z"},{"uuid":"469dea43-625d-4ab3-a82f-28718cdbbefc","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Курс сетевых технологий. Cisco.","description":"Курс предоставлен сервисом YouTube.\n\n[Ссылка на оригинальный плейлист](https://www.youtube.com/playlist?list=PLhUar1yMUpOuFKesVjs3hcyp3lu8cr7fD)","image":"https://img.youtube.com/vi/zpxQK8oZTcI/maxresdefault.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"uuid":"8a59b6cc-d10e-4660-9d59-80e7898b6a97","title":"Секция: Playlist","queue":0,"materials":[{"title":"Тема 1. Сети с коммутацией пакетов.","queue":0,"uuid":"38b9d628-ed4b-4260-b7f1-7cade2a94e2a"},{"title":"Тема 2. История и классификация компьютерных сетей.","queue":1,"uuid":"9471a4d9-31ae-4d80-99ea-5a30cfdcc16f"},{"title":"Тема 4. Стандарты и организации. Модель OSI. Где пригодится?","queue":2,"uuid":"dcfa3df3-bd46-4f2b-832b-024d6dbd1fac"},{"title":"Тема 5. Устаревшие сетевые протоколы. Эволюция Ethernet.","queue":3,"uuid":"3cd7000e-9a49-4f3e-8daa-3ec456c6f126"},{"title":"Тема 6. Ethernet. Как работает и зачем знать сетевику.","queue":4,"uuid":"e8d0eb1a-0ffb-4f4e-9bcc-b139b4f86992"},{"title":"Тема 7.1 Виды и категории кабелей Ethernet. cat3, cat5, cat6, UTP, FTP, SFTP.","queue":5,"uuid":"d6ab39b4-b41b-49ad-965d-9b2bbe62572a"},{"title":"Тема 7.2 Измерения физических параметров витой пары. NEXT, ACR, FEXT, ELFEXT, PS-NEXT, PS-FEXT.","queue":6,"uuid":"69069955-5948-4424-9368-c4a6b0facc65"},{"title":"Тема 7.3 Виды и категории кабелей витая пара cat 5-7 на практике.","queue":7,"uuid":"3a0e4a6f-d749-4c34-b23a-cee94a877ba8"},{"title":"Тема 7.4 Виды оптического кабеля и патчкордов LC SC ST на практике.","queue":8,"uuid":"d45fd4e1-4bb8-4352-af7a-d135f64d6940"},{"title":"Тема 8. Обзор TCP/IP. Как работает ARP.","queue":9,"uuid":"b93858b9-e351-4961-b868-9b1863fc641e"},{"title":"Тема 9. IP адресация. Классы, CIDR, VLSM, серые, белые - всё по порядку.","queue":10,"uuid":"dee792d5-c6bf-4989-9beb-837ab3f00c43"},{"title":"Простой расчет IP подсетей. Примеры задач.","queue":11,"uuid":"5168c8ce-28b7-4bbe-b1f6-14086b5d1c84"},{"title":"Тема 10. Коммутация. Как работает коммутатор.","queue":12,"uuid":"45cbfad8-d932-4229-ab6d-908157d6d998"},{"title":"Тема 11. Архитектура и исполнение коммутаторов.","queue":13,"uuid":"221110a7-57a2-49a7-beb2-70a88a429bda"},{"title":"Тема 11.1 Примеры модулей SFP, SFP+, XFP, DAC","queue":14,"uuid":"e954e084-8bf4-4eef-94cc-b0dbdb661aa0"},{"title":"Тема 12. Маршрутизация. Как работает маршрутизатор.","queue":15,"uuid":"a9dfe2d5-d3bf-4e63-ad1b-d8094fe86abc"},{"title":"Тема 13. Архитектура и исполнение маршрутизаторов.","queue":16,"uuid":"f16c7420-85be-45ac-aa42-15c2e4173a04"},{"title":"Тема 14. Трехуровневая иерархическая модель сети. Размещение оборудования.","queue":17,"uuid":"d209f2e2-176b-4265-9a6c-988811db3e1f"},{"title":"Тема 15. Что такое VLAN 802.1Q?","queue":18,"uuid":"3b6db246-c90c-4445-ac48-2cf8e0a2c8f2"},{"title":"Тема 16. Семейство протоколов Spanning Tree. STP, RSTP, PVST/RPVST, MSTP.","queue":19,"uuid":"5883345b-ae2f-4c2d-88df-b5a5740c6a6b"},{"title":"Тема 17. Агрегирование. Portchannel Etherchannel PAgP LACP","queue":20,"uuid":"6ad2100f-fffe-4852-853d-a2b7611d9346"},{"title":"Тема 18. Inter VLAN routing. Межсегментная маршрутизация. Утилита Traceroute.","queue":21,"uuid":"de2770b1-544f-47fb-a
15d90-57e15a7387d1"},{"title":"Тема 19. Протокол настройки IP адресов DHCP","queue":22,"uuid":"897f1f7e-e471-46d4-88ca-790e589ae697"},{"title":"Тема 20. Протоколы резервирования шлюза. HSRP, VRRP, GLBP.","queue":23,"uuid":"ce6c8153-d8cd-4c45-ab34-264f09c7daa8"},{"title":"Тема 21. Статическая маршрутизация.","queue":24,"uuid":"492a35fe-310b-4711-9bae-969bd917cf51"},{"title":"Тема 22. Обзор динамической маршрутизации. (RIP, EIGRP, OSPF)","queue":25,"uuid":"42584bda-f5f4-4e0e-b8ea-34408fc9c32d"},{"title":"Тема 23. Протокол динамической маршрутизации EIGRP.","queue":26,"uuid":"91416faf-eaac-4d32-9c34-4e815574362a"},{"title":"Тема 24. OSPF . Как работает OSPF  и как настраивается.","queue":27,"uuid":"4766f8e6-51ca-4933-ba51-bde6cafc8b40"},{"title":"Тема 24.2 Туннели GRE. L3 каналы и туннелирование.","queue":28,"uuid":"896047e3-f5d2-47b3-aa70-edc6f3ba0a4d"},{"title":"Тема 25. Обзор BGP. Подключение к провайдеру.","queue":29,"uuid":"dac3bde6-2a3f-4f04-8a7d-9c36e8ef3c2f"},{"title":"Тема 26. Трансляция адресов. NAT. Static NAT, Dynamic NAT, PAT (Overload NAT).","queue":30,"uuid":"605eaaec-66de-46e9-b975-8d398f452362"},{"title":"Тема 27. Обзор технологий VPN: PPTP, L2TP, IPSec, SSL.","queue":31,"uuid":"d2ac3368-8537-4503-af5d-8c2f8ab56e19"},{"title":"Тема 28. Принципы и настройка VRF Lite.","queue":32,"uuid":"1606f836-17df-40d8-a254-b42e958fa930"},{"title":"Тема 30. Протоколы управления. Telnet, SSH, SNMP, NTP, LLDP, CDP. Системы NMS.","queue":33,"uuid":"addc83e4-046c-4808-9186-52e59b39087a"},{"title":"Тема 31. Обзор прикладных протоколов. DNS, HTTP, FTP. TFTP, SMTP, IMAP, SMB, RDP.","queue":34,"uuid":"66b3e3c1-d37f-43ae-b5ca-d9a635a26d2b"},{"title":"Private video","queue":35,"uuid":"70cda320-cc5c-4fe4-a233-72e2c8cd7dcd"},{"title":"О канале и сетевом курсе.","queue":36,"uuid":"33a8ed57-0994-4ce5-a87d-74f6d0ea280c"},{"title":"Ответы на вопросы. Предложения и планы.","queue":37,"uuid":"16fce530-ea42-47a7-bae7-52c8b714db8a"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2024-11-24T19:26:33.844Z","updatedAt":"2024-11-24T19:29:14.739Z"},{"uuid":"46ed5324-0cb5-4c3f-bab1-a57820720274","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Компьютерная графика: основы","description":"","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/46ed5324-0cb5-4c3f-bab1-a57820720274/preview.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"uuid":"2fed5998-1a5b-4ff2-ac23-8f408e1bc164","title":"Секция: Playlist","queue":0,"materials":[{"title":"Компьютерная графика: основы - 1 урок.","queue":0,"uuid":"f19916fb-7b18-48f0-a6de-0d2ccd008ae2"},{"title":"Компьютерная графика: основы - 2 урок. Спектр","queue":1,"uuid":"dea5ff53-8453-4817-aff6-39461c6e6759"},{"title":"Компьютерная графика: основы - 3 урок. Спектр","queue":2,"uuid":"41f48875-c61a-4e45-bb9e-54b0db7b341b"},{"title":"Компьютерная графика: основы - 4 урок. Спектр","queue":3,"uuid":"8bda9c6d-541e-4b8f-824d-70d1d019da7b"},{"title":"Компьютерная графика: основы - 5 урок. Спектр","queue":4,"uuid":"11fd11c8-70eb-496b-abb2-b7c80e73f1e4"},{"title":"Компьютерная графика: основы - 6 урок. Свет","queue":5,"uuid":"16e0d975-e727-47c8-b3d8-a6bb0b575aa3"},{"title":"Компьютерная графика: основы - 7 урок. Разложение света в спектр","queue":6,"uuid":"70b4af0b-e3bd-4c60-8de4-4421c9a0ba59"},{"title":"Компьютерная графика: основы - 8 урок. Цветовой круг Ньютона","queue":7,"uuid":"622df935-905f-4b9f-ae6f-1490f8b88dd6"},{"title":"Компьютерная графика: основы - 9 урок. Свойства цветового круга","queue":8,"uuid":"413002bc-37fe-4948-a01a-d297b65aba75"},{"title":"Компьютерная графика: основы - 10 урок. Основные цвета","queue":9,"uuid":"960b4f4f-78da-4b1e-a255-1e77e12f14f4"},{"title":"Компьютерная графика: основы - 11 урок. Основные цвета","queue":10,"uuid":"f1a436ca-e93d-45ba-ae83-cb245e6a45d5"},{"title":"Компьютерная графика: основы - 12 урок. Цвет в полиграфии","queue":11,"uuid":"4e09bab5-9660-457a-b93f-dc34b73d5f16"},{"title":"Компьютерная графика: основы - 13 урок. Виды цвета","queue":12,"uuid":"eaf4c030-7c26-45a1-83e1-579c2724da0f"},{"title":"Компьютерная графика: основы - 14 урок. Температура цвета глазами художников","queue":13,"uuid":"a139a476-c378-4b89-8ffe-028ddcd99706"},{"title":"Компьютерная графика: основы - 15 урок. Температура цвета глазами физиков","queue":14,"uuid":"29306be9-cf5f-42a9-b68d-177283315b6c"},{"title":"Компьютерная графика: основы - 16 урок. Спектр электрических ламп","queue":15,"uuid":"7e9c262f-e7cc-4af6-8c06-ca5e401420d6"},{"title":"Компьютерная графика: основы - 17 урок. Баланс белого","queue":16,"uuid":"c2c3e019-e89b-400d-8e86-f7a24b6af78c"},{"title":"Компьютерная графика: основы - 18 урок. Устройство глаза","queue":17,"uuid":"2d89a2e1-0db1-4cee-97cb-b52f869374d6"},{"title":"Компьютерная графика: основы - 19 урок. Устройство глаза","queue":18,"uuid":"b817f93e-173e-4f43-9db5-520217cafe44"},{"title":"Компьютерная графика: основы - 20 урок. Устройство глаза","queue":19,"uuid":"cee33c1c-b5fa-4b70-a885-f0e212d32c02"},{"title":"Компьютерная графика: основы - 21 урок. Цветовосприятие","queue":20,"uuid":"668969f7-1d12-4e77-8c0d-7baeb6660c90"},{"title":"Компьютерная графика: основы - 22 урок. Цветовые модели и цветовые пространства","queue":21,"uuid":"2b18a258-e5c3-4599-8cf9-bf3c465dfcd9"},{"title":"Компьютерная графика: основы - 23 урок. Классификация цветовых моделей","queue":22,"uuid":"4ffdaa25-a0c4-405a-8396-21b02d16cb02"},{"title":"Компьютерная графика: основы - 24 урок. Классификация цветовых моделей","queue":23,"uuid":"7e8caea0-8f73-4afa-953b-32915847a32f"},{"title":"Компьютерная графика: основы - 25 урок. Цветовой охват","queue":24,"uuid":"4c66d897-14c1-422e-921e-39887f81ee67"},{"title":"Компьютерная графика: основы - 26 урок. Аддитивный синтез цвета и модель RGB","queue":25,"uuid":"bfb1895c-9390-4f01-b861-a5ddc8db0523"},{"title":"Компьютерная графика: основы - 27 урок. Гамма-коррекция","queue":26,"uuid":"25db93d4-de49-4a3a-a074-78d1170a0947"},{"title":"Компьютерная графика: основы - 28 урок. Цветовые пространства RGB","queue":27,"uuid":"bb6ae85a-0210-4fcc-952a-c3b5f608545a"},{"title":"Компьютерная графика: основы - 29 урок. Субтрактивные цветовые модели","queue":28,"uuid":"3ed61089-828d-4e34-a439-5e9656bb70dc"},{"title":"Компьютерная графика: основы - 30 урок. Перцепционные цветовые модели","queue":29,"uuid":"27d36df3-a063-4855-b686-645bbcb8a06a"},{"title":"Компьютерная графика: основы - 31 урок. Цветовые пространства YUV","queue":30,"uuid":"a96b9d64-8f56-44dc-ae05-f0782a2ecb94"},{"title":"Компьютерная графика: основы - 32 урок. Универсальные цветовые модели","queue":31,"uuid":"966d5b22-800e-40ca-b378-c63bc8a1f86a"},{"title":"Компьютерная графика: основы - 33 урок. Универсальные цветовые модели CIE XYZ","queue":32,"uuid":"6c69e26b-d37e-403b-accd-5cd55becd4bc"},{"title":"Компьютерная графика: основы - 34 урок. Состовляющие компьютерной графики","queue":33,"uuid":"e62ce655-307f-4197-9524-fa28a61e2534"},{"title":"Компьютерная графика: основы - 35 урок. История компьютерной графики","queue":34,"uuid":"7b910366-4a48-423d-8771-0ae64e673dc3"},{"title":"Компьютерная графика: основы - 36 урок. Аналого-цифровое и цифро-аналоговое преобразование","queue":35,"uuid":"2015819b-d3f1-41e3-a9aa-ff26b22b759a"},{"title":"Компьютерная графика: основы - 37 урок. Векторная графика","queue":36,"uuid":"3e26ad0e-d53a-4b76-a4ce-4980f7fa3fad"},{"title":"Компьютерная графика: основы - 38 урок. Растровая графика","queue":37,"uuid":"ab197e37-f97d-4653-8ba7-553031543238"},{"title":"Компьютерная графика: основы - 39 урок. Текст и шрифт","queue":38,"uuid":"6260a683-ccfc-435c-b632-0ff84227d266"},{"title":"Компьютерная графика: основы - 40 урок. Трехмерная графика","queue":39,"uuid":"e15fc2d5-fdb6-439f-905f-e6c724e218e8"},{"title":"Компьютерная графика: основы - 41 урок. Фрактальная графика","queue":40,"uuid":"7f7a9d25-e434-4047-ad8b-5c482d9ee1f0"},{"title":"Компьютерная графика: основы - 42 урок. Анимация","queue":41,"uuid":"d60d5d43-70fa-46cb-98e2-6014bb397f1b"},{"title":"Компьютерная графика: основы - 43 урок. Глубина цвета","queue":42,"uuid":"d72cf0b0-fe4e-4ac3-a03b-f22e25307d8f"},{"title":"Компьютерная графика: основы - 44 урок. Динамический диапазон и оптическая плотность","queue":43,"uuid":"2db365c4-aa18-4d86-8c84-2c2ec8edd565"},{"title":"Компьютерная графика: основы - 45 урок. Разрешение изображений","queue":44,"uuid":"32eff14b-ae41-4e8d-8b1b-e624c8759b55"},{"title":"Компьютерная графика: основы - 46 урок. Кривые Безье","queue":45,"uuid":"1166d61b-211b-4b61-a5f5-cf7abef428a1"},{"title":"Компьютерная графика: основы - 47 урок. Форматы графических файлов","queue":46,"uuid":"5b1302fb-5915-4e59-81fe-603dc950feb8"},{"title":"Компьютерная графика: основы - 48 урок. Растровые графические форматы","queue":47,"uuid":"8c79d6c3-f0f2-4756-b6e6-eeef4c66c8f4"},{"title":"Компьютерная графика: основы - 49 урок. Векторные графические форматы","queue":48,"uuid":"bff2e42d-5dc6-4b67-8841-fc95f8c85c79"},{"title":"Компьютерная графика: основы - 50 урок. Форматы док
15ументов","queue":49,"uuid":"3efb5d5c-d807-4006-b354-958835097e10"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2024-05-21T09:52:10.276Z","updatedAt":"2024-05-21T09:56:51.247Z"},{"uuid":"89fe7709-ca94-4639-9e28-52e0b1628ad7","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Веб-разработка с использованием HTML и CSS - Общая картина","description":"Этот курс научит вас, что такое HTML, CSS и JavaScript и как они взаимодействуют, чтобы передать веб страницу в ваш браузер.","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/89fe7709-ca94-4639-9e28-52e0b1628ad7/preview.jpeg","data":{"status":"active","courseContent":{"sets":[{"title":"Веб-разработка с использованием HTML и CSS - Общая картина","version":"1","description":"Этот курс научит вас, что такое HTML, CSS и JavaScript и как они взаимодействуют, чтобы передать веб страницу в ваш браузер.","sections":[{"title":"Обзор курса","queue":0,"materials":[{"title":"Обзор курса","queue":0,"uuid":"0fdb9bc5-fadd-4db6-bf76-c238821978bd"}],"uuid":"53597c96-0b8e-449d-a203-de8efc4289d1"},{"title":"Почему вы должны знать о том, как работает Интернет","queue":1,"materials":[{"title":"Введение в курс","queue":0,"uuid":"c49c472a-97c9-4208-8645-f31b2f36fca5"},{"title":"История Интернета","queue":1,"uuid":"d95e810b-84e1-4c7b-bb6c-d57fde4166a6"},{"title":"Как работает магия Интернета","queue":2,"uuid":"0b80e1e4-15cf-429f-9384-05e957361d15"},{"title":"Зачем изучать HTML, CSS и JavaScript","queue":3,"uuid":"79a8a73c-3129-4773-bad0-ad32ddc0fa4b"},{"title":"Что нужно запомнить","queue":4,"uuid":"d296dc25-c784-4e13-9378-7a2527dbbebf"}],"uuid":"68b1d649-46b2-4be5-9535-33519b82cfd3"},{"title":"Отображение веб-страниц с помощью HTML","queue":2,"materials":[{"title":"Введение - Отображение веб-страниц с помощью HTML","queue":0,"uuid":"5d2f71e3-9b33-465a-9ad7-0e4ecfb32d8d"},{"title":"Откуда взялся HTML","queue":1,"uuid":"234e845e-9aa0-46bf-85e1-2e1780b41d96"},{"title":"Что такое HTML?","queue":2,"uuid":"f12cfbfc-c745-4855-b93a-6c685a203549"},{"title":"Работа с HTML","queue":3,"uuid":"8e609268-69c5-40d3-8fa8-793d6e380fbb"},{"title":"Что нужно запомнить - Отображение веб-страниц с помощью HTML","queue":4,"uuid":"f194996e-2577-4836-ac0d-ef19718e8336"}],"uuid":"0146e44b-a148-4d96-9644-94aa0928ac08"},{"title":"Оформление веб-страниц с помощью CSS","queue":3,"materials":[{"title":"Введение - Оформление веб-страниц с помощью CSS","queue":0,"uuid":"32018e4b-3349-465f-8d66-03f14fdc8300"},{"title":"Откуда взялся CSS","queue":1,"uuid":"d31302c8-e4a3-4d0e-b962-bbd773bec436"},{"title":"Что такое CSS","queue":2,"uuid":"6cb1c7cc-74aa-45ef-859a-d761c2aa5dbd"},{"title":"Работа с CSS","queue":3,"uuid":"558451fe-d10a-4c3a-a129-21a74afbb6dd"},{"title":"Что нужно запомнить - CSS","queue":4,"uuid":"2036e212-d9ec-4d2b-a841-f92c1128dffe"}],"uuid":"cb86087d-a333-435d-9b4f-1dd7f31a517c"},{"title":"Взаимодействие c веб страницей с помощью JavaScript","queue":4,"materials":[{"title":"Введение - Взаимодействие c веб страницей с помощью JavaScript","queue":0,"uuid":"5c337ea0-b0df-4048-bbbb-771692cbe4e7"},{"title":"Откуда к нам пришел JavaScript","queue":1,"uuid":"ba538522-d248-4852-aa4a-8e3d2671d60c"},{"title":"Что такое JavaScript?","queue":2,"uuid":"d7836ec7-916e-424c-a127-69a1e918f527"},{"title":"Работа с JavaScript","queue":3,"uuid":"323f42c9-0dbd-4891-81c3-701a8b333d86"},{"title":"Что нужно запомнить - JavaScript","queue":4,"uuid":"5e4e1fbd-382b-45f3-bff9-54b35ad8a913"}],"uuid":"c8e93d94-9ae2-4e07-838d-cf023be27121"},{"title":"Куда идти дальше","queue":5,"materials":[{"title":"Введение - Куда идти дальше","queue":0,"uuid":"70839ecf-4aaf-4b43-82bd-3a68f832ff1e"},{"title":"Что нужно запомнить - Куда идти дальше","queue":1,"uuid":"6807b74f-d1d7-4c6d-9410-4088191f5fea"},{"title":"Ресурсы, позволяющие узнать больше","queue":2,"uuid":"9bd9347d-5f55-4bf4-a61c-d6d2f9a614a2"}
15],"uuid":"906ccfc8-d00c-4492-bad4-5e6888a692dc"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-11-30T08:26:41.755Z","updatedAt":"2023-10-24T08:26:31.390Z"},{"uuid":"a162d518-48e7-4db0-94de-84d8e124f751","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Working with JavaScript Modules By Jonathan Mills","description":"Working with JavaScript Modules By Jonathan Mills","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/Working%20with%20JavaScript%20Modules%20By%20Jonathan%20Mills/preview.jpeg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"Working with JavaScript Modules By Jonathan Mills","description":"Working with JavaScript Modules By Jonathan Mills","sections":[{"title":"1. Course Overview","queue":0,"materials":[{"title":"1. Course Overview","queue":0,"uuid":"e3f79317-13d3-47ed-acb6-8023deca82fe"}],"uuid":"9d0fab5c-529d-433a-83dd-dd9a9bbc8629"},{"title":"2. What Is a Module","queue":1,"materials":[{"title":"1. Introduction","queue":0,"uuid":"ed780e66-ba69-4efd-8237-7047c0d5b408"},{"title":"2. Setting the Scene","queue":1,"uuid":"ba4b5c5a-43b2-4a7b-88c1-0fcbfdce9a4a"},{"title":"3. Cleanup the Old Way","queue":2,"uuid":"dded1d3b-093a-476e-9b09-e40e2cddb24b"},{"title":"4. What Are Modules","queue":3,"uuid":"61df8963-d41f-4713-b53f-8d866269ab7c"},{"title":"5. Summary","queue":4,"uuid":"59076d31-7381-47b3-bb44-15e518491b45"}],"uuid":"83258161-37ad-43d4-a56b-e2c1defef7a3"},{"title":"3. Creating Modules","queue":2,"materials":[{"title":"1. Introduction","queue":0,"uuid":"6d90554a-c8f6-4a9b-b140-513c344434c7"},{"title":"2. Named Exports","queue":1,"uuid":"a5954259-b313-41f3-ad10-aa491e839d9e"},{"title":"3. Default Exports","queue":2,"uuid":"e6771448-bcb3-4d9d-89a7-756cbb18a969"},{"title":"4. Aggregating Modules","queue":3,"uuid":"cbbca47c-8cde-495c-8b61-73508aefa417"},{"title":"5. Summary","queue":4,"uuid":"85ce2eb8-4859-4127-ae63-cfc1c825ca31"}],"uuid":"7d74d056-0622-4fe9-be7d-96a41faf932a"},{"title":"4. Using Modules","queue":3,"materials":[{"title":"1. Introduction","queue":0,"uuid":"3a2d84aa-f4f2-49c8-81b3-0f2e289be48d"},{"title":"2. Enabling Modules","queue":1,"uuid":"22aca5ba-ae31-4bf1-b539-dec4ef9c01b6"},{"title":"3. Default Imports","queue":2,"uuid":"1438d053-b14c-4a92-a2c1-bafb3a46126a"},{"title":"4. Named Imports","queue":3,"uuid":"32e0f923-9ec4-4f02-b78b-bc9036c48cd9"},{"title":"5. Summary","queue":4,"uuid":"adb19b8e-56de-4163-b170-b821ef6e6e9b"}],"uuid":"50a8159a-6510-4fd8-b2f2-b084b6b350fe"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-05-02T11:07:30.846Z","updatedAt":"2023-10-24T08:27:01.997Z"},{"uuid":"9ece08dc-7318-4750-9c6b-b8c63a253d2d","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Маршрутизация и коммутация | Маршрутизация и коммутация для начинающих","description":"Курс «Маршрутизация и коммутация для начинающих» представляет собой серию обучающих видео, направленных на изучение основ сетевых технологий. В рамках курса рассматриваются ключевые концепции маршрутизации и коммутации, включая настройку сетевых устройств, протоколы маршрутизации и методы управления сетевым трафиком. Курс предназначен для начинающих, стремящихся получить базовые знания в области сетевой инфраструктуры.\n\nСсылка на плейлист курса: https://www.youtube.com/playlist?list=PLjVeVrnpGKvUTmA1mPFGuWLtfEmYDh_6W\n\nКанал автора: https://www.youtube.com/@Nikolay_Bulganin","image":"https://img.youtube.com/vi/WAdMv_-iy4o/maxresdefault.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"uuid":"ccddd262-2a69-4722-b6f8-8ed86c278dc0","title":"Секция: Playlist","queue":0,"materials":[{"title":"4.1 Что такое IP адрес ? Маршрутизация и коммутация для начинающих","queue":0,"uuid":"cb089aac-660d-4fe9-a621-b79014e0ff04"},{"title":"4.2 Что такое маска сети? Маршрутизация и коммутация для начинающих","queue":1,"uuid":"2cd62955-2d74-48e7-bf98-708d1a29fec3"},{"title":"4.3 Как данные передаются по сети. Модель OSI. МАК адрес","queue":2,"uuid":"2e2b992d-eeef-4a84-98da-c5d6483207d9"},{"title":"4.4 Широковещание и другие типы передачи данных. МАК адрес. Практика и теория","queue":3,"uuid":"5d5b1768-5bfd-493d-832b-edb04860bbe9"},{"title":"4.5 Как собрать стенд на GNS3 с VMWare  для изучения и тестирования работы сетевых технологий","queue":4,"uuid":"1d959c46-e9b8-45ed-8bfd-2dc144512a65"},{"title":"4.6 Почему в Килобайте не 1000 байт? Как правильно перевести Байты в Килобайты, а Биты в Мегабиты?","queue":5,"uuid":"6804cc40-3f00-45a4-9511-b8bbd09a1d13"},{"title":"4.7 Как разделить сеть на подсети? Простой и наглядный способ","queue":6,"uuid":"65744545-eec2-44ef-8ee9-95272ce1c7dd"},{"title":"4.8 Коммутатор – что это? Зачем нужен? Как работает? Коммутация и маршрутизация для начинающих","queue":7,"uuid":"9
150c21256-ee6a-470b-8f39-e8abfb510ba8"},{"title":"4.9 Передача IP пакетов между сетями. IP и MAC адреса в заголовках канального и сетевого уровней","queue":8,"uuid":"a171d567-0344-4fbe-adf8-2751744d99ca"},{"title":"4.10 Статическая маршрутизация. Главные сведения о маршрутах. Виды маршрутов.","queue":9,"uuid":"5e114df4-9abb-4715-ab32-b703395e7d98"},{"title":"4.11 Что такое маршрут по умолчанию?  Приоритеты маршрутов. Маршрутизация и коммутация для начинающи","queue":10,"uuid":"5914e58b-ad33-4753-a43f-bd6e760675c1"},{"title":"4.12 Протокол ARP.  Поиск MAC адреса next-hop","queue":11,"uuid":"df9a29a1-6297-4c4f-8c46-cad4a22dd701"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2024-12-06T08:36:07.777Z","updatedAt":"2024-12-06T08:39:56.548Z"},{"uuid":"cbbe023d-0bac-4f26-9ce0-42f2b2d95306","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"GIT - От основ к уверенной работе (В разработке)","description":"Описание курса “GIT - От основ к уверенной работе”:\n\nКурс находится в разработке - следите за изменениями на платформе.\n\nЭтот курс — ваш надежный путеводитель в мир GIT, созданный специально для тех, кто хочет уверенно управлять своими проектами. Мы начнем с самого простого: что такое системы контроля версий и зачем они нужны. Затем шаг за шагом разберем базовые и продвинутые возможности GIT:\n- Создание и управление репозиториями.\n- Работа с ветками: создание, слияние, разрешение конфликтов.\n- История изменений: коммиты, откаты, аннотации.\n- Совместная работа: использование удаленных репозиториев и платформ, таких как GitHub и GitLab.\n- Рекомендации и практики, которые помогут избежать распространенных ошибок.\n\nКурс подойдет вам, даже если вы никогда не пользовались GIT. А если вы уже пробовали, но чувствовали себя неуверенно — тем более! После прохождения этого курса вы сможете смело использовать GIT в повседневной работе, экономя время и избегая путаницы в коде.\n\nЦель курса — дать вам практические навыки, которые позволят легко решать задачи как в одиночных проектах, так и в командах.","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/cbbe023d-0bac-4f26-9ce0-42f2b2d95306/preview.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"title":"Введение","queue":0,"materials":[{"title":"Введение","queue":0,"uuid":"3582a3c2-6f93-4232-9143-1abbb42fc1da"},{"title":"Общий обзор","queue":1,"uuid":"d3bba83c-4c9c-4afa-a280-70920679248e"}],"uuid":"34ee4db9-21af-480c-b703-d663f45dcfc3"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2024-12-17T14:32:51.047Z","updatedAt":"2025-03-05T09:38:20.493Z"},{"uuid":"62c7915b-f2bd-4a2d-bdc9-6f4960cdc0db","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Основы Wireshark и сетевого анализа","description":"## Научись видеть интернет “изнутри”!\n\nЭтот курс быстро и просто введёт вас в мир анализа сетевого трафика с помощью программы Wireshark.\n\nВы узнаете, как устроены пакеты, что происходит при открытии сайта, как работает DNS, HTTPS, TCP, и научитесь находить ошибки, скрытый трафик и подозрительные подключения.\nИдеально для новичков, разработчиков, тестировщиков и всех, кто хочет понимать сеть на практическом уровне.\n\nЭтот курс не ставит цель научить всем сетевым технологиям и протоколам — мы лишь слегка касаемся их, чтобы дать контекст и помочь понять, что именно показывает Wireshark. Основной фокус курса — изучение самой программы Wireshark, умение читать пакеты, ориентироваться в её интерфейсе, понимать структуру трафика, фильтровать данные и находить нужную информацию. Ð
15’Ñ‹ не станете сетевым инженером, но научитесь уверенно пользоваться одним из самых мощных инструментов анализа сети.","image":"https://blog.invgate.com/hubfs/what-is-wireshark.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"title":"Введение в сетевой анализ","queue":0,"materials":[{"title":"Что такое сетевой анализ и зачем он нужен","queue":0,"uuid":"e62b5afc-dd2d-48c4-8322-3929310ccc3d"},{"title":"Кто и где использует Wireshark","queue":1,"uuid":"3d3edcc6-8d55-41b0-90c6-3b15f925b684"},{"title":"Основные протоколы: OSI vs TCP/IP, почему важно понимать уровни","queue":2,"uuid":"7d42b06c-1161-47ae-8683-7d753dd9356b"},{"title":"Что такое пакет, кадр, сегмент, datagram","queue":3,"uuid":"d33b30ce-9daf-4bb4-b733-c7e78fb60cd1"}],"uuid":"f4a17a2e-b34a-4c29-a55b-3c645cff3faf"},{"title":"Знакомство с Wireshark","queue":1,"materials":[{"title":"Установка и базовая настройка Wireshark","queue":0,"uuid":"8f3a98e4-5935-4dc2-b620-107a14461efc"},{"title":"Интерфейс Wireshark","queue":1,"uuid":"ddb1f33b-8fc1-422c-afcf-d9d35e2924ca"},{"title":"Capture: выбор сетевых интерфейсов, promisc mode","queue":2,"uuid":"1a4eb1ae-c0e3-479f-853a-ecc9197598bd"},{"title":"Первое захватывание трафика","queue":3,"uuid":"68318ff8-a725-499d-816f-67a747f254db"},{"title":"Как читать первые пакеты: разбор колонок и их смысла","queue":4,"uuid":"44bd39fc-83e2-46b5-9ac2-a52f3c80b061"},{"title":"Структура пакета в Wireshark","queue":5,"uuid":"383b6ffb-2878-4759-bcf7-005f7ee2fbf1"}],"uuid":"9cc3f9d4-0f17-4f9c-bbe6-def39d4db2b2"},{"title":"Основы фильтрации и поиска","queue":2,"materials":[{"title":"Display Filters: фильтрация отображаемых пакетов","queue":0,"uuid":"024036fa-c7e1-486c-b187-8cd1cec376d9"},{"title":"Capture Filters: фильтрация при записи","queue":1,"uuid":"d92d277e-dd00-44bf-ad19-fce51f784dba"},{"title":"Операторы (and/or/not), множества и диапазоны","queue":2,"uuid":"3148c5ec-997c-45ba-9c33-2c9f4a2c1ae9"},{"title":"Поиск по IP, MAC, портам, протоколам, конкретным значениям","queue":3,"uuid":"10a23bca-3992-4102-a80a-fc8554c997c3"},{"title":"Фильтрация по содержимому пакетов:","queue":4,"uuid":"355b6929-c4c1-4c68-8158-f2341b10b943"}],"uuid":"3ed97abe-1589-415e-8750-835d5019b4f6"},{"title":"Анализ сетевых протоколов","queue":3,"materials":[{"title":"ARP — как устройства узнают MAC","queue":0,"uuid":"9a866099-f304-40f5-a072-d4a9a4f99d19"},{"title":"ICMP (Ping) — диагностика сетей","queue":1,"uuid":"3be6c67b-40f8-4b7c-82e0-bf455765d285"},{"title":"DNS: как мы находим сайты по имени","queue":2,"uuid":"3cff9a8d-42ea-4305-a0ef-1373e3fde0d1"},{"title":"TCP vs UDP и трёхстороннее рукопожатие","queue":3,"uuid":"6625fddb-b32a-4f52-b122-5476b720235c"},{"title":"HTTP/HTTPS — что передаётся при загрузке страницы","queue":4,"uuid":"8af56d67-4109-4907-88df-ad3fdec53e1a"},{"title":"SSL/TLS handshake (на понятном уровне)","queue":5,"uuid":"e46466b5-a81f-4b42-818b-c67b89c5b69a"},{"title":"UDP: быстрый, но ненадёжный","queue":6,"uuid":"2bddf1e8-6193-457c-803a-034bf27155ce"}],"uuid":"81a1e59c-854c-40cb-98b4-1f594b76a415"},{"title":"Практика анализа реального трафика","queue":4,"materials":[{"title":"Поиск сетевых проблем в Wireshark","queue":0,"uuid":"a78049c2-8ccc-4b01-8a03-25d83d20ac3d"},{"title":"Анализ HTTP-запросов и API-трафика","queue":1,"uuid":"0835c8b5-b5e9-4f54-8e87-3040aa801185"},{"title":"Поиск подозрительного трафика (боты, неизвестные IP)","queue":2,"uuid":"db74c53d-4e1b-46a6-a676-9e8c4b3e9ea9"}],"uuid":"acdd2da9-e572-4b2f-92c7-3fbcde596ed6"},{"title":"Анализ данных и артефактов в сети","queue":5,"materials":[{"title":"Извлечение файлов, изображений и данных из HTTP-трафика","queue":0,"uuid":"5b1c93cf-4e80-4182-9dca-90220d67d3e9"},{"title":"Анализ готовых .pcap файлов","queue":1,"uuid":"8afb3c78-ce3b-4da4-b89d-1b34ac41ff7d"},{"title":"Расшифровка TLS-трафика с помощью ключей браузера","queue":2,"uuid":"20cc8c29-cc02-48a0-aa77-55b686885bc4"}],"uuid":"7e48c767-0d64-4005-8ad8-63df42d79241"},{"title":"Мини-проект","queue":6,"materials":[{"title":"Финальный проект","queue":0,"uuid":"c617105e-99fd-4d1a-8a3c-429d5e964979"}],"uuid":"47c33da2-8a75-4c72-9cec-e60642d90a54"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2025-11-27T17:08:43.273Z","updatedAt":"2025-11-28T11:48:03.308Z"},{"uuid":"2291e058-9828-4821-84a7-c316e7ec2430","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"JavaScript - Начало работы","description":"JavaScript - Начало работы","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20-%20Getting%20Started%20By%20Mark%20Zamoyta/images/preview.jpeg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"JavaScript - Начало работы","description":"JavaScript - Начало работы","sections":[{"title":"Обзор курса","queue":0,"materials":[{"title":"Обзор","queue":0,"uuid":"7a1d1e56-8781-449c-8643-ab03c552058a"}
15],"uuid":"aeca5b0f-b9ec-4fae-9f7d-87c4156ec3aa"},{"title":"Введение в JavaScript","queue":1,"materials":[{"title":"Введение","queue":0,"uuid":"66003295-d779-459f-953f-a53414e7d094"},{"title":"Установка программного обеспечения для разработки","queue":1,"uuid":"e5f693fb-4b07-4ae5-9a32-48f1772af303"},{"title":"Проект Hello World","queue":2,"uuid":"1702075e-22ce-4d3d-a012-5bb4c6597fac"},{"title":"Наш простой вебсайт","queue":3,"uuid":"97fd7938-2244-41ab-ac02-ccf5e2467d5d"}],"uuid":"49bd8d12-7f52-4448-b24f-9e777c21af8e"},{"title":"Начало JavaScript","queue":2,"materials":[{"title":"Введение","queue":0,"uuid":"e7cd484f-16cf-4170-85ea-2f519bb18c63"},{"title":"Добавление кода JavaScript на веб-страницу","queue":1,"uuid":"e78a16d1-6c7c-4256-be83-68d2be1ef427"},{"title":"Работа с файлами JavaScript","queue":2,"uuid":"1f76f0f9-07ce-4400-8558-e800a37d5199"},{"title":"Форматирование кода","queue":3,"uuid":"42836bc1-0a5f-40a9-96fd-f52e68c42fc9"},{"title":"Обнаружение и исправление ошибок","queue":4,"uuid":"d79d8570-c486-43cf-afec-aad5634bfc0f"},{"title":"Чувствительность к регистру","queue":5,"uuid":"a9ab25ea-0c22-4e16-93a7-5bf9cbd3d9b8"},{"title":"Комментируем код","queue":6,"uuid":"2eeef1f6-9291-4d81-a9d3-79f49ef5079e"},{"title":"Заключение","queue":7,"uuid":"d0a2e718-0b1f-4294-bf97-e7ac8d4b9e1b"}],"uuid":"b2606263-b83d-46fb-8bbc-52df22c1abf1"},{"title":"Переменные и константы","queue":3,"materials":[{"title":"Введение","queue":0,"uuid":"1f93a1dc-1464-4771-8667-d241d1b2b02c"},{"title":"Что такое переменная","queue":1,"uuid":"e3971d77-7b2d-4ca8-8e5f-3ee563be707c"},{"title":"Объявление переменных","queue":2,"uuid":"7a50445e-a694-4d3c-96c7-f2d699a7cdc7"},{"title":"Использование let для объявления переменных","queue":3,"uuid":"420a049a-e80f-4bce-be20-2d1652c004f1"},{"title":"Именование переменных","queue":4,"uuid":"08ee6d2b-177a-4edd-b746-79992ee67164"},{"title":"Распространенные ошибки при использовании переменных","queue":5,"uuid":"53ee958b-a004-4779-a8e7-00e447dbe39a"},{"title":"Изменение значений переменных","queue":6,"uuid":"c1400e49-ed78-4e75-870f-44573d53b12f"},{"title":"Константы","queue":7,"uuid":"03c0c035-6f2b-4be7-b157-7e5c8aefb55d"},{"title":"Ключевое слово var","queue":8,"uuid":"09890ae8-1280-4dc5-92dc-1307ef160756"},{"title":"Заключение","queue":9,"uuid":"c89e7097-3274-42da-a4d3-5d46a938ade9"}],"uuid":"bc59e111-3c39-40b0-80a2-35d226882a15"},{"title":"Типы и операторы","queue":4,"materials":[{"title":"Введение","queue":0,"uuid":"b6fd7c07-9219-4321-9d5f-69f26f812a9b"},{"title":"Числа - Numbers","queue":1,"uuid":"c1207353-36c8-4ae6-a531-4363fcbd92ca"},{"title":"Приоритет оператора","queue":2,"uuid":"c1549282-cb90-4085-a0f5-bfc092809470"},{"title":"Числовая точность","queue":3,"uuid":"7516ec6c-69bb-4ab2-abe1-1ecd774c23eb"},{"title":"Отрицательные числа","queue":4,"uuid":"c817670b-c0a9-4b3c-91e8-20d81826cc11"},{"title":"Строки - Strings","queue":5,"uuid":"0289a33d-2575-4312-9a07-b8d38015c896"},{"title":"Манипулирование строками","queue":6,"uuid":"1c1e435e-0c34-423d-90b7-1c1c9b9818e3"},{"title":"Преобразование строк и чисел","queue":7,"uuid":"32e129e9-6b20-4659-8859-854c5498f5d3"},{"title":"Логические переменные","queue":8,"uuid":"a5339f77-5468-49c4-b061-f02886af2951"},{"title":"null и undefined","queue":9,"uuid":"a765f9bb-fcb5-4af8-bd8f-4396ad0767fb"},{"title":"Объекты и символы","queue":10,"uuid":"bd03c140-2e75-49fa-98c4-c30f87e26406"},{"title":"Заключение","queue":11,"uuid":"776d4aa7-9f06-4ff6-a3d1-5f564943377f"}],"uuid":"be258e85-8a44-4a71-9197-bb221ebbd7ba"},{"title":"Ход программы","queue":5,"materials":[{"title":"Введение","queue":0,"uuid":"2a131a38-b4d5-46a9-
15aa12-1b9bb9607c88"},{"title":"Условие if()","queue":1,"uuid":"b8a496f8-b4b5-43fe-8761-1011ac9e535e"},{"title":"Правда и ложь","queue":2,"uuid":"437f940c-9fe9-41c8-ba53-437042d87395"},{"title":"if ... else","queue":3,"uuid":"7bc3e8bd-31dd-4b6f-95f6-707f9102b84a"},{"title":"Сравнение === и ==","queue":4,"uuid":"275693d0-fc6f-4dc9-8f4b-62537b693332"},{"title":"Тернарный оператор","queue":5,"uuid":"8ea19e17-83d6-4509-aa8b-d3f061dac8b5"},{"title":"Область блока с помощью let","queue":6,"uuid":"0a247a74-fd03-44b4-9200-73d8e058b61c"},{"title":"Цикл for()","queue":7,"uuid":"82974290-d86a-43b8-b424-b901c48c207b"},{"title":"Цикл while()","queue":8,"uuid":"229ed3aa-6ebb-4cee-b909-d1e6630fea38"},{"title":"Цикл do ... while()","queue":9,"uuid":"771b8911-f50b-4d66-a208-1817fa37752f"},{"title":"Заключение","queue":10,"uuid":"b871f156-a171-4cc8-98ca-0331c9dae76e"}],"uuid":"124542a2-de31-4365-9d20-df81c8a3240b"},{"title":"Функции","queue":6,"materials":[{"title":"Введение","queue":0,"uuid":"5609547c-7ddc-4332-a8dd-5947d20743e4"},{"title":"Основы функций","queue":1,"uuid":"1bd477b1-d354-4e70-9590-b1464e2b04b1"},{"title":"Функциональные выражения","queue":2,"uuid":"fb13adf2-dd95-4bbc-9b66-f8089b726209"},{"title":"Передача информации функциям","queue":3,"uuid":"ddab5fb4-b7ff-4533-bcb6-c4c5a3cd42ff"},{"title":"Возвращаемые значения функции","queue":4,"uuid":"ce571494-35a7-4eb9-874d-be73093be7fa"},{"title":"Область видимости функции","queue":5,"uuid":"58093af1-58d8-42ba-8c9d-b90faaf39111"},{"title":"Использование функций для изменения веб-страниц","queue":6,"uuid":"09ac6752-20e3-4f75-a499-145e3fe96182"},{"title":"Заключение","queue":7,"uuid":"7d81e3ab-ac29-4ee8-b6ff-b17035836310"}],"uuid":"6d9e8de6-004e-4cad-81e0-099fad6eebe8"},{"title":"Объекты и DOM","queue":7,"materials":[{"title":"Введение","queue":0,"uuid":"0ad5f924-158e-491f-8f2f-6e5631d3343b"},{"title":"Свойства объекта","queue":1,"uuid":"f856ceab-cfb6-4e12-b05c-c24e94558ac0"},{"title":"Методы объекта","queue":2,"uuid":"0e07c893-2442-403f-beb9-2c19b65ff676"},{"title":"Передача объектов в функции","queue":3,"uuid":"e1633eca-73cd-4443-a11e-1bdc3ff6240d"},{"title":"Стандартные встроенные объекты","queue":4,"uuid":"e11185b1-2cb1-4c41-bcdd-2ab8cc19d0bf"},{"title":"Document Object Model (DOM)","queue":5,"uuid":"ed7948a7-f6c8-45ae-9509-55aea598ab2b"},{"title":"Стилизация элементов DOM","queue":6,"uuid":"aa5bf2ec-e95b-452a-ac3a-d1c2642d1a59"},{"title":"Обнаружение нажатий кнопок","queue":7,"uuid":"2660197b-3cb4-48cd-8414-16a143dac9b4"},{"title":"Отображение и скрытие элементов DOM","queue":8,"uuid":"20464bb3-733d-4152-896d-5c84efb015c9"},{"title":"Заключение","queue":9,"uuid":"c6c5e880-a8cd-41e5-8b35-63538c31ab65"}],"uuid":"2550aa55-97c0-4b74-a83b-1fdd0015f609"},{"title":"Массивы - Arrays","queue":8,"materials":[{"title":"Введение","queue":0,"uuid":"18134ac6-6f29-4b08-84ee-e2ae2c21ab8e"},{"title":"Создание и инициализация массивов","queue":1,"uuid":"7e26a634-7128-4674-89b7-e2f26410cc3a"},{"title":"Доступ к элементам массива","queue":2,"uuid":"169ca8dd-0ac3-4d53-9ffa-9949ce62eb23"},{"title":"Управление массивами","queue":3,"uuid":"31404284-fe17-4b07-9092-ba94ddf6dd2a"},{"title":"slice() и splice()","queue":4,"uuid":"fc7fb954-56e4-4bec-9525-af193bf10acc"},{"title":"Поиск массива и зацикливание","queue":5,"uuid":"9690df6f-8b30-475b-84f7-08d1566688ad"},{"title":"Массивы в DOM","queue":6,"uuid":"045ca182-4c43-444d-8f89-b1cb76b46ed1"},{"title":"Заключение","queue":7,"uuid":"2380eca9-6bb4-4aa0-a628-6cd2e8b7bd29"}],"uuid":"30c48802-02b7-4314-8bd9-ff7b87dd6f95"},{"title":"Область видимости и Всплытие","queue":9,"materials":[{"title":"Введение","queue":0,"uuid":"86ca5d3b-9519-4f8a-8d68-467228a2cc96"}
15,{"title":"Глобальная область видимости","queue":1,"uuid":"f96da7fc-1179-489c-838a-06caed75193e"},{"title":"Функциональная область видимости","queue":2,"uuid":"174260d1-e1e3-467c-859c-cef44364a60d"},{"title":"var и Всплытие","queue":3,"uuid":"bdace11a-23f0-4d79-b640-ff23f022c715"},{"title":"Необъявленные переменные и строгий режим","queue":4,"uuid":"3563f862-5a9e-446f-ad93-8ef457d4099a"},{"title":"Заключение","queue":5,"uuid":"bfb62bd2-8dbe-43b9-9b49-e5ffe57da540"}],"uuid":"2777e202-51ba-4a04-886b-f55944e191d2"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-05-01T13:36:07.245Z","updatedAt":"2023-10-24T08:28:10.984Z"},{"uuid":"9b0126cd-057b-443d-b0d7-223911a3341a","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Монорепозитории с Turborepo: от настройки до автоматизации","description":"В этом курсе вы не просто познакомитесь с Turborepo — вы научитесь строить настоящую архитектуру монорепозитория, которая готова к масштабированию, быстрой разработке и автоматизированному деплою.\n\nМы шаг за шагом пройдём путь от установки и базовой настройки до полноценной системы, включающей в себя:\n\n• современный пакетный менеджер с поддержкой workspaces (npm, pnpm и др.),\n\n• настройку зависимостей и сборок между внутренними пакетами,\n\n• кеширование, параллельные задачи и оптимизацию CI,\n\n• управление версиями и публикацией с помощью Changesets,\n\n• настройку автоматической публикации с GitHub Actions (или альтернативами).\n\n\n⸻\n\nЧто вы получите:\n\n• Понимание принципов монорепозиториев: когда, зачем и как их использовать\n\n• Навыки работы с Turborepo как инструментом для ускорения разработки\n\n• Умение организовывать рабочие пространства и пакеты в рамках одного репозитория\n\n• Опыт настройки версионирования, changelog’ов и деплоя\n\n• Знания о связке инструментов, без которых монорепо не будет полноценным: package manager’ы, CI/CD, changesets и др.\n\n\n⸻\n\nЭтот курс — не просто про один инструмент.\nЭто системный подход к построению монорепозитория, который вы сможете использовать в командной работе, в open source, или на проектах с множеством пакетов.\n\n⸻\n\nДля кого курс:\n\n• Разработчики, которые хотят ускорить сборку и упростить работу с несколькими пакетами\n\n• Команды, которые задумываются о переходе к монорепо\n\n• Архитекторы, DevOps-инженеры и тимлиды, которым важно внедрить стабильную и масштабируемую структуру разработки\n","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/9b0126cd-057b-443d-b0d7-223911a3341a/preview.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"title":"Введение","queue":0,"materials":[{"title":"Монорепозиторий и Turborepo","queue":0,"uuid":"8a883f78-40eb-4fc9-a2e3-bcec5baf390a"},{"title":"Глоссарий","queue":1,"uuid":"c311477e-65d4-4c65-9fe5-c54fa94e93e6"}],"uuid":"37a47fb9-3ffd-4f47-be05-79314a6b9efa"},{"title":"Первые шаги","queue":1,"materials":[{"title":"Установка","queue":0,"uuid":"324bc828-5399-460b-bf4a-c6648b69e469"},{"title":"Примеры","queue":1,"uuid":"2de61042-65ff-4def-94dd-490fa89fdf8c"}],"uuid":"415646eb-bc15-4bd6-9ad0-c8d652341c51"}
15,{"title":"Пакетные менеджеры и Workspaces","queue":2,"materials":[{"title":"Пакетные менеджеры для Node.js","queue":0,"uuid":"d2e2b58c-66f5-447d-b028-d355bb8c8a05"},{"title":"Workspace","queue":1,"uuid":"bbed977f-ec0b-4e0b-a270-e0b338d6230d"},{"title":"npm","queue":2,"uuid":"982b8634-08bd-4806-a0d2-b4ba8d46e058"},{"title":"yarn","queue":3,"uuid":"19733113-2656-4a66-bf45-013e2a26c359"},{"title":"pnpm","queue":4,"uuid":"b4208785-5019-4496-b82c-160d2cba8d96"},{"title":"bun","queue":5,"uuid":"8950212c-fc05-4d05-a2af-6e731d882fc1"},{"title":"Вывод по пакетным менеджерам","queue":6,"uuid":"b71f41d5-0ee3-4c92-86e5-35810c70a47b"}],"uuid":"fd104fb3-952c-4e61-a728-9ba1ef452a97"},{"title":"Символические ссылки в UNIX и Windows","queue":3,"materials":[{"title":"Введение в символические ссылки","queue":0,"uuid":"4d6a1f90-58cf-41e0-89cf-3d2d1b12f738"},{"title":"Работа с символическими ссылками в UNIX (Linux, macOS)","queue":1,"uuid":"41406498-7dbb-4207-84f0-2c74a3af726b"},{"title":"Жёсткие символические ссылки в Windows","queue":2,"uuid":"019a8116-e4db-49e5-bc0f-e3d4991042ac"},{"title":"Линковка пакетов","queue":3,"uuid":"0bfc6f91-0bc9-42c9-b642-6f6a0421b6f4"}],"uuid":"5587f612-41bd-4f8b-b11d-5127045a87ba"},{"title":"JSON Schema","queue":4,"materials":[{"title":"Введение в JSON schema","queue":0,"uuid":"a95a5396-0990-4241-8829-c3fb47de9cae"},{"title":"Основы JSON Shcema","queue":1,"uuid":"392e22fd-1025-41a5-a501-bd912083a33e"}],"uuid":"8af9a6ea-25b2-46ba-9eab-8310530b0f51"},{"title":"Turborepo - Основы","queue":5,"materials":[{"title":"Turborepo - Введение","queue":0,"uuid":"03569b2d-61cf-4937-84d0-1869e4df7cc1"},{"title":"Что такое Turborepo и зачем он нужен?","queue":1,"uuid":"dd97065b-84d6-40bc-bea5-7ad199adcbd8"},{"title":"Инициализация проекта с Turborepo","queue":2,"uuid":"f0bbcbd5-40ce-4620-a8f5-97194fe899ac"},{"title":"Кеширование задач и ускорение сборки в Turborepo","queue":3,"uuid":"dbc8772b-130e-4c3d-af3f-cf971c7f0cd6"},{"title":"Фильтрация задач","queue":4,"uuid":"7f1d2f04-32d1-4098-ac19-b607b6d93f53"},{"title":"Удалённое кеширование (Remote Caching)","queue":5,"uuid":"ab5be8b9-aa84-4e30-a2e7-d56e9faa3cd8"},{"title":"Параллельное выполнение задач и управление ресурсами","queue":6,"uuid":"73e33442-c0a3-4f36-950b-4998f31fa8d7"},{"title":"Линтинг, тестирование и форматирование","queue":7,"uuid":"ef4e3df9-e521-4902-91a8-6f91418e2fa2"},{"title":"Масштабирование структуры монорепозитория","queue":8,"uuid":"4db15e65-44c9-403c-b5f4-24885e95d2cc"},{"title":"Интеграция Turborepo с GitHub Actions (CI/CD)","queue":9,"uuid":"6c5cd81e-074f-456c-8932-21fb1afcce26"},{"title":"Практические советы и паттерны использования Turborepo в продакшене","queue":10,"uuid":"8435e25a-704a-44b6-b66c-aefe6c4f1217"}],"uuid":"be617020-ad59-481a-bd10-eee657ed17bf"},{"title":"Changesets - Способ управления версиями и журналами изменений","queue":6,"materials":[{"title":"Введение в Changesets и настройка","queue":0,"uuid":"6d7d28ed-4d31-4d2d-9009-a4bb8cb00c53"},{"title":"Автоматическая публикация с Changesets в GitHub Actions","queue":1,"uuid":"57d289a8-d871-434a-9aad-bf305fe1fc3e"}],"uuid":"a627a853-32d0-4a1f-8c0b-7835c2158462"},{"title":"Заключение","queue":7,"materials":[{"title":"Заключение","queue":0,"uuid":"e1f3b5f0-1c65-4ff9-b1d0-372d4589a9dd"}],"uuid":"63840d32-eefc-43d3-85ca-2918bb542b66"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2025-03-15T15:21:05.970Z","updatedAt":"2025-04-14T09:06:36.371Z"},{"uuid":"7c0b36e2-693f-4c16-a743-41371f86eed5","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Изучение C# для начинающих","de
15scription":"","image":"https://img.youtube.com/vi/_8yZYhAkQjQ/maxresdefault.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"uuid":"8e0b3386-e04d-403a-9f38-5c0735d1d00c","title":"Секция: Playlist","queue":0,"materials":[{"title":"Изучение C# для начинающих / Урок #1 – Введение в язык C# с нуля","queue":0,"uuid":"d2aa5e2b-dbc1-4299-a9a8-0da220fccaee"},{"title":"Изучение C# для начинающих / Урок #2 – Базовая структура. Вывод информации","queue":1,"uuid":"78191ea8-019b-4319-86b1-104cbd06234c"},{"title":"Изучение C# для начинающих / Урок #3 – Переменные и типы данных","queue":2,"uuid":"72e342fe-656c-4ce1-b3bb-d694ca0d0d7a"},{"title":"Изучение C# для начинающих / Урок #4 –  Математические действия","queue":3,"uuid":"644d30cf-1d87-403f-8f84-36e0043ca47b"},{"title":"Изучение C# для начинающих / Урок #5 – Условные операторы (if-else)","queue":4,"uuid":"3115d25d-5d2c-4733-a48a-d9e0a22331c3"},{"title":"Изучение C# для начинающих / Урок #6 –  Оператор «Switch-case»","queue":5,"uuid":"801d2824-7ea9-43c7-93a4-0e9964e42276"},{"title":"Изучение C# для начинающих / Урок #7 – Цикл for, while и do while. Операторы циклов","queue":6,"uuid":"b28befb5-d436-43e3-86a9-0ad1e1916798"},{"title":"Изучение C# для начинающих / Урок #8 – Массивы данных. Одномерные и многомерные","queue":7,"uuid":"b2ee20c4-4e78-47f3-8914-2689e2495268"},{"title":"Изучение C# для начинающих / Урок #9 – Цикл «foreach» для работы с массивами. Generics","queue":8,"uuid":"35b27fd3-9c8a-49aa-b630-7fa0e019f162"},{"title":"Изучение C# для начинающих / Урок #10 – Создание функций (методов класса)","queue":9,"uuid":"10fdce0e-ee94-480e-ab60-999912ebec73"},{"title":"Изучение C# для начинающих / Урок #11 – Работа с файлами и строками","queue":10,"uuid":"78fdeb0d-efe6-4aaf-a80d-0a814da8d30f"},{"title":"Изучение C# для начинающих / Урок #12 – Обработчик исключений. Оператор try-catch","queue":11,"uuid":"51a878b5-98fd-4ff1-9ce8-09c487dcc3f9"},{"title":"Изучение C# для начинающих / Урок #13 – Создание классов. Введение в C# ООП","queue":12,"uuid":"00c6b863-bb7a-4de1-8b40-e080246d3eb0"},{"title":"Изучение C# для начинающих / Урок #14 – Создание классов и объектов","queue":13,"uuid":"be57c0c0-c849-4f71-9d2f-b70d36b03f16"},{"title":"Изучение C# для начинающих / Урок #15 – Конструкторы классов. Модификатор static","queue":14,"uuid":"1a03d4fc-b9d2-4378-b05d-c2e321ba6e1e"},{"title":"Изучение C# для начинающих / Урок #16 – Указатель «this» в классах","queue":15,"uuid":"280faf9c-7067-45a5-a60b-bace0d5434d6"},{"title":"Изучение C# для начинающих / Урок #17 – Аксессоры «get» и «set»","queue":16,"uuid":"712be32b-dfde-4f5b-995a-aa380a1eac5b"},{"title":"Изучение C# для начинающих / Урок #18 – Наследование классов","queue":17,"uuid":"8a5172fa-9f28-4ad8-b7f4-08708a7faa1d"},{"title":"Изучение C# для начинающих / Урок #19 – Операторы is и as. Массив указателей","queue":18,"uuid":"1e6e0dfb-1224-493f-84b8-ef08d4c354ec"},{"title":"Изучение C# для начинающих / Урок #20 – Виртуальные методы","queue":19,"uuid":"629d29bd-e50a-494f-a25e-18d9f8ed169e"},{"title":"Изучение C# для начинающих / Урок #21 – Абстрактные классы. Абстрактные методы","queue":20,"uuid":"65d35f66-60bc-4be9-9a18-7da86ea30dee"},{"title":"Изучение C# для начинающих / Урок #22 – Создание интерфейсов","queue":21,"uuid":"2aaf532b-9b67-4f9a-b3e5-68e2a4e26446"},{"title":"Изучение C# для начинающих / Урок #23 – Перегрузка методов в языке C#","queue":22,"uuid":"55025378-4f52-4d4f-b0b4-efa8af7b25fe"},{"title":"Изучение C# для начинающих / Урок #24 – Перечисления (enum)","queue":23,"uuid":"20fe8bc3-6c81-4411-8fca-ab6ce526b1e5"},{"title":"Изучение C# для начинающих / Урок #25 – Структуры данных (struct)","queue":24,"uuid":"a1c8810e-97c8-43d2-b97d-1c2fff94df54"},{"title":"Изучение C# для начинающих / Урок #26 – Заключительный урок","queue":25,"uuid":"ac62872f-e4e3-451e-af6d-3d7335637cd0"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2025-04-24T01:12:56.173Z","updatedAt":"2025-06-12T18:14:25.722Z"}
15,{"uuid":"484bac11-71b4-4f9c-bee1-0d566e8f5b73","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Webpack - Курс","description":"Источник:\n\u003ca href=\"https://learn.javascript.ru/screencast/webpack\" target=\"_blank\"\u003ehttps://learn.javascript.ru/screencast/webpack\u003c/a\u003e\n\nWebpack - один из самых мощных и гибких инструментов для сборки frontend.\nВместе с тем, он достаточно сложен, а документация оставляет желать много лучшего.\n\nПолезного просмотра!","image":"https://webdevnet.ru/wp-content/uploads/2020/02/pipe-copy.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"Webpack - Курс","description":"JavaScript.ru","sections":[{"title":"Введение","queue":0,"materials":[{"title":"Webpack 1: Введение","queue":0,"uuid":"b7c7251f-cabc-4d50-951a-a6ceb1815a51"}],"uuid":"7e392a03-6c8d-412a-9c3a-beca46db0cfd"},{"title":"Простая сборка ","queue":1,"materials":[{"title":"Webpack 2.1: Простая сборка - Простой конфиг","queue":0,"uuid":"ac6c72f6-1d5a-43d4-a656-b77d0c550482"},{"title":"Webpack 2.2 Простая сборка - Внешний доступ к модулям","queue":1,"uuid":"10fbccf9-3ae6-40da-bdb7-ed1bf8c75b9c"},{"title":"Webpack 2.3 Простая сборка - Пересборка при изменениях","queue":2,"uuid":"ba90fd62-2be6-4143-8437-83a46559d0ff"},{"title":"Webpack 2.4 Простая сборка - Source maps","queue":3,"uuid":"cb52c1db-00c5-4ed7-9946-2f4b2db01c2a"},{"title":"Webpack 2.5 Простая сборка - Окружение, NODE_ENV","queue":4,"uuid":"871d2355-25f0-4b0f-a93d-d473e60f5eef"},{"title":"Webpack 2.6 Простая сборка - Babel.JS","queue":5,"uuid":"533f2a1f-0500-4a9a-a7bf-0aa9c7d5fd40"},{"title":"Webpack 2.7 Простая сборка - Resolving","queue":6,"uuid":"f6c7b052-33df-4aa7-ab70-abbadc37dd30"},{"title":"Webpack 2.8 Простая сборка - Минификация","queue":7,"uuid":"cb014887-025c-4a19-b54d-1c6d7ad440db"}],"uuid":"cca7dbc9-e10f-4644-8323-4e9ecc6b7c74"},{"title":"Несколько скриптов","queue":2,"materials":[{"title":"Webpack 3.1: Несколько скриптов - Несколько точек входа","queue":0,"uuid":"f352bda8-9808-4964-a54d-ce5e79aa1830"},{"title":"Webpack 3.2 Несколько скриптов - NoErrorsPlugin","queue":1,"uuid":"8ea9b5d1-37e1-4223-aeef-474c07d0624e"},{"title":"Webpack 3.3 Несколько скриптов - CommonsChunkPlugin","queue":2,"uuid":"410e8001-9725-4e2f-b226-9a5b5a190ba1"},{"title":"Webpack 3.4 Несколько скриптов - Информация о сборке","queue":3,"uuid":"6ed2d906-35ab-4d4e-ac7f-7844df3e9cb2"},{"title":"Webpack 3.5 Несколько скриптов - Настройки CommonsChunkPlugin","queue":4,"uuid":"48f73e4f-d4c2-4d0c-b279-0465269dbcc6"},{"title":"Webpack 3.6 Несколько скриптов - Общий код в common.js","queue":5,"uuid":"eb10106c-cca2-4293-8be4-d372d67c1908"},{"title":"Webpack 3.7 Несколько скриптов - Мульти-компиляция","queue":6,"uuid":"dcd6ad86-d7b4-44d5-ab3a-9a0f70f01c6f"}],"uuid":"534528d9-1e20-40db-b671-baaf2df4657a"},{"title":"Продвинутые require","queue":3,"materials":[{"title":"Webpack 4.1: Продвинутые require - Динамический require","queue":0,"uuid":"050d2f20-1a41-4553-ae7b-8fd003c52336"},{"title":"Webpack 4.2: Продвинутые require - Объединение фрагментов","queue":1,"uuid":"4fdcdc85-3bce-4c28-bbab-90f7208de295"},{"title":"Webpack 4.3: Продвинутые require - require(выражение)","queue":2,"uuid":"b96ed043-e2c4-4af8-91c6-f04f5e088852"},{"title":"Webpack 4.4: Продвинутые require - require.context","queue":3,"uuid":"aaffd712-ab51-46f0-a101-69f915cd2570"},{"title":"Webpack 4.5: Продвинутые require - Динамический require.context","queue":4,"uuid":"d7f118e7-6a32-40b1-a7e5-2c4e8a138af0"},{"title":"Webpack 4.6: Продвинутые require - ContextReplacementPlugin","queue":5,"uuid":"10db146d-39e1-467a-abe8-29b885e29027"},{"title":"Webpack 4.7: Продвинутые require - IgnorePlugin","queue":6,"uuid":"8c6079a2-4a36-4f21-a5ac-467be70f1459"}],"uuid":"2e3c896a-ee84-4407-84e6-eb2c0a30d983"},{"title":"Внешние библиотеки","queue":4,"materials":[{"title":"Webpack 5.1 Внешние библиотеки - CDN и сборка: externals","queue":0,"uuid":"f66c30a
15a-33f3-4bd1-85a9-e26d462810cf"},{"title":"Webpack 5.2 Внешние библиотеки - Локально: ProvidePlugin","queue":1,"uuid":"18b948d2-5dae-4b79-aa60-0d270d33dac7"},{"title":"Webpack 5.3 Внешние библиотеки - Оптимизация: noParse, include","queue":2,"uuid":"2106e87f-a9a9-4d58-9246-406d49869aaf"},{"title":"Webpack 5.4 Внешние библиотеки - Старые скрипты: пути и imports/exports","queue":3,"uuid":"52c6e3d6-f91c-4b3c-be99-2b6b12061c8e"},{"title":"Webpack 5.5 Внешние библиотеки - expose и script-loader","queue":4,"uuid":"f753e629-e8fa-4ba1-9954-f0315bedb316"},{"title":"Webpack 5.5 Внешние библиотеки - expose и script-loader","queue":5,"uuid":"f753e629-e8fa-4ba1-9954-f0315bedb316"}],"uuid":"64d61142-67f2-491f-aa39-417ea8086079"},{"title":"Стили и файлы","queue":5,"materials":[{"title":"Webpack 6.1 Стили и файлы - Компонент \"меню\", style-loader","queue":0,"uuid":"a5c35246-d83a-4ce7-8642-ab1c98085041"},{"title":"Webpack 6.2 Стили и файлы - CSS и file-loader","queue":1,"uuid":"38dfc95e-c3a0-4148-b4d5-9dcee40db051"},{"title":"Webpack 6.3 Стили и файлы - url-loader","queue":2,"uuid":"c24e8383-226e-48fb-b4ab-13cd63852f7a"},{"title":"Webpack 6.4 Стили и файлы - jade-loader","queue":3,"uuid":"34ed34ee-af8c-4253-aee2-4e9b7cb0390e"},{"title":"Webpack 6.5 Стили и файлы - less, sass, stylus","queue":4,"uuid":"398f592d-fa6b-48c5-b829-e8cbac4de77d"},{"title":"Webpack 6.6 Стили и файлы - ExtractTextPlugin","queue":5,"uuid":"02624626-b156-4b84-87b1-e54e3f156ff9"},{"title":"Webpack 6.6 Стили и файлы - ExtractTextPlugin","queue":6,"uuid":"02624626-b156-4b84-87b1-e54e3f156ff9"}],"uuid":"3abc357b-b463-4f5f-af22-47430407f6ee"},{"title":"Длинное кеширование","queue":6,"materials":[{"title":"Webpack 7.1 Длинное кеширование - Повторение: пример конфига","queue":1,"uuid":"0f5ad443-d788-425c-8fbc-c1dc715ed640"},{"title":"Webpack 7.2 Длинное кеширование - Настройки для кеширования","queue":2,"uuid":"2e92f7cc-ace1-4987-873a-dc03d4007a74"}],"uuid":"b546a082-208c-4469-a656-5752219f3bde"},{"title":"Live Reload \u0026 HMR","queue":7,"materials":[{"title":"Webpack 8.1: Live Reload \u0026 HMR - Webpack Dev Server","queue":0,"uuid":"870a088c-26ae-4c5d-b840-7458686d7b9d"},{"title":"Webpack 8.2: Live Reload \u0026 HMR - Продвинутая настройка WDS","queue":1,"uuid":"52d31e80-0a1a-4504-b62f-b7ec0f111961"},{"title":"Webpack 8.3: Live Reload \u0026 HMR - Live Reload","queue":2,"uuid":"549678bd-5af4-40f2-b82c-c93ad3c4038d"},{"title":"Webpack 8.4: Live Reload \u0026 HMR - Hot Module Replacement","queue":3,"uuid":"7bcc4b60-7c1b-4c24-b336-cbc43a6580da"}],"uuid":"728c7cd5-f9dc-4afb-8c42-be6470f90b0e"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-05-01T13:36:07.242Z","updatedAt":"2025-06-13T09:30:50.308Z"},{"uuid":"3ad7f3c7-d2bb-453b-a5ec-0af995b878a9","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Тестирования безопасности веб-приложений - Burp Suite (BETA)","description":"Готовы окунуться в мир безопасности веб-приложений? Добро пожаловать на курс \"Тестирование безопасности веб-приложений с помощью Burp Suite\"!\n\nЭтот курс - ваш ключ к пониманию основных концепций и методов тестирования безопасности веб-приложений с использованием инструмента Burp Suite. Открытый и простой в освоении, он предназначен для тех, кто стремится погрузиться в мир информационной безопасности и захватывающих техник тестирования на проникновение.\n\nОт изучения основных принципов работы веб-приложений до овладения инструментами для обнаружения уязвимостей, вы научитесь использовать Burp Suite для перехвата и анализа трафика, обнаружения и эксплуатации уязвимостей, а также выполнения тестов на проникновение.\n\nПрисоединяйтесь к нашему курсу и освойте ключевые аспекты тестирования безопасности веб-приложений, глубже понимайте уязвимости и развивайте навыки, необходимые для обеспечения безопасности в онлайн-мире. Давайте вместе разберемся в тонкостях безопасности веб-приложений с Burp Suite!\"","image":"https://miro.medium.com/v2/resize:fit:1358/1*Ch-mZ_z7AIl6OGw7gMTiCg.png","data":{"status":"active","courseContent":{"sets":[{"version":"4","sections":[{"title":"Введение","queue":0,"materials":[{"title":"Burp Suite: desktop editions","queue":0,"uuid":"272d9729-51f9-45c6-b706-5c8b8a5cbb14"}],"uuid":"9fd6659b-733c-4d0a-b852-55cec1d79a87"}
15,{"title":"Начало работы","queue":1,"materials":[{"title":"Начало работы с Burp Suite","queue":0,"uuid":"fa2ad650-5553-4963-89c7-d8be4ca94d69"},{"title":"Загрузка и установка","queue":1,"uuid":"403fd7d8-ddb1-4aca-bdbd-2daae95fd7ba"},{"title":"Перехват HTTP трафика","queue":2,"uuid":"6df994be-80e6-49d4-a0c5-8d8ac11aebb2"},{"title":"Изменение HTTP-запросов","queue":3,"uuid":"84085d9d-cfc9-47a0-be44-743877a48c9d"},{"title":"Установка целевой области","queue":4,"uuid":"3c257947-d0ce-48ba-b64b-6915f75a225a"},{"title":"Повтор запросов","queue":5,"uuid":"4290d11c-e6f0-42d9-baa4-cb018443f52d"}],"uuid":"488b831b-2f08-4c3d-a86e-7aedc164c57d"}],"status":"published"},{"version":"3","sections":[{"title":"Введение","queue":0,"materials":[{"title":"Burp Suite: desktop editions","queue":0,"uuid":"272d9729-51f9-45c6-b706-5c8b8a5cbb14"}],"uuid":"9fd6659b-733c-4d0a-b852-55cec1d79a87"},{"title":"Начало работы","queue":1,"materials":[{"title":"Начало работы с Burp Suite","queue":0,"uuid":"fa2ad650-5553-4963-89c7-d8be4ca94d69"},{"title":"Загрузка и установка","queue":1,"uuid":"403fd7d8-ddb1-4aca-bdbd-2daae95fd7ba"},{"title":"Перехват HTTP трафика","queue":2,"uuid":"6df994be-80e6-49d4-a0c5-8d8ac11aebb2"},{"title":"Изменение HTTP-запросов","queue":3,"uuid":"84085d9d-cfc9-47a0-be44-743877a48c9d"}],"uuid":"488b831b-2f08-4c3d-a86e-7aedc164c57d"}],"status":"published"},{"version":"2","sections":[{"title":"Введение","queue":0,"materials":[{"title":"Burp Suite: desktop editions","queue":0,"uuid":"272d9729-51f9-45c6-b706-5c8b8a5cbb14"}],"uuid":"9fd6659b-733c-4d0a-b852-55cec1d79a87"},{"title":"Начало работы","queue":1,"materials":[{"title":"Начало работы с Burp Suite","queue":0,"uuid":"fa2ad650-5553-4963-89c7-d8be4ca94d69"},{"title":"Загрузка и установка","queue":1,"uuid":"403fd7d8-ddb1-4aca-bdbd-2daae95fd7ba"},{"title":"Перехват HTTP трафика","queue":2,"uuid":"6df994be-80e6-49d4-a0c5-8d8ac11aebb2"}],"uuid":"488b831b-2f08-4c3d-a86e-7aedc164c57d"}],"status":"published"},{"version":"1","sections":[{"title":"Введение","queue":0,"materials":[{"title":"Burp Suite: desktop editions","queue":0,"uuid":"272d9729-51f9-45c6-b706-5c8b8a5cbb14"}],"uuid":"9fd6659b-733c-4d0a-b852-55cec1d79a87"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2023-10-30T06:26:13.640Z","updatedAt":"2023-11-02T20:12:24.432Z"},{"uuid":"4d9343b1-2c74-44a5-8f3f-5957635d8739","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Основы Vim для Новичков","description":"Курс \"Основы Vim для Новичков\" - это ваш первый шаг в мир эффективного текстового редактирования. Этот курс предназначен для тех, кто хочет освоить Vim, один из самых популярных и мощных текстовых редакторов в мире программирования. Мы начнем с основ - изучения интерфейса, основных команд и режимов работы Vim. Затем перейдем к более сложным темам, таким как настройка Vim под свои нужды, использование плагинов и автоматизация повседневных задач. По завершении курса вы не только уверенно будете пользоваться Vim, но и сможете настроить его под свои уникальные требования и рабочий процесс.\n\n\n\n[Playlist курса на Youtube](https://www.youtube.com/playlist?list=PLcjongJGYetkY4RFSVftH43F91vgzqB7U)\n\n[Автор курса](https://www.youtube.com/@devtalk7429)\n\n*Если вы являетесь автором курса,  и Ð
15½Ðµ хотите размещения на данном ресурсе - обратитесь в поддержку.*","image":"https://s3.amazonaws.com/coursesity-blog/2021/08/VIM_tutorials.png","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"uuid":"67c36262-55f1-4f58-9b3e-175c46821d5c","title":"Секция: Playlist","queue":0,"materials":[{"title":"Vim 01 - Основы","queue":0,"uuid":"97cdb806-03d7-41d1-9ee4-4906ecd01853"},{"title":"Vim 02 - Конфигурация и плагины","queue":1,"uuid":"3b71dde6-8f48-4930-a7fa-53f9c2b7a87b"},{"title":"Vim 03 - Плагины. Самое необходимое","queue":2,"uuid":"45b44593-11eb-41ba-b933-144c79e84849"},{"title":"Vim 04 - Окна","queue":3,"uuid":"ecfd08dd-91de-4499-afd6-2fa3f4bae92f"},{"title":"Vim 05 - Поиск и навигация","queue":4,"uuid":"8bc7158b-5bb1-4cce-b986-3551f941471e"},{"title":"Vim 06 - Vim + Tmux = ♥","queue":5,"uuid":"d2c42b7c-ba0d-4804-9799-914f2f326cb9"},{"title":"Vim 07 - Neovim","queue":6,"uuid":"bde7acd3-b8ab-46c9-aac0-4647a91c76c2"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2023-11-30T20:37:31.797Z","updatedAt":"2023-11-30T20:51:45.216Z"},{"uuid":"5c5d3bcb-dbdf-4cb0-8eda-3bac693b4129","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Modern Java - The Big Picture By Sander Mak","description":"Modern Java - The Big Picture By Sander Mak","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/Modern%20Java%20-%20The%20Big%20Picture%20By%20Sander%20Mak/preview.jpeg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"Modern Java - The Big Picture By Sander Mak","description":"Modern Java - The Big Picture By Sander Mak","sections":[{"title":"1. Course Overview","queue":0,"materials":[{"title":"1. Course Overview","queue":0,"uuid":"5337db4e-2ee2-4fab-8535-711b162741d6"}],"uuid":"8d0436f4-fa71-4919-9c0d-f128ffa0ffaa"},{"title":"2. Introducing the Java Platform","queue":1,"materials":[{"title":"1. Introduction","queue":0,"uuid":"b6522426-c32e-4946-9846-0e21deda1638"},{"title":"2. Common Misconceptions","queue":1,"uuid":"27524d04-e3e8-4750-96cd-c1318d556ed6"},{"title":"3. Defining the Java Platform","queue":2,"uuid":"ecf59b71-d245-446a-b3ae-5ef5a5b0fb66"},{"title":"4. Compiling and Running Java Code","queue":3,"uuid":"5b64023e-345d-4f68-bcc9-d57502933529"},{"title":"5. Summary","queue":4,"uuid":"55fc8a73-944d-47f0-a86e-34da16b264ec"}],"uuid":"f8a2c322-cb0d-45c9-8b2d-1a951ab012a0"},{"title":"3. Adopting Java","queue":2,"materials":[{"title":"1. Philosophy of Java - Portability and Simplicity","queue":0,"uuid":"048e15cc-e6f6-4c4f-8d00-27e7eae68952"},{"title":"2. Philosophy of Java - Openness","queue":1,"uuid":"ea618d09-ddf9-46e5-827d-90f505528a92"},{"title":"3. Choosing Java - When and Why","queue":2,"uuid":"f96fd207-af5b-40ad-9175-1c2679d1f376"},{"title":"4. Choosing Java - When Is Java Not the Right Choice","queue":3,"uuid":"eafbc47b-56a0-4964-afae-937138887c52"},{"title":"5. Comparing Java - C#.Net","queue":4,"uuid":"59ab5b78-fab2-4425-a3cd-2c874311356f"},{"title":"6. Comparing Java - CC++","queue":5,"uuid":"dfd7f50c-435a-4335-8c6a-26d66b7ac8c6"},{"title":"7. Comparing Java - Python","queue":6,"uuid":"546d29f2-fe2e-4dfb-b187-939e7ee9ffce"},{"title":"8. Comparing Java - JavaScript","queue":7,"uuid":"5da27e80-a876-4756-bc54-42048af310e6"},{"title":"9. Summary","queue":8,"uuid":"96941bf9-3ca6-4d53-98d5-9c46654e460c"}],"uuid":"d48a0ca7-28d4-4153-8380-cc84661390f7"},{"title":"4. From Desktop to Enterprise Java to the Cloud","queue":3,"materials":[{"title":"1. Desktop Java","queue":0,"uuid":"4deb9343-e3df-4913-8ce0-f514fe49327c"},{"title":"2. Enterprise Java","queue":1,"uuid":"17b4ebb9-d610-4838-9dbe-134b46e10958"},{"title":"3. Java in the Cloud","queue":2,"uuid":"fc189d19-48af-4fe5-9f75-69fe6350c64b"},{"title":"4. Android","queue":3,"uuid":"15cc33a4-a9df-4c33-bed6-68fae8213638"},{"title":"5. Summary","queue":4,"uuid":"97a9cb7c-b494-4e70-9e3a-ebd7a104021a"}],"uuid":"02624aa9-d864-4c29-b897-89bab36a6d1e"},{"title":"5. Popular Java Libraries","queue":4,"materials":[{"title":"1. Spring Framework","queue":0,"uuid":"20b757b4-c6ae-40db-a6ac-5b972589319b"},{"title":"2. Commonly Used Java Libraries","queue":1,"uuid":"b7b5a9a9-8658-42d3-8ebe-f8d91f7b152b"},{"title":"3. Java-based Data Processing","queue":2,"uuid":"d177c3c9-672a-4bde-9478-7a11e059a057"},{"title":"4. Summary","queue":3,"uuid":"d5bfb8ba-b66b-4dbf-b75b-c16d0ffca574"}],"uuid":"2d64f8e5-d868-42a9-b1f3-7aff69e9ba77"},{"title":"6. Practices and Common Tools","queue":5,"materials":[{"title":"1. IDEs","queue":0,"uuid":"641f04b8-bee7-4bbb-a6ba-aaa1222ff3aa"},{"title":"2. Unit Testing","queue":1,"uuid":"a1e8ccae-778e-40db-a3c1-eff76c7ba192"},{"title":"3. Build Tools","queue":2,"uuid":"eed56af9-1740-4c79-95f2-ce9cc49aa63e"},{"title":"4. Continuous Integration and Quality Control","queue":3,"uuid":"e6846e18-96d2-438d-9e34-911c5a56762f"},{"title":"5. Summary","queue":4,"uuid":"7f0a0f50-97b1-411a-bafa-1b6230df1bd6"}],"uuid":"33cc04d2-d586-4b81-94df-0edf87973928"}
15,{"title":"7. Examining Alternative JVM Languages","queue":6,"materials":[{"title":"1. Why Alternative JVM Languages","queue":0,"uuid":"1e2e38a3-c152-4daf-87b1-f677b1427a11"},{"title":"2. Groovy, Scala, and Kotlin","queue":1,"uuid":"21565314-05db-473e-858d-017a877d5e66"},{"title":"3. Course Wrap-up","queue":2,"uuid":"6a66a431-75c0-4cfd-9ba5-b80abdddd50d"}],"uuid":"6db4665a-d6e3-4ae9-9a29-7ac1183303ac"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-06-01T18:06:30.444Z","updatedAt":"2023-10-24T08:26:55.191Z"},{"uuid":"6d6e5090-28e6-4427-b58e-bae7ae6ed539","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"JavaScript Security - Best Practices By Marcin Hoppe","description":"JavaScript Security - Best Practices By Marcin Hoppe","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20Security%20-%20Best%20Practices%20By%20Marcin%20Hoppe/preview.jpeg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"JavaScript Security - Best Practices By Marcin Hoppe","description":"JavaScript Security - Best Practices By Marcin Hoppe","sections":[{"title":"02. Understanding JavaScript Security","queue":0,"materials":[{"title":"01. Introduction","queue":0,"uuid":"237afde3-5ed8-453b-8a03-756824489f66"},{"title":"02. How Browser Execute JavaScript Code","queue":1,"uuid":"263e39b9-b22b-41e8-a4da-b626d4d5c6b5"},{"title":"03. How Node.js Executes JavaScript Code","queue":2,"uuid":"2ea5d528-d855-43ad-bd1f-be744f0aa9d0"},{"title":"04. JavaScript Security Pitfalls","queue":3,"uuid":"251dd539-b11b-4c49-adb1-4ced7b6871fe"},{"title":"05. Sample Application","queue":4,"uuid":"cbf3bb83-6ecc-4f00-ac27-adb623f1598d"},{"title":"06. Code Walkthrough","queue":5,"uuid":"fba48a3f-fc21-4dbf-bb98-659c4f7eb9be"},{"title":"07. Loose Comparison Vulnerability","queue":6,"uuid":"1a7615be-f51f-483c-98c0-6d9491e98dfd"},{"title":"08. Exploiting the Vulnerability","queue":7,"uuid":"fe60be3d-5805-46f6-b8d3-ec2e8b7f2528"},{"title":"09. Fixing the Code","queue":8,"uuid":"0c6a3db7-5f04-49f3-8910-a9d303eec24a"},{"title":"10. Summary","queue":9,"uuid":"07c549c5-57b4-4ae7-bd7b-b7001b3f5a8c"}],"uuid":"f8791fa6-41e3-441c-90ed-c232d2df3992"},{"title":"1. Course Overview","queue":1,"materials":[{"title":"1. Course Overview","queue":0,"uuid":"a5bd8470-2353-442e-a89a-d4d6c92acbb0"}],"uuid":"99fdd010-38a3-41ba-a20d-ec534b78ec52"},{"title":"3. Preventing Code Injection Attacks","queue":2,"materials":[{"title":"1. Overview","queue":0,"uuid":"9938d0b7-7094-4a67-9a94-e04ada525d01"},{"title":"2. Dynamic Code Execution","queue":1,"uuid":"472bc4b6-5ae1-4072-9e11-f5567b5e17f7"},{"title":"3. Unsafe Functions","queue":2,"uuid":"852c403c-a326-4310-9504-0c8f5fa0109e"},{"title":"4. Finding Unsafe Code","queue":3,"uuid":"99678116-3c2e-4905-abcb-9057b79a5815"},{"title":"5. Exploiting the Vulnerability","queue":4,"uuid":"fcbbdbd5-1219-474c-95a5-09972b87f3cc"},{"title":"6. Impact of Code Injection Attacks","queue":5,"uuid":"00771fef-a9b9-4597-a000-3e3c5d70f97d"},{"title":"7. Fixing the Code","queue":6,"uuid":"62b06ed5-aef4-441c-b4ff-4d2cf1fe13a0"},{"title":"8. Unsafe Code in Third-party Libraries","queue":7,"uuid":"db97e0cd-f17b-4425-8039-e41baec2f80d"},{"title":"9. Summary","queue":8,"uuid":"457d08ea-496c-48a4-b787-420d684524c3"}],"uuid":"850596bb-97c7-456d-9520-9969fa07a591"},{"title":"4. Defending against Prototype Pollution","queue":3,"materials":[{"title":"1. Overview","queue":0,"uuid":"ec141f66-b4e7-4a77-a11b-66564bf66feb"},{"title":"2. Understanding Prototypes","queue":1,"uuid":"9f5a89d9-3a62-46ff-be3e-d4836d2a15bc"},{"title":"3. Polluting the Object Prototype","queue":2,"uuid":"04d7d9a2-76a7-4d15-b7c4-c39b388d2444"},{"title":"4. Finding Prototype Pollution in the Code","queue":3,"uuid":"7352292b-55e4-40a2-9987-0e4092f1b28a"},{"title":"5. Exploiting the Vulnerability","queue":4,"uuid":"439bc62f-0d8b-4346-bd2c-67e57da22ef6"},{"title":"6. Fixing the Code","queue":5,"uuid":"aa082134-95c3-4426-ad20-46277468ba2f"},{"title":"7. Introducing Prototype Pollution through 3rd Party Libraries","queue":6,"uuid":"3ca2cbfc-e95f-4acd-ba71-7da0aab6676e"},{"title":"8. Summary","queue":7,"uuid":"da33124f-28fc-4531-86a0-f082a156dc24"}],"uuid":"f7c1c29b-9a95-483d-8022-9cea7865e685"},{"title":"5. Testing Your Code","queue":4,"materials":[{"title":"1. Overview","queue":0,"uuid":"126ca4fd-2b9b-42d3-803e-720c9e311dac"},{"title":"2. Security Testing Techniques","queue":1,"uuid":"0b210144-92d0-4db2-9d20-1f49980b52a4"},{"title":"3. Finding Unsafe Code Using ESLint","queue":2,"uuid":"2ba51722-5ce0-46b7-afbd-c4d667c865b6"},{"title":"4. Detecting Prototype Pollution with Unit Tests","queue":3,"uuid":"04d76f26-9656-46c1-88a3-e525fd4516bf"},{"title":"5. Popular Security Testing Tools for JavaScript","queue":4,"uuid":"5086586b-70e5-4263-94e3-e234ec096473"},{"title":"6. Summary","queue":5,"uuid":"b3d3e053-7a11-409c-bdc6-78af67af5720"}],"uuid":"db81a0c4-15a6-443a-b430-41550ecaed97"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-05-02T11:01:47.612Z","updatedAt":"2023-10-24T
1508:27:28.173Z"},{"uuid":"78cb5ba0-8dbf-415d-b890-d3dff71a124a","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Базовый Python 3: Начало работы","description":"В этом курсе мы познакомим вас с основами языка Python, культурой разработки и важными частями стандартной библиотеки Python. Этот курс поможет вам разработать основу, необходимую для работы над любым проектом Python.","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/78cb5ba0-8dbf-415d-b890-d3dff71a124a/preview.webp","data":{"status":"active","courseContent":{"sets":[{"title":"Базовый Python 3: Начало работы","version":"1","description":"В этом курсе мы познакомим вас с основами языка Python, культурой разработки и важными частями стандартной библиотеки Python. Этот курс поможет вам разработать основу, необходимую для работы над любым проектом Python.","sections":[{"uuid":"5acba279-dcfa-44c6-acf7-cee946c29a63","title":"Обзор курса","queue":0,"materials":[{"title":"Обзор курса","queue":0,"uuid":"e40d5995-8572-4eb0-a4ca-4545aec90ced"}]},{"uuid":"74d12838-ecbc-4e5d-8042-58deae2ef58d","title":"Установка и запуск Python","queue":1,"materials":[{"title":"Проверка версии","queue":0,"uuid":"b00bfea5-a1f0-48ac-bcd9-91d79455fd54"},{"title":"Обзор секции - Установка и запуск Python","queue":1,"uuid":"4feeeded-3c3e-482a-a7fc-5e67035ddebd"},{"title":"Установка Python","queue":2,"uuid":"569e6b3e-67ca-419f-b465-6291af00e3f3"},{"title":"Взаимодействие с Python","queue":3,"uuid":"cf5293ed-2bf7-4e21-8477-f4f1efc9fe55"},{"title":"Важно о Пробелах","queue":4,"uuid":"274da469-4686-4357-8b62-b462de15f91a"},{"title":"Культура Python","queue":5,"uuid":"f0d990a5-3f33-4214-b437-fe7864ca79ae"},{"title":"Стандартная библиотека Python","queue":6,"uuid":"1b3206fe-675c-44ad-9711-dc19f9a038fc"},{"title":"Заключение секции - Установка и запуск Python","queue":7,"uuid":"fbafa114-1d44-4d54-befd-18160612a28e"}]},{"uuid":"71a4a620-dd19-4ae2-89ad-2c885e6be1a8","title":"Скалярные типы, операторы и поток управления","queue":2,"materials":[{"title":"Обзор секции - Скалярные типы, операторы и поток управления","queue":0,"uuid":"6d7469f6-73f1-4196-9197-2687e0d0ea91"},{"title":"Сравнение (Relational operator)","queue":1,"uuid":"13ab1974-69b4-4bd9-a520-541803e7346f"},{"title":"Поток управления (Control flow)","queue":2,"uuid":"7d43f153-7d7a-470b-b09e-2a0b616cb8ac"},{"title":"Цикл с предусловием (While loop)","queue":3,"uuid":"3a7d7af1-d614-4a51-ab7f-04e302b4bea5"},{"title":"Итоги секции - Скалярные типы, операторы и поток управления","queue":4,"uuid":"78b7c5c5-ee0c-42f9-b1e4-e34a55fb58b4"}]},{"uuid":"9ee3aca6-ff3f-49a7-9011-33c662b1ac5b","title":"Знакомство со строками, коллекциями и Итерацией","queue":3,"materials":[{"title":"Обзор секции - Знакомство со строками, коллекциями и Итерацией","queue":0,"uuid":"194dbcc9-1b5a-478f-a178-49e1056a4b1a"},{"title":"Строки (String)","queue":1,"uuid":"8a708503-9d53-4cbc-8ffa-bb156014b034"},{"title":"Строковые литералы (String Literals)","queue":2,"uuid":"d98d792b-6fc7-4feb-9c73-ba0b67b87da0"},{"title":"Байты (Bytes)","queue":3,"uuid":"761b50e6-1dc9-495c-9d82-b765d4a09057"},{"title":"Списки (list)","queue":4,"uuid":"dc41602b-cbd9-4956-aaca-d71a1ce5b5f8"},{"title":"Словари (dict)","queue":5,"uuid":"f9045fbf-ddd8-4304-8265-a5111af44f70"},{"title":"Цикл For","queue":6,"uuid":"7e2e8160-fb49-4199-8c19-0afdeba9aa3b"},{"title":"Собираем все воедино","queue":7,"uuid":"195d232a-0a1d-4586-8a51-f8360c5d1c11"},{"title":"Итоги секции - Знакомство со строками, коллекциями и Итерацией","queue":8,"uuid":"e2b1d973-33bc-4717-b961-c1c23d28bd3e"}]},{"uuid":"271eec6a-2e71-428c-8797-4c15a504fa13","title":"Модульность","queue":4,"materials":[{"title":"Обзор секции - Модульность","queue":0,"uuid":"eca9f545-d196-4a2b-8cf7-6d7c5e754a1c"},{"title":"Модули (Modules)","queue":1,"uuid":"6431b216-7443-48e4-aec1-4b6bf0147bd3"},{"title":"Функции (Functions)","queue":2,"uuid":"569d0338-7e11-4e2f-9222-80ab030233c8"},{"title":"__name__","queue":3,"uuid":"09788b0a-716d-42eb-ac52-ac85558b0c73"},{"title":"Модель исполнения (Execution Model)","queue":4,"uuid":"385324e9-3a2d-4994-9315-778beac7b17e"},{"title":"Zen момент","queue":5,"uuid":"3e0e7a1f-7c06-45dc-b076-c74eb9a8d896"},{"title":"Docstring","queue":6,"uuid":"88b8105e-0a72-41ed-81b9-d0ed28a17737"},{"title":"Комментарии","queue":7,"uuid":"5b2bf95b-3907-4d59-b7c7-b2192ab51b05"},{"title":"Shebang","queue":8,"uuid":"4bb83864-3910-43d4-8c4a-926bef9e4466"},{"title":"Итоги секции - Модульность","queue":9,"uuid":"e4c7110d-3a48-4c78-b92b-c33859719acb"}]},{"uuid":"b2669e37-aacc-4358-a635-32bf735ab18a","title":"Объекты и Типы","queue":5,"materials":[{"title":"Обзор секции - Объекты и типы","queue":0,"uuid":"5e5cb457-a6de-4bd9-b4c8
15-ea4d2609e995"},{"title":"Передача аргументов и возвращаемые значения","queue":1,"uuid":"cbaee71f-a895-4a2d-a193-59f6e77076e3"},{"title":"Аргументы функции","queue":2,"uuid":"26993a53-ec3c-4e20-907f-9eed0c855bcb"},{"title":"Система типов Python","queue":3,"uuid":"94df064e-d07d-41e0-963a-ad84f49eed23"},{"title":"Области видимости (Scopes)","queue":4,"uuid":"c6ca33bf-b821-4149-862e-5b3fab0dd57d"},{"title":"Zen момент","queue":5,"uuid":"96222982-57c9-4f6b-abf0-169a5efb9c42"},{"title":"Все есть Объект","queue":6,"uuid":"e698e8f7-a2e0-4029-b8b2-b76dfdd61cad"},{"title":"Итоги секции - Объекты и Типы","queue":7,"uuid":"40a87f5a-14cd-44e2-aace-df75a4b60942"}]},{"uuid":"42f0ece8-e4a0-4738-9077-39b4bfbf8e84","title":"Встроенные коллекции","queue":6,"materials":[{"title":"Обзор секции - Встроенные коллекции","queue":0,"uuid":"10ff1d9b-7f79-420a-aeab-dcaf554bb65a"},{"title":"Кортежи (Tuples)","queue":1,"uuid":"e0d873b1-f1d3-44e9-a549-8d48f33cdac5"},{"title":"Строки (Strings)","queue":2,"uuid":"a1286aee-debf-4c35-a9a2-e84a4906874d"},{"title":"Ranges","queue":3,"uuid":"e6cefce2-f0ee-4529-9083-2a08ef7732f8"},{"title":"Списки (Lists)","queue":4,"uuid":"1388e38a-c78c-45ce-a9a7-2cfa7dd04cdc"},{"title":"Словари (Dictionaries)","queue":5,"uuid":"78d172f3-7fa3-4884-aef9-27daa84d50fe"},{"title":"Множества (Sets)","queue":6,"uuid":"c55812ef-de2c-4a6b-89c3-21098feb0d0f"},{"title":"Протоколы (Protocols)","queue":7,"uuid":"6dbc9227-096f-4a42-a798-a5b102349333"},{"title":"Итоги секции - Встроенные коллекции","queue":8,"uuid":"43d40844-b841-408c-8897-4a53f632cd4e"}]},{"uuid":"f27e1f99-bbad-4eb2-9819-60da9e9af7d5","title":"Исключения","queue":7,"materials":[{"title":"Обзор секции - Исключения","queue":0,"uuid":"9594ba7c-2e6b-42fd-bf01-51117be0b918"},{"title":"Исключения и контроль потока","queue":1,"uuid":"66963ac8-d540-49a6-8637-a4214ae298cd"},{"title":"Обработка исключений","queue":2,"uuid":"b23b224e-167e-4f40-b883-064fbe4afe62"},{"title":"Исключения и ошибки программиста","queue":3,"uuid":"b7034865-997d-40c2-8a7e-8577845f4041"},{"title":"Повторное создание исключений","queue":4,"uuid":"b385e534-bd29-4449-b20f-5f4b517a0deb"},{"title":"Исключения как частью API","queue":5,"uuid":"a7139391-c8e5-4a2e-baad-d79a12806d82"},{"title":"Исключения и Протоколы","queue":6,"uuid":"13bd380b-0f68-4afb-a6b1-19e58d16e3f5"},{"title":"Избегайте явных проверок типов","queue":7,"uuid":"66cc06fa-be54-4c88-8191-55d9f2323465"},{"title":"Легче попросить прощения, чем разрешения","queue":8,"uuid":"13208064-8de5-462b-8d5d-f31a915b934b"},{"title":"Действия по очистке","queue":9,"uuid":"499bdabf-f6c8-47d2-a748-fafbecb47892"},{"title":"Код, специфичный для конкретной платформы","queue":10,"uuid":"74ab1620-99c0-44c3-acae-0fc71526b6a1"},{"title":"Итоги секции - Исключения","queue":11,"uuid":"a2637c14-4cd3-4891-8466-7a43f9bff1b3"}]},{"uuid":"18d291ad-59ec-44ac-929d-d37d5d9b72e0","title":"Iteration и Iterables","queue":8,"materials":[{"title":"Обзор секции - Iteration и Iterables","queue":0,"uuid":"e9e0ea38-d8e5-4f99-bd40-3f25efc3b866"},{"title":"Включения List и Set","queue":1,"uuid":"2ebbdb19-a8d7-47bf-82f9-a918bd8f1745"},{"title":"Включение Словарей (Dictionary)","queue":2,"uuid":"34c697e5-52ce-4758-9262-061719eb3928"},{"title":"Включение Фильтрации","queue":3,"uuid":"c7dc1895-a7b8-405d-84e2-a3a02fc8fc02"},{"title":"Zen момент - Iteration и Iterables","queue":4,"uuid":"447d0f75-da93-4ebe-9fcb-eade7a4fe928"},{"title":"Протоколы Итерации","queue":5,"uuid":"635d2e28-d42f-4d0b-83bd-829354af97da"},{"title":"Функции Генераторы","queue":6,"uuid":"be6f4c69-eaff-462e-b482-85d0891e5dd9"},{"title":"Состояния в генераторах","queue":7,"uuid":"31740b37-fd
155c-4b0c-a02c-465a12a1b4ea"},{"title":"Лень и бесконечность","queue":8,"uuid":"a8d17f16-3876-4590-a5a2-e796d4e1a31a"},{"title":"Выражения генератора","queue":9,"uuid":"56047541-4623-45f9-a124-48e9954496ee"},{"title":"Инструменты перебора (Iteration tools)","queue":10,"uuid":"a8a1e4a7-a4ab-4aec-bf2e-2c620a3f698f"},{"title":"Итоги секции - Iteration и Iterables","queue":11,"uuid":"97618e41-cfbf-4029-80e4-27b1c3f2c578"}]},{"uuid":"1f0e4257-f58c-499d-84ee-363ff4732899","title":"Классы","queue":9,"materials":[{"title":"Обзор секции - Классы","queue":0,"uuid":"d9cc12f5-d1b2-46be-a86c-92f72528ea64"},{"title":"Классы","queue":1,"uuid":"e8578c11-8190-4338-8f7a-e5ee5f6daf20"},{"title":"Определение классов","queue":2,"uuid":"ea552c5d-3305-49f6-b424-89d5b110e30f"},{"title":"Методы инстансов","queue":3,"uuid":"78e08f76-817b-41c5-9b33-5575677af9ba"},{"title":"Инициализация экземпляра","queue":4,"uuid":"ed953abe-4dbd-454c-bbcf-05bde38259fc"},{"title":"Первый Класс","queue":5,"uuid":"8eeaaf44-65bb-4b76-8b08-e2956b4468b1"},{"title":"Сотрудничающие классы","queue":6,"uuid":"ac7d398a-f550-4766-8a6f-2f01365c599c"},{"title":"Zen момент - Классы","queue":7,"uuid":"740b153b-7d54-4e18-96a5-c66705c21ef3"},{"title":"Бронирование мест","queue":8,"uuid":"8802c7fd-0d65-4b4c-ac80-c951f7622fe1"},{"title":"Методы имплементации деталей","queue":9,"uuid":"c089a736-b396-43d7-8f8c-608d6c0f2b74"},{"title":"Объектно-ориентированный дизайн с функциональными объектами","queue":10,"uuid":"c06f98be-00d4-4aec-8539-1de69fd7eeed"},{"title":"Полиморфизм и Утиное типирование (Duck Typing)","queue":11,"uuid":"2f7a4dc8-6605-492b-bda8-418ad5f3c8c8"},{"title":"Наследование и Implementation Sharing","queue":12,"uuid":"3937d052-f27c-451c-acdc-a2efc1603837"},{"title":"Итоги секции - Классы","queue":13,"uuid":"93e8c626-3c4f-4466-82f4-97a0233b321a"}]},{"uuid":"be907fdf-7e0e-4f05-8775-b77afdaef305","title":"Файловый ввод-вывод и управление ресурсами","queue":10,"materials":[{"title":"Обзор секции - Ввод-вывод","queue":0,"uuid":"bedd64ae-4651-469f-8bfb-e4793006054c"},{"title":"Открываем файлы","queue":1,"uuid":"4c595bed-4278-43ac-9b5f-bd842a52a882"},{"title":"Записываем Текст","queue":2,"uuid":"6ac95e01-ae19-4f23-b99a-b7efd7e2231f"},{"title":"Читаем Текст","queue":3,"uuid":"9e3c7007-a235-4e78-add4-536a8efbc4ad"},{"title":"Добавление текста","queue":4,"uuid":"94ca1836-c2c9-458e-8c3d-7f1db0661e70"},{"title":"06. Iterating over Files","queue":5,"uuid":"7deaf255-e599-47e0-b826-60b46ac376e8"},{"title":"Закрытие файлов с помощью Finally","queue":6,"uuid":"d81c6dfd-cf79-403d-8ae2-54223b04ec03"},{"title":"With блоки","queue":7,"uuid":"e85888e7-b3df-474f-af95-c36ff64f2f6f"},{"title":"Zen момент - Ввод-вывод","queue":8,"uuid":"7462fcbd-9e31-4f58-83a3-e5588640b00c"},{"title":"Бинарные файлы","queue":9,"uuid":"21b5686c-a85e-4c14-b1c6-5e75b94010d2"},{"title":"Побитовые операторы","queue":10,"uuid":"85b3c78d-084b-45d4-8c40-1b44cb7c4126"},{"title":"Пиксельные данные","queue":11,"uuid":"9ace7eb9-fc88-4634-b3ff-f7f7b1f748ab"},{"title":"Чтение бинарных данных","queue":12,"uuid":"7d038ced-220f-4a18-92ff-c8354bce921e"},{"title":"Файлоподобные объекты","queue":13,"uuid":"62539186-6c03-4e17-b8a6-2b07186780ce"},{"title":"Менеджеры контекста","queue":14,"uuid":"cd4b046c-9356-49ef-abd8-42cfe735fd7b"},{"title":"Итоги курса","queue":15,"uuid":"b1184ed3-758b-4952-98eb-c9af758fc8a6"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-12-01T15:55:23.281Z","updatedAt":"2023-10-24T
1508:26:17.930Z"},{"uuid":"8093f206-9a5f-41a8-8ccf-5a122cecb955","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"JavaScript Arrays and Collections By Jeff Batt","description":"JavaScript Arrays and Collections By Jeff Batt","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20Arrays%20and%20Collections%20By%20Jeff%20Batt/preview.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"JavaScript Arrays and Collections By Jeff Batt","description":"JavaScript Arrays and Collections By Jeff Batt","sections":[{"title":"1. Course Overview","queue":0,"materials":[{"title":"1. Course Overview","queue":0,"uuid":"e76c2250-b3dd-424d-b623-bf8965b29a8b"}],"uuid":"ea40e04c-3a49-4932-b207-7e51b11623c9"},{"title":"2. Methods for Working with Arrays","queue":1,"materials":[{"title":"1. Version Check","queue":0,"uuid":"78d731db-c76b-42d8-acd7-b90b6480a363"},{"title":"2. Module Introduction","queue":1,"uuid":"73339e3e-b9f0-4dcd-815b-837e14f3b18f"},{"title":"3. Reviewing the Sample Project","queue":2,"uuid":"c1a4acd1-f0c7-4a5b-bfbd-b19334094375"},{"title":"4. Quick Intro to Chart.js","queue":3,"uuid":"84f525b2-7b20-4c7a-93f3-3de0ce0ca40c"},{"title":"5. Create an Array from a List of Arguments","queue":4,"uuid":"7189b815-df1a-4cc8-adad-d635f8e8f1bc"},{"title":"6. Using the Spread Operator with Arrays","queue":5,"uuid":"42ad8574-7203-43e8-9b27-772ecc601bd5"},{"title":"7. Using Array.find and findIndex to Find a Value","queue":6,"uuid":"db05afdb-3183-4e8a-ab11-03fc7f67afa7"},{"title":"8. Using Array Fill","queue":7,"uuid":"fa53611f-333e-44b0-930a-f42d374ab910"},{"title":"9. Methods for Iterating through Arrays","queue":8,"uuid":"266b7581-95f7-466a-85d3-d97e7bec7500"},{"title":"10. Module Conclusion","queue":9,"uuid":"7c63ec85-ccd0-4d6c-9403-ad03018171fe"}],"uuid":"fec9539d-81fd-419e-a843-8fc1fb9a67db"},{"title":"3. Working with Sets","queue":2,"materials":[{"title":"1. Module Introduction","queue":0,"uuid":"3821566e-5491-49ea-95c4-d642ad871b83"},{"title":"2. Reviewing Data Collections","queue":1,"uuid":"879474c2-ac31-4d4e-babe-359d823b229c"},{"title":"3. Introducing Sets","queue":2,"uuid":"b29ee789-e183-4d9d-b53b-4eef346b9f39"},{"title":"4. Adding and Removing Values to a Set","queue":3,"uuid":"7ed31c9b-3916-4946-95e5-f109997e6907"},{"title":"5. Iterating a Set","queue":4,"uuid":"aeec1163-bb82-4bd6-8d49-c24271252f63"},{"title":"6. Updating the Graphs","queue":5,"uuid":"2e965497-d871-49a0-8173-2e48dddd8c4a"},{"title":"7. Differences between a Set and WeakSet","queue":6,"uuid":"5f871b08-0a4c-4f03-9d57-84ad3761dd0f"},{"title":"8. Working with WeakSets","queue":7,"uuid":"24e9362a-9461-4de7-83eb-450022bbdf7c"},{"title":"9. Module Conclusion","queue":8,"uuid":"70780fde-de1d-4e19-8e81-a94924a074f3"}],"uuid":"2fdd8ed2-535f-4f21-996f-0091f6d53f1f"},{"title":"4. Creating and Using Maps","queue":3,"materials":[{"title":"1. Module Introduction","queue":0,"uuid":"2c259976-c9ea-4063-b1ca-7d18ad9d4bea"},{"title":"2. Introducing Maps","queue":1,"uuid":"f1efd274-58a2-42e9-943f-39add5a0a001"},{"title":"3. Adding and Removing Values in a Map","queue":2,"uuid":"dbf9ae1d-73fa-43f8-a6d6-1d085d9074f1"},{"title":"4. Iterating through a Map","queue":3,"uuid":"29b28470-65ad-487a-a40e-7bb19c95ca0a"},{"title":"5. Difference between Maps and Objects","queue":4,"uuid":"5efb4e3e-6334-48ef-a8c5-c3081da6d3b7"},{"title":"6. Understanding the Difference of Maps  and WeakMaps","queue":5,"uuid":"23d911f4-556f-4191-80b5-56e56f273487"},{"title":"7. Module Conclusion","queue":6,"uuid":"83e34cb4-eb1c-4c58-bea6-f114eb3bce75"}],"uuid":"7a01f806-6002-4430-931a-37595be81621"},{"title":"5. Exploring Typed Arrays","queue":4,"materials":[{"title":"1. Module Introduction","queue":0,"uuid":"cc717dfa-07c7-42cd-a397-965a0219c42d"},{"title":"2. Defining Typed Arrays","queue":1,"uuid":"65ec888f-38ea-4654-b267-2d03d9c5e7b7"},{"title":"3. Typed Arrays vs. Standard Arrays","queue":2,"uuid":"a9009e5c-d377-40c2-afe5-51a59745ef2b"},{"title":"4. Creating Typed Array Buffers","queue":3,"uuid":"0ec63936-3e55-4710-a56f-bf39c9c75042"},{"title":"5. Accessing Typed Arrays with Views","queue":4,"uuid":"5de4d10e-c5bc-4523-8e96-ad8c5d822e4e"},{"title":"6. Module Recap","queue":5,"uuid":"db99826c-0762-449d-ab17-dace874fdb03"},{"title":"7. Course Conclusion","queue":6,"uuid":"c325571c-fec2-43bd-9485-603fee06b691"}],"uuid":"5f504d3c-1d38-4b5c-86b3-168f0b4286f8"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-05-01T18:36:55.085Z","updatedAt":"2023-10-24T
1508:27:44.888Z"},{"uuid":"820ce75d-ed75-43a5-9669-afd89d49c9e3","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"React Context - Эффективное управление состоянием приложения","description":"Если вы хотите мастерски овладеть одним из наиболее мощных инструментов для управления состоянием в React, то этот курс - именно для вас.\n\nReact Context - это неотъемлемая часть современной разработки приложений на React. Этот инструмент, позволяющий передавать данные через всё дерево компонентов без необходимости передачи пропсов через каждый промежуточный компонент. Это значит, что вы сможете писать более чистый, эффективный и поддерживаемый код.\n\nЧто вы узнаете на этом курсе:\n\n- Изучите основы создания и использования React Context\n- Узнаете о всех способах потребления контекста\n- Мы будем переопределять контекст, а так же создавать несколько контекстов одновременно\n- Посмотрим на особенности использования React Context\n- Изучим исходный код React Context в библиотеке React\n","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/820ce75d-ed75-43a5-9669-afd89d49c9e3/preview.jpeg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"title":"Введение","queue":0,"materials":[{"title":"Введение","queue":0,"uuid":"c8e7a020-c97c-41b2-a33c-6f3c4be41b59"},{"title":"Подготовка","queue":1,"uuid":"31caf33e-b393-4ec0-8373-32901eb3db0a"}],"uuid":"e023e6b5-3943-49f9-8bf2-00679b37305e"},{"title":"Основной материал","queue":1,"materials":[{"title":"Проблемы при использовании Props","queue":0,"uuid":"fb340bca-1985-4db1-adb5-3b2807b7c189"},{"title":"Воспроизведение проблемы использования Props","queue":1,"uuid":"fe0ae40a-0874-4fd3-94a0-c733efc3615e"},{"title":"Обзор React Context Api","queue":2,"uuid":"ae03f8d8-1973-40e0-a556-2584fb2f4b1c"},{"title":"Создание Контекста","queue":3,"uuid":"f9c21099-17ad-4a1f-95a0-453dbac80662"},{"title":"Создание Потребителя для Функциональных компонентов","queue":4,"uuid":"6c2255e5-9942-482e-a0bd-6ab2d96e69ce"},{"title":"Создание Потребителя для классовых компонентов","queue":5,"uuid":"509c7110-16c6-419f-83c1-9ff2592c1f9e"},{"title":"Создание универсального Потребителя (Universal Consumer)","queue":6,"uuid":"deadd90c-7430-4cac-b345-b2402beb89cb"},{"title":"Обновление значения контекста","queue":7,"uuid":"3d4634fe-4fa3-4bc4-9f4b-5273e4b3a258"},{"title":"Переопределение контекста","queue":8,"uuid":"f7690111-e77e-4259-893a-087e147c53a8"},{"title":"Множественные контексты","queue":9,"uuid":"11d9712e-b2c9-4616-9c48-0baf72813d2c"},{"title":"Итоги секции","queue":10,"uuid":"edb6c3f3-15a8-4af4-8bf6-ec93291bf675"}],"uuid":"88b53413-4e84-4fa6-b0db-1250938fe4f9"},{"title":"Погружение в детали","queue":2,"materials":[{"title":"Введение","queue":0,"uuid":"f853f229-d90e-44ab-bb9f-94c1df72637c"},{"title":"Использование контекста","queue":1,"uuid":"1c9b3a16-18f0-4630-a951-7e663b3bc46f"},{"title":"Исходный код","queue":2,"uuid":"8fa12964-2806-43a3-9f94-12723280321d"},{"title":"Особенности использования","queue":3,"uuid":"fdf0c138-b307-42a2-b568-f14f21ae6a70"},{"title":"Критика","queue":4,"uuid":"3705078c-215a-41bd-a62f-3dc0a36a4a60"},{"title":"Заключение","queue":5,"uuid":"1db3bfec-8d53-489c-93b4-2c477d0e6764"}],"uuid":"bac94e8f-f2d0-41f1-bd2d-b11a3ab4250e"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2023-10-08T11:02:43.969Z","updatedAt":"2023-10-09T10:38:43.981Z"},{"uuid":"a5410ebb-6cad-4e7e-b114-1da92568d33b","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Javascript Generators and Iterators By Marques Woodson","description":"Javascript Generators and Iterators By Marques Woodson","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/Javascript%20Generators%20and%20Iterators%20By%20Marques%20Woodson/preview.jpeg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"Javascript Generators and Iterators By Marques Woodson","description":"Javascript Generators and Iterators By Marques Woodson","sections":[{"title":"1. Course Overview","queue":0,"materials":[{"title":"1. Course Overview","queue":0,"uuid":"f81448f3-1574-4217-9dbc-9c40614ec262"}],"uuid":"03ad6717-b638-4eee-bfe7-ad4218871610"},{"title":"2. Iterators and Iterables","queue":1,"materials":[{"title":"1. What Are Iterators","queue":0,"uuid":"e70da71b-cf93-499e-92cf-0125709d4fc9"},{"title":"2. What Is an Iterable","queue":1,"uuid":"3a5c6b1b-7178-469d-8fab-8889e1633c6d"},{"title":"3. Iterating through JSON Data","queue":2,"uuid":"1c30d38e-df15-44fa-bfbc-f8296c8555b6"},{"title":"4. Custom Iterators","queue":3,"uuid":"6ff6166e-aef3-45a0-afd3-bd6a6c65cba9"},{"title":"5. Iterating Over Functions","queue":4,"uuid":"f2c48705-cf2e-489d-9795-aabb6f385830"},{"title":"6. Return Method and Saving Logs to a Database","queue":5,"uuid":"95ca4c25-da55-4252-a974-bbe6004c75e5"}],"uuid":"f79ea412-eed4-4696-946d-7eb62710ead2"},{"title":"3. Generator Functions","queue":2,"materials":[{"title":"1. Intro to Generator Functions","queue":0,"uuid":"1d8f450c-e359-4cb2-a9f3-33035e50ac17"},{"title":"2. Converting Iterators to Generators","queue":1,"uuid":"8251d042-d434-47d4-a117-aec4aff5b218"},{"title":"3. Yield Delegation","queue":2,"uuid":"f22809a5-bd77-4b75-b982-986b98d54bdb"},{"title":"4. Error Handling and Early Completion","queue":3,"uuid":"e304db16-7108-4bd7-a681-8fe3c6cd6b01"}
15],"uuid":"54cc828f-486a-4a38-b8d6-ca9c9ce18401"},{"title":"4. Real-world Examples and Cancelable Async Flows (CAF)","queue":3,"materials":[{"title":"1. Cancelable Async Flows","queue":0,"uuid":"4a5ff172-fa60-4c6a-a6c5-77ff5039b743"},{"title":"2. Summary and Course Wrap-up","queue":1,"uuid":"3d7cafcb-46d0-47c6-87c9-aaec368ca9c1"}],"uuid":"fbb4bd46-43c2-491d-8645-499168778bd9"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-05-02T10:38:35.941Z","updatedAt":"2025-04-15T04:41:24.033Z"},{"uuid":"b11f8f23-f232-453b-9d57-58a415f62020","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Redux Saga от DevMagazine","description":"Полный курс по Redux Saga.\n\nDevMagazine - это канал о веб-разработке в разных ее проявлениях... Архитектура, фронтенд, бэкенд и многое другое.","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/b11f8f23-f232-453b-9d57-58a415f62020/preview.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"uuid":"9e4cd406-956c-44dc-86ad-137ca2c99b54","title":"Секция: Playlist","queue":0,"materials":[{"title":"Что такое Redux Saga? Полный курс Redux-Saga (Часть 1/18)","queue":0,"uuid":"346ccfcf-adda-428b-bec7-36edd7d2d533"},{"title":"Как использовать КАНАЛЫ в Redux Saga? [Redux Saga курс]","queue":1,"uuid":"52102d30-64df-4f44-a649-4cd0e72ed602"},{"title":"Как отличить блокирующие и неблокирующие эффекты в Redux Saga - call и fork","queue":2,"uuid":"27df8ebd-fe03-496f-ae02-4bb667d26939"},{"title":"Что такое Fork и Spawn в Redux Saga?","queue":3,"uuid":"1a7936ae-3687-490b-a579-e6fd70e2e0f8"},{"title":"Когда использовать take, takeEvery, takeLatest, takeLeading в Redux Saga?","queue":4,"uuid":"98e153bf-2a76-40ba-b570-abdb3723c035"},{"title":"Каналы событий в Redux Saga - Event channel","queue":5,"uuid":"e6d7a01d-4fd8-4020-830a-955792128885"},{"title":"Обычные каналы в Redux Saga - Сhannel","queue":6,"uuid":"f8ee6452-a7a3-4a43-afaf-0a0fa26284a6"},{"title":"Буферы каналов в Redux Saga","queue":7,"uuid":"799ad269-b199-4f71-9279-10e9be1030fe"},{"title":"Как сделать Debounce и Throttle в Redux Saga","queue":8,"uuid":"df61d089-cb6e-41a7-a864-a5cdb186d2ac"},{"title":"Как внедрить зависимости в middleware Redux Saga?","queue":9,"uuid":"5261f382-73c8-4c92-9fe6-99ff30365908"},{"title":"Отличия Apply и Call в Redux Saga","queue":10,"uuid":"c86d57c4-8f1e-4e1b-a2f0-7451fa4a0792"},{"title":"Как запустить несколько саг в Redux Saga?","queue":11,"uuid":"4b39790b-8ee5-4437-8b82-4ffc6c5f54a0"},{"title":"Как получить данные из стора в Redux Saga?","queue":12,"uuid":"a20b2768-f146-490c-87d9-591003647e55"},{"title":"Как комбинировать саги с RACE и ALL в Redux Saga?","queue":13,"uuid":"aa50d34d-e9cb-4bc7-920c-3a473302777c"},{"title":"Тестирование Redux Saga","queue":14,"uuid":"57b09c9b-46b9-467f-bc71-aff11f13193b"},{"title":"Как тестировать ветвления в Redux Saga?","queue":15,"uuid":"0a65d416-df09-4775-a64c-d66c8c8cea14"},{"title":"Как тестировать Redux Saga? Full Saga testing","queue":16,"uuid":"e179880b-3060-440d-b56d-6d5b69c65a61"},{"title":"Как тестировать Redux Saga? Тестирование fork","queue":17,"uuid":"5c0fa792-99ec-40cc-8c79-4b59075044ca"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2024-09-05T00:03:17.213Z","updatedAt":"2024-09-05T00:08:31.384Z"},{"uuid":"b3e42984-a4d8-481f-b3f4-c91c05e4e345","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Linux Crash Course","description":"Серия «Ускоренный курс Linux» (ранее известная как серия «Linux Essentials») раскрывает важные концепции Linux, по одному видео за раз.","image":"https://i.ytimg.com/vi/DOVsoWJAxuM/maxresdefault.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"uuid":"84c5d567-476f-456c-aac0-851f8e9da734","title":"Секция: Playlist","queue":0,"materials":[{"title":"Linux Crash Course - usermod","queue":0,"uuid":"4df36dad-ec81-44d6-a231-805b84337607"},{"title":"Linux Crash Course - sudo","queue":1,"uuid":"e49e097f-58e2-44f8-8353-bbc3310b9c2d"},{"title":"Linux Crash Course - htop","queue":2,"uuid":"48c7d806-dccd-4d5d-8615-1fbbe954d5c6"},{"title":"Linux Crash Course - The ps Command","queue":3,"uuid":"89b22687-4006-499c-b539-423c52a721ee"},{"title":"Linux Crash Course - Data Streams (stdin, stdout \u0026 stderr)","queue":4,"uuid":"502dfa2e-fca0-4806-b620-94d49f47e60d"},{"title":"Linux Crash Course - nano (command-line text editor)","queue":5,"uuid":"5daa0c28-c65d-494c-8acf-f15cfb53fd3a"},{"title":"Linux Crash Course - User Account \u0026 Password Expiration","queue":6,"uuid":"dfc805df-b6fc-4474-8244-a59ede6a57a1"}
15,{"title":"Linux Crash Course: Background (bg) and Foreground (fg)","queue":7,"uuid":"445a198d-d70d-4506-9597-3e5f4abc275f"},{"title":"Linux Crash Course - Bash Aliases","queue":8,"uuid":"41da64fd-1102-4d51-8e91-16276e4b1855"},{"title":"Linux Crash Course - Public Key Authentication","queue":9,"uuid":"a25dad34-c9f5-49e7-9eca-33bffd0ce039"},{"title":"Linux Crash Course - Scheduling Tasks with Cron","queue":10,"uuid":"c52c3136-7cf5-47be-b6e5-b8a151e6d2e0"},{"title":"Linux Crash Course - awk","queue":11,"uuid":"cfe3a23d-bc92-4ff2-9119-555c7145f74f"},{"title":"Linux Crash Course - The sed Command","queue":12,"uuid":"cc3212c1-caa7-48d3-b3e8-070f72f36457"},{"title":"Linux Crash Course - Managing Groups","queue":13,"uuid":"3a22e02f-a62e-4e4c-99a3-3e7c87b48a2d"},{"title":"Linux Crash Course - The /etc/fstab file","queue":14,"uuid":"1c60bf72-6c9a-43f4-acba-153e8c563902"},{"title":"Linux Crash Course -  Managing Users","queue":15,"uuid":"92b4b6ca-b349-4998-8a5a-6e3fddaed8e4"},{"title":"Linux Crash Course - Formatting \u0026 Mounting Storage Volumes","queue":16,"uuid":"7c80a1aa-dba4-4880-9c71-f7453c4da71c"},{"title":"Linux Crash Course - systemd: Using the systemctl command","queue":17,"uuid":"7036a68b-a486-4e0f-9df6-f00eb4f6d134"},{"title":"Linux Crash Course - Symbolic Links","queue":18,"uuid":"80ec067f-c8b5-4ffb-8951-41e6966e8e1f"},{"title":"Linux Crash Course - The find command","queue":19,"uuid":"5cbdb989-0235-4702-825a-fd61349a5a10"},{"title":"Linux Crash Course - Understanding File \u0026 Directory Permissions","queue":20,"uuid":"2a442229-2f8d-468b-a610-cc1e8ca6451d"},{"title":"Linux Crash Course: Navigating the Linux Filesystem","queue":21,"uuid":"31b848cd-c11f-4036-979f-03ccc41e6dca"},{"title":"Linux Crash Course - The Arch User Repository (AUR)","queue":22,"uuid":"488d64e3-6a34-4ed6-84b5-70e4387bf7eb"},{"title":"Linux Crash Course - The Pacman Command","queue":23,"uuid":"92bf9f91-b5fd-4f2c-93cc-4ee1b88ec4f5"},{"title":"Linux Crash Course - The apt Command","queue":24,"uuid":"8dc683f9-6114-4341-a706-bd9e14e71e64"},{"title":"Linux Crash Course - Setting the Hostname of your Linux Workstation or Server","queue":25,"uuid":"91eb1a72-09d5-4615-af06-053dc2765a3e"},{"title":"Linux Crash Course - Installing Updates","queue":26,"uuid":"db4f9161-7524-43fb-b753-321d97b8840d"},{"title":"Linux Crash Course - The sar Command","queue":27,"uuid":"a4de2295-de06-4e63-8c02-92f500c31ae9"},{"title":"Linux Crash Course - The grep Command","queue":28,"uuid":"70597680-aad7-4a4b-ba49-d7dc7c7ee225"},{"title":"Linux Crash Course - The echo Command","queue":29,"uuid":"09de68eb-f178-4a28-af9a-6e8a932724d9"},{"title":"Linux Crash Course - Bash History","queue":30,"uuid":"d2f5fbec-911b-46e8-93ff-d2820b14502a"},{"title":"Linux Crash Course - The dnf Command","queue":31,"uuid":"18e72e0d-b9b6-4a31-a829-67c7943b69c7"},{"title":"Linux Crash Course - Understanding Memory and Swap Usage","queue":32,"uuid":"c5057435-c9dd-40df-8e18-0bed9e845eef"},{"title":"Linux Crash Course - The ping Command","queue":33,"uuid":"ffd6c415-03d2-4cd1-a304-aad315ca3a4d"},{"title":"Linux Crash Course - The wget Command","queue":34,"uuid":"3c8e35f4-5169-42e1-bcd9-aa7ccd127b07"},{"title":"Linux Crash Course - The df and du Commands","queue":35,"uuid":"a9758f98-e51b-49f2-9add-941d72bbeaf4"},{"title":"Linux Crash Course - The head and tail Commands","queue":36,"uuid":"5131b36e-401e-4e66-b283-f0a6fc8d99a2"},{"title":"How to Archive Folders in Linux (tar and gzip tutorial) - Linux Crash Course Series","queue":37,"uuid":"ddbf42c0-54f3-4c44-a3db-fdabc4b88022"},{"title":"How to Interpret Load Average in Linux (Linux Crash Course Series)","queue":38,"uuid":"9445c549-b144-43a8-91d1-6e3b0a9268f0"},{"title":"The cat Command in Linux (Featuring Real Cats) - Linux Crash Course Series","queue":39,"uuid":"93af2b77-c8a0-4491-96cd-2965dec73e9f"},{"title":"Linux Crash Course - The diff Command","queue":40,"uuid":"b590063d-9ad3-491f-a0cb-97b8108b4b0d"},{"title":"Linux Crash Course - Understanding Logging","queue":41,"uuid":"400fdf64-000c-4f61-87dc-11db30bcb0f3"},{"title":"What is $PATH on a Linux Shell? (The Linux Crash Course Series)","queue":42,"uuid":"e9b6b324-105d-4d8d-b1cc-5eb06587bcfc"},{"title":"Linux Crash Course Series - How to Share Files via SSHFS","queue":43,"uuid":"c0bdeabf-d89f-48eb-a069-60b86e6584f4"},{"title":"Linux Crash Course - The \"watch\" Command","queue":44,"uuid":"5a4e61fa-ec1e-4e91-a3cc-af57610b0756"},{"title":"How to Use The ls Command on the Linux Command Line","queue":45,"uuid":"eedd1b6f-71a8-4caa-b90a-132369b01cc2"},{"title":"Demystifying Hostnames and Domain Names in Linux, and How Server Naming Benefits You","queue":46,"uuid":"2cdecae3-c977-4a0c-970b-bd95a7e115c4"},{"title":"Linux Crash Course - What is a \"Distribution\" of Linux?","queue":47,"uuid":"3b56e334-6aca-420e-a580-0a16e28603e8"},{"title":"Linux Crash Course - Desktop Environments","queue":48,"uuid":"2962d3b7-4774-4df5-be81-4478b7bd6f0c"},{"title":"Linux Crash Course - Connecting to Linux Servers via SSH","queue":49,"uuid":"edcf0711-1cae-4b0e-b9d5-48a5297fc2ee"}]}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2023-12-03T19:46:30.727Z","updatedAt":"2023-12-03T19:49:58.320Z"},{"uuid":"bb49eba7-a5b4-4fda-9eda-7fc93e353e58","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"JavaScript - Functions By Prateek Parekh","description":"JavaScript - Functions By Prateek Parekh","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20-%20Functions%20By%20Prateek%20Parekh/preview.png","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"JavaScript - Functions By Prateek Parekh","description":"JavaScript - Functions By Prateek Parekh","sections":[{"title":"1. Course Overview","queue":0,"materials":[{"title":"1. Course Overview","queue":0,"uuid":"fcceaf26-fb1d-4ce2-ab10-5f3422c820a1"}],"uuid":"189ead29-ee0e-4eb2-939e-cba915ddd7cc"}
15,{"title":"2. Writing Modular Code with Functions","queue":1,"materials":[{"title":"1. Introduction","queue":0,"uuid":"6c36668a-cc0f-46ca-a52a-b39fa8a16f4b"},{"title":"2. Setting up the Environment","queue":1,"uuid":"0d339f47-b5da-4f7b-80d0-7cbc8d7815db"},{"title":"3. Introducing Functions","queue":2,"uuid":"7062b2b5-849a-4c95-a82a-c202ab6f5801"},{"title":"4. Understanding Function Scope","queue":3,"uuid":"1f7cc5e3-9dd1-4ade-9901-8b5c2563e14e"},{"title":"5. Understanding Block Scope","queue":4,"uuid":"339f3476-6684-49c6-abde-4f132f015e53"},{"title":"6. Immediately Invoked Function Expression","queue":5,"uuid":"f0f10c8d-4482-4c66-9f47-048f1ae4befc"},{"title":"7. How Closures Work","queue":6,"uuid":"5b1a5a05-3079-4e24-a99d-151346a1e789"},{"title":"8. Summary","queue":7,"uuid":"3e5435be-e6a0-4121-ab55-544f5ceb875a"}],"uuid":"8982bd87-1987-4bbc-973f-77d8f6b74fed"},{"title":"3. Improving Readability with Arrow Functions","queue":2,"materials":[{"title":"1. Overview","queue":0,"uuid":"0ccebcf5-16fd-4cc5-8d2d-b07c813f5507"},{"title":"2. Introducing Arrow Functions","queue":1,"uuid":"39eeb76f-4e57-4338-bc94-1f487135d912"},{"title":"3. Writing Arrow Functions","queue":2,"uuid":"13a0119e-293d-4083-b0ea-3e4442adddda"},{"title":"4. Demo - Add 2 numbers","queue":3,"uuid":"70c09b08-ec9d-43be-83b4-424446a1debb"},{"title":"5. Behavior of This Keyword","queue":4,"uuid":"e6cda5e8-3fe7-437d-8140-240f1794101f"},{"title":"6. Demo - Using This Keyword","queue":5,"uuid":"0b5dcccf-5cad-4a2a-b067-5fba11315d36"},{"title":"7. Summary","queue":6,"uuid":"9307c922-1d09-481e-a752-e46e6061f505"}],"uuid":"e8d5f906-15d8-4272-a16e-cbbee4b1d5ea"},{"title":"4. Changing Function Context and Built-in Functions","queue":3,"materials":[{"title":"1. Overview","queue":0,"uuid":"fd0c4d7c-49c7-4b74-9947-0477db056c47"},{"title":"2. Understanding Function Context","queue":1,"uuid":"42409b6e-35c3-4df0-9d12-3bb8db3d50bf"},{"title":"3. What Is the call Method","queue":2,"uuid":"f9ae7f0e-07e0-404a-aedf-5f151e22aaf4"},{"title":"4. What Is the apply Method","queue":3,"uuid":"1de80566-6865-41e0-9964-c9ecdbbbc608"},{"title":"5. What Is the bind Method","queue":4,"uuid":"c4247704-8404-4264-a19b-42e32c209c9f"},{"title":"6. Using Built-in Functions","queue":5,"uuid":"fd5d6f71-f08e-4cb1-8171-62c0764ac7ec"},{"title":"7. Summary","queue":6,"uuid":"1de1dcea-65fb-4535-96fb-66581c144be9"}],"uuid":"a071e601-cb44-4541-ab42-1d4df8ae4ff5"},{"title":"5. Constructing Rest Parameters and the Spread Operator","queue":4,"materials":[{"title":"1. Overview","queue":0,"uuid":"3f3255ab-4244-447e-8801-5ee96bed542e"},{"title":"2. What Are Default Parameters","queue":1,"uuid":"9008b4c7-f3cc-4fc3-bc4e-d4dfeb289adc"},{"title":"3. Constructing Rest Parameters","queue":2,"uuid":"3b321323-43c2-495c-8522-579edcec72b9"},{"title":"4. Using the Spread Operator","queue":3,"uuid":"6bc0a8bb-8034-42a6-bf15-818ca137a3c6"},{"title":"5. Summary","queue":4,"uuid":"81aa615c-276d-4521-b82c-e4170c3ef83a"}],"uuid":"284249ff-1315-4f2a-aa79-bc599ec303c8"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-05-01T18:22:47.583Z","updatedAt":"2023-10-24T08:27:51.237Z"},{"uuid":"d3b71a38-c6f8-4164-b06f-bf7538da6bdf","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"JavaScript Objects, Prototypes, and Classes By Jim Cooper","description":"JavaScript Objects, Prototypes, and Classes By Jim Cooper","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/JavaScript%20Objects%2C%20Prototypes%2C%20and%20Classes%20By%20Jim%20Cooper/preview.jpeg","data":{"status":"active","courseContent":{"sets":[{"version":"1","title":"JavaScript Objects, Prototypes, and Classes By Jim Cooper","description":"JavaScript Objects, Prototypes, and Classes By Jim Cooper","sections":[{"title":"1. Course Overview","queue":0,"materials":[{"title":"1. Course Overview","queue":0,"uuid":"c62213dd-3058-42df-aadc-0e044b7a5304"}],"uuid":"74370740-9c88-4744-9eaf-c736fb9cf6eb"},{"title":"2. Creating JavaScript Objects","queue":1,"materials":[{"title":"1. Introduction","queue":0,"uuid":"fea65a78-54a5-4c75-8482-1e4a59930175"},{"title":"2. Getting Started","queue":1,"uuid":"bd5abce4-6c01-4e48-b7e1-57773923b578"},{"title":"3. Using Object Literals to Create JavaScript Objects","queue":2,"uuid":"9847dfc5-b964-4cb7-97aa-6c36c8ce64ae"},{"title":"4. The Dynamic Nature of JavaScript","queue":3,"uuid":"12f42828-93d1-4624-89f2-f27817e59237"},{"title":"5. Adding Functions to Objects","queue":4,"uuid":"643589a6-6b15-438f-87f5-e66036ffd395"},{"title":"6. Object Literal Property Shorthand","queue":5,"uuid":"4f4537da-21b7-453e-9d12-a4e11cf5e0f5"},{"title":"7. Object Literal Method Declaration Shorthand","queue":6,"uuid":"76c72609-e9d0-4ddb-8633-6992023d406a"}
15,{"title":"8. Inspecting Object Properties with Object.keys() and for...in","queue":7,"uuid":"9b698f47-db4a-4cdc-9826-de389c6b3e00"},{"title":"9. Object Equality and the Object.is() Function","queue":8,"uuid":"db836aa0-0ed2-4596-99dd-d576c2bc25a3"},{"title":"10. Object Assign and Immutability","queue":9,"uuid":"c636a0d8-84de-494b-94e3-3a16da1aa418"},{"title":"11. Using Constructor Functions to Create Objects","queue":10,"uuid":"728e0348-ccce-45e7-a3b0-3ebcd8a2aa56"},{"title":"12. Using Object.create()","queue":11,"uuid":"20109014-9964-464a-a4a7-a056ec31bc88"},{"title":"13. Summary","queue":12,"uuid":"a53fa5ab-c60a-41cd-9621-9684781f12f9"}],"uuid":"b9ba3abf-d896-492b-97fa-e29eebf6a089"},{"title":"3. JavaScript Object Properties","queue":2,"materials":[{"title":"1. Introduction","queue":0,"uuid":"f5fcbc29-644e-464e-b53f-38cf6a4f2a5d"},{"title":"2. Using Bracket Notation to Access JavaScript Properties","queue":1,"uuid":"3016ccaa-a4ea-4b65-b0aa-67e9dc305ae6"},{"title":"3. Modifying Properties with Property Descriptors","queue":2,"uuid":"0b1b752f-dcac-4c07-bf70-84ca9bcce260"},{"title":"4. Using the Writable Attribute","queue":3,"uuid":"6c82c462-1adc-4a80-89c5-41777bce30fd"},{"title":"5. Using the Enumerable Attribute","queue":4,"uuid":"3a7c2f46-4d97-4410-aef3-98f105714dba"},{"title":"6. Using the Configurable Attribute","queue":5,"uuid":"0ef8ad31-64ae-4ccf-a7a0-d8e0e278683e"},{"title":"7. Creating Property Getters and Setters","queue":6,"uuid":"233c6fed-3978-4a0e-a222-7ee33dd0b30f"},{"title":"8. Summary","queue":7,"uuid":"bf69feeb-948b-4235-ad25-efd1d760c6b5"}],"uuid":"b249a178-5e89-4a6a-a2e6-143a6277c3c2"},{"title":"4. JavaScript Prototypes and Interfaces","queue":3,"materials":[{"title":"1. Introduction","queue":0,"uuid":"d04df0b6-81a3-4249-bb37-fd6ca3b1a792"},{"title":"2. What Is a Prototype","queue":1,"uuid":"544dcc26-655e-44f6-b842-52e91172f4ff"},{"title":"3. Instance vs. Prototype Properties","queue":2,"uuid":"a52fb2a5-8a46-45da-8e87-fb419eae5e6b"},{"title":"4. A Graphical Overview of Prototypes","queue":3,"uuid":"8af8ae3f-941b-4c5b-aa97-5cb9567ed713"},{"title":"5. Changing a Functions Prototype","queue":4,"uuid":"6282b54c-12f7-43b8-a6e5-559258da01df"},{"title":"6. Multiple Levels of Inheritance","queue":5,"uuid":"fe931bb9-1f8d-48ce-9dfc-09c57248a017"},{"title":"7. Creating Your Own Prototypal Inheritance Chains","queue":6,"uuid":"a67646ce-d4ba-46f3-acff-d83922677764"},{"title":"8. Summary","queue":7,"uuid":"6265ef44-8321-4605-b6a4-e9a3400d05e6"}],"uuid":"4d4d3a98-9416-4567-920e-7b97fe5fe36b"},{"title":"5. JavaScript Classes","queue":4,"materials":[{"title":"1. Introduction","queue":0,"uuid":"9331488f-464c-493a-a7c9-b67cd006df18"},{"title":"2. Creating Objects with Classes","queue":1,"uuid":"5c1a9e32-d292-456b-8604-2066da36dfc6"},{"title":"3. Creating Getters and Setters with Classes","queue":2,"uuid":"ebe52395-2543-479b-82bd-274a730e9bf4"},{"title":"4. Adding Functions to Classes","queue":3,"uuid":"3c286482-2d68-4370-b9a1-b61894ba3165"},{"title":"5. Modifying Property Descriptors on Classes","queue":4,"uuid":"66414f28-8cc4-46d5-9c76-de5ef27e15d2"},{"title":"6. Using Inheritance with Javascript Classes","queue":5,"uuid":"2d718a0a-ab81-4e43-9a09-89a23f992d75"},{"title":"7. Using Static Properties and Methods","queue":6,"uuid":"eee34cdf-de1c-4078-a08c-f5392baa81da"},{"title":"8. Summary","queue":7,"uuid":"e4477e8f-172b-4d71-8375-6d9967e9b44b"}],"uuid":"5140f15e-b940-41b5-90b7-0b7b330f4125"},{"title":"6. Using Built-in JavaScript Objects","queue":5,"materials":[{"title":"1. Introduction","queue":0,"uuid":"5f716643-1c04-41a1-852b-dea0cb5845da"},{"title":"2. Using the JavaScript Math Object","queue":1,"uuid":"af965a53-0453-42dd-954c-c09d34734202"},{"title":"3. Managing Dates with the Date Object","queue":2,"uuid":"d931ebb6-7b61-4eb7-9a90-41c9a9808129"},{"title":"4. Validating Strings with the RegExp.test() Function","queue":3,"uuid":"090758a0-08bc-4d15-9ef0-cd1c677f7f25"},{"title":"5. Searching Strings with the RegExp.exec() Function","queue":4,"uuid":"af30bd28-f27a-406f-8c89-e62b1a5514d7"},{"title":"6. Summary","queue":5,"uuid":"99257ca9-d386-40b2-b672-b646849e5b1f"}],"uuid":"41dc2145-4e9d-4889-94b8-7c80393aada9"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2022-05-01T17:56:20.986Z","updatedAt":"2023-10-24T
1508:28:03.857Z"},{"uuid":"e8a68e40-40ff-44f5-a100-f9380b2efc4f","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"English: Pronouns - Местоимения (Курс в разработке/дополняется)","description":"Местоимения - это слова, которые используются вместо существительных или имен, чтобы избежать их повторения и сделать речь более естественной. Например, вместо того чтобы повторять имя человека несколько раз, можно использовать местоимение \"он\" или \"она\".\n\nВ этом курсе вы изучите основные местоимения в Английском языке.\n\n* Личные местоимения (Personal pronouns)\n* Притяжательные местоимения (Possessive pronouns)\n* Объективные местоимения (Object pronouns)\n* Отражательные местоимения (Reflexive pronouns)\n* Указательные местоимения (Demonstrative pronouns)\n* Вопросительные местоимения (Interrogative pronouns)\n* Неопределённые местоимения (Indefinite pronouns)\n* Взаимные местоимения (Reciprocal pronouns)","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/e8a68e40-40ff-44f5-a100-f9380b2efc4f/preview.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"title":"Местоимения","queue":0,"materials":[{"title":"Что такое местоимения?","queue":0,"uuid":"8886ebdf-a9dd-469e-9a3b-4ea4708656a3"},{"title":" Субъект и Объект","queue":1,"uuid":"c735fc02-a063-45d9-97a1-36e4ebf365fb"},{"title":"Падежи - Cases","queue":2,"uuid":"7897a9f9-5971-4b26-aa39-c1cde4e37d18"},{"title":"Группы местоимений","queue":3,"uuid":"f928b043-0693-4d22-875f-57f993812e1a"}],"uuid":"cab3df67-81ff-45cb-8256-d55230937e55"},{"title":"Личные местоимения (Personal pronouns)","queue":1,"materials":[{"title":"Введение","queue":0,"uuid":"0c6e1f76-fd7e-4296-9cb3-823e15823677"},{"title":"I - [aɪ] - Я","queue":1,"uuid":"111382a0-20a6-4763-bc4c-30b5181aaa9d"},{"title":"You - [juː] - (ты, вы)","queue":2,"uuid":"26d7a0f0-7487-408c-803a-17d190f9b1b1"},{"title":"He - [hiː] - (он)","queue":3,"uuid":"6fc6a3d7-a69e-4c7c-bfc4-1a875fff311e"},{"title":"She - [ʃiː] - (она)","queue":4,"uuid":"7d862cf0-749e-4964-b0d8-870b279a5b88"},{"title":"it - [ɪt] - (оно)","queue":5,"uuid":"4ffaccb6-e89b-4d43-a760-f91f45f84f70"},{"title":"They - [ðeɪ] - (они)","queue":6,"uuid":"3164756d-cf15-4964-a08c-d9a0fb86ecee"},{"title":"We - [wiː] - (мы)","queue":6,"uuid":"e0f2a06e-77ba-473b-a4df-65da13da69dc"},{"title":"Me - [miː] - (меня, мне)","queue":7,"uuid":"4a9b5c97-f12d-4de1-8da7-9a037939a588"},{"title":"You - [juː] - (тебя, тебе, вас, вам)","queue":8,"uuid":"77f56ef5-0376-444b-b575-1955593d2c49"},{"title":"Him - [hɪm] - (его, ему)","queue":9,"uuid":"06458f42-5731-49d6-b7b9-cadd1607510c"},{"title":"Her - [hɜː] - (её, ей)","queue":10,"uuid":"c1cfbd19-c2ad-4839-888f-1472ccf9fb1a"},{"title":"It - [ɪt] - (его, ему, её, ей для предметов или животных)","queue":11,"uuid":"590f3aa1-d5da-414f-8eab-07fffd5b1ae6"},{"title":"Us - [ʌs] - (нас, нам)","queue":12,"uuid":"fcfbaf0b-a743-4d6c-b371-06a01105d984"},{"title":"Them - [ðɛm] - (их, им)","queue":13,"uuid":"51d24b3a-cbf9-4527-b25c-b8ac66d9b68f"}],"uuid":"d993ce48-eda4-4bba-8dc3-ce9fe3d5027a"},{"title":"Притяжательные местоимения (Possessive pronouns)","queue":2,"materials":[{"title":"Обзор","queue":0,"uuid":"040efc14-d3c9-49fb-b151-be17eb455406"},{"title":"My - [maɪ] - (мой, мои)","queue":1,"uuid":"458f8676-30d5-49f9-a97d-e5a0a9bf85c4"},{"title":"Your - [jɔː] - (твой, твоя, твоё, твои; ваш, ваша, ваше, ваши)","queue":2,"uuid":"35874249-37b8-4d1c-8f7f-9a891ee78382"},{"title":"His - [hɪz] - (его)","queue":3,"uuid":"b3acb6b0-34a9-49df-9cbb-840dc
1574ed015"},{"title":"Her - [hɜː] - (eё)","queue":4,"uuid":"ba120a58-1eed-4700-8ec2-e56fd29e98d6"},{"title":"Its - [ɪts] - (его, её, свои, своё, своей, своим, своего)","queue":5,"uuid":"bf205173-527e-41ec-9c2b-48fe37a58994"},{"title":"Our - [ˈaʊə] - (наш, наша, наше, наши)","queue":6,"uuid":"38338d3a-262d-4c46-a2e8-2993d8704699"},{"title":"Their - [ðeə] - (их, свои, свою)","queue":7,"uuid":"0d270c14-d29c-40ed-b98b-d74ade5765e0"}],"uuid":"00854a15-2746-4b3c-a724-9001cb96f0f0"},{"title":"Указательные местоимения (Demonstrative Pronouns)","queue":3,"materials":[{"title":"Обзор","queue":0,"uuid":"1946d44e-9e29-434e-b7a9-03a36c86125c"},{"title":"This - [ðɪs] - (это, эта, этот)","queue":1,"uuid":"82da34d8-abe6-4d2f-9023-c80d050bb8e8"},{"title":"These - [ðiːz] - (Эти, те)","queue":2,"uuid":"7f26e0e0-b7ea-4bfe-91f8-df998c88109c"},{"title":"That - [ðæt] - (тот) (Секция 4 Материал 4)","queue":3,"uuid":"7cac6b33-f2f3-457d-b160-c6fe188d5652"},{"title":"Those - [ðəʊz] - (те, то)","queue":4,"uuid":"7615bea4-4fc0-41dd-a153-9de53d8c01d6"}],"uuid":"12f1a26a-ac4f-4ddd-954f-4575b7af8796"},{"title":"Вопросительные местоимения (Interrogative Pronouns)","queue":4,"materials":[{"title":"Обзор","queue":0,"uuid":"574c7b08-c1d5-42c4-9ac6-d315c4398dd4"},{"title":"Who - [huː] - (кто)","queue":1,"uuid":"cac7f62e-745b-479f-92f4-434994064e54"},{"title":"Whom - [huːm] - (кому)","queue":2,"uuid":"0312ccc1-a4ba-4b50-a084-0ca97a5034e9"},{"title":"Whose - [huːz] - (чей)","queue":3,"uuid":"41f49b8c-ed78-4f97-8b17-7cc1f8bf68bb"},{"title":"What - [wɒt] - (что)","queue":4,"uuid":"636e1a7c-187a-4cdd-b515-c2eba4458d05"},{"title":"Which - [wɪtʃ] - (который)","queue":5,"uuid":"a4840974-3b33-4682-8426-6d11bead4a51"},{"title":"Составные вопросительные местоимения","queue":6,"uuid":"fa6fbf02-1e74-4fe0-9cc0-d90fe947dcfe"}],"uuid":"911f6ff7-7281-4564-b891-c6767bb0d405"}],"status":"published"}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2024-01-05T08:58:36.523Z","updatedAt":"2024-01-18T20:04:58.856Z"},{"uuid":"63c6fa4e-356c-48c7-888b-b59e741b2aa8","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"Git: Профессиональный курс","description":"Вы — разработчик, тестировщик, аналитик, DevOps или просто человек, который работает с кодом? Тогда у вас нет выбора: вы должны знать Git.\n\nGit — это не просто «система контроля версий». Это краеугольный камень всей современной разработки программного обеспечения. На нём держатся проекты во всех языках программирования, на всех уровнях: от одиночных pet-проектов до масштабных enterprise-систем. Без знания Git вы не попадёте ни в одну серьёзную команду. И уж точно не станете лидером в своей профессии.\n\nНо есть одна проблема. Уровень знаний **Git** у большинства специалистов крайне низкий. Почти все умеют делать **git clone** и **git commit**, но пугаются при первом же конфликте, при первом rebase, при любом «сломавшемся» merge’е. Они не знают, как устроен Git внутри, как восстановить удалённую ветку, как работать с несколькими рабочими директориями, как использовать Git по максимуму.\n\nЭтот курс исправит это!\n\n**🎯 Цель курса**\n\nСделать из вас не просто человека, который «умеет пользоваться Git», а уверенного мастера, который:\n\n- Понимает архитектуру Git на уровне низкоуровневых команд (plumbing)\n- Свободно работает с конфликтами, ребейзами, stash’ами, cherry-pick’ами\n- Умеет отлаживать историю, находить ошибки (bisect, blame, reflog)\n- Работает с GitHub, bare-репозиториями, знает, как Git устроен на сервере\n- Знает всё про reset, checkout, worktree, submodules, gpg-подписи, hooks, .gitattributes, и многое другое\n- Чувствует себя на голову выше, чем большинство коллег\n\n**📚 Формат обучения**\n\n- 🗓️ 12 недель, по 2 живых видеоурока в неделю (всего 24 занятия)\n- Каждое занятие — живое общение с преподавателем и группой\n- Все уроки сохраняются в виде записей на платформе [Alfa-Brain]\n- К каждому уроку:\n- ✍️ подробный текстовый разбор\n- 🔁 флеш-карточки для повторения материала\n- 🧠 практические задания (включая задания в реальных GitHub-репозиториях)\n- 📈 В конце курса — экзамен и индивидуальная обратная связь\n\n**🔍 Что вы узнаете?**\n\n- Как работает Git изнутри\n- Как решать любые конфликты\n- Как уверенно работать с ветками, даже в запутанных проектах\n- Как откатить всё что угодно — безопасно\n- Как восстановить то, что кажется утерянным\n- Как читать и редактировать историю проекта\n- Как использовать Git как профессиональный инструмент, а не просто как коробку с командочками\n\n**🔥 Почему этот курс действительно прокачает вас**\n\n- Вы больше никогда не будете бояться Git\n- Вы поймёте, как думать как Git, а не просто “тыкать команды”\n- Вы сможете помогать другим — и выделяться как эксперт\n- Вы станете разработчиком, который понимает, что делает, а не просто “следует инструкциям”\n- Вы развяжете себе руки и откроете дверь к более ответственным, высокооплачиваемым задачам\n\n**💼 Кому подойдёт курс?**\n\n- Новичкам, которые только начинают работать с Git\n- Опытным разработчикам, которые хотят разобраться глубже\n- QA-инженерам, DevOps’ам, менеджерам, которые хотят перестать зависеть от других\n- Всем, кто хочет выйти на новый уровень профессионализма\n\n**🎓 Финал: экзамен и сертификат**\n\nВ конце курса вас ждёт экзамен — индивидуальный проект + практические задания, в которых вы покажете всё, чему научились.\n\n**🔐 БоÐ
15½ÑƒÑÑ‹**\n- Доступ к закрытому сообществу выпускников курса\n- Практика с настоящими публичными репозиториями\n- Умение работать с bare-репозиториями — то, чего не умеет 90% разработчиков\n\n**🧠 Не просто курс. Это — инвестиция в профессиональный рост**\n\nGit — это не «одна из тем». Это навык, который будет с вами везде и всегда. Хотите быть уверенными, быстрыми, ценными и свободными в любой ситуации с кодом?\n\nПриходите. Этот курс сделает из вас мастера Git!","image":"https://storage.yandexcloud.net/alfa-code-public-bucket/Courses/63c6fa4e-356c-48c7-888b-b59e741b2aa8/preview.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"title":"Введение","queue":0,"materials":[{"title":"Установка и настройка Git (Лекция)","queue":0,"uuid":"b63072d6-ed5e-42ab-b422-5ca241d90ed6"},{"title":"Установка и настройка Git (Текст)","queue":1,"uuid":"f3562486-69ed-4584-bdd0-3be4f41a8347"}],"uuid":"f3476750-5066-412a-812d-fd49897904cb"},{"title":"Основы Git: первые шаги","queue":1,"materials":[{"title":"Инициализация проекта и первый коммит (Лекция)","queue":0,"uuid":"9fd0873d-20fa-4550-a450-ac6f6030421a"},{"title":"Инициализация проекта и первый коммит (Текст)","queue":1,"uuid":"8ee2edec-31f2-4541-925e-40ea24184cf5"},{"title":"Ветки и переключение между ними (Лекция)","queue":2,"uuid":"f6bd5efb-7bf1-4fe0-b1a2-ad0c42937701"},{"title":"Ветки и переключение между ними (Текст)","queue":3,"uuid":"b743a47b-ae70-4fc2-bdc8-abc3ad12a06c"},{"title":"Работа с GitHub (Лекция)","queue":4,"uuid":"9d718b27-edb3-420c-9dc9-2973336ebb3e"},{"title":"Работа с GitHub (Текст)","queue":5,"uuid":"66d69bbc-3356-4835-abaf-4efaa70f8ed8"}],"uuid":"0cc0a8a6-0a20-43b2-8319-dc9e55801e0a"},{"title":"Как работает Git под капотом","queue":2,"materials":[{"title":"Архитектура Git и виды объектов (Лекция)","queue":0,"uuid":"83c1c816-ef83-4526-934b-5110d01bd61b"},{"title":"Архитектура Git и виды объектов (Текст)","queue":1,"uuid":"b30692cf-108b-4e8c-a628-7475cc3f9e21"},{"title":"Работа с объектами вручную (Лекция)","queue":2,"uuid":"0341bd9d-9650-449d-936c-aa5d19632661"},{"title":"Работа с объектами вручную (Текст)","queue":3,"uuid":"784c814a-50c8-48a8-bba2-192dec33f18e"},{"title":"Индекс (staging area), Hunk и diff (Лекция)","queue":4,"uuid":"ae81a7c4-6677-429e-894a-70bb580099c3"},{"title":"Индекс (staging area), Hunk и diff (Текст)","queue":5,"uuid":"3fd28d6b-f468-4722-b69c-148bc67e0cee"},{"title":"Работа с историей и просмотр изменений (Лекция)","queue":6,"uuid":"07192a92-5b17-4c2c-a128-b639d1686c4c"},{"title":"Работа с историей и просмотр изменений (Текст)","queue":7,"uuid":"309ea88e-4098-40f0-944c-09d20bcd601d"}],"uuid":"2cbbc5cf-e45b-4662-b20c-723350f8cd0b"},{"title":"Слияния, rebase и конфликты","queue":3,"materials":[{"title":"Слияние веток и стратегии merge (Лекция)","queue":0,"uuid":"01a3cd1c-adfa-44ae-8eca-8e79a5e692e3"},{"title":"Слияние веток и стратегии merge (Текст)","queue":1,"uuid":"020d7701-1081-44c0-826b-8a88a9e3af49"},{"title":"Rebase и интерактивный rebase (Лекция)","queue":2,"uuid":"f355d41e-6527-4a5f-8a18-c2f7c0554221"},{"title":"Rebase и интерактивный rebase (Текст)","queue":3,"uuid":"9dee66c7-31a9-4399-8112-9bf1883e826b"},{"title":"Откаты и переписывание истории (Лекция)","queue":4,"uuid":"fcf75e36-9cd5-4579-8098-e42a21ca9ce2"},{"title":"Откаты и переписывание истории (Текст)","queue":5,"uuid":"c71588d0-266b-4b99-8057-449b982f8bcc"}],"uuid":"ab5220fb-a988-4654-88d1-751fbbfac525"},{"title":"Анализ, поиск и диагностика","queue":4,"materials":[{"title":"Git blame, shortlog и diff-статистика (Лекция)","queue":0,"uuid":"008ca677-66d6-4b20-b93b-a0b9b0ede810"},{"title":"Git blame, shortlog и diff-статистика (Текст)","queue":1,"uuid":"d1f102b5-86aa-486c-bd22-92ab02bf9fcc"},{"title":"Поиск багов через git bisect (Лекция)","queue":2,"uuid":"e793f29e-4228-42e0-837f-232709ede007"},{"title":"Поиск багов через git bisect (Текст)","queue":3,"uuid":"8988885c-137f-41cb-946b-af2ca0d4164d"},{"title":"Работа с тегами (Лекция)","queue":4,"uuid":"ff51a471-bdae-4e4b-a566-d7cbb7212591"},{"title":"Работа с тегами (Текст)","queue":5,"uuid":"cbb8ba7a-b9f1-4e88-92f3-1dce8db93867"}],"uuid":"7b8eac27-cb57-4d40-bafc-873050314d9a"},{"title":"Оптимизация, организация и расширенные возможности","queue":5,"materials":[{"title":"Git stash и временное сохранение (Лекция)","queue":0,"uuid":"e5433d6c-5401-4474-bcb5-a153b0008b77"},{"title":"Git stash и временное сохранение (Текст)","queue":1,"uuid":"17961fcb-5008-40c2-83bb-82d369dc3a77"},{"title":"Git worktree (Лекция)","queue":2,"uuid":"3f801caf-aa55-4198-bd8b-64c7da645385"},{"title":"Git worktree (Текст)","queue":3,"uuid":"47d9ff60-78f1-44c9-9943-e295e8c06c4c"},{"title":"Submodules и Subtree (Лекция)","queue":4,"uuid":"67ab0a8d-5267-4032-8aff-3fd33416dd44"},{"title":"Submodules и Subtree (Текст)","queue":5,"uuid":"4d179a64-5085-4aec-8a5f-7568ebf90d1c"},{"title":"Git gc, repack и pack-файлы (Лекция)","queue":6,"uuid":"a24d1503-98f9-4854-a065-243524068aad"},{"title":"Git gc, repack и pack-файлы (Текст)","queue":7,"uuid":"b49d8d33-cdef-4d50-9edb-85871939d152"},{"title":".gitignore, .gitattributes и merge-драйверы (Лекция)","queue":8,"uuid":"e13d6d99-13bc-4b66-ab77-831decf7e394"},{"title":".gitignore, .gitattributes и merge-драйверы (Текст)","queue":9,"uuid":"52192791-32a9-4317-bf16-a02d00140787"}],"uuid":"cd0d3b5b-3664-43cd-93e0-f2a5a1fcbd39"},{"title":"Безопасность и автоматизация","queue":6,"materials":[{"title":"Подпись коммитов (Лекция)","queue":0,"uuid":"05d33107-1071-4135-9fba-6929063007b8"},{"title":"Подпись коммитов (Текст)","queue":1,"uuid":"7976df90-4b75-4a0d-b301-1850f2948624"},{"title":"Git hooks (Лекция)","queue":2,"uuid":"01976c95-f4e8-4c90-853f-e0cbfbe7649b"},{"title":"Git hooks (Текст)","queue":3,"uuid":"cef2e677-7fca-4494-aaa1-a9038f1e85ca"}],"uuid":"f78d0f27-20b6-42d9-908d-9b361b71cc25"},{"title":"Совместная работа и CI/CD","queue":7,"materials":[{"title":"Bare-репозитории (Лекция)","queue":0,"uuid":"1a5ffdcf-f5e3-438a-8667-254d283a0193"},{"title":"Bare-репозитории (Текст)","queue":1,"uuid":"0b8e1b4f-2462-4f33-9e58-3cc94daa3deb"},{"title":"Совместная работа в команде (Лекция)","queue":2,"uuid":"38a47469-7bf8-4eb2-85b2-03f8e2dc7dfd"},{"title":"Совместная работа в команде (Текст)","queue":3,"uuid":"191592a3-29eb-4f29-a336-3ee65ebbac6c"},{"title":"Популярные интерфейсы Git (Лекция)","queue":4,"uuid":"4b44f823-d402-44cd-9c9c-ddace2b46436"},{"title":"Популярные интерфейсы Git (Текст)","queue":5,"uuid":"6d552e4b-b0b2-4d4f-bac7-a18f75fa3be7"}],"uuid":"dffc060d-a603-4ae0-9f68-e11e8ebcf496"},{"title":"Финал курса","queue":8,"materials":[],"uuid":"517704ae-78da-4cdd-aa4f-213f061a0115"}],"status":"published"}]}},"price":{"currency":"₽","value":100,"currencyCode":"RUB"},"createdAt":"2025-06-21T07:20:20.696Z","updatedAt":"2025-11-24T04:18:42.331Z"},{"uuid":"b0a3efc3-21c6-4f11-a74f-96fd18079388","author":"266106bc-4bfe-4ff4-a93b-6bf80bf683e2","title":"ComfyUI Course - Learn ComfyUI From Scratch","description":"Этот курс по ComfyUI для начинающих научит вас пользоваться ComfyUI с нуля — начиная с базовых принципов и постепенно формируя настоящее понимание того, как работает локальная генерация изображений с помощью ИИ.\n\nКурс длится примерно 5 часов и рассчитан на людей с визуальным типом мышления, которые хотят понимать, как устроены рабочие процессы (workflow), а не просто слепо копировать их.\n\nВ этом выпуске вы узнаете, что такое ComfyUI, как работает генерация изображений на основе диффузионных моделей, как соединяются ноды, а также научитесь уверенно ориентироваться в интерфейсе и пошагово создавать собственные workflow.\n\nЗнание программирования не требуется.\n\nОсновное внимание в курсе уделяется понятности, логике и фундаментальным принципам, чтобы вы могли пользоваться ComfyUI, не чувствуя себя потерянным или перегруженным информацией.\n\nЕсли этот курс помог вам разобраться в ComfyUI, подпишитесь на канал. В следующих выпусках мы подробнее рассмотрим workflow, модели, ControlNet, LoRA и более продвинутые техники.\n\nНе стесняйтесь ставить лайки, оставлять комментарии и задавать вопросы — они помогают определять темы следующих выпусков.\n\nСкачать **ComfyUI Easy Installer** можно здесь:\n","image":"https://img.youtube.com/vi/HkoRkNLWQzY/maxresdefault.jpg","data":{"status":"active","courseContent":{"sets":[{"version":"1","sections":[{"uuid":"a119415d-00a4-4f98-82a7-d8af08fdaac6","title":"Секция: Playlist","queue":0,"materials":[{"title":"ComfyUI Course - Learn ComfyUI From Scratch | Full 5 Hour Course (Ep01)","queue":0,"uuid":"8a8f0c26-6b7b-45a6-b0de-739ed19ae9c5"},{"title":"ComfyUI Nunchaku Tutorial: Install, Models, and Workflows Explained (Ep02)","queue":1,"uuid":"0566f9d7-ac1e-4c60-81f5-7609d536d848"},{"title":"ComfyUI Qwen VL3: Creating Prompts from Images and Text (Ep03)","queue":2,"uuid":"6f74d49a-0e0d-41cc-9711-
1576ff0b712435"},{"title":"AI Image Editing in ComfyUI: Flux 2 Klein (Ep04)","queue":3,"uuid":"8e13987c-99f7-43be-b748-ce8fef2f93ed"},{"title":"How to Upscale Images in ComfyUI (Ep05)","queue":4,"uuid":"12d0b1ab-0efe-4847-8dbb-148551e9c6b7"},{"title":"ComfyUI Video Models: InfiniteTalk + Wan 2.2 + SCAIL + LTX-2 (Ep06)","queue":5,"uuid":"8b8b309e-ec3d-4730-be39-8289da93503f"},{"title":"Free AI voice in Comfy UI, Qwen3-TTS Clone Voice and Custom Voice Design (Ep07)","queue":6,"uuid":"fd6e0a20-e198-4e14-bfba-245c554ff082"},{"title":"ComfyUI for Image Manipulation: Remove BG, Combine Images, Adjust Colors (Ep08)","queue":7,"uuid":"bf6ed997-4a00-4c99-95fd-31a4f8fe6180"},{"title":"FLUX.2 Klein 9B KV: Speed and Image Consistency in ComfyUI (Ep09)","queue":8,"uuid":"52f30088-3cde-4024-b3c5-6cf5c2c5afa0"},{"title":"How to Use Fish Audio S2 Text to Speech in ComfyUI (Ep10)","queue":9,"uuid":"20ef6b00-0410-4dda-883f-d9007ec06a9d"},{"title":"I Went Full Mad Scientist in ComfyUI - Pixaroma Nodes (Ep11)","queue":10,"uuid":"8fc01c6f-8ef1-4785-a39c-91c561bc73d8"},{"title":"Vibe Code Your First ComfyUI Custom Node Step by Step (Ep12)","queue":11,"uuid":"5202f055-936f-44b8-aa5c-b939de9ca189"},{"title":"ComfyUI Pixaroma Nodes Update 2: Better Composer, 3D Builder, Paint (Ep13)","queue":12,"uuid":"5efc5166-595d-413a-9cb6-1fa6a4edc8a1"},{"title":"Ernie Model in ComfyUI - Worth It? + New Nodes Guide (Ep14)","queue":13,"uuid":"c074aef1-cd71-43ac-b555-4d32abb21340"},{"title":"Make Images React to Music in ComfyUI + ACE-Step AI Music (Ep15)","queue":14,"uuid":"5c7e01f1-0ff8-48aa-8007-33ce08c6d486"},{"title":"Qwen 3.5 in ComfyUI + Align Tool \u0026 Pixaroma Nodes Updates (Ep16)","queue":15,"uuid":"791796ea-65ee-477a-86dd-b18830a899aa"},{"title":"ComfyUI Pixaroma Nodes: New Load Image, Notify \u0026 Utility Nodes (Ep17)","queue":16,"uuid":"b8d3aaaa-37fa-43e1-8894-0c977eb4949b"},{"title":"Gemma 4 + New ComfyUI Nodes That Make Prompting Easy! (Ep18)","queue":17,"uuid":"415a4057-5092-4640-9dd7-7cecc43badcc"},{"title":"Stable Audio 3 in ComfyUI: Create AI Music and Sound Effects (Ep19)","queue":18,"uuid":"f0c89fb3-5cbe-446c-a935-230ac527b5d3"},{"title":"ComfyUI Anima Base \u0026 Microsoft Lens + New Pause Image Node (Ep20)","queue":19,"uuid":"17e29c22-9ad0-4aa1-8373-e76737eb1657"},{"title":"ComfyUI XY Plot \u0026 Find/Replace Nodes + GitHub Suspended My Account (Ep21)","queue":20,"uuid":"21176d9a-3181-4489-873a-4b71cd3d4288"},{"title":"ComfyUI Inpainting + Batch Load Images from a Folder (Ep22)","queue":21,"uuid":"57788c87-b4b4-44de-b646-919c22ee54dd"},{"title":"ComfyUI Scail 2 Video: WiFi Nodes, New Groups \u0026 Loops (Ep23)","queue":22,"uuid":"4e709cf8-1474-4182-aafd-13933ba52cdf"},{"title":"ComfyUI Krea 2 Workflows for Better Text to Image Results (Ep24)","queue":23,"uuid":"d358a8fd-dd0b-45ff-8b47-4ec8b96d7695"},{"title":"ComfyUI INT8 Performance Boost! Boogu, Krea2 \u0026 Z-Image (Ep25)","queue":24,"uuid":"8f04fdc4-a125-4fcb-a5cf-7293fef16241"},{"title":"Train Krea 2 LoRA Online, Use It Locally in ComfyUI (Ep26)","queue":25,"uuid":"105f2ef4-d600-4f5d-8cd2-804ba5d7ba40"},{"title":"How to Outpaint in ComfyUI + New Control Panel, Run Log \u0026 Text Join (Ep27)","queue":26,"uuid":"ac70dd02-7365-4ef9-84b4-8a86c16e7a18"},{"title":"Pause LLM Text and Create a Reusable Prompt Library in ComfyUI (Ep28)","queue":27,"uuid":"ce2c8024-a2e1-4995-9b70-2cf605aff2a3"},{"title":"ComfyUI MiniMax H3: Best Video Generation Workflows (Ep29)","queue":28,"uuid":"c4b7509c-e02d-4e96-83b5-ba625a64e4ed"},{"title":"ComfyUI Krea 2 Edit + MiniMax H3 Prompts Generated Locally (Ep30)","queue":29,"uuid":"4d6d78e6-b4ab-4408-b07c-2a24e30bbbef"},{"title":"MiniMax Music 3 + Local AI Prompt Generator (Ep31)","queue":30,"uuid":"40f6387e-af95-43fa-a70d-7e92fbf7b6fa"},{"title":"ComfyUI MiniMax H3 Speed LoRA + VRAM Monitor Nodes (Ep32)","queue":31,"uuid":"075438b0-eb98-4da3-8d48-4e2380a5087e"},{"title":"Image to 3D Made Easy: Trellis 2 + Pixal3D in ComfyUI (Ep33)","queue":32,"uuid":"eda6bf79-70db-4300-acb2-eebf6bc4c955"},{"title":"Pixal3D Multiview in ComfyUI | Load \u0026 Save 3D Nodes (Ep34)","queue":33,"uuid":"2f75a514-5373-46db-9d55-4cf7a8e7336e"},{"title":"MiniMax FastH3 in ComfyUI | Text to Video and Image to Video (Ep35)","queue":34,"uuid":"2f44ec80-2fda-452f-96e3-26e3cf559c8d"},{"title":"ComfyUI Qwen Image 2.1 Tutorial | Generate, Edit, Inpaint \u0026 More (Ep36)","queue":35,"uuid":"f539945a-71d8-4c62-a00b-0981be34e6dd"},{"title":"Free AI Model for Design \u0026 Text in ComfyUI | Ming Image 0.1 (Ep37)","queue":36,"uuid":"db08541c-034c-452f-bf21-d98395625948"}]}]}]}},"price":{"currency":"₽","value":0,"currencyCode":"RUB"},"createdAt":"2026-10-07T07:23:51.520Z","updatedAt":"2026-10-07T07:35:11.856Z"}]},"__N_SSP":true},"page":"/courses","query":{},"buildId":"lM7wordKHU1J6uTsmE0dZ","runtimeConfig":{"analytics":{"google":"G-KYBKY1307L","yandex":"95885896"},"basePath":"","telegramBotName":"alfa_brain_bot","env":"production","appsAddresses":{"apiService":"https://alfa-brain.com/api","platformService":"https://alfa-brain.com"},"apiEndpoints":{"signin":"https://alfa-brain.com/api/signin","signup":"https://alfa-brain.com/api/signup","purchaseInit":"https://alfa-brain.com/api/payments/courses/{courseId}","purchaseSuccess":"https://alfa-brain.com/api/purchase/success","purchaseError":"https://alfa-brain.com/api/purchase/error","adminStats":"https://alfa-brain.com/api/admin/stats","emailVerification":"https://alfa-brain.com/api/email-verification","emailVerificationNewCode":"https://alfa-brain.com/api/email-verification/ne
15w-code","logout":"https://alfa-brain.com/api/logout","startCourse":"https://alfa-brain.com/api/courses/start","userCourse":"https://alfa-brain.com/api/courses/userCourse","passwordChange":"https://alfa-brain.com/api/settings/password/change","notificationsChange":"https://alfa-brain.com/api/settings/notifications/change","settingsEdit":"https://alfa-brain.com/api/settings/edit","editCountry":"https://alfa-brain.com/api/settings/country","programs":"https://alfa-brain.com/api/programs","createArticle":"https://alfa-brain.com/api/blog/create","deleteArticle":"https://alfa-brain.com/api/blog/delete","editArticle":"https://alfa-brain.com/api/blog/edit","editArticleUploadUrl":"https://alfa-brain.com/api/file/article/{articleUuid}/image","editArticleDeletionUrl":"https://alfa-brain.com/api/file/article/{articleUuid}/image/{filename}","editMaterialImageUploadUrl":"https://alfa-brain.com/api/file/upload/course/{courseUuid}/material/{materialUuid}","editMaterialImageDeletionUrl":"https://alfa-brain.com/api/file/upload/course/{courseUuid}/material/{materialUuid}/images/{fileName}","createCourse":"https://alfa-brain.com/api/courses/create","editCourse":"https://alfa-brain.com/api/courses/edit","uploadUserIcon":"https://alfa-brain.com/api/file/userIcon","uploadVideo":"https://alfa-brain.com/api/file/course/{courseUuid}/material/{materialUuid}/video","getCourseMaterialsForAuthor":"https://alfa-brain.com/api/author/course/{id}/materials","authorUpdateMaterial":"https://alfa-brain.com/api/author/course/{courseUuid}/material/{materialUuid}/edit","authorCreateNewMaterial":"https://alfa-brain.com/api/author/course/{courseUuid}/material/create","authorDeleteMaterial":"https://alfa-brain.com/api/author/course/{courseUuid}/material/{materialUuid}/delete","getEditableCourse":"https://alfa-brain.com/api/courses/edit","createNewCourseSet":"https://alfa-brain.com/api/courses/edit/{courseUuid}/set/create","addMaterialToCourseSection":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{setVersion}/section/{sectionQueue}/materials/add","createCourseSection":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{setVersion}/section/create","editCourseSectionTitle":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{setVersion}/section/edit/title","editCourseSectionMaterialTitle":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{setVersion}/section/{sectionQueue}/material/{materialUuid}/edit/title","editCourseSectionQueue":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{courseVersion}/section/{sectionUuid}/edit/queue","editCourseSectionMaterialQueue":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{courseVersion}/section/{sectionUuid}/material/{materialUuid}/edit/queue","editCourseVersionStatus":"https://alfa-brain.com/api/courses/edit/{courseUuid}/version/{courseVersion}/edit/status","getYoutubePlaylist":"https://alfa-brain.com/api/playlist/youtube/{playlistId}","deleteCourseSection":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{setVersion}/section/{sectionQueue}/delete","deleteCourseVersion":"https://alfa-brain.com/api/author/course/{courseUuid}/version/{courseVersion}","deleteMaterialFromCourseSection":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{setVersion}/section/{sectionQueue}/materials/delete/{materialUuid}","deleteFlashCardBoth":{"description":"Удаляет инстанс и оригинал флеш карты.","api":{"method":"DELETE","url":"https://alfa-brain.com/api/flash/delete/{flashCardInstance}"}},"connections":{"telegram":{"delete":{"description":"Удаляет подключение Telegram","method":"DELETE","url":"https://alfa-brain.com/api/connections/telegram"}}},"changePasswordWhenRestoration":{"description":"Восстановление пароля.","api":{"method":"POST","url":"https://alfa-brain.com/api/recovery/changePassword"}},"requestToRemindPassword":{"description":"Запрос на восстановление пароля","api":{"method":"POST","url":"https://alfa-brain.com/api/recovery/passwordRestorationRequest"}},"updateMaterial":"https://alfa-brain.com/api/courses/userCourse/updateMaterial","setActiveMaterial":"https://alfa-brain.com/api/courses/userCourse/setActiveMaterial","flashInstanceUpdate":"https://alfa-brain.com/api/flash/instance/update","flashCreateWithInstance":"https://alfa-brain.com/api/flash/create-with-instance","authorCardCreate":"https://alfa-brain.com/api/flash/create","authorCardGet":"https://alfa-brain.com/api/flash/{courseUuid}/{cardUuid}","authorCardList":"https://alfa-brain.com/api/flash/list/{courseUuid}","authorCardUpdate":"https://alfa-brain.com/api/flash/{courseUuid}/{cardUuid}/update","authorCardCopy":"https://alfa-brain.com/api/flash/{courseUuid}/{cardUuid}/copy","authorCardDelete":"https://alfa-brain.com/api/flash/{courseUuid}/{cardUuid}/delete"},"isProduction":true},"isFallback":false,"isExperimentalCompile":false,"gssp":true,"scriptLoader":[]}</script>
15<script src="//code.jivo.ru/widget/DJiHuXEvHi" async=""></script>
15<script>window.__CLIENT_APP_CONFIG__ = {"clientConfig":{"appsAddresses":{"apiService":"https://alfa-brain.com/api","platformService":"https://alfa-brain.com/api"},"api":{"signin":"https://alfa-brain.com/api/signin","signup":"https://alfa-brain.com/api/signup","emailVerification":"https://alfa-brain.com/api/email-verification","emailVerificationNewCode":"https://alfa-brain.com/api/email-verification/new-code","logout":"https://alfa-brain.com/api/logout","startCourse":"https://alfa-brain.com/api/courses/start","userCourse":"https://alfa-brain.com/api/courses/userCourse","passwordChange":"https://alfa-brain.com/api/settings/password/change","notificationsChange":"https://alfa-brain.com/api/settings/notifications/change","settingsEdit":"https://alfa-brain.com/api/settings/edit","programs":"https://alfa-brain.com/api/programs","createArticle":"https://alfa-brain.com/api/blog/create","deleteArticle":"https://alfa-brain.com/api/blog/delete","editArticle":"https://alfa-brain.com/api/blog/edit","editArticleUploadUrl":"https://alfa-brain.com/api/file/article/{articleUuid}/image","editArticleDeletionUrl":"https://alfa-brain.com/api/file/article/{articleUuid}/image/{filename}","editMaterialImageUploadUrl":"https://alfa-brain.com/api/file/upload/course/{courseUuid}/material/{materialUuid}","editMaterialImageDeletionUrl":"https://alfa-brain.com/api/file/upload/course/{courseUuid}/material/{materialUuid}/images/{fileName}","createCourse":"https://alfa-brain.com/api/courses/create","editCourse":"https://alfa-brain.com/api/courses/edit","uploadUserIcon":"https://alfa-brain.com/api/file/userIcon","uploadVideo":"https://alfa-brain.com/api/file/course/{courseUuid}/material/{materialUuid}/video","getCourseMaterialsForAuthor":"https://alfa-brain.com/api/author/course/{id}/materials","authorUpdateMaterial":"https://alfa-brain.com/api/author/course/{courseUuid}/material/{materialUuid}/edit","authorCreateNewMaterial":"https://alfa-brain.com/api/author/course/{courseUuid}/material/create","authorDeleteMaterial":"https://alfa-brain.com/api/author/course/{courseUuid}/material/{materialUuid}/delete","getEditableCourse":"https://alfa-brain.com/api/courses/edit","createNewCourseSet":"https://alfa-brain.com/api/courses/edit/{courseUuid}/set/create","addMaterialToCourseSection":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{setVersion}/section/{sectionQueue}/materials/add","createCourseSection":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{setVersion}/section/create","editCourseSectionTitle":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{setVersion}/section/edit/title","editCourseSectionMaterialTitle":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{setVersion}/section/{sectionQueue}/material/{materialUuid}/edit/title","editCourseSectionQueue":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{courseVersion}/section/{sectionUuid}/edit/queue","editCourseSectionMaterialQueue":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{courseVersion}/section/{sectionUuid}/material/{materialUuid}/edit/queue","editCourseVersionStatus":"https://alfa-brain.com/api/courses/edit/{courseUuid}/version/{courseVersion}/edit/status","getYoutubePlaylist":"https://alfa-brain.com/api/playlist/youtube/{playlistId}","deleteCourseSection":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{setVersion}/section/{sectionQueue}/delete","deleteCourseVersion":"https://alfa-brain.com/api/author/course/{courseUuid}/version/{courseVersion}","deleteMaterialFromCourseSection":"https://alfa-brain.com/api/courses/edit/{courseUuid}/sets/{setVersion}/section/{sectionQueue}/materials/delete/{materialUuid}","deleteFlashCardBoth":{"description":"Удаляет инстанс и оригинал флеш карты.","api":{"method":"DELETE","url":"https://alfa-brain.com/api/flash/delete/{flashCardInstance}"}},"connections":{"telegram":{"delete":{"description":"Удаляет подключение Telegram","method":"DELETE","url":"https://alfa-brain.com/api/connections/telegram"}}},"changePasswordWhenRestoration":{"description":"Восстановление пароля.","api":{"method":"POST","url":"https://alfa-brain.com/api/recovery/changePassword"}},"requestToRemindPassword":{"description":"Запрос на восстановление пароля","api":{"method":"POST","url":"https://alfa-brain.com/api/recovery/passwordRestorationRequest"}},"updateMaterial":"https://alfa-brain.com/api/courses/userCourse/updateMaterial","setActiveMaterial":"https://alfa-brain.com/api/courses/userCourse/setActiveMaterial","flashInstanceUpdate":"https://alfa-brain.com/api/flash/instance/update","flashCreateWithInstance":"https://alfa-brain.com/api/flash/create-with-instance","updateOriginCard":"https://alfa-brain.com/api/flash/origin/update","authorCardCreate":"https://alfa-brain.com/api/flash/create","authorCardGet":"https://alfa-brain.com/api/flash/{courseUuid}/{cardUuid}","authorCardList":"https://alfa-brain.com/api/flash/list/{courseUuid}","authorCardUpdate":"https://alfa-brain.com/api/flash/{courseUuid}/{cardUuid}/update","authorCardCopy":"https://alfa-brain.com/api/flash/{courseUuid}/{cardUuid}/copy","authorCardDelete":"https://alfa-brain.com/api/flash/{courseUuid}/{cardUuid}/delete","loadMaterialDataUnauthorized":"https://alfa-brain.com/api/course/{courseUuid}/material/{materialUuid}","getFlashcardList":"https://alfa-brain.com/api/cards/{courseUuid}/list","getActiveFlashcard":"https://alfa-brain.com/api/cards/{cardInstanceUuid}","getDemoCourse":"https://alfa-brain.com/api/courses/{courseUuid}/demo","getCourseSettings":"https://alfa-brain.com/api/course/{courseUuid}
15/settings","setCourseSettings":"https://alfa-brain.com/api/course/{courseUuid}/settings"}},"commonConfig":{"appVersion":"319","isProduction":true,"analytics":{"google":"G-KYBKY1307L","yandex":"95885896"},"api":{}}};</script>
15<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"6d77e0094e604f99babf097ef0914957","r":1,"spa":2}' crossorigin="anonymous"></script>
15
16</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.