Розділ третій: Не С++ єдиним, або що не так з програмуванням
ібн МуамарНавігація між розділами статті
- Відверта розмова про 123 спеціальність на ФІОТі.
- Золота Епоха Комп'ютерів, або навіщо існує комп'ютерна інженерія.
- Високі ставки, або що тут вивчається для створення комп'ютерів.
- Не С++ єдиним, або що не так з програмуванням.
- Йдемо на співбесіду, або що з того що я вивчу допоможе знайти роботу.
- Замість післямови.
А що ж тоді з програмістською підготовкою?
Не все так просто. Проблема у тому, що десь на півшляху до оновлення освітньої програми на кафедрі реформи призупинились, і реформованими виявилась лише частина, присвячена програмуванню і загальній підготовці. Що зробило ситуацію ще гіршою, а програмування на 123 – ще більш відірваним від комп’ютерної інженерії. Якщо хоч якось і зможеш зробити систему розумного дому – то запрограмувати її не зможеш, бо не викладається С++. Через це усі названі в минулій статті предмети здаються такими, що не заслуговують належної до себе уваги. Навіщо мені вивчати якісь старі ПЛІСи, якщо можна витрати час на щось нове, щось, що можна використати у сучасній розробці?
- На Основах Програмування розглядається Python – одна з найпопулярніших мов програмування у сьогоденні, одна з найбільш затребуваних мов на ІТ-ринку України, доволі гарна мова для ознайомленнями з базовими концепціями програмування, але до програмування мікроконтролерів не має жодного відношення.
- Викладається Об’єктно-Орієнтовне Програмування, де вивчають Java – щоправда, цей предмет триває лише 1 семестр. Java відома своєю кросплатформенністю і дуже зручна при розробці програм абсолютно будь-якої направленості, але знову ж таки, не для програмування мікроконтролерів.
Головна особливість цих мов програмування – вони позбавлені аспекту безпосереднього керування комп’ютером та взаємодії з його архітектурою. Вони влаштовані так, аби максимально абстрагувати програміста від особливостей платформи, для якої він програмує. І якщо для розробки бізнес-програм чи застосунків для мобільного телефону це неймовірна перевага, на них неможливо змусити миготіти певну лампочку чи написати драйвер для WI-FI-адаптеру.

З деякими дисциплінами ситуація ще гірша. Вони вимагають виконання на С/С++, які тут не викладаються.
- Паралельне Програмування 1 та 2 націлені на програмну реалізацію систем мультидії, пришвидшенню математичних обчислень (програми) за допомогою особливостей архітектури (апаратно). Це про те, як задіяти усі ядра процесору (так, ось для чого 2-х, 4-х та 8-ядерність)
- Теорія комп'ютерних систем – це написання драйверів. Тут і так зрозуміло, це про те, як обробляти сигнали з мишки, WI-FI-адаптеру чи як надсилати сигнали на екран, хоча б 8-бітний дисплей.
- Системи реального часу – знову ж таки, вельми корисна дисципліна при програмування мікроконтролерів, які слідкують за чимось та мають купу периферії, з якої отримують потік данних, який вимагає постійної обробки.
- Системне програмування 2 та 3 націлені на реалізацію високорівневих мов програмування для певної платформи – як змусити Java працювати на будь-якому процесорі та чи варто цим взагалі займатися, що знову ж таки вимагає знань архітектури та мови програмування, що здатна з нею взаємодіяти. Знову ж референс у сторону С++.
Через це частини освітньої програми здаються ще більш відірваними одне від одних. Освітній програмі не вистачає зорієнтованості на конкретній сфері, аби стати вузькопрофільною, водночас, не вистачає і синхронності, цілістності, аби мати право називати себе «базовою», «базисом». Надто відрізняється рівень викладання різних частин. Тому багато студентів розчаровуються у програмі і самостійно вивчають технології, що потрібні на ринку праці. Але про нього – у наступній частині.
