Як навчитися писати програми (з ілюстраціями)

Отже, у вас з'явилася ідея для відмінної програми, однак ви і поняття не маєте, як її реалізувати? Не біда, допоможемо. Правда, доведеться витратити чимало часу на те, щоб вивчити мову програмування, але це нормально. Скажемо навіть більше, багато успішних програмістів-самоучки. Вивчивши основи, ви зможете створювати прості програми, витрачаючи на це мінімум часу. Створення більш складних програм, звичайно, є більш серйозним завданням, але, як то кажуть, терпіння і праця все перетруть!

Частина1З 7:
Вибір мови програмування

  1. Визначитеся з тим, яку мову програмування ви вивчите першим.якщо раніше ви не програмували, то починати треба з чогось простого, розрахованого на новачків-тим не менш дозволяє домогтися поставлених цілей. Є десятки мов програмування, у кожного з них свої області застосування, свої завдання і особливості. Ось декілька з них: [1]
    • C-одна з найстаріших мов програмування. Знайомство з С дозволить спростити вивчення C++ і Java.
    • C++ - одна з найпопулярніших мов програмування в наші дні, особливо в плані розробки програмного забезпечення. Правда, на те, щоб вивчити с++, піде час, а на те, щоб ще й навчитися ним користуватися, піде ще більше... але це окупить себе!
    • Java-ще один дуже популярний мову програмування, який може працювати майже що в будь-якій операційній системі.
    • Python — одна з найпростіших мов програмування, чиї основи можна вивчити за пару днів. Проте це досить потужна мова, задіяний для створення безлічі серверних і веб-додатків.
  2. Підготуйте середовище розробки. щоб почати програмувати, вам потрібно не так вже й багато-і це»середовище розробки". Втім, що саме під цим розуміється, залежить від обраної мови програмування.
    • Редактор коду-майже що будь-якому програмісту буде зручніше працювати в спеціальному текстовому редакторі-редакторі коду. Можна, звичайно, і в «блокноті» працювати, але без підсвічування синтаксису і підстановок це буде вельми сумний досвід. Серед популярних редакторів коду можна назвати Notepad++, TextMate і JEdit.
    • Компілятор - при роботі з багатьма мовами програмування (С, Java і так далі) код програми спочатку треба «зібрати» — скомпілювати, тільки потім його можна буде запустити. Відповідно, доведеться встановити компілятор, якщо в обраному вами мовою програмування без нього не обійтися. До слова, більшість компіляторів допоможе вам відловлювати "баги" - помилки програми.
    • IDE (Integrated Development Environment, інтегроване середовище розробки) — в деяких мови програмування і редактор коду, і компілятор, і модуль налагодження-все об'єднано в одну-єдину інтегроване середовище розробки. Завантажити IDE можна, як правило, з сайту мови програмування.
  3. Почитайте підручники.якщо раніше ви не програмували взагалі, то починати треба з малого. Так, варто знайти підручники або курси, хоча б онлайн-курси, в яких дані основи основ обраної мови, розказано про його синтаксис, змінні, функції і все інше, а також про те, як це все між собою пов'язано.
    • Зацікавилися? Зайдіть на Udemy, Khan Academy, Codecademy, Code.org та інші аналогічні ресурси.[2]
  4. Завантажте зразки та програми з відкритим кодом.вам буде куди простіше вчитися на прикладі, працюючи зі зразками, благо що їх в мережі доступно предостатньо. Почніть з простих програм, які хоч якось відносяться до тієї програми, яку ви хочете зробити.
  5. Щоб вивчити основи, створюйте прості програми.якщо вже ви почали писати код самі, то почніть з азів. Напишіть кілька програм, скажімо, на висновок рядка або підрахунок простенького рівняння. Відпрацьовуйте все це-стане в нагоді пізніше, під час роботи над більш складними програмами. Експериментуйте, намагайтеся зламати навіть власні програми.
  6. Приєднайтеся до спільнот програмістів. Можливість задати питання відбувся програмісту — безцінна. На сайтах, де збираються програмісти, ви знайдете безліч однодумців, причому незалежно від того, якою мовою Ви пишете. Не бійтеся питати, Але ніколи не просіть допомоги, не випробувавши перед цим всі доступні вам засоби.
  7. Не забувайте, що на вивчення мови програмування йде багато часу. ви не зумієте написати програму (складну), коли вперше сядете за комп'ютер з підручником програмування. Втім, чим більше ви будете вчитися і практикуватися, тим краще будете програмувати.[3]

Частина2З 7:
Розробка програми

  1. Підготуйте "дизайн-документ".дизайн-документ-це детальний опис розроблюваної програми, і саме його необхідно зробити насамперед, щоб потім, вже по ходу роботи, ви могли звірятися з ним і закладеними в ньому цілями. Саме дизайн-документ дозволить вам зробити те, що ви хотіли, а не що-небудь інше.
    • Все, що ви хочете реалізувати в програмі, має бути перераховано на сторінках дизайн-документа.
    • Крім того, дизайн-документ повинен враховувати і Користувача, точніше те, як він буде працювати з програмою.
  2. Зробіть блок-схему вашої програми.це буде свого роду карта, що показує, як користувач буде переходити від однієї частини програми до іншої. На цьому етапі нічого складніше простий блок-схеми вам не потрібно.
  3. Визначитеся з архітектурою програми.цілі визначатимуть засіб ... тобто архітектуру. Якщо знати і розуміти, яким завданням яка Архітектура відповідає, то процес розробки піде куди ефективніше.[4]
  4. Почніть з програми за схемою "1-2-3". це найпростіший тип програм, їх завдання-дозволити вам адаптуватися до мови програмування. Якщо в загальному, то Програми "1-2-3" запускають, запитують у користувача якісь дані, потім виводять результат, на чому і закінчуються.
    • Наступним кроком в схемі "1-2-3" буде так званий REPL (Read-Execute-Print Loop). Простіше кажучи, це повернення до першого кроку програми після виведення результату обчислень.
    • Подумайте про програми типу Pipeline. Вони характеризуються тим, що трансформують вводяться користувачем дані і працюють послідовно. Даний тип підходить для програм, які вимагають мінімум взаємодії з користувачем — скажімо, RSS-рідери. Така програма буде являти собою кілька класів із загальним циклом.

