PrestaShop: обзор и возможности платформы

В прошлом материале я протестировал движок с открытым исходным кодом для создания интернет-магазина OpenCart, и по ряду причин он показался мне не слишком удобным. Для версии 4 пока еще доступно не слишком много плагинов и шаблонов оформления, а те, что есть, далеко не всегда стабильно работают «из коробки». Поэтому я решил установить на своем сервере и протестировать еще одно бесплатное решение — PrestaShop версии 1.7.8.7. Впечатлениями и субъективным мнением о знакомстве с этой CMS я делюсь с вами.


PrestaShop — бесплатный движок с открытым исходным кодом, предназначенный для создания интернет-магазинов. Он был задуман в 2005 году как студенческий проект в парижской ИТ-школе EPITECH, его создателями считаются Игорь Шлюмберже и Бруно Левек. Движок изначально назывался phpOpenStore, был написан на языке PHP и поддерживал только две локализации: французскую и английскую. Спустя несколько месяцев после публикации исходного кода в свободном доступе его перевели на 13 языков.

PrestaShop с самого начала позиционировался, как система управления контентом для проектов в сфере электронной коммерции, и ориентировался на малый и средний бизнес. В 2007 году Игорь Шлюмберже и Бруно Левек основали компанию PrestaShop SA, в офисе которой работали 17 сотрудников. В 2010-м штаб-квартира PrestaShop SA переехала в Майами, США, а штат превысил 100 специалистов, — многие из них трудятся удаленно, проживая в 6 разных странах. В марте 2014 года компания PrestaShop SA привлекла инвестиции в размере 9.3 млн. долларов для дальнейшего развития своего проекта. Современные версии этой CMS используют в своей архитектуре фреймворк Symphony — это бесплатная среда веб-приложений PHP с открытым исходным кодом и набор повторно используемых библиотек компонентов PHP.

PrestaShop быстро завоевал популярность благодаря богатому набору функций и широким возможностям настройки. Платформа предлагает широкий спектр функциональных возможностей, включая управление товарами, отслеживание складских запасов, управление заказами, интеграцию платежных шлюзов, маркетинговые инструменты и поддержку нескольких магазинов. Более того, модульная архитектура PrestaShop позволяет разработчикам расширять ее возможности с помощью дополнений и плагинов, предоставляя пользователям индивидуальное и масштабируемое решение для электронной коммерции. CMS поддерживает множество языков, валют и налоговых систем, благодаря чему на ее основе можно создавать локализованные версии магазинов, ориентированных на покупателей из разных регионов.

Системные требования

CMS PrestaShop можно установить как на виртуальный хостинг, так и на выделенный сервер (VPS/VDS). Для нормальной работы интернет-магазина требуется следующая конфигурация:

  • Веб-сервер: Apache Web Server 2.x, Nginx, Microsoft IIS 6 или более поздней версии;

  • PHP от 7.1 до 7.4, на PHP 8 и версиях младше 7.1 магазин работать не будет (при попытке установки с другими версиями PHP возникает ошибка);

  • MySQL 5 или более поздней версии;

  • В конфигурации PHP (файл php.ini) должен быть установлен параметр memory_limit в 128M, и upload_max_filesize в16M (или больше);

  • Должны быть установлены следующие расширения для PHP: Mcrypt, OpenSSL, Zip, Curl, GD, PDO.

В целях безопасности также рекомендуется использовать на сервере SSL-сертификат. Интернет-магазин можно развернуть на виртуальном хостинге, но лучше использовать выделенный сервер, поскольку на shared-площадке с ограниченными ресурсами мой сайт на PrestaShop временами «пятисотил», а пару раз соединение отваливалось по тайм-ауту.

Функциональные возможности

PrestaShop обладает богатым ассортиментом функциональных возможностей, которые позволяют предпринимателям создавать, настраивать и эффективно управлять своими интернет-магазинами. Среди них:

  • Гибкий настраиваемый интерфейс на основе подключаемых шаблонов оформления, позволяющий настраивать отображение цен, товарных остатков, показывать отзывы и оценки товаров клиентами, сортировать товары по разным параметрам (релевантность, цена). Также возможен показ скидок в процентах, отображение производителей и брендов несколькими способами.

  • Модули платежных систем и шлюзов, включая сервисы PayPal, QIWI, WebMoney, «Юмани» («Яндекс.Деньги») и «Робокасса»;

  • Локализация интерфейса фронт-энда и панели администрирования на множество языков, включая русский;

  • Различные способы доставки товара;

  • Сбор и предоставление администратору расширенной статистики, в том числе, статистика посетителей, заказов и продаж, переходов по категориям, посnоянных клиентов, а также по категориям: Лучшие продукты, Лучшие категории, Лучшие поставщики, Статистика рассылки, по доставке, статистика заходов по ключевым словам, географическое распределение покупателей. Имеется полная интеграция с Google Analytics;

  • SEO-оптимизация, включая возможность гибкой настройки мета-тегов;

  • Множество подключаемых плагинов, реализующих различные дополнительные функции.

Установка

Загрузить дистрибутив PrestaShop можно с официального сайта проекта: https://prestashop.com/versions/. Движок загружается в виде ZIP-архива, который следует распаковать в любую папку на вашем компьютере. Внутри архива располагается еще один ZIP-архив, содержимое которого также нужно распаковать, а затем загрузить в корневую папку вашего сайта с использованием любого FTP-клиента.

Создайте базу данных MySQL для вашего будущего интернет-магазина — инструкции по созданию базы можно отыскать на сайте хостинг-провайдера. После этого откройте браузер и введите в адресной строке URL вашего сайта: вы увидите начальный экран инсталлятора PrestaShop (рис. 1).

Рис. 1. Начальный экран инсталлятора PrestaShop

Рис. 1. Начальный экран инсталлятора PrestaShop

В первую очередь необходимо в выпадающем меню выбрать язык установки (по умолчанию предлагается английский, но в меню имеется и русский язык) и щелкнуть мышью на кнопке Next. Затем следует принять лицензионное соглашение, а на следующем экране — указать основные данные вашего интернет-магазина (рис.2):

  • название магазина;

  • его основное направление;

  • устанавливать или нет демонстрационные данные;

  • страна, в которой расположен магазин;

  • часовой пояс;

  • включать или нет для интернет-магазина SSL;

  • фамилия, имя, и адрес электронной почты администратора сайта;

  • пароль для входа в панель администрирования.

Рис 2. Базовые настройки магазина

Рис 2. Базовые настройки магазина

Нажмите «Вперед» и в следующем окне укажите параметры для соединения интернет-магазина с базой данных MySQL (рис. 3).

Рис. 3. Параметры для соединения интернет-магазина с базой данных

Рис. 3. Параметры для соединения интернет-магазина с базой данных

Нажмите «Вперед» и дождитесь окончания процедуры установки интернет-магазина — обычно это занимает несколько минут. По завершении этого процесса вы сможете перейти в панель администрирования. набрав в адресной строке браузера URL http(s)://ваш_сайт/admin. Если  PrestaShop устанавливался автоматически из панели управления виртуальным хостингом, зайдите на сервер по FTP с использованием любого FTP-клиента, посмотрите, как программа установки назвала папку с панелью администрирования (это может быть что-то вроде «admin381hv01»), и добавьте это имя в URL вместо /admin, например, так: http(s)://ваш_сайт/admin381hv01. В качестве логина нужно использовать e-mail администратора, указанный ранее в процессе установки CMS.

Обзор «Пульта»

Административная панель PrestaShop, называемая «Пультом»,  имеет интуитивно понятный пользовательский интерфейс, облегчающий навигацию и доступ к различным функциям. Дизайн разработан с использованием традиционного бокового меню, которое обеспечивает быстрый доступ к различным разделам. Внешний вид Панели администрирования интернет-магазина PrestaShop в версии 1.7.8.7 показан на рис. 4.

Рис. 4. Панель администрирования («пульт») интернет-магазина PrestaShop

Рис. 4. Панель администрирования («пульт») интернет-магазина PrestaShop

Все сведения о заказах, товарах и покупателях сосредоточены в разделе «Продажа», который можно отыскать в верхней части Главного меню. Так, в разделе «Клиенты» демонстрируется список всех зарегистрированных покупателей, который при необходимости можно отредактировать.

Важным отличием PrestaShop от других похожих движков интернет-магазинов является встроенная служба поддержки, которую можно отыскать здесь же, в подразделе «Клиентская служба». Тут демонстрируется перечень запросов от покупателей, раздел позволяет отвечать на заявки, а также отслеживать их обработку.

Наконец, в подразделе «Статистика» собраны общие сведения о работе интернет-магазина: сводные данные по товарам, посещаемости различных разделов и страниц, статистика по применению скидочных купонов, и так далее.

Раздел «Улучшения» позволяет управлять дополнительными модулями интернет-магазина, устанавливать шаблоны оформления, настраивать способы оплаты, доставки, размер налога в стоимости товара, а также настроить различные географические регионы для автоматического перерасчета стоимости доставки. Здесь же можно изменить язык интерфейса интернет-магазина, а также настроить единицы измерения.

Наконец, раздел «Настроить» в Главном меню, как это и следует из его названия, позволяет изменить базовые настройки интернет-магазина. Здесь собраны основные параметры отображения страниц и товаров:

  • «Общие» — включение и отключение SSL для всего магазина и отдельных страниц, выбор основной тематики магазина, способ округления сумм при подсчете стоимости товара и доставки, показывать ли производителей на странице товара, рекомендуемые и наиболее популярные товары, и т.д.. Здесь же имеется переключатель «Настроить мультимагазин»: включив этот режим, можно создать несколько интернет-магазинов на одном движке PrestaShop;

  • «Настройки заказов» — разрешать ли покупки незарегистрированным пользователям, минимальная сумма заказа, требовать ли от посетителя согласия с правилами и условиями обслуживания при оформлении покупки и пр.

  • «Настройки товаров» — что именно показывать на странице товара, учитывать ли товарные запасы, максимальный размер описания товара, кол-во товаров на странице, текст, которым обозначаются отсутствующие в продаже товары, и т. д.

  • «Настройки клиента» — эта страница имеет 3 вкладки: «Настройки клиента» (сохранять ли авторизацию, отправлять ли подтверждающее письмо после регистрации), «Группы» (позволяет организовывать зарегистрированных пользователей по категориям), и «Обращение» (позволяет настроить обращение к пользователям в зависимости от их пола, по умолчанию в русской локализации «г-н» и «г-жа»).

  • «Контакты» — здесь можно указать контактные данные администратора интернет-магазина или несколько контактов, если магазинов настроено больше одного;

  • «Трафик и SEO» — эта страница имеет 3 вкладки: «SEO и URL» — позволяет настроить адреса для всех статических страниц магазина, «Поисковые системы» — настройка параметров GET-запросов для различных поисковых систем, «Рефереры» — управление параметрами индексации.

  • «Поиск» — настройка встроенной поисковой системы и тегов;

  • «Расширенные параметры» — здесь собраны все остальные настройки интернет-магазина, такие как управление производительностью движка, настройка автоматического обновления модулей интернет-магазина, управление характеристиками загружаемых файлов, настройка встроенной почтовой службы, импорта товаров, добавление пользователей-сотрудников и назначение им прав доступа к различным разделам административной панели, управление базой данных, просмотр журнала событий, и т. д..

