- •Основи алгоритмізації
- •Машина Тьюринга (мт)
- •Перші еом
- •Частина 1. Основи програмування Розділ 1. Архітектура сучасних пк
- •1.1. Структурна схема пк
- •1.2. Загальні|загальні| принципи роботи комп'ютера
- •1.3. Позиційні системи числення
- •Завдання для самостійної роботи
- •Розділ 2. Історія розвитку мов|язиків| програмування високого рівня
- •Розділ 3. Загальні|загальні| принципи програмування
- •3.1. Вимоги до професії
- •3.2. Мови|язики| програмування і програмне|програмова| середовище|середовище|
- •3.3. Структура програмних комплексів
- •3.4. Структура програми
- •3.5. Технологія програмування і налагодження програм на мвр
- •3.6. Техніка обчислень|підрахунків|
- •3.7. Типи обчислювальних процесів
- •3.8. Цикли в обчислювальному процесі
- •3.9. Загальна структура прикладної програми
- •3.10. Типи підпрограм
- •Завдання для самостійної роботи
- •Кодування Windows-1251 (синоним cp1251)
- •Двобайтне кодування стандарту unicode – utf-8,utf-16
Розділ 3. Загальні|загальні| принципи програмування
3.1. Вимоги до професії
Один із законів Паркінсона наголошує: “У кожній відладженій програмі є, як мінімум, одна помилка. Правило зберігає силу після виправлення цієї помилки”.
Це не жарт - це гірка правда. Але, є різні типи помилок|та|є різні . Відомий анекдот програміста:
- Майкрософт для нової класної версії Windows| випустив документ виявлених помилок. Там їх ціла тисяча!
- А в моїй програмі тільки єдина помилка!
- Ну, і як?
- Та|так|, програма не працює!
Важка|тяжка| ти, доля|доля| програміста! Персональний комп'ютер – його основний ‘робочий інструмент’. Цей інструмент складний і вимагає від майстра певних здібностей і досить|достатньо| обширних|величезних| спільних|загальних| і спеціальних знань. Отже, про професійні здібності і спільні|загальні| знання.
По-перше, програміст повинен мати добру пам'ять. Ця якість необхідна для запам'ятовування імен змінних і ‘одномоментного бачення|видіння|‘ як можна більшого фрагмента |налагоджувати| програми, що відладжується.|зразок|
По-друге, програміст повинен мати чітке логічне мислення, вміти в думках імітувати роботу відладжуваної програми, працювати ‘замість комп'ютера’. Досвідчений програміст, створивши черговий блок програми, в думках відтворює роботу цього блоку, в думці отримує оцінки результатів роботи блоку, а потім запускає на виконання програму із знов створеним блоком і порівнює очікувані результати з фактичними. Швидкість мислення істотної ролі не відіграє. Часто ‘тугодуми’ досягають більших успіхів, ніж ‘скорострільні вундеркінди’, за рахунок своєї методичності, працьовитості і цілеспрямованої завзятості.
По-третє, програміст має бути спостережливим|спостережливим|. Ця якість дуже допомагає тоді, коли не вдається логічно ‘обчислити|вичисляти|’ причину помилки. В цьому випадку програміст варіює вхідними даними або намагається|пробує| використовувати інший варіант програмного|програмового| блоку. Якщо він спостережливий|спостережливий|, то може відмітити|помітити| реакцію, яку він не чекав як відгук на такі варіації. “…Я змінив|зраджував| знак другого операнда, а результат змінився замість очікуваної|сподіваної| одиниці на мінус одиницю! Що б це означало|значило|?.” Далі до аналізу ситуації підключається апарат логічного мислення.
У важких|тяжких| випадках деякі програмісти, не знайшовши причину помилки, просто переписують програму заново|наново|. Як не дивно, це інколи|іноді| допомагає. Але|та| ми не прихильники|прибічники| таких методів ‘стрілянини|стрільби| по площах|площах|’. Справжній|даний|, добросовісний програміст докопуватиметься до причини помилки. В крайньому випадку|у крайньому разі|, він виконає покрокову відладку, ретельно оцінюючи результати кожного кроку до тих пір, поки помилка не буде ‘спіймана’. При цьому дуже часто помилка виявляється абсолютно|цілком| в іншому програмному|програмовому| блоці, а не в тому, на якому було зосереджено увагу програміста (тому і не допомагало логічне мислення!).
І, нарешті|урешті|, по-четверте, висококласний програміст повинен володіти наочною|предметною| галуззю знань, для якої розробляє свої програми:
диференціальні рівняння, чисельні методи, моделювання – для фахівців|спеціалістів|-програмістів в області досліджень і проектування процесів і апаратів, льотно-космічної техніки, хімічної технології, енергетики і тому подібне|тощо|
теорія ймовірності|ймовірності| і математична статистика – для фахівців|спеціалістів| – програмістів в області зв'язку, транспорту, торгівлі і тому подібне|тощо|
теорія теплопередачі, технічна термодинаміка, теорія опору матеріалів, технічне креслення -| для фахівців|спеціалістів|-програмістів в області теплоенергетики, будівництва, машинобудування
хімія, процеси і апарати хімічної технології – для фахівців|спеціалістів|-програмістів в області проектування і управління хіміко-технологічними процесами
теормеханіка, аеро- і гідродинаміка, – для фахівців|спеціалістів|-програмістів в області авіатехніки, водного транспорту, газотранспорту і т.п.|тощо|
економіка і бухгалтерський облік|урахування| – для фахівців|спеціалістів|-програмістів в області менеджменту і т.п.|тощо|
Незалежно від спеціальності по диплому, на всьому протязі професійної кар'єри програміст має бути готовий освоювати все нові і нові галузі знань. Одним словом, “Вік живи - вік навчайся ”!