Для полегшення роботи зі складними задачами процес підготовки завдання для розв’язання на комп’ютері можна розділити на два етапи: створення укрупненого алгоритму (вимоги до початкових даних та результату, постановка завдання, опис точної схеми розв’язання з вказівкою всіх особливих ситуацій) і написання програми.
Розробляючи програми для розв’язання складних сучасних задач, застосовують різні технології програмування, наприклад низхідне програмування («зверху вниз»), висхідне програмування («знизу вгору»), пакетне програмування, об’єктно-орієнтоване програмування.