В целом PrestaShop предоставляет очень гибкие настройки интернет-магазина, намного более удобные, чем OpenCart. Можно, например, создать отдельный профиль для менеджера по продажам, и открыть ему доступ только к страницам редактирования товаров и управления заказами, либо организовать доступ для специалиста по логистике, который будет заниматься исключительно вопросами доставки. Также PrestaShop позволяет создать на основе одной CMS несколько интернет-магазинов, например, территориальных филиалов, и назначить для каждого из них отдельного администратора.

Управление внешним видом и установка шаблонов

По умолчанию в PrestaShop используется стандартный шаблон Classic, с использованием которого интернет-магазин выглядит так, как показано на рис. 5.

Рис. 5. Интернет-магазин PrestaShop с использованием шаблона Classic

Рис. 5. Интернет-магазин PrestaShop с использованием шаблона Classic

В этом шаблоне можно изменить не только название разделов и содержимое главного меню, но также логотип, значок Favicon, который отображается в адресной строке браузера и при добавлении страницы магазина в «Избранное»: все эти настройки можно отыскать в разделе «Улучшения» «Дизайн» «Шаблон и логотип». Здесь же, в разделе Pages Configuration, можно настроить отображение Главной страницы интернет-магазина (вкладка Homepage), страницы категорий товаров (вкладка Category page) и страницы с товаром (вкладка Product page, рис. 6).

Рис. 6. Настройка шаблона интернет-магазина

Рис. 6. Настройка шаблона интернет-магазина

Чтобы установить альтернативный шаблон PrestaShop, перейдите в раздел «Дизайн» «Каталог шаблонов», выберите подходящий шаблон оформления (большинство из них платные), и скачайте его. Также можно выбрать шаблон на сайте https://addons.prestashop.com. Установка шаблонов выполняется в разделе «Дизайн»    «Шаблон и логотип»: нажмите на кнопку «Добавить шаблон» в верхней части страницы, затем — на кнопку Browse в разделе «Импорт с вашего компьютера», укажите место расположения архива с шаблоном и нажмите на кнопку «Сохранить» (рис. 7).

Рис. 7. Установка шаблона интернет-магазина PrestaShop

Рис. 7. Установка шаблона интернет-магазина PrestaShop

Просмотр и управление заказами

Список текущих заказов отображается в разделе «Продажа»  «Заказы» «Заказы» (рис. 8).

Рис. 8. Список заказов

Рис. 8. Список заказов

Щелкнув мышью на любом пункте в этом списке, вы можете просмотреть состав и параметры заказа, а также изменить его статус (рис. 9).

Рис. 9. Просмотр параметров заказа

Рис. 9. Просмотр параметров заказа

 В верхней части страницы демонстрируется дата и время заказа, слева — сведения о покупателе и адрес доставки. Основную часть страницы занимает список товаров в составе заказа, внизу можно поменять его статус.

По умолчанию для заказов предусмотрено несколько стандартных статусов: «В обработке», «Ожидается оплата», «Платеж принят», «Отправлен» и так далее. Настроить статусы можно в разделе «Настроить» «Параметры магазина» «Настройки заказов» «Статусы».

На странице, содержащей список заказов можно также просмотреть число «брошенных корзин» (это ситуация, когда потенциальный покупатель добавил товары в корзину, но не завершил оформление заказа), показатели конверсии, среднюю сумму заказа и показатели чистой прибыли интернет-магазина за выбранный период.

Управление категориями, атрибутами и поставщиками

Как и в OpenCart, в PrestaShop можно распределять товары по категориям, создавать для них атрибуты и настраивать поставщиков. Начнем с последних.

Если ваш магазин предлагает товары нескольких брендов или производителей, их можно заранее указать в разделе «Каталог»   «Бренды и поставщики».  Бренды отображаются единым списком, чтобы отредактировать какой-либо из них, просто щелкните на соответствующем пункте списка мышью. Добавить новый бренд можно нажатием на соответствующую кнопку в верхней части окна (рис. 10).

Рис. 10. Добавление нового бренда

Рис. 10. Добавление нового бренда

На экране появится форма, в которой следует заполнить название бренда, его краткое и полное описание, содержимое тега МЕТА и перечень ключевых слов для поисковых машин, также здесь можно загрузить графический файл с логотипом производителя.

В отличие от брендов, поставщики — это компании, которые могут поставлять интернет-магазину продукцию сразу нескольких брендов. Информацию о них можно заполнить аналогичным образом на вкладке «Поставщики».

Также для товаров можно сформировать набор характеристик и атрибутов. Характеристики могут быть разными и зависят от типа товара: для одежды и обуви это, например, размер, тип, фасон, материал. Они позволяют продавцам создавать подробные списки товаров с вариациями, такими как различные цвета, материалы или любые другие отличительные особенности, которые могут повлиять на решение клиента о покупке. Используя характеристики, покупатели получают возможность фильтровать товары по определенным признакам. Эта функциональность повышает удобство использования, позволяя сузить поиск и найти продукты, которые отвечают точным требованиям покупателя.

В отличие от характеристик, атрибуты влияют на стоимость товара, и являются дополнительными опциями к нему. Например, к ноутбуку в качестве атрибута можно добавить сумку для переноски, к мобильному телефону — защитное стекло или чехол. Выбирая товар, покупатель сможет добавить подходящие атрибуты к нему (и увеличить тем самым чек).

Чтобы добавить атрибуты или характеристику, перейдите в раздел «Продажа» «Каталог» «Атрибуты и характеристики». Чтобы добавить атрибут, нажмите на соответствующую кнопку в верхней части страницы, и заполните форму, включающую название атрибута, его заголовок для поисковых систем и способ отображения на странице товара (рис. 11).

Рис. 11. Добавление атрибута товара

Рис. 11. Добавление атрибута товара

Можно добавить значение к уже существующей группе атрибутов — для этого нажмите кнопку «Добавить значение» и выберите соответствующую группу атрибутов выпадающем списке.

Для управления характеристиками товаров существует одноименная вкладка: здесь также имеются кнопки «Добавить характеристику» и «Добавить значение характеристики». Например, для товара «футболка» вы можете добавить характеристику «размер», а затем — значения этой характеристики: «S», «M», «L», «XL» , «XXL» и так далее.

Привязать атрибуты и характеристики к различным товарам можно на карточке товара.

Теперь перейдем к категориям. Категории в PrestaShop действуют как иерархическая структура, которая группирует похожие продукты. Категории охватывают большие группы товаров, например, «одежда», «обувь», «головные уборы» для магазина одежды, или «техническая литература», «публицистика», «фантастика» для книжного магазина, при этом из списка категорий можно формировать главное меню сайта.

Категории обеспечивают логическую организацию товаров, позволяя покупателям легче ориентироваться в ассортименте. Каждая категория может иметь подкатегории, которые содержат различные товарные позиции: таким образом создается более организованный и интуитивно понятный каталог товаров.

Категории играют важную роль в многоуровневой навигационной системе PrestaShop — именно на их основе строится меню магазина. С точки зрения администрирования, категории позволяют продавцам создавать целевые маркетинговые кампании на основе конкретных групп товаров. Понимая предпочтения покупателей в различных категориях, продавцы могут персонализировать свои акции  и предложения, формировать скидки и купоны, организовывать распродажи по отдельным категориям товаров, что приводит к повышению вовлеченности покупателей и росту продаж.

Список имеющихся категорий товаров доступен в разделе «Каталог» «Категории» (рис. 12). Можно отредактировать категорию, щелкнув на ней мышью, либо временно убрать ее из продажи, переместив влево соответствующий ей переключатель «Показывать». Скрытая категория исчезнет из навигационного меню интернет-магазина, но при этом у вас останется возможность настраивать ее в панели администрирования.

Рис.12. Управление категориями товаров

Рис.12. Управление категориями товаров

Чтобы добавить на сайт новую категорию, щелкните мышью на кнопке «Добавить категорию» в верхней части окна, и заполните появившуюся на экране форму (рис. 13).

Рис. 13. Создание новой категории

Рис. 13. Создание новой категории

Здесь следует указать имя создаваемой категории, выбрать для нее родительскую в иерархии (родительской категорией первого уровня является «Главная»), загрузить для нее изображение, выбрать URL, описание и набор ключевых слов, а также указать группы пользователей, у которых будет право на просмотр этой категории товаров. С помощью этой функции можно ограничить просмотр и покупку некоторых товаров только для зарегистрированных или привилегированных пользователей.

Категории являются важным компонентом экосистемы электронной коммерции PrestaShop, обеспечивая систематизированную и интуитивно понятную структуру для организации удобного каталога товаров в вашем интернет-магазине.

Заполнение карточки товара

Переходим к самой интересной части нашего повествования: рассмотрим, как в PrestaShop заполняется карточка товара. Откройте раздел «Каталог» «Товары» (на экране отобразится список товаров, представленных в интернет-магазине в текущий момент), и нажмите на кнопку «Новый товар» в верхней части окна (рис. 14).

Рис. 14. Добавление нового товара

Рис. 14. Добавление нового товара

Страница карточки товара имеет несколько вкладок. Рассмотрим их все по очереди и начнем с вкладки «Основные настройки».

В верхней части карточки введите название товара, затем загрузите его изображение, переместив графический файл в соответствующее поле на вкладке «Основные настройки», либо щелкните мышью в этом поле и укажите расположение файла. В поле «Сводка» нужно ввести краткое и сжатое описание товара — оно будет отображаться в общем списке и результатах поиска, а вот поле «Описание» должно содержать полную и исчерпывающую информацию.

Ниже с использованием соответствующих кнопок можно добавить свойства товара (из списка ранее созданных характеристик), бренд, и указать связанные товары — они будут демонстрироваться в нижней части страницы в виде предложения для покупателя.

