HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Определение</a></li>
1 <ul><li><a>Определение</a></li>
2 <li><a>Особенности</a></li>
2 <li><a>Особенности</a></li>
3 <li><a>Области применения</a><ul><li><a>Для чего используется</a></li>
3 <li><a>Области применения</a><ul><li><a>Для чего используется</a></li>
4 </ul></li>
4 </ul></li>
5 <li><a>Принцип работы в браузере</a></li>
5 <li><a>Принцип работы в браузере</a></li>
6 <li><a>Преимущества и недостатки</a></li>
6 <li><a>Преимущества и недостатки</a></li>
7 <li><a>Целесообразность изучения</a></li>
7 <li><a>Целесообразность изучения</a></li>
8 <li><a>Что не получится сделать при помощи JavaScript</a></li>
8 <li><a>Что не получится сделать при помощи JavaScript</a></li>
9 </ul><p>В современной разработке программного обеспечения используются самые разные инструменты программирования. Языки - наиболее значимые среди них. От выбранного языка зависит общая концепция приложения, читаемость кода, а также функции, которые можно реализовать в проекте.</p>
9 </ul><p>В современной разработке программного обеспечения используются самые разные инструменты программирования. Языки - наиболее значимые среди них. От выбранного языка зависит общая концепция приложения, читаемость кода, а также функции, которые можно реализовать в проекте.</p>
10 <p>Некоторые языки программирования являются универсальными и подойдут для самых разных программных продуктов, а какие-то ориентированы для определенных целей или платформ. Примером может послужить Swift. Этот язык нацелен на разработку приложений для iOS и macOS. А C++ - универсальный инструмент программирования для самого разного оборудования.</p>
10 <p>Некоторые языки программирования являются универсальными и подойдут для самых разных программных продуктов, а какие-то ориентированы для определенных целей или платформ. Примером может послужить Swift. Этот язык нацелен на разработку приложений для iOS и macOS. А C++ - универсальный инструмент программирования для самого разного оборудования.</p>
11 <p>Отдельное внимание уделяется скриптовым языкам. Они используются в веб-разработке. Одним из наиболее популярных инструментов такого плана является JavaScript (JS). Далее предстоит познакомиться с ним получше.</p>
11 <p>Отдельное внимание уделяется скриптовым языкам. Они используются в веб-разработке. Одним из наиболее популярных инструментов такого плана является JavaScript (JS). Далее предстоит познакомиться с ним получше.</p>
12 <p>Необходимо выяснить, что собой представляет JavaScript, какие особенности он предусматривает, для чего используется. Нужно также изучить его преимущества и недостатки. Эта информация пригодится как для общего развития обычным пользователям, так и программистам, выбирающим язык для глубокого изучения.</p>
12 <p>Необходимо выяснить, что собой представляет JavaScript, какие особенности он предусматривает, для чего используется. Нужно также изучить его преимущества и недостатки. Эта информация пригодится как для общего развития обычным пользователям, так и программистам, выбирающим язык для глубокого изучения.</p>
13 <h2>Определение</h2>
13 <h2>Определение</h2>
14 <p>JavaScript - это интерпретируемый и мультипарадигменный язык программирования. Инструмент разработчика, который обычно используется для написания веб-сайтов (frontend- и backend-частей). Может быть задействован при мобильной разработке.</p>
14 <p>JavaScript - это интерпретируемый и мультипарадигменный язык программирования. Инструмент разработчика, который обычно используется для написания веб-сайтов (frontend- и backend-частей). Может быть задействован при мобильной разработке.</p>
15 <p>JavaScript является языком программирования высокого уровня. Исходные коды проектов, написанных на нем, будут понятны и хорошо читаемы.</p>
15 <p>JavaScript является языком программирования высокого уровня. Исходные коды проектов, написанных на нем, будут понятны и хорошо читаемы.</p>
16 <h2>Особенности</h2>
16 <h2>Особенности</h2>
17 <p>JavaScript простыми словами - это язык скриптов или сценариев. Скрипты представляют собой некоторый набор инструкций, реализуемых при загрузке веб-страницы. Браузер будет самостоятельно интерпретировать код на JS. Компилятор для реализации поставленной задачи не потребуется.</p>
17 <p>JavaScript простыми словами - это язык скриптов или сценариев. Скрипты представляют собой некоторый набор инструкций, реализуемых при загрузке веб-страницы. Браузер будет самостоятельно интерпретировать код на JS. Компилятор для реализации поставленной задачи не потребуется.</p>
18 <p>Скрипты могут быть прописаны внутри кода страницы или путем подключения к HTML в виде отдельного документа.</p>
18 <p>Скрипты могут быть прописаны внутри кода страницы или путем подключения к HTML в виде отдельного документа.</p>
19 <p>Джава Скрипт - мультипарадигменный язык. Он поддерживает следующие концепции разработки:</p>
19 <p>Джава Скрипт - мультипарадигменный язык. Он поддерживает следующие концепции разработки:</p>
20 <ol><li>Объектно-ориентированный стиль. При его использовании программа представляется в качестве системы отношений между объектами - наборами информации и функций проекта.</li>
20 <ol><li>Объектно-ориентированный стиль. При его использовании программа представляется в качестве системы отношений между объектами - наборами информации и функций проекта.</li>
21 <li>Императивный стиль. В нем используются различные инструкции, которые выполняются последовательно. Для получения доступа к информации используются переменные, значения которых могут переписываться в процессе функционирования проекта (вычислений).</li>
21 <li>Императивный стиль. В нем используются различные инструкции, которые выполняются последовательно. Для получения доступа к информации используются переменные, значения которых могут переписываться в процессе функционирования проекта (вычислений).</li>
22 <li>Функциональный стиль. Вычисления здесь базируются на математических функциях. Функциональное программирование не опирается на переменные, способные менять значения. Это приводит к тому, что результаты запросов будут всегда одинаковыми.</li>
22 <li>Функциональный стиль. Вычисления здесь базируются на математических функциях. Функциональное программирование не опирается на переменные, способные менять значения. Это приводит к тому, что результаты запросов будут всегда одинаковыми.</li>
23 </ol><p>К ключевым особенностям Джава Скрипт можно отнести следующие моменты:</p>
23 </ol><p>К ключевым особенностям Джава Скрипт можно отнести следующие моменты:</p>
24 <ol><li>Наличие динамической типизации. Переменные в JS требуют объявления типа данных. Этот параметр способен изменяться в процессе работы программы.</li>
24 <ol><li>Наличие динамической типизации. Переменные в JS требуют объявления типа данных. Этот параметр способен изменяться в процессе работы программы.</li>
25 <li>Обработка событий. JavaScript - это мощный инструмент обработки событий на веб-страницах. С его помощью удается реагировать на пользовательские действия вроде кликов мышки, нажатия клавиш и так далее.</li>
25 <li>Обработка событий. JavaScript - это мощный инструмент обработки событий на веб-страницах. С его помощью удается реагировать на пользовательские действия вроде кликов мышки, нажатия клавиш и так далее.</li>
26 <li>DOM-управление. JavaScript - язык, который способен менять структуру и содержимое веб-страницы. Обновления осуществляются динамически - без перезагрузки всего сайта.</li>
26 <li>DOM-управление. JavaScript - язык, который способен менять структуру и содержимое веб-страницы. Обновления осуществляются динамически - без перезагрузки всего сайта.</li>
27 <li>Поддержка асинхронных операций.</li>
27 <li>Поддержка асинхронных операций.</li>
28 <li>Открытый стандарт. JavaScript базируется на открытых стандартах ECMAScript. Эта особенность делает язык программирования расширяемым.</li>
28 <li>Открытый стандарт. JavaScript базируется на открытых стандартах ECMAScript. Эта особенность делает язык программирования расширяемым.</li>
29 </ol><p>Веб-сайты обычно обрабатываются при помощи JavaScript на пользовательском компьютере. Данная особенность позволяет снизить нагрузку на сервер - некоторые операции будут выполнять без направления к нему запросов, что положительно сказывается на экономии времени и трафика.</p>
29 </ol><p>Веб-сайты обычно обрабатываются при помощи JavaScript на пользовательском компьютере. Данная особенность позволяет снизить нагрузку на сервер - некоторые операции будут выполнять без направления к нему запросов, что положительно сказывается на экономии времени и трафика.</p>
30 <h2>Области применения</h2>
30 <h2>Области применения</h2>
31 <p>JavaScript нужен для различных целей. Этот язык программирования широко используется в самых разных областях:</p>
31 <p>JavaScript нужен для различных целей. Этот язык программирования широко используется в самых разных областях:</p>
32 <ol><li>Клиентская часть веб-программ. Сюда можно отнести интерфейс сайта - все, что видит пользователь при посещении веб-портала. Примерами выступают формы обратной связи, меню, кнопки, контент. За счет JS интерфейс будет реагировать на пользовательские действия. Этот язык отвечает за запоминание информации и автозаполнение форм.</li>
32 <ol><li>Клиентская часть веб-программ. Сюда можно отнести интерфейс сайта - все, что видит пользователь при посещении веб-портала. Примерами выступают формы обратной связи, меню, кнопки, контент. За счет JS интерфейс будет реагировать на пользовательские действия. Этот язык отвечает за запоминание информации и автозаполнение форм.</li>
33 <li>Серверная часть программ. Серверный код обычно пишется на платформе Node.js. Джава Скрипт позволяет формировать AJAX-запросы, отправляемые на сервер в фоновом режиме, push-уведомления.</li>
33 <li>Серверная часть программ. Серверный код обычно пишется на платформе Node.js. Джава Скрипт позволяет формировать AJAX-запросы, отправляемые на сервер в фоновом режиме, push-уведомления.</li>
34 <li>Мобильные приложения. JavaScript широко используется при создании кроссплатформенных программ или адаптации веб-контента.</li>
34 <li>Мобильные приложения. JavaScript широко используется при создании кроссплатформенных программ или адаптации веб-контента.</li>
35 </ol><p>Рассматриваемый инструмент разработки подходит для веб-программирования и работы с клиент-серверными моделями.</p>
35 </ol><p>Рассматриваемый инструмент разработки подходит для веб-программирования и работы с клиент-серверными моделями.</p>
36 <h3>Для чего используется</h3>
36 <h3>Для чего используется</h3>
37 <p>Что пишут на JS, понятно. Теперь можно более детально рассмотреть вопрос о том, для чего используется соответствующий язык программирования. В веб-программах HTML отвечает за разметку страницы. Расположение контента, внешний вид интерфейса должен описываться при помощи CSS. JavaScript будет отвечать за функциональные возможности и интерактивность соответствующего интерфейса.</p>
37 <p>Что пишут на JS, понятно. Теперь можно более детально рассмотреть вопрос о том, для чего используется соответствующий язык программирования. В веб-программах HTML отвечает за разметку страницы. Расположение контента, внешний вид интерфейса должен описываться при помощи CSS. JavaScript будет отвечать за функциональные возможности и интерактивность соответствующего интерфейса.</p>
38 <p>Рассматриваемый язык программирования решает самые разные задачи:</p>
38 <p>Рассматриваемый язык программирования решает самые разные задачи:</p>
39 <ol><li>Взаимодействие с пользователями. Сюда можно отнести всплывающие окна с полями для ввода данных, уведомления об использовании cookie-файлов.</li>
39 <ol><li>Взаимодействие с пользователями. Сюда можно отнести всплывающие окна с полями для ввода данных, уведомления об использовании cookie-файлов.</li>
40 <li>Обработка HTML-данных. JavaScript позволяет заполнять необходимые поля в формах, проверить буквенные и числовые значения, управлять HTML-компонентами на сайте.</li>
40 <li>Обработка HTML-данных. JavaScript позволяет заполнять необходимые поля в формах, проверить буквенные и числовые значения, управлять HTML-компонентами на сайте.</li>
41 <li>Анимация. Сюда относятся не только движущиеся объекты на странице и кнопки, но и карусель в галереях, плавная прокрутка сайта.</li>
41 <li>Анимация. Сюда относятся не только движущиеся объекты на странице и кнопки, но и карусель в галереях, плавная прокрутка сайта.</li>
42 <li>Математические расчеты. С помощью JS-скриптов на веб-страницах реализованы всевозможные калькуляторы. Примером может выступать подсчет стоимости товаров в корзине Интернет-магазина.</li>
42 <li>Математические расчеты. С помощью JS-скриптов на веб-страницах реализованы всевозможные калькуляторы. Примером может выступать подсчет стоимости товаров в корзине Интернет-магазина.</li>
43 <li>Мобильные приложения. При помощи разнообразных фреймворков рассматриваемый инструмент программирования может быть использован для создания кроссплатформенных мобильных проектов.</li>
43 <li>Мобильные приложения. При помощи разнообразных фреймворков рассматриваемый инструмент программирования может быть использован для создания кроссплатформенных мобильных проектов.</li>
44 <li>Обработка событий. JS используется для обработки разнообразных событий вроде кликов мыши, нажатия клавиш, отправки формы и иных пользовательских действий. За счет такой особенности удается создавать отзывчивые и реактивные интерфейсы.</li>
44 <li>Обработка событий. JS используется для обработки разнообразных событий вроде кликов мыши, нажатия клавиш, отправки формы и иных пользовательских действий. За счет такой особенности удается создавать отзывчивые и реактивные интерфейсы.</li>
45 </ol><p>Также JS может использоваться на серверной стороне через Node.js для создания масштабируемых и высокопроизводительных веб-программ.</p>
45 </ol><p>Также JS может использоваться на серверной стороне через Node.js для создания масштабируемых и высокопроизводительных веб-программ.</p>
46 <h2>Принцип работы в браузере</h2>
46 <h2>Принцип работы в браузере</h2>
47 <p>Пользовательские действия на веб-сайте отвечают за вызов событий: клик по кнопке запускает анимацию, захват мышкой и перемещение курсора двигают объекты. Каждое подобное действие выполняется при помощи скриптов, написанных на JS.</p>
47 <p>Пользовательские действия на веб-сайте отвечают за вызов событий: клик по кнопке запускает анимацию, захват мышкой и перемещение курсора двигают объекты. Каждое подобное действие выполняется при помощи скриптов, написанных на JS.</p>
48 <p>Работают они по определенному алгоритму:</p>
48 <p>Работают они по определенному алгоритму:</p>
49 <ol><li>Пользователь совершает то или иное действие. В качестве примера можно взять нажатие на кнопку "Регистрация".</li>
49 <ol><li>Пользователь совершает то или иное действие. В качестве примера можно взять нажатие на кнопку "Регистрация".</li>
50 <li>Браузер фиксирует выполнение определенных условий - клик мышкой по конкретной области на веб-сервисе. За реакцию на странице отвечает команды onclick. Она запускает прописанный код на JavaScript.</li>
50 <li>Браузер фиксирует выполнение определенных условий - клик мышкой по конкретной области на веб-сервисе. За реакцию на странице отвечает команды onclick. Она запускает прописанный код на JavaScript.</li>
51 <li>Запускается JS-код, прописанный для соответствующих условий - анимация нажатия кнопки и представление регистрационной формы.</li>
51 <li>Запускается JS-код, прописанный для соответствующих условий - анимация нажатия кнопки и представление регистрационной формы.</li>
52 <li>Страница полностью или частично обновляется - в зависимости от выставленных настроек, форма может открываться в той же вкладке или в соседней.</li>
52 <li>Страница полностью или частично обновляется - в зависимости от выставленных настроек, форма может открываться в той же вкладке или в соседней.</li>
53 </ol><p>Аналогичным образом функционируют другие JS-скрипты. Рассматриваемый инструмент программирования имеет ряд преимуществ и недостатков, которые необходимо принять во внимание перед его изучением.</p>
53 </ol><p>Аналогичным образом функционируют другие JS-скрипты. Рассматриваемый инструмент программирования имеет ряд преимуществ и недостатков, которые необходимо принять во внимание перед его изучением.</p>
54 <h2>Преимущества и недостатки</h2>
54 <h2>Преимущества и недостатки</h2>
55 <p>К преимуществам языка JavaScript можно отнести:</p>
55 <p>К преимуществам языка JavaScript можно отнести:</p>
56 <ol><li>Незаменимость в веб-разработке. Скрипты поддерживают все популярные браузеры. Это помогает полностью интегрировать их с версткой страниц (HTML и CSS), а также с серверной частью программного обеспечения.</li>
56 <ol><li>Незаменимость в веб-разработке. Скрипты поддерживают все популярные браузеры. Это помогает полностью интегрировать их с версткой страниц (HTML и CSS), а также с серверной частью программного обеспечения.</li>
57 <li>Скорость работы и уровень производительности. JS дает возможность частично обрабатывать страницы на компьютерах пользователей без направления запросов к серверу.</li>
57 <li>Скорость работы и уровень производительности. JS дает возможность частично обрабатывать страницы на компьютерах пользователей без направления запросов к серверу.</li>
58 <li>Мощную экосистему. Сейчас пользователям доступны тысячи готовых решений по программированию на JS. Все они предоставляются бесплатно.</li>
58 <li>Мощную экосистему. Сейчас пользователям доступны тысячи готовых решений по программированию на JS. Все они предоставляются бесплатно.</li>
59 <li>Простоту использования.</li>
59 <li>Простоту использования.</li>
60 <li>Удобство пользовательских интерфейсов.</li>
60 <li>Удобство пользовательских интерфейсов.</li>
61 <li>Простое изучение. Обычно JavaScript удается выучить даже тем, кто раньше не имел никакого опыта в области разработки программного обеспечения. Изначально синтаксис может показаться сложным, но со временем станет ясно, что это не так.</li>
61 <li>Простое изучение. Обычно JavaScript удается выучить даже тем, кто раньше не имел никакого опыта в области разработки программного обеспечения. Изначально синтаксис может показаться сложным, но со временем станет ясно, что это не так.</li>
62 </ol><p>Изучаемый язык программирования предусматривает множество фреймворков и библиотек, что тоже является его преимуществом.</p>
62 </ol><p>Изучаемый язык программирования предусматривает множество фреймворков и библиотек, что тоже является его преимуществом.</p>
63 <p>Недостатки у JavaScript тоже есть. К ним относят:</p>
63 <p>Недостатки у JavaScript тоже есть. К ним относят:</p>
64 <ol><li>Отсутствие возможности загрузки и чтения документов. Данное ограничение актуально для клиентской стороны проекта. Оно связано с политикой обеспечения безопасности.</li>
64 <ol><li>Отсутствие возможности загрузки и чтения документов. Данное ограничение актуально для клиентской стороны проекта. Оно связано с политикой обеспечения безопасности.</li>
65 <li>Нестрогую типизацию и вольную трактовку. Рассматриваемый язык программирования игнорирует явные нестыковки. Данные могут интерпретироваться различными способами. У JS отсутствует возможность раннего выявления ошибок - недочеты обычно обнаруживаются в процессе работы с проектом.</li>
65 <li>Нестрогую типизацию и вольную трактовку. Рассматриваемый язык программирования игнорирует явные нестыковки. Данные могут интерпретироваться различными способами. У JS отсутствует возможность раннего выявления ошибок - недочеты обычно обнаруживаются в процессе работы с проектом.</li>
66 <li>Отсутствие поддержки удаленного доступа. Именно из-за этого недостатка JavaScript не используется для сетевых приложений. Некоторые разработчики даже не считают его полноценным языком программирования.</li>
66 <li>Отсутствие поддержки удаленного доступа. Именно из-за этого недостатка JavaScript не используется для сетевых приложений. Некоторые разработчики даже не считают его полноценным языком программирования.</li>
67 <li>Уязвимость. Свободный скриптовый язык - это настоящий лакомый кусочек для злоумышленников. В него проще всего встроить вредоносный код, который может навредить пользователю.</li>
67 <li>Уязвимость. Свободный скриптовый язык - это настоящий лакомый кусочек для злоумышленников. В него проще всего встроить вредоносный код, который может навредить пользователю.</li>
68 <li>Производительность. Несмотря на то, что JS-код работает достаточно быстро, он может оказаться медленнее в сравнении с другими языками. Особенно это заметно в крупных и сложных проектах.</li>
68 <li>Производительность. Несмотря на то, что JS-код работает достаточно быстро, он может оказаться медленнее в сравнении с другими языками. Особенно это заметно в крупных и сложных проектах.</li>
69 <li>Глобальную область видимости. JavaScript обладает одной глобальной областью видимости. Это может вызывать конфликты имен переменных между разными частями исходного кода.</li>
69 <li>Глобальную область видимости. JavaScript обладает одной глобальной областью видимости. Это может вызывать конфликты имен переменных между разными частями исходного кода.</li>
70 <li>Зависимость от Интернета. Большинство приложений на JS требуют постоянного подключения к Сети. В офлайн-режиме такие проекты могут быть менее функциональными.</li>
70 <li>Зависимость от Интернета. Большинство приложений на JS требуют постоянного подключения к Сети. В офлайн-режиме такие проекты могут быть менее функциональными.</li>
71 </ol><p>Сообщество пользователей JS старается из года в год улучшать язык и устранять его ключевые недостатки. С этими задачами свободные разработчики отлично справляются, но полностью избавить инструмент от недочетов пока не удалось.</p>
71 </ol><p>Сообщество пользователей JS старается из года в год улучшать язык и устранять его ключевые недостатки. С этими задачами свободные разработчики отлично справляются, но полностью избавить инструмент от недочетов пока не удалось.</p>
72 <h2>Целесообразность изучения</h2>
72 <h2>Целесообразность изучения</h2>
73 <p>JavaScript - это один из самых популярных языков программирования. На нем написано около 97% всех сайтов. Данный язык достаточно легко освоить даже тем, кто никогда не имел опыта в области разработки программного обеспечения.</p>
73 <p>JavaScript - это один из самых популярных языков программирования. На нем написано около 97% всех сайтов. Данный язык достаточно легко освоить даже тем, кто никогда не имел опыта в области разработки программного обеспечения.</p>
74 <p>JavaScript является относительно простым в плане изучения, а его ошибки легко обнаруживаются. Для нормальной работы с этим языком требуется разобраться в принципах функционирования HTML и CSS. После этого рекомендуется изучить наиболее популярные библиотеки и фреймворки: React, Angular, Vue.js, Node.js, jQuery и другие.</p>
74 <p>JavaScript является относительно простым в плане изучения, а его ошибки легко обнаруживаются. Для нормальной работы с этим языком требуется разобраться в принципах функционирования HTML и CSS. После этого рекомендуется изучить наиболее популярные библиотеки и фреймворки: React, Angular, Vue.js, Node.js, jQuery и другие.</p>
75 <p>JS-программисты зарабатывают около 85 000 рублей в месяц. Опытные специалисты могут рассчитывать на зарплату в размере до 300 000 рублей. Поэтому изучаемый язык программирования действительно стоит изучить.</p>
75 <p>JS-программисты зарабатывают около 85 000 рублей в месяц. Опытные специалисты могут рассчитывать на зарплату в размере до 300 000 рублей. Поэтому изучаемый язык программирования действительно стоит изучить.</p>
76 <h2>Что не получится сделать при помощи JavaScript</h2>
76 <h2>Что не получится сделать при помощи JavaScript</h2>
77 <p>Недостатки JS накладывают некоторые ограничения на функциональные возможности языка. К ним можно отнести:</p>
77 <p>Недостатки JS накладывают некоторые ограничения на функциональные возможности языка. К ним можно отнести:</p>
78 <ol><li>Отсутствие возможности чтения, записи и запуска файлов напрямую с устройства.</li>
78 <ol><li>Отсутствие возможности чтения, записи и запуска файлов напрямую с устройства.</li>
79 <li>Для связи всплывающих окон с основной страницей необходимо прописывать дополнительный программный код. В противном случае обмен введенными данными окажется недоступным.</li>
79 <li>Для связи всплывающих окон с основной страницей необходимо прописывать дополнительный программный код. В противном случае обмен введенными данными окажется недоступным.</li>
80 <li>JS может взаимодействовать только с сервером, с которого открыта страница. Для работы со сторонними сайтами и сервисами необходимо прописывать дополнительный код с обеих сторон. Это может значительно замедлить разработку.</li>
80 <li>JS может взаимодействовать только с сервером, с которого открыта страница. Для работы со сторонними сайтами и сервисами необходимо прописывать дополнительный код с обеих сторон. Это может значительно замедлить разработку.</li>
81 </ol><p><a>Что собой представляет JS</a>, понятно. Изучить его и научиться писать с его помощью разнообразные проекты помогут дистанционные компьютерные курсы.</p>
81 </ol><p><a>Что собой представляет JS</a>, понятно. Изучить его и научиться писать с его помощью разнообразные проекты помогут дистанционные компьютерные курсы.</p>
82 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
82 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
83  
83