Компьютерные программы в наши дни внедряются повсюду — от наших автомобилей до смартфонов и почти в каждой работе. По мере того как мир становится все более и более цифровым, потребность в новых программах будет постоянно расти. Если у вас есть следующая большая идея, почему бы не создать ее самостоятельно? Ознакомьтесь с шагом 1 ниже, чтобы узнать, как начать изучать язык, развивать свою идею в тестируемый продукт, а затем итерировать его, пока он не будет готов к выпуску.
Придумываем идею
![]()
1. Мозговой штурм идей. Хорошая программа выполняет задачу, которая облегчает жизнь пользователю. Посмотрите, какие программы существуют на данный момент для выполнения той задачи, которую вы хотите решить, и выясните, есть ли способы сделать этот процесс проще или легче. Успешная программа — это та, в которой пользователи найдут много полезного.
- Проанализируйте свои ежедневные задачи на компьютере. Есть ли способ автоматизировать часть этих задач с помощью программы?
- Записывайте каждую идею. Даже если в данный момент она кажется глупой или нелепой, она может превратиться в нечто полезное или даже гениальное.
![]()
2. Изучите другие программы. Что они делают? Как они могли бы делать это лучше? Чего им не хватает? Ответы на эти вопросы помогут вам придумать идеи для своего собственного варианта.
![]()
3. Напишите проектную документацию. В этом документе будут описаны функции и то, чего вы собираетесь достичь с помощью проекта. Обращение к дизайн-документу в процессе разработки поможет держать проект на плаву и сосредоточиться на нем. См. это руководство для получения подробной информации о написании документа. Написание дизайн-документа также поможет вам решить, какой язык программирования лучше всего подойдет для вашего проекта.
![]()
4. Начните с простого. Когда вы только начинаете изучать компьютерное программирование, лучше начать с малого и со временем развиваться. Вы узнаете гораздо больше, если поставите перед собой реальные цели, которые можно достичь с помощью базовой программы. Например,
Выучить язык
![]()
1. Скачайте хороший текстовый редактор. Почти все программы пишутся в текстовых редакторах, а затем компилируются для запуска на компьютере. Хотя вы можете использовать такие программы, как Notepad или TextEdit, настоятельно рекомендуется загрузить редактор с подсветкой синтаксиса, такой как Notepad++ JEdit или Sublime Text. Это значительно облегчит визуальный разбор вашего кода.
- Некоторые языки, например Visual Basic, включают в себя редактор и компилятор в одном пакете.
![]()
2. Изучите язык программирования. Все программы создаются с помощью кодирования. Если вы хотите создавать собственные программы, вам необходимо знать хотя бы один язык программирования. Языки, которые вам нужно будет изучить, зависят от типа программы, которую вы хотите создать. Некоторые из наиболее полезных и важных включают в себя:
- C — C — это низкоуровневый язык, который очень тесно взаимодействует с аппаратным обеспечением компьютера. Это один из самых старых языков программирования, который до сих пор широко используется.
- C++ — Самый большой недостаток языка C заключается в том, что он не является объектно-ориентированным. Именно здесь на помощь приходит C++. В настоящее время C++ является самым популярным языком программирования в мире. Такие программы, как Chrome, Firefox, Photoshop и многие другие, созданы на C++. Это также очень популярный язык для создания видеоигр.
- Java — Java — это эволюция языка C++, и он чрезвычайно портативен. Большинство компьютеров, независимо от операционной системы, могут запускать виртуальную машину Java, что позволяет использовать эту программу практически повсеместно. Он широко используется в видеоиграх и деловом программном обеспечении и часто рекомендуется в качестве основного языка.
- C#— C# — это язык для Windows и один из основных языков, используемых при создании программ для Windows. Он тесно связан с Java и C++ и должен быть прост в изучении, если вы уже знакомы с Java. Если вы хотите создать программу для Windows или Windows Phone, вам стоит присмотреться к этому языку.
- Objective-C — это еще один родственник языка C, который специально разработан для систем Apple. Если вы хотите создавать приложения для iPhone или iPad, этот язык для вас.
![]()
3. Скачайте компилятор или интерпретатор. Для любого языка высокого уровня, такого как C++, Java и многие другие, вам понадобится компилятор, чтобы преобразовать ваш код в формат, который сможет использовать компьютер. Существует множество компиляторов, выбор которых зависит от используемого языка.
- Некоторые языки являются интерпретируемыми, что означает, что им не нужен компилятор. Вместо этого достаточно установить на компьютер интерпретатор языка, и программы будут выполняться мгновенно. Примерами интерпретируемых языков являются Perl и Python.
![]()
4. Изучите основные концепции программирования. Независимо от того, какой язык вы выберете, вам, скорее всего, придется понять некоторые основные общие концепции. Знание синтаксиса языка позволит вам создавать гораздо более мощные программы. К общим понятиям относятся:
- Объявление переменных — Переменные — это способ временного хранения данных в вашей программе. Эти данные можно хранить, изменять, манипулировать ими и обращаться к ним позже в программе.
- Использование условных операторов (if, else, when и т. д.) — они являются одной из основных функций программ и определяют, как работает логика. Условные операторы вращаются вокруг утверждений «истинно» и «ложно».
- Использование циклов (for, goto, do и т. д.) — циклы позволяют повторять процессы снова и снова, пока не будет дана команда на остановку.
- Использование экранирующих последовательностей — эти команды выполняют такие функции, как создание новых строк, отступов, кавычек и т. д.
- Комментирование кода — Комментарии необходимы для того, чтобы запомнить, что делает ваш код, помочь другим программистам понять ваш код, а также для временного отключения частей кода.
- Понимание регулярных выражений.
![]()
5. Найдите несколько книг по выбранному вами языку. Существуют книги по каждому языку и для любого уровня знаний. Вы можете найти книги по программированию в местном книжном магазине или в любом онлайн-магазине. Книга может стать бесценным инструментом, ведь во время работы она всегда будет под рукой.
- Помимо книг, интернет — это бесконечный кладезь руководств и учебников. Найдите руководства по выбранному вами языку на таких сайтах, как Codecademy, Code.org, Bento, Udacity, Udemy, Khan Academy, W3Schools и многих других.
![]()
6. Возьмите несколько уроков. Любой человек может самостоятельно научиться создавать программы, если приложит к этому усилия, но иногда присутствие учителя и атмосфера в классе могут быть действительно полезными. Занятия один на один с экспертом могут значительно сократить время, необходимое для освоения основ и концепций программирования. Занятия также являются хорошим местом для изучения продвинутой математики и логики, которые потребуются для более сложных программ.
- Занятия стоят денег, поэтому убедитесь, что вы записываетесь на занятия, которые помогут вам узнать то, что вы хотите узнать.
![]()
7. Задавайте вопросы. Интернет — это фантастический способ общения с другими разработчиками. Если вы попали в тупик при работе над одним из своих проектов, попросите помощи на таких сайтах, как StackOverflow. Убедитесь, что вы спрашивайте грамотно и докажите, что вы уже испробовали несколько возможных решений.
Создание прототипа
![]()
1. Начните писать базовую программу с основной функциональностью. Это будет прототип, демонстрирующий функциональность, которой вы стремитесь достичь. Прототип — это быстрая программа, которую следует дорабатывать до тех пор, пока вы не найдете работающий дизайн. Например, если вы создаете программу-календарь, вашим прототипом будет базовый календарь (с правильными датами!) и способ добавления в него событий.
- Создавая прототип, используйте подход «сверху вниз». Сначала опустите как можно больше деталей. Затем постепенно добавляйте все более мелкие детали. Это ускорит процесс создания прототипа, а также не позволит вашему коду стать слишком сложным и неуправляемым. Если ваш код станет слишком сложным, вам придется начинать все с самого начала.
- Ваш прототип будет часто меняться в процессе разработки, поскольку вы будете придумывать новые способы решения проблем или позже вам придет в голову идея, которую вы захотите воплотить в жизнь.
- Если вы создаете игру, ваш прототип должен быть веселым! Если прототип не приносит удовольствия, то, скорее всего, и полная игра не будет интересной.
- Если желаемая механика не работает в прототипе, возможно, пришло время вернуться к чертежной доске.
![]()
2. Соберите команду. Если вы разрабатываете программу самостоятельно, вы можете использовать прототип для создания команды. Команда поможет вам быстрее находить ошибки, итерировать функции и разрабатывать визуальные аспекты программы.
- Для небольших проектов команда точно не нужна, но она значительно сократит время разработки.
- Управление командой — сложный и трудный процесс, требующий хороших управленческих навыков, а также хорошей структуры команды. См. это руководство для получения более подробной информации о руководстве группой.
![]()
3. При необходимости начните с нуля. Как только вы освоите язык, вы сможете запустить прототипы всего за несколько дней. Из-за их быстроты не бойтесь отбросить свою идею и начать все с начала, если вы не довольны тем, что получается. На этом этапе гораздо проще внести серьезные изменения, чем потом, когда все функции начнут вставать на свои места.
![]()
4. Комментируйте все. Используйте синтаксис комментариев в вашем языке программирования, чтобы оставлять заметки во всех строках кода, кроме самых основных. Это поможет вам вспомнить, что вы делали, если вам придется на время отложить проект, а также поможет другим разработчикам понять ваш код. Это особенно важно, если вы работаете в команде программистов.
- С помощью комментариев можно временно отключать части кода во время тестирования. Просто заключите код, который вы хотите отключить, в синтаксис комментария, и он не будет скомпилирован. Затем вы можете удалить синтаксис комментария, и код будет восстановлен.
Альфа-тестирование
![]()
1. Соберите команду тестировщиков. На стадии альфа-тестирования команда тестировщиков может и должна быть небольшой. Небольшая группа поможет вам получить сфокусированную обратную связь и даст вам возможность общаться с тестировщиками один на один. Каждый раз, когда вы вносите обновления в прототип, новые сборки отправляются альфа-тестерам. Затем тестеры пробуют все включенные функции, а также пытаются сломать программу, документируя свои результаты.
- Если вы разрабатываете коммерческий продукт, вам необходимо убедиться, что все ваши тестеры подписали соглашение о неразглашении (NDA). Это не позволит им рассказывать о вашей программе другим людям, а также предотвратит утечку информации в прессу и другим пользователям.
- Потратьте время на составление надежного плана тестирования. Убедитесь, что у ваших тестировщиков есть возможность легко сообщать об ошибках в программе, а также легко получать доступ к новым версиям альфа-версии. GitHub и другие репозитории кода — отличный способ легко управлять этим аспектом.
![]()
2. Тестируйте свой прототип снова и снова. Ошибки — это бич каждого разработчика. Ошибки в коде и неожиданное использование могут вызвать всевозможные проблемы в готовом продукте. Продолжая работать над прототипом, тестируйте его как можно чаще. Сделайте все возможное, чтобы сломать его, а затем постарайтесь сделать так, чтобы он не ломался в будущем.
- Попробуйте вводить нечетные даты, если ваша программа работает с датами. Очень старые даты или даты далекого будущего могут вызвать странную реакцию программы.
- Вводите переменные не того типа. Например, если у вас есть форма, которая запрашивает возраст пользователя, введите вместо него слово и посмотрите, что произойдет с программой.
- Если у вашей программы графический интерфейс, нажимайте на все подряд. Что произойдет, если вы вернетесь на предыдущий экран или нажмете кнопки не в том порядке?
![]()
3. Устраняйте ошибки в порядке приоритета. При доработке программы в альфа-версии вы будете тратить много времени на исправление функций, которые работают неправильно. При систематизации сообщений об ошибках, полученных от альфа-тестеров, их необходимо сортировать по двум параметрам: Серьезность и Приоритет.
- Степень серьезности ошибки — это показатель того, какой ущерб она наносит. Ошибки, которые приводят к краху программы, повреждают данные, не дают программе работать, называются блокирующими. Функции, которые не работают или возвращают неверные результаты, обозначаются как Critical, а сложные в использовании или плохо выглядящие функции — как Major. Существуют также обычные, незначительные и тривиальные ошибки, которые затрагивают меньшие разделы или менее важные функции.
- Приоритет ошибки определяет, в каком порядке вы будете работать над ней, пытаясь ее исправить. Исправление ошибок в программном обеспечении — трудоемкий процесс, который отнимает у вас время на добавление функций и доработку. Поэтому необходимо учитывать приоритет ошибки, чтобы быть уверенным в том, что вы уложитесь в сроки. Все блокирующие и критические ошибки имеют наивысший приоритет, иногда называемый P1. Ошибки P2 — это, как правило, основные ошибки, которые планируется исправить, но они не задерживают отгрузку продукта. Ошибки P3 и P4 обычно не являются запланированными исправлениями и попадают в категорию «приятно иметь».
![]()
4. Добавьте больше функций. На этапе альфа-версии вы будете добавлять в свою программу дополнительные функции, чтобы приблизить ее к программе, описанной в вашем проектном документе. На этапе «альфа» прототип превращается в основу полноценной программы. К концу альфа-стадии в вашей программе должны быть реализованы все функции.
- Не отходите слишком далеко от первоначального дизайн-документа. Распространенной проблемой при разработке программного обеспечения является «ползучесть функций», когда новые идеи продолжают добавляться, что приводит к потере первоначального фокуса и распределению времени разработки между слишком большим количеством различных функций. Вы хотите, чтобы ваша программа была лучшей в том, что она делает, а не была «домкратом на все руки».
![]()
5. Тестируйте каждую функцию по мере ее добавления. По мере добавления функций в программу на этапе альфа-версии отправляйте новую сборку тестерам. Регулярность выпуска новых сборок будет полностью зависеть от размера вашей команды и от того, насколько вы продвинулись в работе над функциями.
![]()
6. Заблокируйте функции после завершения альфа-версии. Как только вы реализовали все возможности и функциональность в своей программе, вы можете выйти из альфа-фазы. На этом этапе не нужно добавлять никаких дополнительных функций, и все включенные функции должны работать. Теперь можно переходить к более широкому тестированию и доводке, известной как бета-фаза.
Бета-тестирование
![]()
1. Увеличьте размер группы тестирования. На этапе бета-тестирования программа становится доступной для гораздо большей группы тестировщиков. Некоторые разработчики делают фазу бета-тестирования публичной, что называется открытой бета-версией. Это позволяет любому желающему зарегистрироваться и принять участие в тестировании продукта.
- В зависимости от потребностей вашего продукта вы можете сделать открытую бета-версию, а можете и не делать.
![]()
2. Протестируйте возможности подключения. Поскольку программы становятся все более и более взаимосвязанными, велика вероятность того, что ваша программа будет опираться на соединения с другими продуктами или соединения с серверами. Бета-тестирование позволит вам убедиться, что эти соединения работают под большой нагрузкой, что гарантирует, что ваша программа будет пригодна для использования публикой, когда она выйдет.
![]()
3. Отполируйте свое программное обеспечение. На этапе бета-тестирования больше не добавляется никаких функций, поэтому можно сосредоточиться на улучшении эстетики и удобства использования программы. На этом этапе приоритетным становится дизайн пользовательского интерфейса, гарантирующий, что у пользователей не возникнет трудностей с навигацией по программе и использованием ее возможностей.
- Дизайн и функциональность пользовательского интерфейса могут быть очень сложными и комплексными. Люди делают целую карьеру на разработке пользовательских интерфейсов. Просто убедитесь, что ваш личный проект прост в использовании и удобен для глаз. Профессиональный пользовательский интерфейс может быть невозможен без бюджета и команды.
- Если у вас есть бюджет, существует множество графических дизайнеров-фрилансеров, которые могут разработать для вас пользовательский интерфейс по контракту. Если у вас есть серьезный проект, который, как вы надеетесь, станет следующей большой вещью, найдите хорошего дизайнера пользовательского интерфейса и сделайте его частью своей команды.
![]()
4. Продолжайте искать ошибки. На протяжении всей фазы бета-тестирования вы должны продолжать каталогизировать и расставлять приоритеты в сообщениях об ошибках, поступающих от ваших пользователей. Поскольку доступ к продукту будет иметь больше тестировщиков, есть шанс, что будут обнаружены новые ошибки. Устраняйте ошибки в зависимости от их приоритетности, не забывая о конечных сроках.
Выпуск программы
![]()
1. Рекламируйте свою программу. Если вы хотите привлечь пользователей, вам нужно убедиться, что они знают о существовании вашей программы. Как и в случае с любым другим продуктом, вам придется провести небольшую рекламную кампанию, чтобы люди узнали о ней. Масштабы и глубина маркетинговой кампании будут зависеть от функций вашей программы, а также от имеющегося у вас бюджета. Некоторые простые способы повысить осведомленность о вашей программе включают в себя:
- Размещение информации о вашей программе на соответствующих досках объявлений. Убедитесь, что вы следуете правилам размещения сообщений на выбранном вами форуме, чтобы ваши сообщения не были помечены как спам.
- Разошлите пресс-релизы на технические сайты. Найдите несколько технических блогов и сайтов, которые соответствуют жанру вашей программы. Отправьте редакторам пресс-релиз с подробным описанием вашей программы и того, что она делает. Включите несколько скриншотов.
- Снимите несколько видеороликов на YouTube. Если ваша программа предназначена для выполнения конкретной задачи, снимите несколько видеороликов на YouTube, демонстрирующих ее в действии. Оформите их как видео «Как сделать».
- Создайте страницы в социальных сетях. Вы можете создать бесплатные страницы Facebook и Google+ для своей программы, а также использовать Twitter для новостей как компании, так и конкретной программы.
![]()
2. Разместите свою программу на своем сайте. Для небольших программ вы, скорее всего, сможете разместить файл на собственном сайте. Возможно, вам захочется включить систему оплаты, если вы собираетесь брать деньги за свою программу. Если ваша программа станет очень популярной, вам может понадобиться разместить файл на сервере, который сможет обрабатывать большее количество загрузок.
![]()
3. Создайте службу поддержки. Как только ваша программа будет выпущена в свободную продажу, у вас неизбежно появятся пользователи с техническими проблемами или не понимающие, как она работает. На вашем сайте должна быть подробная документация, а также служба поддержки. Это может быть форум технической поддержки, электронная почта поддержки, живая помощь или любая другая комбинация. То, что вы сможете обеспечить, будет зависеть от вашего бюджета.
![]()
4. Поддерживайте свой продукт в актуальном состоянии. Почти все программы в наши дни исправляются и обновляются спустя долгое время после их первоначального выпуска. Эти патчи могут исправлять критические или некритические ошибки, обновлять протоколы безопасности, повышать стабильность, добавлять функциональность или изменять эстетику. Обновление программы поможет вам оставаться конкурентоспособным
Примеры программ
![]()
![]()