В правой части экрана можно выбрать, является ли этот товар простым, либо он имеет комбинации. Что такое комбинация? Это ситуация, когда определенные характеристики, например, размер, зависят от других характеристик, скажем, цвета. Если переключатель установлен в положение «Товар с комбинациями», в верхней части страницы появится новая вкладка «Комбинации», в которой можно настроить сочетания атрибутов. Например, указать, что для изделия красного цвета доступны только размеры «L» и «XL», а для синего — «XS», «S» и «M».

В поле «Код» можно ввести уникальный артикул товара — по нему вам будет проще отыскать этот товар в каталоге. В поле «Количество» укажите доступное количество единиц товара, в разделе «Цена» следует указать цену, валюту, в которой она отображается, и размер налога (опционально). Наконец, раздел «Категории» позволяет связать товар с одной или несколькими ранее созданными категориями.

Переходим ко вкладке «Количества» (рис. 15). Здесь можно настроить товарные запасы — количество единиц товара на складе, минимальное количество единиц товара в заказе, а также действия, если товар закончился. Например, можно запретить заказ товара, если он отсутствует на складе, вывести на странице магазина настраиваемое предупреждение, если товар заканчивается, а также включить автоматическое уведомление администратора магазина по электронной почте при исчерпании товарных остатков.

Рис. 15. Управление товарными запасами

Рис. 15. Управление товарными запасами

Переходим ко вкладке «Доставка» (рис. 16), на которой можно управлять параметрами отгрузки заказов.

Рис. 16. Управление доставкой

Рис. 16. Управление доставкой

Эта вкладка позволяет настроить габаритные размеры и вес товара, указать время доставки, способ расчета ее стоимости, а также выбрать, какие перевозчики участвуют в доставке этого товара.

На вкладке «Цены» (рис. 17) можно настроить параметры цены товара: размер входящего в стоимость налога, скидок, а также параметр стоимости (цена за единицу товара, за килограмм и т. д.). Также здесь можно указать закупочную цену, по которой вы приобретаете товар: таким образом магазин сможет рассчитать вашу прибыль.

Рис. 17. Управление ценами

Рис. 17. Управление ценами

В разделе «Специальные цены» вы можете установить разные цены для членов отдельных групп пользователей. Таким образом имеется, например, возможность создать группу оптовых покупателей, которые смогут приобретать товары по сниженным расценкам. Иногда случается так, что для товара действует несколько ценовых правил. Раздел «Приоритеты» позволяет указать, какие правила применяются в первую очередь.

Вкладка SEO (рис. 18) предназначена для управления параметрами карточки товаров, связанными с поисковым продвижением.

Рис. 18. Вкладка SEO

Рис. 18. Вкладка SEO

Здесь можно указать URL страницы товара, ее заголовок и описание  в том виде, в котором их увидят поисковые системы, а также адрес страницы, на которую будет перенаправлен покупатель, если этот товар отключен  или его карточка недоступна.

Наконец, на вкладке «Опции» (рис. 19) можно связать товар с поставщиками, указать его вид (новый или подержанный), добавить теги, которые облегчают поиск товаров в каталоге  и настроить его видимость. Последний пункт определяет то, где будет виден товар: только в каталоге, только в поиске, или во всех разделах магазина.

Рис. 19. Вкладка «Опции»

Рис. 19. Вкладка «Опции»

В этом же разделе можно загрузить связанные с товаром файлы, например, инструкции по эксплуатации, сертификаты или драйверы устройств. Отдельный раздел позволяет добавить дополнительные опции, такие как ISBN для книг, штрих-код и так далее.

Чтобы внесенные вами изменения вступили в силу, нажмите на кнопку «Сохранить» в нижней части окна, и переместите переключатель «Отключено» вправо.

Если в вашем магазине присутствует большое количество однотипных товаров, вы можете значительно упростить себе работу по их созданию. Для этого в списке товаров щелкните мышью на кнопке с тремя точками в правой части экрана, и выберите в выпадающем меню пункт «Дублировать» (рис. 20).

Рис. 20. Дублирование товара

Рис. 20. Дублирование товара

Интернет-магазин создаст дубликат выбранного вами товара. Вы можете перейти в режим редактирования этой карточки и изменить ее параметры, создав новый товар на основе существующего.

Заключение

Система управления электронным магазином PrestaShop выглядит намного более удобной и продуманной по сравнению с тем же OpenCard. Во-первых, здесь можно выбрать русский язык еще на этапе установки, благодаря чему интерфейс административной панели, а также фронт-энда будет русифицирован сразу «из коробки». Во-вторых, сама административная панель (так называемый «Пульт») объективно удобнее: все настройки сгруппированы по своему функциональному предназначению, не дублируют друг друга, и их очень легко отыскать в меню. А принцип управления интернет-магазином выглядит довольно логичным и продуманным.

Немного огорчает практически полное отсутствие бесплатных шаблонов оформления, однако и базовый шаблон поддается гибкой настройке, поэтому его вполне можно использовать для создания интернет-магазина. На странице дополнений PrestaShop, можно найти различные модули плагины, в том числе, компоненты для подключения платежных систем и шлюзов. Значительная их часть также предоставляется на платной основе, но расценки нельзя назвать запредельными.

Кроме того, распространенные на территории России платежные системы часто предоставляют методики интеграции своих шлюзов в популярные интернет-магазины. И PrestaShop, как правило, присутствует в этом списке.

Подводя итог можно сказать, что PrestaShop является неплохим решением для создания простого интернет-магазина для малого и среднего бизнеса, который можно развернуть как на обычном виртуальном хостинге, так и на выделенном сервере.

Немного рекламы: если вы соберетесь потестить и развернуть PrestaShop на виртуальном хостинге, то наши VPS серверы смогут вам помочь. При создании сервера вы сможете выбрать приложения (они указаны в системных требованиях): Apache, Nginx и PHP, которые будут развернуты вместе с виртуальным сервером автоматически.


ссылка на оригинал статьи https://habr.com/ru/companies/serverspace/articles/745556/

Герои известных игр на стороне сельского хозяйства: как это видит Midjourney

Недавно мы поделились гайдом по работе с Midjourney и протестировали эту нейросеть. Её работа пробудила в нас творческий порыв, поэтому мы решили проверить, на что способна её фантазия, если спросить: как бы выглядели и чем занимались герои популярных видеоигр, если бы перешли на сторону сельского хозяйства? Ответы найдете в статье.

Для эксперимента были отобраны 12 известных видеоигр в разных жанрах: от приключений до survival horror.

Описание новых версий игр — плод фантазии на основе реальной истории персонажа, все совпадения и несовпадения с лором случайны.

1. Max Payne: борьба с мафией за экологию

Давайте представим, что вышла игра «Max Payne» в параллельной вселенной. В этой версии игры главный герой продолжает бороться со злом, только вместо банды наркодилеров, он занят проблемами экологии и продовольственной безопасности.

Вместе с семьей Макс поддерживает экологическое движение «Своё Родное», участвует в благотворительных экологических акциях и ведёт большое хозяйство.

У Макса счастливая семья — жена Мишель и дочь Роза, которые стали главными помощниками на семейной ферме. На ней Пейны выращивают картофель, лук, капусту, яблоки, груши, разные виды зелени, кукурузу, клубнику и вишню.

У них есть небольшой виноградник для создания натуральных вин и подсобное хозяйство с курами и индюшками. Для ведения хозяйства они используют не только традиционные технологии, но и современные достижения техники, например, вертикальные фермы для выращивания зелени и клубники.

Но сельскохозяйственную идиллию нарушают всё те же подопытные проекта «Вальгалла» в зеленых комбинезонах. Здесь они являются главными антагонистами и противниками натурального земледелия и здоровых продуктов.

Максу и его семье придется противостоять нападками негодяев, чтобы защитить экологию и сельское хозяйство своего города от гибели, ведь команда «Вальгаллы» создала яд, способный уничтожить все виды растений и большую часть животных.

Главная цель компании «Айзир Корпорейшн» — заменить настоящих животных на андроиды, а натуральные продукты — модифицированными образцами из лабораторий, которые провоцируют страшные болезни и грозят человечеству вымиранием.

Справиться ли Макс Пейн с миссией по спасению природы, если его окружают десятки врагов и завистников?

Макс Пейн на собственных полях 

Макс Пейн на собственных полях 

2. Ведьмак: тихая жизнь на селе

Геральт из Ривии наконец-то решил остепениться и осесть в уютном местечке, чтобы стать прекрасным фермером и агрономом. 

Однажды Геральт спас от волколака хозяйство Базан. Это местечко на берегу Овечьего пруда и вдоль ручья, текущего из Блессюры, где разводят овец. К северу и востоку от него находится Лес Блессюр, к северо-востоку ― Синее Око, к западу ― Оливковая роща. Красота!

Геральт возле хозяйства Базан

Геральт возле хозяйства Базан

Именно здесь Геральт решил заняться сельским хозяйством и разведением овец. Для рациона своих овец он специально выращивает свеклу, картофель, редьку, морковь, рапс и турнепс. Но самое любимое лакомство овец, которое они с удовольствием едят — зрелая и сочная тыква. Овечью шерсть знаменитых туссентских мериносов Ведьмак экспортирует в соседние города и страны по астрономической цене.

Кроме разведения овец, Геральт также занялся производством вин на винодельне «Корво Бьянко», которую ему подарила княгиня Анна-Генриетта. Виноград для натуральных вин собирается в его винограднике в Туссенте. Вино, кстати, можно обменять на оливы и масло у Родерика, который живет неподалеку от имения Геральта.

Наш Ведьмак приобрел полноценный сад для посева трав и облепихи. Среди зарослей облепихи легко отыскать растение, которое можно обменять на другие ингредиенты для целебного зелья «Ласточка» (то самое, спасшее больного из хижины Томиры).

Ведьмак за приготовлением зелья «Ласточка» 

Ведьмак за приготовлением зелья «Ласточка» 

3. Tomb Raider: яблоневый сад и поиски женьшеня 

Лара Крофт, да‑да, та самая расхитительница гробниц, сменила сферу деятельности и ушла в сельское хозяйство. Теперь главная цель героини — поиск новых видов растений для её личной коллекции и масштабного развития экофермы.

Во время поисков, Лара путешествует по разным странам, исследует хранилища семян, проводит опыты в лабораториях и осваивает древние технологии земледелия.

Особое внимание Лара уделяет вылазке в Сибирь, где она находит образцы редких целебных трав, сибирские ягоды и, конечно же, изучает технику земледелия населения разрушенного города Чичабург (благо остались записи древних жителей, которые она сможет отыскать).