Частина3З 7:
Створення прототипу

  1. Зробіть акцент на якійсь одній функції програми.точніше сказати, прототип-це завжди основна функція програми. Припустимо, ви створюєте програму-органайзер-тоді основною функцією буде календар і можливість додавати події.
  2. Досягніть того, щоб прототип працював без збоїв. Прототип повинен бути таким, щоб ним можна було користуватися замість розроблюваної програми. Прототип стане основою, фундаментом всьому, так що працювати він повинен відповідно. Іншими словами, кожна функція прототипу повинна працювати бездоганно.
    • В прототип можна вносити термінові зміни і тестувати їх.
    • Зрозуміло, завдання тестування прототипу вимагає участі відразу багатьох людей.
    • Прототип може і буде змінюватися, це факт.
  3. Не бійтеся переробляти прототип знову і знову.у цьому його суть-спочатку експерименти, потім реліз. Саме на прикладі прототипу ви зможете побачити, чи все працює так, як треба. Якщо ж прототип виявляється невдалим - не біда, просто перепишіть його з нуля, почніть все заново. Краще так, повірте.

Частина4З 7:
Створення Програми

  1. Вдосконаліть прототип.Можете взяти сам прототип, можете взяти псевдокод-в будь-якому випадку суть в тому, щоб зробити прототип краще, досконаліше, швидше!
  2. Почніть роботу над кодом програми.ось, власне, ми і дісталися до суті. Саме робота над кодом програми і займе більшу частину часу, не кажучи вже про незліченні компіляції, не менш незліченні тести і пошуки багів... якщо над вашою програмою працює ціла команда, то варто почати з псевдокода, щоб все йшло рівномірно.
  3. Не забувайте коментувати код.описуйте функції та особливості, які ви реалізуєте в коді. Це потрібно не тільки для того, щоб хтось інший, відкривши ваші вихідні, зумів розібратися, що до чого, але і для того, щоб ви самі не заплуталися у власному коді, якщо повернетеся до нього, скажімо, через рік.

Частина5З 7:
Тестування програми

  1. Тестуйте весь новий функціонал.Все, що Ви додали до програми, має бути протестовано, відтестовано та перетестовано. І чим більше людей докладуть до цього руку, тим краще, тим більше помилок можна буде знайти. Тестери, зрозуміло, повинні знати, що працюють з далеко не фінальною версією, а тому можливі помилки.
    • Цей етап роботи над програмою часто називають "альфа-тестуванням".
  2. Протестуйте фінальну версію програми.отже, всі функції, які тільки повинно були бути в програмі, в неї додані. Що тепер? Тепер знову тести. Довгі, прискіпливі, ретельні тести-і робота над помилками, зрозуміло. Зараз вашу програму має тестувати навіть більша кількість людей, ніж раніше.
    • Часто даний процес називають бета-тестуванням.
  3. Протестуйте реліз-версію.продовжуючи вносити в програму виправлення і додаткові матеріали, не забувайте все тестувати.

Частина6З 7:
Створення додаткових матеріалів

  1. Подумайте, що вам потрібно.це буде залежати від програми, так що подумайте, чи потрібні вам, скажімо, аудіозаписи? Графіка? Контент? Задумайтеся про це до релізу.
  2. Подумайте, чи не варто віддати все це на аутсорсинг.якщо вам потрібно багато всього, але ви або Ніхто у вашій команді не вміє малювати або займатися звукозаписом, то варто згадати про аутсорсингу. Ви без проблем знайдете фрілансерів, які зможуть підготувати для вас все необхідне.
  3. Додайте в програму всі необхідні додаткові матеріали.знову ж таки, вони не повинні псувати функціонал програми. Додавання додаткових матеріалів знаменує собою початок фінального етапу роботи над програмою, якщо тільки, звичайно, додаткові матеріали не є невід'ємною і внутрішньою частиною самої програми (як, скажімо, буває при створенні відеоігор).

Частина7З 7:
Реліз програми

  1. Подумайте, чи не варто випустити вашу програму під ліцензією відкритого коду.тоді й інші люди зможуть отримати доступ до вихідного коду програми, вносити в нього зміни і поліпшення. Правда, за такою ліцензією ви навряд чи отримаєте дохід від програми - ви ж не зможете її продавати, код-то відкритий. У чому ж резон? У допомозі спільноти, яка, якщо зацікавиться вашою програмою, може перетворити її на справжній шедевр.
  2. Підготуйтеся до продажу вашої програми.для цього вам потрібен інтернет-магазин типу» вітрина", щоб покупці могли, заплативши, завантажити програму і почати нею користуватися. Врахуйте, втім, що програми, за які платять гроші, повинні працювати ідеально!
    • Залежно від того, що у вас за програма, ви можете продавати ще безліч послуг.
  3. Продовжуйте підтримувати випущену програму оновленнями.швидше за все, після релізу ви побачите потік повідомлень про всілякі помилки і багах. Це нормально. Вам потрібно ранжувати ці повідомлення за ступенем важливості і почати вирішувати відповідні проблеми, а потім випускати оновлення для програми — так звані «патчі».
    • Хочете не розгубити покупців і здобути собі добру славу? Випускайте патчі частіше.

Ще почитати: