Переваги С++ як першої мови для навчання програмуванню

0

Автор: Шинкарчин Христина, студентка групи РПЗ-4

Для початку, хотілося б відзначити, що для студентів не профільних спеціальностей питання вибору першої мови програмування не розглядається. Основи алгоритмізації (якщо вони необхідні) можна освоювати хоч на Python, хоч на C++ (Java, C#, Pascal і т.д.). В даному випадку, чим простіша мова, тим краще: у людей необхідно сформувати хоч якусь культуру алгоритмічного мислення і розуміння базових конструкцій. Студентам деяких спеціальностей (юридичні, економічні, гуманітарні), вивчати цео зовсім не потрібно.

Проте багатьом студентам-економістам першого курсу викладають програмування на Pascal на практичних заняттях з інформатики. Студентам, які ще толком не вміють працювати з MS Word. Користь від таких занять вельми і вельми сумнівна. Точно так само, студентів-математиків можуть пару років вчити програмувати на C++/C#/Java, але навіщо? Набагато корисніше для подальшого застосування своїх знань вивчити програми на кшталт Mathcad, Simulink, Серфер і т.д.

На першому курсі закладається базис для подальшого навчання і формується підхід студента до подальшого отримання знань. Мова програмування грає тут не останню роль.

Для того щоб вибрати C++ в якості першої мови програмування існує чотири причини:

  • Компільована мова зі статичної типізацією.
  • Поєднання високорівневих і низькорівневих засобів.
  • Реалізація ООП.

Існує безліч компіляторів, консольні команди, етапи складання програми. Так, першу програму потрібно написати в простому текстовому редакторі без підсвічування синтаксису і автокомплятора, знайти чим і як її можна запустити. Такий підхід формує у людини деяке розуміння того, як все влаштовано.

Код програми – це просто текст, який сам по собі не запрацює.

Компілятор – це окрема програма, якою треба вказати, що і як зробити з вихідним кодом, щоб він перетворився на виконуваний файл. Текстовий редактор – це теж окрема програма, призначена для написання вихідного коду.

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

Високорівневі і низькорівневі засоби. Використання таких засобів, як покажчики і динамічне виділення пам’яті, дозволяє зрозуміти (або надалі сприяє розумінню), що таке стек, купа, стек викликів, розкрутка стека і т.д. Крім цього, на практиці закріплюється розуміння концепції адрес і адресної арифметики. На прикладах демонструється, що пам’ять треба виділяти, звільняти, тому що вона не нескінченна, що існує витік пам’яті. У майбутньому, при вивченні мов простіше буде зрозуміти, що ж це таке.

Реалізація ООП. Це відносно чиста реалізація ООП без всякого синтаксичного цукру (щодо деяких інших мов). Чітко розмежовані рівні доступу до членів класу, можливість множинного спадкоємства і динамічний поліморфізм дають можливість швидко засвоїти основні концепції ООП. Покажчики та динамічне виділення пам’яті дозволяють наочно зрозуміти такі важливі механізми, як приведення до базового типу.

STL. Сама по собі концепція шаблонів C++, генерації коду і застосування широкого спектру алгоритмів до різних контейнерів позитивно впливає на процес навчання. Чому можна застосувати деяку операцію до послідовності об’єктів або як впорядкувати об’єкти, для яких не передбачена вбудована операція порівняння.

Для більшої частини практичних дисциплін рідко залучаються фахівці, що займаються безпосередньо розробкою ПЗ. Наприклад, людина, яка не застосовуваЛА STL в реальних проектах, навряд чи зможе пояснити, як це робити, і головне навіщо. Так само, як і викладач,      який щиро вважає, що програмування на Delphi з формочками вже є справжнісіньке ООП, враховуючи, що весь код (без натяку на власні класи, абстракцію і інкапсуляцію) пишеться в обробнику натискання на кнопку з дуже зрозумілим ім’ям «Button1», не сприяє процесу навчання. Проблеми є і з боку студентів, які толком не зрозуміли, куди і навіщо вони прийшли. Багато студентів, не мають мотивації до подальшого навчання та розуміння, а також і до самоосвіти. Не дивлячись на те, що такі студенти та викладачі чудово доповнюють один одного, в кінці навчання не вийде фахівець.

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


Share.

Comments:

Leave A Reply

'