Лара Крофт за работой

Лара Крофт за работой

Однажды Лара Крофт отправляется на поиски легендарного русского города Китежа. Именно там она должна найти источник вечной жизни и распространить это растение по всей планете. Безусловно, речь идет о женьшене.

По возвращении домой, Лара Крофт вспоминает красоты Байкала и занимается выращиванием привезенных образцов на своей ферме.

Главная ценность трудов Лары — шикарный яблоневый сад, возделыванием которого она активно занимается, защищая от нападок недоброжелателей.

Яблоневый сад Лары Крофт

Яблоневый сад Лары Крофт

4. Uncharted: в агросекторе значится

Охотники за сокровищами Нейтан Дрейк и его партнёр Виктор Салливан набрались солидного агрономического опыта во время экспедиций по Эльдорадо, Шамбале, Атлантиде песков, Квивире и другим местам. С каждой экспедиции они привозили образцы разных растений и плодов, чтобы однажды заняться их селекцией в условиях агрокомплекса. Нейтан, будучи хорошим дайвером, не упускал возможности захватить со дна водоёмов ценные артефакты, а также необычные виды рыб и других морских обитателей.

Спустя три года после своего последнего приключения, Нейтан зажил нормальной жизнью со своей женой Еленой в загородном доме в Новом Орлеане. Теперь Нейтан вместе с супругой запускает работу агрокомплекса и создает фиштех-стартап, где разводит необычных рыб и проводит экскурсии под водой.

Нейтан Дрейк наблюдает за новым видом зерновых 

Нейтан Дрейк наблюдает за новым видом зерновых 

5. Resident Evil Village: натуральное мясо и вино

Представьте, что сельское хозяйство помогло Альсине Димитреску избавиться от мутации и тяги к человеческой крови? Невозможно? Ещё как!

Скотоводство, растениеводство и винокурение помогли леди Димитреску справиться со своим пристрастием. Известно, что её тяга к человеческой крови стала последствием мутации и заражения плесенью. То есть, она буквально превратилась в вампира и с тех пор нуждалась в готовом запасе свежей человеческой крови для поддержания своего здоровья.

Что смогло заменить кровь людей? Свежие говяжьи стейки! Поэтому у себя в поместье аристократка занялась разведением породистых мясных бычков, стала высаживать много шпината, базилика и петрушки — лидеров по содержанию железа, а к ужину со своими дочерями требовала бокал вина из собственной винодельни.

К слову, название традиционного семейного напитка осталось прежним — Sanguis Virginis (по-латыни «Девичья кровь»), только вот кровь служанок для его приготовления больше не использовалась.

P. S. Свою способность превращаться в дракона Демитреску тоже использовала с пользой. Графиня взмывала в небеса и осматривала свои пастбища и виноградники, собирая информацию об их состоянии ничуть не хуже, чем современные дроны.

Леди Демитреску с бокалом домашнего вина

Леди Демитреску с бокалом домашнего вина

6. Эйвор Варинсдоттер: дикая пшеница и приют для волков

Норвежская воительница‑викинг Эйвор нашла свой покой в Винланде. Спустя долгие годы, прожитых в войнах и сражениях, она проводит время в единении с природой.

Здесь она выращивает виноград и дикую пшеницу, крыжовник, красную смородину и калину. Особое место в хозяйстве Эйвор отводится «винным» плодам и лекарственным травам — укропу, кориандру, хмелю, белене и репейнику, в память о былых битвах и турнирах. На угодьях Эйвор нашлось место моркови, пастернаку, репе и капусте.

Эйвор с любовь продолжала приручать волков, поэтому в скором времени начала строительство приюта для животных, который смогут посещать все желающие в рамках древних агротуров.

Эйвор заготавливает дикую пшеницу

Эйвор заготавливает дикую пшеницу

7. Gears of War: живые фермы Маркуса Феникса

Добро пожаловать на Серу. Эта планета всегда горела в огне войн и разрушений, страдала от истощения и нехватки природных ресурсов.

Маркус Феникс — главный герой сюжета, поучаствовал во многих битвах на Сере и даже побывал в тюрьме. Годы борьбы и потерь закалили Маркуса, но отважному солдату всё ещё хотелось попробовать вкус мирной жизни. В нашей версии Маркус настолько устал от военной деятельности и смертей, что по возвращении на родину захотел обрести спокойствие и защищать природу.

Персонаж вселенной Gears of War вместе с выжившими людьми на Вектесе возрождает хозяйство на своем острове-крепости. Дело это непростое, ведь герою придется бороться с бурями, обеднением почвы и совместить в себе сразу несколько ипостасей: фермера, агронома, агротехнолога и инженера, биолога и эколога.

Маркус Феникс за работой

Маркус Феникс за работой

Воспользовавшись разработками доктора Найлса Самсона, который создал «Саранчу», Маркус разработал дроны для работы на полях, которые из‑за влияния ржавчины не могут обрабатывать люди.

Герой продолжит бороться со сверкающими стеблями: он создаёт удобрение, которое
минимизирует вред полипов и занимается окультуриванием их плодов.

Вместе с ним на ферме работает его сын Джей Ди. Маркусы в каком‑то смысле занимаются атомным растениеводством. На их полях можно встретить земляной арахис размером с яблоко, фиолетовый картофель, пшеницу с огромными колосьями. На ферме растут деревья с грушами и грейпфрутами, мята и другие целебные травы.

В планах у Маркуса создать поголовье домашней птицы со вкусным и питательным мясом.

Маркус Феникс у своего фермерского домика

Маркус Феникс у своего фермерского домика

8. Добрая история Алана Уэйка

Алан Уэйк одолел Темную сущность и теперь, вместе с женой Элис, тихо живет в американском городке Брайт‑Фоллс.

Их чудесный домик на берегу озера идеален для домашнего садоводства и земледелия. Семейная пара занимается растениеводством и заботится о плодово‑ягодных деревьях в своем саду. На их огороде раскинулись грядки с луком и морковью, шпинатом и салатом, разными сортами редиса и зеленью.

Ещё одно направление деятельности Уэйков — молочная ферма, где они выращивают коров молочной породы. Полезное молоко продается среди жителей.

Элис всегда мечтала о теплице с клубникой. Алан исполнил её мечту и разбил несколько вертикальных теплиц. По вечерам глава семьи ловит рыбу в озере, а супруга готовит для них чай из мелиссы и мяты, выращенной на приусадебном участке.

Теперь для героя главное — вовремя собирать урожай, выгодно продавать молоко и не допускать браконьерства на озере.

Алан Уэйк со своими коровками

Алан Уэйк со своими коровками

9. Horizon: Элой и агротех против гибели планеты

Постапокалиптическая реальность, где людей заменили роботы, а миром правит искусственный интеллект. В основе игры лежит концепция сочетания высокотехнологичного наследия прошлого и примитивных технологий древних племён.

Главная героиня Элой пытается разобраться в тайнах мира и спасти землю от гибели. Ради возрождения жизни Элой меняет амплуа воительницы на фермерство и теперь сочетает натуральные материалы с частями машин, чтобы превратить их в полезную технику и инструменты для сельского хозяйства. Большую помощь в этом ей оказывает визор.

Элой любуется возрожденной природой

Элой любуется возрожденной природой

Сильная и уверенная в себе Элой обладает рядом навыков и способностей, позволяющим ей восстанавливать виды растений и создавать новые. Любовь к лошадям и блистательная способность управлять ими зародила в ней идею создания конезавода, где она разводит искусственные породы, но активно занимается разработкой потомства настоящих лошадей.

Главные помощники героини, это племя Утару — земледельцы из плодородных краёв. Вместе с ними она возделывает земли, выращивает зерновые культуры и овощи, сеет травы,
высаживает плодовые деревья.

Элой на страже своих владений

Элой на страже своих владений

10. Atomic Heart: агротех нового поколения и фермерство на Луне

В альтернативной вселенной действие игры разворачивается после того, когда проект «Атомное сердце» успешно остановлен, а жители СССР пользуются благами науки и технологий.

Вместе с бабой Зиной и целой армией технологичных роботов, Нечаев занимается развитием собственного Предприятия 38-26. Только вот создаёт он не ужасающие технологии порабощения людей и стран, а систему натурального сельского хозяйства в условиях новой реальности.

Технологичные роботы

Технологичные роботы

На полях работают полимерные люди, которые освоили навыки традиционного земледелия и растениеводства, соединив их с новейшими роботоразработками. Среди главных железных тружеников: Работник (АМУ-68) помогает в лесозаготовке, Медик (МЕД-6) отслеживает здоровье поголовья скота, пока Лаборант (ВОВ-А6) занимается созданием новых сортов растений и селекции животных.

Баба Зина печет вкуснейшие пироги

Баба Зина печет вкуснейшие пироги

Пока солнце высоко, в пекарне дым столбом: прекрасная баба Зина, которая знает толк в выпечке и всячески помогает Нечаеву бороться с последствиями вакцинации в его организме с помощью вкуснейших пирогов.

Работа идет и на Луне: советский луноход возвращается с образцами грунта, которые позволят провести исследования в области адаптации растений и животных к неземным атмосферам.

Майор Нечаев активно развивает эту идею, оборудует специальную «лунную лабораторию», где выращивает зерновые и травы, а также выводит особую породу красных кур. Иногда главный герой выполняет вылазки на Луну, чтобы провести там эксперименты и запастись грунтом.

Майор Нечаев с выращенной курицей

Майор Нечаев с выращенной курицей

11. Warcraft: овцы Артаса Менетила

Сложно представить, что один из самых могущественных и злобных созданий, которых когда-либо знал Азерот, может воспылать любовью к скотоводству.

В нашей версии Артас Менетил воскрес и больше не подчиняется Ледяной Скорби. Фростморн утратил свою силу над героем и используется им не для завоевательных кровопролитных войн, а для защиты своей овцеводческой фермы от воров.

Темный лорд теперь владеет огромным скотоводческим хозяйством и его уязвимые места — засуха, падеж поголовья, нападения лис, изменения цен на шерсть и мясо.

Главная задача героя — приручить армию нежити, обучить ее основам скотоводства и сделать главными помощниками в своей деятельности.

Методы управления овечьей фермой варьируются в зависимости от местоположения станции и сезона. Например, засуха требует принятия решений о продаже поголовья или предоставлении дополнительного питания. Рутинные процедуры включают наблюдение за состоянием копыт и рогов, спариванием, ягнением и клеймением ягнят, стрижка, обработка от клещей, вшей и паразитов (при необходимости).

