Programforyou
Содержание:
- Кто такой программист
- Программы
- Как создать мобильное приложение: пошаговая инструкция
- Логические ветви и сравнения
- Синтаксический анализатор / парсер
- Какой должна быть эффективная программа лояльности
- Массивы
- Шаг №4: Компиляция
- Как разместить приложение в Google Play
- Абстрактный семантический граф
- 1. Bubble
- Создание приложения для андроид — построение и тестирование
- Шаг №6: Тестирование и отладка
- Первые шаги
- Советы новичкам
- Создаем свою сборку программ с помощью программы MinstAll
Кто такой программист
Программист – это человек, который разрабатывает программы и алгоритмы для решения определенных задач. В своей работе он использует математическое моделирование, на основе которого пишет код. Продуктами работы программистов могут быть компьютерные игры и операционные системы, сайты и приложения.
Стать программистом может любой человек, независимо от пола и возраста. Но он должен искренне интересоваться компьютерами и веб-технологиями, ведь они непрерывно развиваются и меняются, поэтому специалисту надо мониторить изменения и постоянно обновлять знания.
Программисты обладают такими качествами, как:
- стрессоустойчивость,
- внимательность,
- усидчивость,
- ответственность,
- креативность.
Также у большинства есть высшее, чаще всего техническое, образование. Если же это гений-самоучка, то ему не помешает наработать стаж, чтобы получить должность в известной компании.
Программы
Есть стандартные программы, а есть дополнительные. Стандартные — это те приложения, которые имеются на любом компьютере, а дополнительные — те, которые не входят в обычный набор, их устанавливают отдельно.
Поговорим сначала о стандартных:
Internet Explorer — приложение, при помощи которого можно перемещаться по Интернету, то есть открывать сайты.
Windows Media Player — проигрыватель музыкальных и видео файлов.
Outlook Express — получение и отправление писем по электронной почте.
Windows Movie Maker — программа для создания и редактирования видеозаписей.
Игры — набор несложных компьютерных игр.
Пуск –› Программы –› Стандартные:
WordPad — создание и редактирование текста (упрощенный MS Word).
Блокнот — простейшее приложение для создания и редактирования текста. В ней можно только напечатать и сохранить без оформления.
Калькулятор — думаю, понятно, что это.
Paint — простой графический редактор, в котором можно рисовать и обрабатывать изображения.
Звукозапись (Развлечения –› Звукозапись) — запись звука/голоса. Для того, чтобы ею пользоваться, должен быть микрофон.
Специальные возможности – несколько простых и удобных приложений для людей с ограниченными возможностями.
Записки — здесь можно делать пометки, фиксировать важные события. На экран как будто прикрепляется бумажка, на которой можно напечатать пометку-напоминалку.
Ножницы — «фотографирование» экрана или его части (скриншот).
Панель математического ввода — ввод математических формул.
А теперь разберемся с дополнительными программами. Это такие приложения, которых изначально нет в системе Windows, их устанавливают отдельно.
Пакет офисных приложений Microsoft Office:
Microsoft Word — работа с текстом и документами. Самый известный и распространенный текстовый редактор.
Microsoft Excel — вычисления, составление таблиц и диаграмм.
Microsoft Access — создание, редактирование баз данных, обработка больших объемов информации.
Microsoft Outlook — работа с электронной почтой.
Microsoft PowerPoint — создание презентаций (визуального представления какой-либо информации).
Другие приложения:
WinRaR (7-Zip, WinZip) — архиватор. Запаковывает и сжимает файлы.
Winamp — проигрывает музыку и видео.
K-Lite Codec Pack (Media Player Classic) — проигрывает музыку и видео.
KMPLayer — проигрывает музыку и видео.
ACDSee — показывает фото и рисунки.
Kaspersky Anti-Virus, Dr.Web, Norton AntiVirus, Avast!, NOD32 или что-либо еще, в названии которого присутствует слово AntiVirus — защита от вирусов.
Nero — запись CD и DVD дисков.
Google Chrome, Opera, Mozilla Firefox, Yandex — программа, при помощи которой можно перемещаться по Интернету, то есть открывать сайты. То же самое, что и Internet Explorer, только лучше.
Adobe Photoshop — работа с компьютерной графикой, обработка фото и картинок.
Skype — голосовые и видео звонки по Интернету, переписка.
Как создать мобильное приложение: пошаговая инструкция
Определившись, как создать приложение в плане технических средств, можно переходить к его поэтапной реализации.
Подготовительный этап
Этот мозговой штурм необходим перед созданием приложения. Задача этапа — найти ответы на следующие вопросы:
- Какую цель преследует создание приложения для компании?
- Зачем оно нужно потребителю? Что будет мотивировать его устанавливать приложение на свой смартфон или планшет?
- Что должно уметь приложение, чтобы пользователь легко получал искомое?
- На каких платформах должно работать приложение (для IOS, Android, Windows)?
- Какой способ создания из описанных выше вам подходит и в какую сумму обойдётся создание приложения и его последующее использование?
- Какое обслуживание потребуется после запуска? Например, нужно ли контролировать исправность работы на ежедневной основе?
Задача этого этапа — взглянуть на будущее приложение с точки зрения пользователя. Ведь вы ищете ответ на вопрос «Как сделать мобильное приложение?» именно для того, чтобы он установил его на свой смартфон.
Разработка приложения
Практический этап создания приложений — разработка. После тщательного анализа в предыдущем шаге вы уже представляете себе необходимые функции и характеристики будущего продукта. А значит и конструктор можете выбрать с их учётом.
Запуск и тестирование мобильного приложения
Прежде, чем приложение увидит свет, нужно убедиться в его корректном функционировании. Если в нём будут серьёзные ошибки, вся работа будет тщетной.
Для тестирования необходим смартфон с подключением к компьютеру. Его можно заменить эмулятором мобильного устройства на мониторе.
В ходе тестирования важно проверить:
- насколько корректно работают все функции;
- работает ли оно со всеми планируемыми типами операционных систем;
- выдерживает ли оно повышенную пользовательскую нагрузку;
- как влияют различные изменения в скорости передаче или статусе мобильного устройства на его работу.
Существуют автоматизированные программы для тестирования приложений. Однако ничто не заменит работы в ручном режиме. В идеале его должен выполнять пользователь, который ранее не видел интерфейса и, тем более, не участвовал в его разработке. Если выбираете бесплатный вариант, попросите кого-нибудь из знакомых об этой услуге.
Продвижение мобильного приложения
Основным вариантом продвижения является реклама. Грамотно составленная она стимулирует пользователя установить приложение. В качестве рекламных площадок можно использовать Яндекс и Google, соцсети и приложения смежной тематики, которая может быть интересна вашей целевой аудитории.
Но привлечь — только половина дела. Чтобы превратить пользователя, нажавшего кнопку «Установить», в вашего лояльного клиента, нужен целый комплекс мер.
В него входят:
- регулярное обновление материала, если речь идёт об информационном приложении;
- периодические push-уведомления, например, с информацией о скидках или акциях (не слишком часто, иначе назойливое приложение будет удалено с телефона);
- добавление новых функций в соответствии с потребностями пользователей;
- работа с отзывами на разных площадках. В том числе негативными, ведь именно их особенно тщательно изучают перед установкой.
Для того, чтобы выйти в ТОП популярных магазинов, просто сделать приложение недостаточно. Его необходимо постоянно поддерживать и развивать.
За статус популярного приложения в Google Play придётся побороться
Логические ветви и сравнения
Предположим, мы пишем приложение, которое определяет, разрешено ли конкретному человеку войти в ночной клуб. Представим, что в JavaScript API есть метод, который получает возраст пользователя. Мы назовём его . Также предположим, что существуют два других метода: и . Как мы можем помочь нашей программе решить, какой из этих двух методов нужно вызвать, исходя из возвращаемого значения первого метода?
Вы уже знаете, что делает первая строка. (возраст) может варьироваться от 7 до 101. Теперь нам нужно определить больше значение , чем 21 или нет.
Мы делаем это с помощью оператора (если) — ключевого слова, похожего на метод. Аргумент, который он ожидает, представляет собой какое-то выражение (обычно сравнение). Сравнения принимают два значения и сравнивают их друг с другом. В результате чего выбирается одно из следующих ключевых слов: — в случае соответствия правилу и — в случае несоответствия. Это называется логическим выражением.
В JavaScript есть возможность 6 видов сравнения:
• сравнивает значения. Если они одинаковы, то вы увидите . Например, было бы ;
• сравнивает значения на неравенство. Если они не равны, то вы увидите . Например, было бы ;
• проверяет, больше ли значение слева. Если больше, то вы увидите . Например, было бы ;
• проверяет, больше ли значение справа. Если больше, то вы увидите . Например, было бы ;
• проверяет, больше или равна правая часть левой. Если больше или равна, то вы увидите . Например, выражения ибыли бы ;
• проверяет, меньше или равна правая часть левой. Если больше или равна, то вы увидите true. Например, выражения и были бы .
Оператор оценивает сравнение. Если выводится , то код выполняется внутри блока сравнения. Если выводится , код не выполняется и игнорируется.
Оператор также может работать с оператором (то). Он содержит в себе блок кода, который будет выполнен, если сравнение вернёт .
Синтаксический анализатор / парсер
Список токенов проходит через парсер и превращается в дерево.
Следующая стадия — парсер. Он преобразует исходный текст, то есть список токенов (с учётом скобок и порядка операций), в абстрактное синтаксическое дерево, которое позволяет структурно представить правила создаваемого языка. Сам по себе процесс можно назвать простым, но с увеличением количества языковых конструкций он сильно усложняется.
Bison
На этом шаге я также думал использовать стороннюю библиотеку, рассматривая Bison для генерации синтаксического анализатора. Он во многом похож на Flex — пользовательский файл с синтаксическими правилами структурируется с помощью программы на языке C. Но я снова отказался от средств автоматизации.
Преимущества кастомных программ
С лексером моё решение писать и использовать свой код (длиной около 200 строк) было довольно очевидным: я люблю задачки, а эта к тому же относительно тривиальная. С парсером другая история: сейчас длина кода для него — 750 строк, и это уже третья попытка (первые две были просто ужасны).
Тем не менее, я решил делать парсер сам. Вот основные причины:
- минимизация переключения контекста;
- упрощение сборки;
- желание справиться с задачей самостоятельно.
В целесообразности решения меня убедило высказывание Уолтера Брайта (создателя языка D) в одной из его статей:
Какой должна быть эффективная программа лояльности
Мы составили несколько основанных на опыте практических советов по разработке эффективных программ лояльности.
Главное — донести выгоду до покупателя
В противном случае пользоваться ею никто не станет.
Пример. Несколько лет назад существовала и активно рекламировалась программа лояльности, работавшая в нескольких сегментах: магазины, заправки, салоны красоты. В настоящий момент ее популярность сошла на нет по ряду причин. Во-первых, по факту накопленные баллы было сложно во что-либо конвертировать. Во-вторых, многие бизнесы-участники ушли, создав свои программы лояльности, более понятные для покупателей.
Важно анализировать активность конкурентов
Всплеск интереса потенциальных заказчиков к внедрению программ лояльности часто совпадает с запуском такой программы компанией-лидером в своем сегменте. Например, не так давно свою новую программу запустила «Пятерочка», и многие food-ритейлеры уже анализируют ее, чтобы выявить слабые места, запустив свою программу, которая будет лучше.
Просчитайте все параметры
Несмотря на написанное выше, нельзя торопиться с запуском программы лояльности только потому, что у конкурентов она уже есть. Чтобы ее разработка не стала пустой тратой ресурсов необходимо предварительно разобраться с цифрами. Например, в зависимости от сегмента магазина следует определить, какой процент будет возвращаться на бонусный счет покупателей, и каков будет срок жизни зачисленных баллов.
Помимо общих правил важно продумывать и более гибкие схемы использования — например, эффективно работает начисление повышенных бонусов в зависимости от типа товаров. Часто этот метод используют во время рекламных кампаний товаров определенных брендов
Важно понять и то, насколько часто покупатели будут получать оповещения о проходящих акциях, повышенных начислениях и истекающем сроке действия их бонусных баллов — если рассылать уведомления слишком часто, можно добиться негативного эффекта. Также следует разработать правила списания и конвертации баллов
Потребуются ограничения по максимальной сумме списания, а «курс» обмена баллов на скидки должен сохранять выгоду для ритейлера, но быть прозрачным и понятным для покупателя.
Программа лояльности должна быть удобной
Наряду с анализом того, как сделать программу одновременно полезной для покупателя и выгодной для бизнеса, не стоит забывать и про ее общее удобство. Например, никому не нравится заполнять анкеты на кассе, поэтому в последнее время все чаще можно встретить магазины, которые выдают карты бонусной программы сразу, а активировать их можно позже, воспользовавшись компьютером.
Таким образом ритейлер сумеет собрать больше данных о клиентах. Так, в электронную анкету можно добавить больше вопросов, чем в ее бумажную версию, особенно если мотивировать покупателя заполнить их дополнительно начисленными бонусными баллами (например, «100 баллов за номер телефона»).
Подготовьте инфраструктуру
Воплотить все описанные выше советы в жизнь не получится, если инфраструктура магазина к этому не готова. Например, если кассовый софт не позволяет реализовывать гибкие настройки программы лояльности.
Читать еще: «Четыре способа вернуть покупателя в магазин»
Массивы
Массивы — это список похожих фрагментов данных. В программировании на JavaScript массивы выглядят следующим образом:
Для массивов принято использовать . В данном случае вы можете использовать в любом месте вашего кода, ссылаясь на массив, который только что определили.
Примечание Счёт массивов начинается с нуля, а не с единицы.
Если вы хотите обратиться к какому-то отдельному элементу, то можно сделать следующее:
Внутри квадратных скобок мы пишем индекс элемента, к которому хотим обратиться.
Каждое из приведённых выше выражений — переменная. Вы можете присвоить им какое-нибудь новое значение, чтобы поэкспериментировать:
Теперь будет ссылаться на новое значение.
Массивы могут содержать текст, числа, даты, объекты и даже другие массивы. Массивы также могут быть свойствами объектов.
Чтобы обратиться к message, вы можете написать следующее:
И компьютер поймёт, что вы имеете в виду
Шаг №4: Компиляция
Для того, чтобы скомпилировать программу нам нужен . Работа компилятора состоит из двух частей:
Проверка программы на соответствие правилам языка C++ (проверка синтаксиса). Если она будет неудачной, то компилятор выдаст сообщения об ошибках, которые нужно будет исправить.
Конвертация каждого исходного файла с кодом в объектный файл (или «объектный модуль») на машинном языке. Объектные файлы, как правило, имеют названия name.o или name.obj, где name должно быть такое же как и имя вашего исходного файла .cpp. Если ваша программа состоит из 3-х файлов .cpp, то компилятор сгенерирует 3 объектных файла.
Стоит отметить, что такие операционные системы как Linux и macOS имеют уже встроенный компилятор C++, который называется g++. Для компиляции файлов из командной строки с помощью g++ вам нужно будет прописать следующее:
Таким образом мы создадим file1.o, file2.o и file3.o. означает «только скомпилировать», т.е. просто создать .o (объектные) файлы. Кроме g++, существует множество компиляторов для различных операционных систем: Linux, Windows, macOS и других.
Как разместить приложение в Google Play
Основной способ распространения андроид-приложений — это размещение на площадке Google Play. Кроме этого, приложения можно размещать и в Amazon AppStore, и в Yandex Store, в Shop Samsung App. Но следует помнить, что основной площадкой является Google Play. Магазин приложений Google устанавливается практически на все устройства с Android (кроме ряда «китайцев» и «индийцев»), и по умолчанию на всех этих устройствах включена опция установки приложений только с этой площадки.
Основные особенности Google Play:
- огромная база пользователей;
- очень много приложений: практически все существующие Android-приложения присутствуют на этой площадке;
- удобные инструменты для публикации;
- быстрая форма проверки приложений (через пару часов приложение будет уже доступно).
Давайте посмотрим, как выложить своё приложение в Google Play. Перед загрузкой приложения необходимо зарегистрировать аккаунт разработчика в Google Play. Обычно советуют использовать для этого не свой личный аккаунт (если у вас почта на Gmail), а специально создать для этого ещё один аккаунт. Это связано с тем, что если робот Google Play решит заблокировать аккаунт разработчика, то ваш личный аккаунт это не затронет. Откроем страницу регистрации:
И следуем простым шагам:
Важный момент: регистрация разработчика стоит 25 долларов США. Плата берётся единовременно.
Далее, чтобы опубликовать приложение, надо зайти в аккаунт разработчика и нажать «Новое приложение». Вы попадёте в консоль разработчика:
При заполнении различных форм перед публикацией приложения можно выбрать тип и описание вашего приложения (категория, ограничения аудитории по возрасту и т.п.), языки и страны распространения, цену в каждой из стран. Также необходимо выбрать изображения с приложением, экраны этого приложения, создать подписи и сделать ряд других вещей.
После этого необходимо проверить, что все формы заполнены
Кстати, у Google есть и свой список рекомендаций по поводу того, как опубликовать своё приложение.
Для заполнения формы с версиями приложений надо подготовить релизную версию вашего приложения. то уже не debug-версия вашего приложения, которая запускалась у вас до этого момента, в эмуляторе или под отладкой на устройстве, через кнопку Run.
Абстрактный семантический граф
Переход от синтаксического дерева к семантическому графу
В этой части я реализовал структуру, по своей сути наиболее близкую к «промежуточному представлению» (intermediate representation) в LLVM. Существует небольшая, но важная разница между абстрактным синтаксическим деревом (АСД) и абстрактным семантическим графом (АСГ).
АСГ vs АСД
Грубо говоря, семантический граф — это синтаксическое дерево с контекстом. То есть, он содержит информацию наподобие какой тип возвращает функция или в каких местах используется одна и та же переменная. Из-за того, что графу нужно распознать и запомнить весь этот контекст, коду, который его генерирует, необходима поддержка в виде множества различных поясняющих таблиц.
Запуск
После того, как граф составлен, запуск программы становится довольно простой задачей. Каждый узел содержит реализацию функции, которая получает некоторые данные на вход, делает то, что запрограммировано (включая возможный вызов вспомогательных функций), и возвращает результат. Это — интерпретатор в действии.
1. Bubble
В основу сервиса заложена концепция визуального программирования, то есть программирования без кода. Технология «drag & drop» позволяет легко добавлять и перемещать элементы страницы: текст, видео, карты, иконки, изображения, кнопки и пр. Все поддается настройке вплоть до цвета фона, иконок, прозрачности элементов.
Workflow-программирование дает более детальное представление о том, что происходит на каждом шагу. В Bubble можно структурировать и хранить данные, задавать свою логику переходов (например, если пользователь при входе в систему нажал кнопку X, перейти к Y, в противном случае – к A), кроме того у ваших пользователей появляется возможность загружать свой контент.
Здесь реализована интеграция с такими популярными сервисами, как MailChimp (автоматическая подписка пользователей) и Mixpanel (отслеживает активность пользователей в приложении). Это идеальный вариант для тех, кто хочет создать сайт или приложение, особо не заморачиваясь. Создать проект в сервисе можно бесплатно. Плата взимается после того, как как количество пользователей начнет расти, и сайтом или приложением начинают активно пользоваться.
Создание приложения для андроид — построение и тестирование
В меню «Tools» перейдите к Android- AVD Manager. Этот инструмент отображает список текущих настроенных виртуальных Android-устройств. У вас будет одно устройство, настроенное по умолчанию, возможно, Nexus 5. Нажмите на значок воспроизведения (треугольник) в столбце «actions». Это запустит эмулятор.
В зависимости от производительности вашего ПК и объема выделенной памяти запуск эмулятора может занять несколько минут. После того, как эмулятор будет запущен, перейдите в меню «Tools» и нажмите «Run ‘app». Приложение будет скомпилировано и отправлено в эмулятор. Во время этого Android Studio спросит вас, какой эмулятор использовать. Вы увидите в списке свой текущий эмулятор. Это должна быть опция по умолчанию, поэтому просто нажмите «OK»:
Tap me!
Шаг №6: Тестирование и отладка
Здесь начинается самое веселое! Вы уже можете запустить исполняемый файл и посмотреть, работает ли всё так, как надо. Если нет, то пришло время отладки. Более подробно об отладке мы поговорим чуть позже.
Обратите внимание, для выполнения шагов №3-№6 вам потребуется специальное программное обеспечение. Хотя вы можете использовать отдельные программы на каждом из этих шагов, один пакет программного обеспечения («IDE» от англ
«Integrated Development Environment») объединяет в себе все эти программы. Обычно с IDE вы получаете редактор кода с нумерацией строк и подсветкой синтаксиса, а также компилятор и линкер. А когда вам нужно будет провести отладку программы, вы сможете использовать встроенный отладчик. Кроме того, IDE объединяет и ряд других полезных возможностей: комплексная помощь, дополнение кода, в некоторых случаях еще и система контроля версий.
Первые шаги
«А с чего вообще начинать?» — вопрос, который другие разработчики часто задают, узнав, что я пишу свой язык. В этой части постараюсь подробно на него ответить.
Компилируемый или интерпретируемый?
Компилятор анализирует программу целиком, превращает её в машинный код и сохраняет для последующего выполнения. Интерпретатор же разбирает и выполняет программу построчно в режиме реального времени.
Технически любой язык можно как компилировать, так и интерпретировать. Но для каждого языка один из методов подходит больше, чем другой, и выбор парадигмы на ранних этапах определяет дальнейшее проектирование. В общем смысле интерпретация отличается гибкостью, а компиляция обеспечивает высокую производительность, но это лишь верхушка крайне сложной темы.
Я хотел создать простой и при этом производительный язык, каких немного, поэтому с самого начала решил сделать Pinecone компилируемым. Тем не менее, интерпретатор у Pinecone тоже есть — первое время запуск был возможен только с его помощью, позже объясню, почему.
Выбор языка
Своеобразный мета-шаг: язык программирования сам является программой, которую надо написать на каком-то языке. Я выбрал C++ из-за производительности, большого набора функциональных возможностей, и просто потому что он мне нравится.
Но в целом совет можно дать такой:
- интерпретируемый ЯП крайне рекомендуется писать на компилируемом ЯП (C, C++, Swift). Иначе потери производительности будут расти как снежный ком, пока мета-интерпретатор интерпретирует ваш интерпретатор;
- компилируемый ЯП можно писать на интерпретируемом ЯП (Python, JS). Возрастёт время компиляции, но не время выполнения программы.
Проектирование архитектуры
У структуры языка программирования есть несколько ступеней от исходного кода до исполняемого файла, на каждой из которых определенным образом происходит форматирование данных, а также функции для перехода между этими ступенями. Поговорим об этом подробнее.
Советы новичкам
Создайте план обучения, разбив его на этапы, рядом с которым пропишите, что именно надо выучить и с помощью каких средств. Переход от одного этапа к другому должен быть по мере увеличения сложности.
Не растягивайте обучение на полдесятка лет. Информационные технологии имеют способность быстро развиваться. И пока вы тщательно изучаете какой-то инструмент программирования, он уже может быть заменен на что-то более современное.
При обучении используйте все материалы, сервисы и знания других людей, которые будут доступны. Не пренебрегайте ничем.
При возможности общайтесь с практикующим программистом, у которого есть опыт работы. Если он согласится курировать над новичком, направлять его, указывать на ошибки и давать задания для развития – это будет отличным дополнением ко всему обучению. Особенно если начинающий специалист обучается самостоятельно.
Узнайте больше об архитектуре компьютера.
Учите английский. Большинство обучающих программ представлены на этом языке. Есть и русскоязычные, но их значительно меньше. Без иностранного языка сложно что-то найти в англоязычном интернете. А уже непосредственно при работе программисты сталкиваются с английским во время чтения и написания кодов.
Создаем свою сборку программ с помощью программы MinstAll
Скачиваем программу тут. Распаковываем и запускаем программу с помощью файла autorun.exe. У вас откроется сама программа, в которой вы сможете добавлять те приложения, которые вам необходимы. Чтобы добавить программу нажмите на кнопку настроек, которая находится в верхнем правом углу. Нажмите на зелёный + который находятся рядом. Выберите файл, который Вы будете использовать как установщик какой-либо программой, этот файл может лежать вас на флешке, диске либо на вашем компьютере, без разницы, вы его выбираете там, где он у вас лежит.
Но лучшим вариантом если вы поместите данную программку в раздел minstall/software. Выбрали файл, нажимали кнопку открыть, в следующем окне Вам нужно будет прописать: название программы, версию программы, уникальный идентификатор guid, если есть программы которые исключают установку данной программы, то их нужно добавить, если есть программы которые включают данную установку, то их тоже нужно добавить, нужно указать статус программы. Далее вы представляете галочки всех совместимых операционных систем, если подходят все операционные системы, то можно просто поставить галочку все. Также вы можете выбрать битность данной программы на какую битность её можно будет установить.
Путь приложению программа добавить сама если вы поместите программу как я говорил в начале в папку software. Чтобы Вы могли легко определить программу на глаз можете добавить иконку. Иконку Вы можете выбрать откуда угодно она сама автоматически подтянется в нужную папку. Если вы хотите запустить программу в скрытом виде, то там есть специальную галочку, если для программы нужна перезагрузка можно поставить галочку перезагрузить ОС. Ну и последнее что необходимо это указать ключи запуска если у вас репак программы либо если вы хотите указать какие-то определенные настройки для того, чтобы эти настройки включились в момент установки.
Есть стандартные ключи запуска, которые можно посмотреть в самой программе, а некоторые ключи придется поискать в Интернете или спросить на сайте у разработчика программы, разные упаковщики exe файлов имеют разные ключи запуска. Программка которая покажет возможные ключи тут.
Более подробно о том, как создать свой набор программ Вы можете посмотреть в моём видео.