Другие виды деятельности героя включают покупку баранов-производителей и классификацию овец, чтобы определить неполноценные типы, подлежащие выбраковке. Наш герой преумножает своё хозяйство, развивает продажи и даже создает новые виды овец путем скрещивания разных пород.

Артос с командой выращивает зерновые культуры, чтобы обеспечить дополнительный корм для овец, особенно тех, которые выращиваются для продажи как племенной скот.

Артас Менетил со своими любимцами 

Артас Менетил со своими любимцами 

12. God of War : Кратос и его ценные бычки

Герой наконец-то достиг мира в Эгейском море и усмирил нрав богов Олимпа.

Рожденный в Спарте, Кратос ещё в детстве подвергся тяжелым испытаниям, которые закалили его дух и наделили суровым характером. Неудивительно, что в сфере сельского хозяйства он выбрал непростое направление — разведение крупного рогатого скота. Он растит поголовье шикарных коров и быков, отличающихся высокими надоями и полезным мясом.

Верная спутница и помощница Кратоса, его сводная сестра Персефона — покровительница земли и плодородия. Именно Персефона поможет Кратосу выращивать пшеницу и защищает пахотные земли от засухи.

Персефона — покровительница земли и плодородия

Персефона — покровительница земли и плодородия

У Кратоса есть немало полезных артефактов, которые помогают ему в хозяйстве: например, могучая перчатка Зевса упрощает процесс сбора урожая, а Солнечный Щит позволяет блокировать атаки вредителей и защищает поля от засухи.

В агромире Кратоса найдётся место и для магии: он сможет призывать погибшие души подземного мира (армия Аида) для работы на полях и выпаса скота. Крылья Икара и Сандалии Гермеса станут прототипом дрона, ведь с их помощью он летает над своими владениями и проводит мониторинг состояния угодий.

Кажется, могущественный Кратос будет хорошим фермером с богатым хозяйством. И даже мертвенно-белый цвет его кожи больше не будет пугать жителей, а кровожадное прошлое забудется.

Кратос-фермер по-прежнему суров и справедлив

Кратос-фермер по-прежнему суров и справедлив

Как вы думаете, какой персонаж соберет самый богатый урожай? Делитесь своим мнением и попробуйте сами сгенерировать любимого героя в новом амплуа.

Тех, кто хочет попробовать себя в реализации идей на стыке новых технологий и сельского хозяйства, приглашаем принять участие в стипендиальном конкурсе от Россельхозбанка.

Выполните одно задание на выбор, получите высокую оценку экспертов и станьте стипендиатом на целый учебный год. Поощрение за ваш труд и инициативу – ежемесячная стипендия в размере 15 000 тысяч рублей.


ссылка на оригинал статьи https://habr.com/ru/companies/rshb/articles/746058/

Почему linux должен быть единственной системой в образовательном процессе

Всем привет!

Недавно я сказал бывшему коллеге из сбера, что линукс должен быть единственной системой в образовательном процессе. Он сильно удивился, спросил почему. В этой статье я постараюсь объяснить почему использование проприетарных программ плохо влияет на образовательный процесс.

Взгляд назад

Eще всего 200 лет назад 12% людей умели читать и писать. У большинства в этом не было необходимости — эти способности не удовлетворяют базовых потребностей, владеть ими незачем. Сейчас мы смотрим на людей не умеющих читать и писать как на людей прошлого, хотя их уже практически не осталось (текущий уровень грамотности — 99%).

Уже сегодня более 70% взрослого населения на постоянной основе использует компьютеры, а ежедневно им пользуются более 35% людей. Большая часть работ постепенно оцифровывается и наша зависимость от программ продолжает расти — мы используем больше программ.

Значимость этих процессов продолжает увеличиваться, однако процент людей, понимающих как работает их операционная система, на данный момент крайне небольшой — зачем в этом разбираться, если это знание нельзя монетизировать.

Возможно, умение работать с терминалом и использование командной строки через 200 лет будет такой же обыденностью, как сегодня умение читать и писать.

Коробочное мышление

Программы невозможно изучить, изменить или доработать. Программы воспринимаются всеми пользователями, как законченные коробочные решения, над которыми у пользователя нет контроля.

В то же время с линуксом, эта ситуация кардинально другая. Если в программе что‑то не устраивает — её можно заменить, доработать, или написать автору сообщение на почту. Такой подход не типичен для пользователей проприетарных систем, хотя он позволяет эффективно выполнять задачи и развивать программные продукты за счет кооперации и коллективной работы.

Более того, проблема осложняется тем фактом, что проприетарные операционные системы выстраивают ‘пользовательский путь’, который действует исключительно на пользу компании, которая владеет операционной системой.

Линукс же, в свою очередь, состоит из большого количества компонентов, каждый из которых при необходимости можно заменить на какой‑то другой. Это обеспечивает уверенность в том, что даже если определенные части системы станут закрытыми или перестанут поддерживаться, то их можно будет заменить другими элементами.

Сегодня дети получают свои первые электронные устройства в среднем в возрасте от 6 до 10 лет. Большая часть этих электронных устройств, однако, позволяет совершать только те операции, которые были заложены производителем, не смотря на достаточную мощность устройств для обучения, развития, познания и исследования.

Одно из ключевых отличий linux — командная строка. Терминал является одним из самых мощных инструментов для обобщения сложных абстракций. Он позволяет использовать разные программы, написанные на разных языках программирования для реализации различных задач, и далее переиспользовать эти программы для построения собственных программных решений. Умение использовать терминал с малого возраста могло бы позволить обучающимся в дальнейшем рабочем процессе значительно увеличить свою эффективность за счет автоматизаций, которые позволяет делать терминал и скрипты.

Сетевой эффект

В данный момент нас окружает огромное количество закрытых программ и форматов. Зачастую именно среда, в которой человек привык работать, определяет его дальнейший потребительский выбор. Так, если человек в рамках образовательного процесса научился работать только в ms office на операционной системе windows, то в дальнейшем очень трудно будет переучиваится на другие программы и что‑то изменить в рабочем процессе.

Когда я учился в МГУ, в кабинете информатики на всех компьютерах стоял windows, а все студенческие работы принимались в.docx,.xlsx и.pptx. Странно ожидать, что будущие сотрудники компаний будут просить linux для работы, ведь рабочий процесс уже хорошо отлажен в рамках проприетарной парадигмы.

Эта ситуация создает массу негативных для экономики последствий. Во первых — сетевой эффект. Пользователи привыкшие к закрытым программам привлекают новых пользователей к использованию данных программ. Это происходит из‑за несовместимости используемых форматов и недостатка открытых продуктов.

Во‑вторых — барьеры переключения. Время имеет цену, работодатель не готов платить за переобучение своих сотрудников на новое ПО, тем более если открытые программы усложняют привычные для работы процессы.

Поэтому особенно важно, что бы ученики школ и студенты университетов в рамках обучающего процесса вообще не сталкивались с закрытым ПО. У будущих потребителей должна быть возможность выбора, сейчас есть только искуственная зависимость от проприетарного ПО.

Кооперация и эффективность

Люди, которые имеют доступ к лучшим инструментам разработки и новейшим технологиям находятся в заведомо выигрышном положении, чем те кто живёт в среде без таких возможностей. Иронично, не смотря на свою бесплатность и открытость, именно пользователи линукс первыми получают доступ к самым новым технологиям.

Значительным преимуществом открытого рабочего процесса является мотивация сотрудников. Если состояние рабочего процесса скрыто, то нет инструментов для оценки степени участия и качества результата. В тоже время если рабочий процесс открыт, то сотрудники более замотивированы, так как результат труда будет использован большей аудиторией. Работа делается не только для закрытого контура, но для общества и своей среды.

активность Линуса Торвальдса

активность Линуса Торвальдса

Когда работа переделывается много раз для создания физических благ — это естественная издержка. Когда работа переделывается много раз для создания цифрового продукта — это потеря эффективности, особенно если группы в рамках которых эта работа повторяется работают на благосостояние общей среды. Программный код нужно переиспользовать, это экономит время. Для оптимизации рабочих процессов крупные компании делятся своими разработками. Это позволяет другим компаниям не переделывать одинаковую работу, специализироваться на решении более узких проблем. Так же это позволяет находить сотрудников, замотивированных в развитии открытых интсрументов, они могут присоединиться к открытому процессу разработки.

Среда детерминирует мышление. Человек — социальное существо. Сейчас образовательная среда построена на закрытых принципах. Это ограничивает количество генерируемых идей, их распространение и тормозит прогресс. Чем больше платформ, предоставляющих возможности для коллективной кооперации будет существовать, тем быстрее будут реализовываться новые концепции.

Специализация

Разные люди способны лучше делать определенные виды работ. Общество построено на способности индивидов специализироваться для решения определенных задач. Особенно сильно эта характеристика выражается в наукоёмких отраслях, при разработке программ.

Можно ли монетизировать отдельно крыло самолёта? Вряд ли, сложно монетизировать отдельно руль автомобиля или этикетку зубной пасты, пока нет завершенного для пользователя продукта. Так и в разработке — нет возможности монетизировать компилятор, JS‑фреймворк, библиотеку для архивации или машинного обучения. Но конечные программные продукты всегда включают в себя огромное количество зависимостей, эта работа имеет огромное значение.

Конечный программный продукт — это не только код. Локализация, дизайн, маркетинг, документация, финансирование, сервис, техническая поддержка — все эти аспекты необходимо учитывать при написании качественных программ. Есть площадки, позволяющие людям вкладываться в открытые проекты в соответствии с их специализацией и областями интереса.

Открытые площадки (gitflic, moshub, codeberg, github, fmnx, svgrepo, flaticon, crowdin, aur итд) позволяют людям самостоятельно определиться с категорией задач, которые им хотелось бы решать или помогать авторам существующих проектов. Они помогают работодателям искать сотрудников, рабочие проекты находятся в открытом доступе.

Уровень вовлеченности в работу в рамках таких платформ фактически определяет количество программных продуктов в среде. Отечественные линукс дистрибутивы (alter, rosa, alt, astra, redos), технологические компании (mts, rostelekom, sber, yandex) и образовательные учреждения (мгу, мгимо, мфти) на сегодняшний день не предоставляют доступа к своим git репозиториям или другим платформам коллективной кооперации.

Работодатели вынуждены искать сотрудников полагаясь на предоставленную мукулатуру, а сотрудники должны тратить время на её создание, вместо реализации собственных идей. Публичные платформы — ключ к эффективной кооперации и честной оценке интеллектуального труда, надо работать над их развитием и популяризацией.

Статус линукса

Когда я предлагал своим друзьям попробовать систему собственной разработки, то сталкивался только с отказами. Люди не хотят тратить время и рисковать потерей эффективности, предпочитая продолжать использовать windows, macos, fedora, ubuntu, итд… Дело не в предвзятом отношении к отечественным программным продуктам — если процесс уже достаточно хорошо отлажен в рамках существующей системы, то нет смысла переключаться на другую, если это не позволяет решать задачи эффективнее.

Фокус нужно ставить на людях которые еще не знакомы с операционными системами в принципе. Попытка переключить пользователя с большим стажем на windows — тяжелый и сложный процесс. Пока человек сам не захочет познакомиться с новой системой — этого не произойдет. Первой операционной системой в жизни человека должен быть линукс, это единственная система не создающая искуственных барьеров переключения.

Линукс может работать как мощный инструмент сокращения макроэкономических издержек. Для этого усилия linux разработчиков должны быть направлены на доработку компонентов системы, из‑за которых пользователи в предпочитают альтернативы. Оптимизация и улучшение программных интерфейсов, профессиональное ПО, программы для общения, рекреации. Будущие пользователи не должны хотеть переключаться на windows и macos. Для этого нужно создавать программы, которые решают повседневные задачи на linux лучше.

Не стоит воспринимать сетевой эффект созданный apple и microsoft, как безвыходную ситуацию. Внутреннее устройство linux позволяет адаптировать эту систему как для обычного использования, так и для создания сложнейших вычислительных систем.


PS1 — Если у вас есть желание изменить операционную систему своих учеников (и не важно кем они являются — школьниками, студентами или джунами), напишите пожалуйста мне на почту: dancheg97@fmnx.su. Дистрибутив, разработкой которого я занимаюсь хорошо подходит для начинающих разработчиков и новых пользователей операционных систем. Сетевой эффект можно пересилить только коллективными усилиями.

PS2 — Если вам нужна помощь в создании публичного инстанса gitea для вашей организации или команды, посмотите пример в этом репозитории или напишите мне на почту. Последние версии gitea обладают федеративными свойствами, позволяя пользователям на разных инстансах взаимодействовать друг с другом, это позволит компаниям и институтам эффективнее разрабатывать общие проекты и усилить кооперацию.

PS3 — В данный момент я занимаюсь разработкой децентрализованного пакетного менеджера, позволяющего быстро создавать, доставлять, распределять и адаптировать существующие программы для arch‑based дистрибутивов. Всех желающих присоединиться рад приветствовать на своей платформе.


ссылка на оригинал статьи https://habr.com/ru/articles/746064/

Бинарное дерево поиска в Swift

Вы когда‑нибудь задумывались, почему результаты поиска файлов появляются так быстро? В этой статье мы рассмотрим удивительную структуру данных, известную как двоичное дерево (бинарное дерево), и узнаем, как именно она позволяет достичь такой быстрой обработки и поиска.

Быстрый поиск

Быстрый поиск

В этой статье вы узнаете, что такое двоичные деревья, как работает один из типов двоичных деревьев — двоичное дерево поиска, и почему сегодня они используются во многих алгоритмах.

Двои́чное де́рево — иерархическая структура данных, в которой каждый узел имеет не более двух потомков (детей). Как правило, первый называется родительским узлом, а дети называются левым и правым наследниками. Двоичное дерево является упорядоченным ориентированным деревом[1].

Двоичное дерево

Двоичное дерево

Итак, простыми словами бинарное дерево — это древовидная структура данных, в которой данные хранятся в узлах, подобно листьям на дереве. У вас есть корневой узел в верхней части. У вас есть левый и правый узлы, и в основном вы просто храните информацию в различных местах дерева, а затем просматриваете их. Иногда, когда вы тусуетесь на коктейльной вечеринке и слышите, как люди говорят о двоичных деревьях, вы слышите такие слова, как полное, идеальное и сбалансированное.

Полное бинарное дерево — это дерево, в котором каждый узел имеет ноль или два ребенка. Другими словами, не существует единичных узлов.

Примером идеального бинарного дерева может служить семейное дерево, в котором у каждого ребенка есть мать и отец.

А сбалансированное бинарное дерево — это такое дерево, которое имеет минимально возможную высоту.

Бинарные деревья, которые очень, очень глубоки, которые не сбалансированы правильно, могут быть очень неэффективными.

Поэтому мы стараемся организовать деревья минимально возможной высоты.

Еще два термина, которые вам могут встретиться, это «поиск в ширину» (Breadth‑First Search) и «поиск в глубину» (Depth‑First Search).

При проведении поиска в ширину в двоичном дереве вы обычно начинаете с корня, предполагая, что нужные вам данные находятся близко к вершине. Такой подход часто используется в алгоритмах поиска кратчайшего пути.

С другой стороны, поиск в глубину подразумевает исследование дерева до самого его конца. В этом случае вы предполагаете, что искомые данные или решение проблемы находятся глубоко в структуре дерева. Решение задач, связанных с лабиринтами, является типичным примером использования поиска в глубину в двоичном дереве.

Не стоит волноваться, если вы не знаете, как реализовать или применить эти термины на практике. Они важны для понимания, особенно в контексте технических собеседований, чтобы вы могли с уверенностью заявить: «Да, я слышал об этих терминах». Возможно, вы не сталкиваетесь с ними ежедневно в своей работе, и это нормально.

Теперь, когда мы разобрались с основной терминологией, связанной с двоичными деревьями, мы можем более глубоко погрузиться в то, как они работают на практике.

Как они работают?

Один из способов получить хорошее представление о том, как работают бинарные деревья, — это рассмотреть метод find в так называемом бинарном дереве поиска.

Бинарное дерево поиска — это дерево, узлы которого отсортированы сверху вниз. Отсортированные узлы означают, что все узлы слева от родителя меньше родителя. В то время как все узлы справа больше родительского. Под больше или меньше мы понимаем ключи. Используемые ключи уникально представляют этот узел. Сортируя двоичное дерево сверху вниз, мы теперь имеем дерево в таком состоянии, что можем сделать с ним что‑то очень мощное и крутое — Мы можем начать быстрый поиск.

поиск(find)

поиск(find)
Подробное описание

Реализация find для двоичного дерева поиска выглядит примерно так. Допустим, мы ищем число четыре или ключ четыре в нашем упорядоченном двоичном дереве. Мы начинаем с корня, с самой вершины. Мы спрашиваем, тот ли это ключ, который мы ищем? Если это не так, мы продолжаем поиск и спрашиваем: ну, а искомый ключ меньше или больше текущего узла? В данном случае, поскольку четыре меньше пяти, мы идем влево и здесь повторяем вопрос. Есть ли у нас четверка? Если нет, продолжаем искать. Четыре меньше, чем три? В данном случае четыре больше трех. Поэтому мы идем вправо и продолжаем этот процесс, продвигаясь все дальше и дальше по двоичному дереву, пока не найдем либо искомый узел, либо не достигнем конца нашего дерева, в этом случае мы просто вернем null.

Двоичные деревья состоят из более мелких деревьев и поддеревьев, которые вложены друг в друга. Когда мы рассматриваем их код, мы видим, что это становится очевидным благодаря рекурсии. Кроме того, важно отметить, что при поиске или принятии решений в двоичном дереве мы сокращаем область поиска вдвое каждый раз. Каждый переход от одного уровня к следующему через узел фактически устраняет половину дерева. Это особенность двоичных деревьев, которая позволяет выполнять поиск очень быстро со временной сложностью O(log n). Этот непрерывный процесс сокращения вдвое обеспечивает временную сложность O(log n) для поиска в двоичных деревьях. Чтобы увидеть и понять, как это работает, давайте рассмотрим его в коде.

class Node {     var key: Int = 0     var left: Node?     var right: Node?          init(_ key: Int) {         self.key = key     }          var min: Node {         if left == nil {             return self         } else {             return left!.min         }     } }  class BST {     var root: Node?     // вставка     func insert(key: Int) {         root = insertItem(root, key)     }          private func insertItem(_ node: Node?, _ key: Int) -> Node {                  // Если узел равен nil - значит сюда мы и вставим         guard let node = node else {             let node = Node(key)             return node         }                  if key < node.key {             node.left = insertItem(node.left, key)         }         if key > node.key {             node.right = insertItem(node.right, key)         }                  // Если мы дошли сюда значит у нас дубликат.         // Дубликаты запрещены в дереве поэтому просто игнорируем         // Мы закончили, Наше дерево готово!         return node;     }      // поиск     func find(key: Int) -> Int? {         guard let root = root else { return nil }         guard let node = find(root, key) else { return nil }                  return node.key     }      private func find(_ node: Node?, _ key: Int) -> Node? {         guard let node = node else { return nil }                  if node.key == key {             return node         } else if key < node.key {             return find(node.left, key)         } else if key > node.key {             return find(node.right, key)         }         return nil         // Note: дублирование ключей запрещено так что нам не нужна проверка     }
Описание кода

Класс Node: Этот класс представляет узел дерева. Каждый узел имеет ключ (key), который является значением узла, а также ссылки на левого и правого потомка (left и right). У него есть инициализатор, который принимает ключ в качестве входного параметра, и свойство min, которое возвращает узел с наименьшим ключом в поддереве.

Класс BST (Binary Search Tree): Этот класс представляет собой двоичное дерево поиска. У него есть корневой узел (root) и две основные функции:

Функция insert(key: Int): Это функция добавляет новый узел с указанным ключом в дерево. Она вызывает вспомогательную функцию insertItem, которая рекурсивно ищет место для вставки нового узла и создает его при достижении nil (то есть достигнута конечная точка в ветке дерева). Если в дереве уже присутствует узел с таким же ключом, то новый узел не будет добавлен, поскольку дубликаты запрещены.

Функция find(key: Int): Эта функция ищет узел с заданным ключом в дереве. Она также использует вспомогательную функцию find, которая рекурсивно ищет узел в дереве. Если узел с заданным ключом не найден, функция возвращает nil.

Вставка(insert)

вставка

вставка

Вставка в двоичное дерево поиска — это процесс, который требует точности и внимания к деталям, чтобы сохранить важный порядок узлов. Давайте представим, что у нас есть задача вставить число два в наше дерево.

Вот как мы бы это сделали:

Мы начнем наш путь с вершины дерева, где сейчас находится число пять. Задумаемся на мгновение: мы собираемся вставить двойку, так что нам нужно определить, куда она будет подходить лучше всего. Вспомним правило двоичного дерева: все числа меньше родительского узла должны быть слева. В нашем случае двойка меньше пяти, поэтому мы уверенно направляемся к левой ветке дерева, где находится тройка. Теперь у нас новый узел для сравнения — это тройка. Проверяем ещё раз: наше число, двойка, меньше тройки, так что мы продолжаем движение вниз по левой ветке. Наша цель — найти место, которое ещё не занято, или, говоря техническим языком, достичь nil значения в нашем дереве. В этом месте мы и вставим нашу двойку.

Нахождение минимума(findMin)

Теперь, прежде чем мы перейдем к работе с удалениями, один метод, который действительно полезно разобрать, — это поиск минимума в дереве двоичного поиска. И это на самом деле очень просто.
Если вы просто вспомните, что всякий раз, когда мы смотрим на дерево двоичного поиска, мы знаем, что все элементы слева будут меньше, чем все элементы справа.
Поэтому все, что нам действительно нужно сделать, это пройти по левой стороне нашего дерева, пока мы не встретим ноль.

И когда мы это делаем, это означает, что нет элементов меньше, чем тот, на котором мы сейчас находимся, поэтому мы можем просто вернуть этот узел.

В коде это будет выглядеть примерно так.

func findMin() -> Int {         guard let root = root else { return 0 }         return findMin(root).key;     }      private func findMin(_ node: Node) -> Node {         return node.min;     }

Мы можем поместить эту ответственность прямо в сам класс узла, и это всего лишь четыре строчки кода. Когда мы вызываем minimum на узле, мы просто проверяем, есть ли что‑нибудь слева от нас? Если нет, мы знаем, что достигли минимума, и можем просто вернуть его. Но если нет, давайте просто продолжим повторять и идти вниз по левой стороне дерева, пока не встретим этот null, а затем вернем его.

Обработка удалений

Удаление элементов из двоичного дерева поиска — это вполне достижимая задача, хотя и с некоторыми нюансами. Как вы упомянули, у нас есть три различных случая для рассмотрения: узлы без детей, узлы с одним ребенком и узлы с двумя детьми.

  1. Узел без детей — это самый простой случай. Здесь наш узел — это лист дерева, он сам по себе, без каких‑либо ветвей, растущих от него. Чтобы удалить такой узел, достаточно просто оборвать связь, которая связывает его с родителем. Можно представить, что этот узел — это капля воды на листе дерева, которая просто катится и падает, когда мы ее трогаем.

  2. Узел с одним ребенком — это немного сложнее, но всё же вполне управляемый случай. Здесь у нашего узла есть одна ветка — может быть либо слева, либо справа. Чтобы удалить этот узел, мы просто перенаправляем ссылку от родительского узла к ребенку этого узла. Это как переключить стрелку дорожного указателя, чтобы она указывала прямо на следующий узел.

  3. Наконец, узел с двумя детьми — это наиболее сложный случай. Однако, несмотря на это, в нём есть своя логика и порядок. Здесь наш узел имеет две ветви, и мы не можем просто перенаправить ссылку, как в предыдущем случае. Вместо этого мы находим минимальный узел в правом поддереве (или максимальный узел в левом поддереве), заменяем удаляемый узел этим узлом и затем удаляем найденный узел.

    Рассмотрим код:

    func delete(key: Int) {         guard let _ = root else { return }         root = delete(&root, key);     }          private func delete(_  node: inout Node?, _ key: Int) -> Node? {         guard let nd = node else { return nil }          if key < nd.key {             nd.left = delete(&nd.left, key)         } else if key > nd.key {             nd.right = delete(&nd.right, key)         } else {             // Кейс 1: Нет детей             if nd.left == nil && nd.right == nil {                 return nil             }                          // Кейс 2: Один ребенок             else if nd.left == nil {                 return nd.right              else if nd.right == nil {                 return nd.left              }                          // Кейс 3: Двое детей             else {                 // Находим минимальный узел справа                // (также может быть максимум слева)                 let minRight = findMin(nd.right!)                                  // копируем значения                 nd.key = minRight.key                                  // удаляем ноду которую только что копировали                 nd.right = delete(&nd.right, nd.key)             }         }                  return nd     }

Обход двоичного дерева

Ранее мы рассмотрели два различных способа обхода двоичного дерева. Вы можете пройтись по двоичному дереву в ширину и в глубину. В этом разделе мы рассмотрим три различных способа, которыми можно пройтись по двоичному дереву в глубину, и несколько различных способов обхода.

Обход двоичного дерева — это процесс посещения каждого узла в дереве в определенном порядке. Существуют три основные стратегии обхода: «inorder» (симметричный обход), «preorder» (прямой обход) и «postorder» (обратный обход). Каждый из этих методов обхода применяется для различных задач и имеет свои особенности.

Inorder (Симметричный обход): При этом типе обхода, мы сначала посещаем левый дочерний узел, затем родительский узел, и наконец правый дочерний узел. Если используется на дереве двоичного поиска, симметричный обход выводит узлы в возрастающем порядке.

Preorder (Прямой обход): В этом типе обхода сначала посещается родительский узел, затем его левый дочерний узел, и наконец правый дочерний узел. Этот метод обхода полезен для создания копии дерева, так как он клонирует корень дерева перед его поддеревьями.

Postorder (Обратный обход): Здесь сначала посещаются оба дочерних узла, и только после этого посещается родительский узел. Этот метод обхода полезен при удалении узлов дерева, так как он сначала удаляет дочерние узлы, прежде чем удалять родительский узел.
Важно помнить, что во всех этих методах обхода каждый узел посещается ровно один раз.

Характеристики времени выполнения

Когда мы говорим о двоичных деревьях поиска, одно из самых важных понятий — это временная сложность, которая обозначается как O(log n). Это относится к скорости, с которой происходят операции поиска, вставки и удаления в двоичном дереве поиска.

Если вы пытаетесь понять, что означает O(log n), подумайте о том, как работает двоичное дерево. Каждый раз, когда мы проходим через уровень дерева, количество операций, которые нам нужно выполнить, уменьшается вдвое. То есть, мы «расщепляем» пространство поиска на половины с каждым шагом. Это и есть логарифмическое сокращение, отсюда и выражение log n. Так что просто запомните: время, которое потребуется для выполнения операций поиска, вставки или удаления в двоичном дереве поиска, определяется как O(log n).

Заключение

Отлично, вы теперь обладаете пониманием двоичных деревьев поиска, что будет невероятно полезно на собеседованиях. Важно помнить, что основные принципы двоичного дерева поиска — это упорядоченность и рекурсия. Рекурсия является ключевым аспектом здесь, так как она постоянно применяется.

Вы уже ознакомились с некоторыми ключевыми терминами, такими как полные, совершенные и сбалансированные двоичные деревья, и вы понимаете, что внешний вид двоичного дерева может варьироваться в зависимости от того, насколько оно заполнено.

Вы также усвоили, что существуют разные подходы к исследованию дерева: можно идти вглубь или вширь. Если вы услышите эти термины, вы будете знать, о чем идет речь. И помимо глубины, есть различные способы обхода двоичного дерева.

Но самое главное, что стоит помнить о двоичных деревьях поиска, — это их эффективность в вопросах поиска. Их «суперсила» — это возможность осуществлять поиск со скоростью O(log n), что означает очень быстрый поиск.

Спасибо, что дочитали до конца! Удачи в ваших проектах и дальнейшем развитии в области iOS‑разработки! Подписывайтесь на мой канал с авторским контентом SwiftyGroup.


ссылка на оригинал статьи https://habr.com/ru/articles/746068/

Беда “войти в айти” или курсы тестировщика отзывы — Как я объявил борьбу IT-инфоцыганам

1.5 годовое исследование IT-курсов открыло мне глаза на 3 вещи:

  1. Есть огромный, почти в 10 раз, разброс в статистике трудоустройства после обучения на разных QA-курсах.

  2. У худших по трудоустройству курсов зачастую лучшие отзывы.

  3. Пандемия, господдержка и детский подход абитируентов к взрослому образованию в значительной степени сломали EdTech.

    При этом IT-компании, как и прежде, ищут квалифицированных джунов и редко находят.

Что происходит

На рынке EdTech вообще, и IT‑образования в частности последние пару лет постоянно что‑то происходит.

Что‑то меняется в лучшую сторону — пандемия исчезла, а господдержка закончилась.

Что‑то не изменится никогда — многие студенты так и будут по‑детски думать, что достаточно записаться на курс, и знания сами попадут в голову.

Что‑то меняется в худшую — разброс между плохими и хорошими курсами увеличивается, при этом на отзывы все сложнее ориентироваться.

Основная проблема IT‑образования остается в оценке качества.

Все услуги делятся на три типа — качество можно оценить ДО момента оказания услуги, ПОСЛЕ оказания услуги или вообще НИКОГДА.

Образовательные услуги относятся к третьему типу, чем и пользуются IT‑инфоцыгане. Они активно вкладываются в рекламу, предоставляют обучение крайне сомнительного качества и все это сходит с рук, потому что даже после конца обучения подавляющее большинство выпускников IT‑курсов не может внятно оценить его качество. «У нас было так. Не знаю, как на других курсах, может, там еще хуже». И даже факт трудоустройства конкретного единичного выпускника может ни о чем не говорить — может, он устроился в компанию с низкими требованиями и зарплатой 30’000 рублей?

В случае услуг третьего типа единственные отзывы, на которые можно ориентироваться — это отзывы других профессионалов. Во всех остальных случаях — это абсолютно бесполезная информация из разряда «врач был очень приветлив и внимателен».

В случае выбора врача единственный адекватный вариант — ориентироваться на отзывы других врачей.

В случае выбора юриста — ориентироваться на отзывы других юристов.

В случае выбора страховщика — на рейтинги страховых агентств (которые составляют профессиональные страховщики‑аудиторы).

В случае выбора объекта финансовых инвестиций — опять же на профессиональную оценку, а не «особое мнение» вложившегося знакомого.

Но на кого ориентироваться при выборе IT‑курса? Ближайший похожий аналог — ориентироваться на мнение знакомого специалиста, который уже работает в IT. Но максимум, что сможет этот знакомый — это оценить состав учебного плана. А теоретический план курса и его реализация на практике — это зачастую два непересекающихся множества.

Яростная борьба в фальсификатом и контрафактом

В начале исследования QA‑курсов, полтора года назад, мной двигали любопытство, некоторая ностальгия по работе фулстек‑разработчиком и возможность в режиме хобби поиспользовать навыки текущей профессии (стратегический консалтинг) в старом добром IT.

В середине исследования мотивировали интерес и возможность стать по сути первым, кто получит реальные значения статистики трудоустройств после разных курсов в российском EdTech. А еще меня зацепили личные истории сотен студентов, с которыми я общался для проведения исследования. Для многих из которых это была попытка изменить свою жизнь в лучшую сторону. И для многих из которых эта попытка стала неудачной.

Сейчас же меня больше мотивирует две вещи.

Во‑первых, хочется, чтобы результаты уникальной работы не «протухли». 1.5 года работы, пускай даже в режиме «хобби по вечерам» — это значительные трудозатраты.

Во‑вторых, когда на всех площадках отзывов я вижу пять звезд у одного из худших по результату исследования курсов со статистикой трудоустройства 5%, во мне что‑то закипает. А назначенный мне по условиям условно‑досрочного освобождения психолог говорит, что надо искать конструктивные пути выхода гнева (шутка).

Выражение лица, когда везде вижу пятизвездочные отзывы худшего по всем критериям курса, после которого по результатам исследования почти никто не трудоустраивается.

Выражение лица, когда везде вижу пятизвездочные отзывы худшего по всем критериям курса,
после которого по результатам исследования почти никто не трудоустраивается.

При этом абитуриенты начали обращаться с просьбами порекомендовать «лучший курс» еще с начала исследования. Ведь только статьи на Хабре про исследование набрали 400’000 просмотров — что показывает актуальность проблемы.

Но мне нечего было им ответить.

Изначально я действительно пытался рекомендовать отдельные курсы. Но через полгода их качество сильно изменялось, так как нынешний EdTech — это очень динамичная среда.
Затем я перестал называть какие‑то курсы, но стал давать студентам конкретные критерии, на которые нужно обращать внимание при выборе курсов. Но они, возможно, оказались не самыми очевидными для большинства.

В конце концов я вспомнил про несколько кейсов, с которыми работал в стратегическом консалтинге. Когда промышленные предприятия в рамках борьбы с контрафактом и недобросовестными конкурентами создавали некоммерческие ассоциации, которые объединяли разрозненные усилия добросовестных компаний по борьбе с любителями быстрых и простых денег.

В результате этого родился простой и эффективный инструмент для абитуриентов, позволяющий отличать качественные курсы, инвестирующие в качество обучения, от курсов, инвестирующих в рекламу.

Манифест профессионального IT-образования

Манифест — это что‑то вроде некоммерческой ассоциации IT‑курсов.

Которая:
а) задает требования к качественному IT‑образованию;
б) проверяет соблюдение этих требований курсами.

Соответствие курса требованиям манифеста подтверждается или внешним образовательным аудитом (если курс его уже проходил), или аудитом от самого манифеста.

Проверяется примерно десяток параметров, из которых самых важных два.

Для обучающих «с нуля» курсов — это то, что более 10% от числа изначально поступивших учиться на курсе в результате успешно трудоустроились.

Для «продвинутых» курсов — что NPS (Net Promoter Score, индекс потребительской лояльности) среди окончивших обучение более 1 месяца назад превышает 40%.

Как показывает практика, эти требования выполняются, если курс ориентируется в первую очередь на результаты обучения для студентов, а не собственные финансовые показатели.

С появлением манифеста профессионального IT‑образования добросовестные, дающие результат курсы больше не будут теряться на фоне тех, кто вкладывается только в рекламу.

Отзывы на платных площадках отзывов, фейковые положительные отзывы или фейковые негативные отзывы для конкурентов больше не будут иметь никакого смысла.

Абитуриенты смогут ориентироваться на самое главное — дает обучение результат или нет. А не на чье‑то субъективное мнение. И наконец, перестанут бессмысленно тратить деньги и время.

Манифест — это некоммерческий проект. Курсы, заявляющие о соответствии манифесту профессионального IT‑образования и действительно соответствующие ему, участвуют в проекте бесплатно, не платят за свое размещение в нем или переходы абитуриентов на их сайты. Единственное, что оплачивается — это привлечение профильных специалистов для проведения аудита по его себестоимости. Да и то только в том случае, если курс и не проходил внешний образовательный аудит, и не попал в исследование QA‑курсов 2021–2023 года.

Когда я планировал общение с курсами по поводу манифеста, мне казалось, что этот путь будет длинным. За последние месяцы я пообщался с руководителями десятков IT‑курсов, включая крупнейшие на рынке, и неожиданно выяснилось, что идея «витала в воздухе» и многие проявили интерес. Сейчас сразу шесть IT‑школ присоединяются к манифесту и выполняют необходимые формальности. Две из них были в моем исследовании QA‑курсов, а две я консультировал по улучшению качества обучения.

В исследовании я изучал только QA‑курсы. Но в комментариях обращали внимание, что можно заменить все упоминания QA на «iOS‑разработчик» или что‑то другое и в целом картина останется прежней.

Поэтому манифест профессионального IT‑образования не только про курсы тестировщика, но и про другие технические IT‑специальности. И, как исключение, про IT‑управленческие. Но это все равно не универсальный инструмент и про курсы дизайна, и маркетинга, и про всё на свете.

Как воспользоваться манифестом, чтобы не потерять время, деньги и достоинство на бесполезном образовании?

Самый простой способ актуален, если курс уже участвует в манифесте. Достаточно увидеть на странице курса логотип манифеста «курс соответствует требованиям профессионального образования», а после этого убедиться, что курс действительно присутствует в списке курсов на сайте манифеста.

Как и говорилось выше, к добавлению в манифест сейчас готовятся 6 школ. Так по трем из них уже есть самые важные данные — данные по трудоустройству, то они, как первые участники, уже размещены на сайте манифеста до окончания формальных процедур.
Каждое изменение в составе участников манифеста анонсируется в давно существующем телеграм‑канале QAsmokeQA — тестируем качество IT‑обучения.

Нахождение курса в списке соответствующих манифесту — гарантия того, что курс является тем, что пытается из себя представить. Он прошел аудит профессиональным специалистом по указанным требованиям и соответствует им. Изначально я не хотел давать абитуриентам список «лучших курсов», потому что он бы быстро устарел (как это произошло в прошлом году с одним курсом, который я рекомендовал). Прохождение аудита курсом два раза в год как раз и закрывает эту проблему.

Стоит подчеркнуть еще раз, что за нахождение на сайте манифеста курс ничего не платит, как и за переходы с этого сайта. Если курс присутствует на этом сайте — значит он действительно соответствует принципам качественного IT‑образования.

Если курс НЕ участвует в манифесте, но вы планируете на нем учиться, то правильное решение — попросить представителя курса прокомментировать, насколько курс соответствует требованиям манифеста, перечисленным на сайте. Такие важные параметры, как, например «Трудоустраиваются более 10% от начавших обучение» и «Школа возвращает денежные средства отчислившимся в первый месяц обучения студентам в сумме не менее 50% и в срок не более календарных 30 дней » вы проверить самостоятельно не сможете. Но параметры «Преподаватели с опытом не менее 3 лет» или «Кураторы/наставники с опытом не менее 1 года» — после пяти минут гугления преподавателей и наставников курса — вполне.

Если представитель курса не слышал про манифест (что нормально) и отделывается общими фразами, а не конкретными ответами на вопрос (что ненормально), то имеет смысл задуматься.

Как вариант, можете написать мне и я сам задам правильные вопросы в правильном порядке. Но надо понимать, что некоторые курсы принципиально не отслеживают статистику трудоустройства — с моей точки зрения, самого важного показателя обучения. Позиция «наша задача обучить, а не трудоустроить» в чем‑то справедлива, так как минимум половина успеха зависит от самого студента. Но с другой стороны, непонятно, как курс в этой ситуации может поддерживать программу в актуальном рынку состоянии. Если он не знает дальнейшую судьбу выпускников, если не понимает, с какими сложностями они сталкиваются на собеседованиях в частности и при поисках работы вообще.

Кстати, у IT‑курсов в US такая позиция встречается реже — американская прагматичность здесь работает в плюс.

Конец хайпа

Как показывает опыт других отраслей, в конкурентной борьбе не всегда выигрывают лучшие по соотношению цена/качество. Зачастую побеждают те, кто режет качество «в ноль, пока потребителю незаметно». И если речь про плохую работу низкооплачиваемых курьеров службы доставки, то это неприятно, но не смертельно. Но когда говорим про собственное интеллектуальное и профессиональное развитие, это может быть фатально.

Окончание хайпа вокруг IT‑образования, изначально разумной вещи, может привести к одному из двух очевидных результатов. Судя по симптомам «тысячи откликов на одну вакансию», пока что реализуется худший вариант. Ведь вариант «меньше кадров, но качественней» сложнее рекламировать, и на выходе он дает EdTech меньше денег.

При этом очевидно, что эволюция AI принесет большие потрясения IT‑рынку в ближайшие 5 лет. Было бы неплохо адаптироваться к этим изменениям с несколько более качественными кадрами, чем с теми, которые сейчас в основном предоставляет EdTech.

Но, возможно, если хорошие люди объединятся, еще не все потеряно?

QAsmokeQA

Эта статья — часть большого цикла хабр-статей в рамках исследования IT-курсов:

Если не хотите пропустить следующую Хабр‑статью автора или что‑то новое в IT‑курсах, подписывайтесь на http://t.me/QAsmokeQA

P.S. Список курсов, которые не пытаются собрать деньги со всех, а делают честный входной отбор и зачисляют только со способностями к тестированию. Если вы наткнулись на бесплатный или платный курс, который делает входной отбор за счет профориентации и/или тестирования, сообщите мне. Необязательно, чтобы это был курс именно по тестированию. Необязательно, чтобы это был именно курс — может быть есть какие‑то онлайн‑сервисы по профориентации.

P.P.S. Исследование QA‑курсов продолжается. Если вы сейчас как студент проходите QA‑курс (особенно англоязычный), заинтересованы в получении максимально качественного образования и готовы делиться удовлетворенностью о ходе обучения, напишите мне. В ответ при возникновении брешей в учебе или сложностей с доведением резюме до ума автор поможет.

P.P.P.S. Подисследование международного трудоустройства. Если вы недавно стали QA‑джуном и заинтересованы в релокации, то у автора есть кое‑что интересное для вас (так как он начал изучать иностранный QA‑рынок). А именно, закрытая группа из 10–20 QA‑джунов, которые настроены на целенаправленное трудоустройство именно в США/Европе и готовы активно кооперироваться по подходам/поиску контор. Условия: а) вход только по нормальному англоязычному резюме/сопроводительному б) готовность шарить с «подельниками» интересные вакансии не реже раза в две недели в) быть готовым к исключению при невыполнении б).


ссылка на оригинал статьи https://habr.com/ru/articles/746052/