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

Не стала винятнком і дана стаття. Минулого тижня у черговий раз отримав запитання щодо вибору IT спеціальності у ВУЗі:

Доброго дня! Допоможіть, будь ласка, із вибором напряму у ВНЗ. У чому
різниця між комп’ютерною інженерією, програмною інженерією, системним
аналізом та комп’ютерними науками? Буду щиро вдячна за відповідь.

Сам я навчався на мех-маті у Львівському університеті ім. Франка і особливого досвіду в цій справі не маю. Тому довелось потратити немало часу на дослідження. Сконтактував кількох друзів, запостив запитання в соцмережах, добряче порився в результатах Гугла та на сайтах українських університетів.

Тепер маю для вас дві відповіді. Перша – коротка, якщо немає часу читати далі. Друга – з детальним описом кожного із напрямків і моїм особистим підсумком та підказками. Вони допоможуть вам, якщо на вас чекає  вступ у ВУЗ “на програміста”.

Вагаєтесь? – Немає кардинальної різниці

Більшість спеціалізацій у ВУЗах, що мають відношення до роботи в IT (зокрема програмування), мають більше, ніж 50% предметів спільних. А також беручи до уваги, що ваш успіх в більшій мірі залежить від самоосвіти, а не того, що вас навчать в універі, можна стверджувати, що принципової різниці у тому де навчатись – немає.

Основи, необхідні будь-якому IT спеціалісту, ви набудете на будь-якому із напрямків. Решту знань, особливо практики та досвіду, вам потрібно буде здобувати самостійно. Тобто, коротка відповідь – немає кардинальної різниці на яку спеціалість подаватись у ВУЗі: програмна інженерія, комп’ютерні науки, системна інженерія, комп’ютерна інженерія і т.д.

А от чи йти у ВУЗ взагалі чи ні, то на дане запитання я уже відповів в окремій статті.

Галузі, напрямки та спеціальності

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

Навіть, якщо глянути на різні IT напрямки та спеціальності в КПІ, то на 70-80% програми у них однакові.

Далі в статті я опишу кожну із найбільш популярних спеціальностей та дам посилання на ресурси для детального ознайомлення. Це допоможе вам сформувати власну думку.

Для кожного із напрямків та спеціальностей я використовував ресурс abiturient.in.ua, щоб категоризувати їх. Далі використовував вікіпедію, що отримати базове визначення терміну. Ну і, на сам кінець, на сайтах університетів вичитував програму навчання по спеціальності.

Програмна інженерія

Напрям підготовки “Програмна інженерія” належить до галузі “Інформатика та обчислювальна техніка“. До нього, згідно даного реєстру на abiturient.in.ua належать: програмне забезпечення систем, інженерія програмного забезпечення.

Програмна інженерія, згідно визначення з вікіпедії –  це застосування системного, вимірюваного підходу до розробки, використання та супроводу програмного забезпечення, та дослідження цих підходів, тобто застосування принципів інженерії до програмного забезпечення.  Вперше термін «програмна інженерія (англ. software engineering)» був використаний в 1968 році на конференції з програмної інженерії, що була організована NATO.

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

Також на сайті КПІ Факультет Інформатики та Обчислювальної Техніки вказують, що:

Зміст діяльності фахівців полягає у розробці та супроводженні: прикладного програмного забезпечення комп’ютерних систем та мереж, корпоративних систем та мереж, систем підтримки прийняття рішень, автоматизованих систем управління, інтелектуальних систем; програмних продуктів для бізнесу; Web – порталів; мультимедійного програмного забезпечення; баз даних та знань; програмних систем діагностики та сертифікації; програмних засобів захисту інформації у комп’ютерних системах та мережах.

Також можна ознайомитись із програмою навчання на Програмній Інженерії у Львівській Політехніці.

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

Комп’ютерна інженерія

Напрям підготовки “Комп’ютерна інженерія” також належить до галузі “Інформатика та обчислювальна техніка“. До нього, згідно даного реєстру на abiturient.in.ua належать: комп’ютерні системи та мережі, системне програмування, спеціалізовані комп’ютерні системи.

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

В розділі Робота можна побачити, що окрім питань Програмної Інженерії, Комп’ютерна Інженерія охоплює апаратне забезпечення. Це і розроблення аналогових та гібридних плат, i проектування мікропроцесорних та мікроконтролерних пристроїв i навіть робототехніка.

І також можна ознайомитись із повною програмою даного напрямку в Київській та Львівській політехніках.

Комп’ютерна інженерія виглядає більш універсальною, ніж програмна інженерія i охоплює також апаратну частину. Але, оскільки період навчання у всіх однаковий (5 років), відповідно прийдеться пожертвувати кількістю знань по програмній інженерії.

Комп’ютерні науки

Напрям підготовки “Програмна інженерія” належить до галузі “Інформатика та обчислювальна техніка“. До нього, згідно даного реєстру на abiturient.in.ua належать: інформаційні управляючі системи та технології, інформаційні технології проектування, системне проектування, системи штучного інтелекту, комп’ютерний еколого-економічний моніторинг.

Коротке означення даного напрямку:

Зміст діяльності фахівців полягає у розробці комп’ютеризованих інформаційних  систем і технологій для різноманітних галузей науки, промисловості та бізнесу, включаючи: проведення системного аналізу предметних областей і їх формалізацію; створення математичних моделей об’єктів та процесів автоматизації; проектування та розробку прикладного програмного забезпечення і баз даних та баз знань; розробку систем штучного інтелекту. Студенти вивчають прийоми роботи з інформаційними системами, їх устрій та особливості програмування.

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

Цей список свідчить про те, що там вчать всього по-троху. Навіть комп’ютерної графіки та штучного інтелекту. Відповідно після закінчення даного напрямку людина має непогане уявлення про всеможливі професії в IT: від системного адміністратора до комп’ютерного дизайну. Даний напрямок допоможе визначититсь із подальшою спеціалізацією. З іншої сторони, не можна розраховувати на достатньо глибокий розбір хоча б одного з предметів.

Системний аналіз

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

Тобто, мова йде насамперед про науковий метод та системний підхід при аналізі проблем. Тим не менше, системний аналіз виник саме в контексті застосування ЕОМ для дослідження складних технічних, економічних, екологічних систем. Відповідно системний аналіз застосовується в найрізноманітніших галузях, але одна річ є спільною: рішення даних задач відбувається виключно з допомогою ЕОМ.

На сайті КПІ та ЛПУ можна знайти весь список предметів, що викладають студентам даної спеціальності. Серед них: методи моделювання складних систем, методи аналізу, моделі та методи оптимізацій, основи теорії керування, теорії конфліктно-керованих систем, методи застосування часових рядів для опису динаміки процесів, методи та алгоритми підтримки прийняття рішень в умовах визначеності, невизначеності, ризику та конфліктних ситуацій.

Відповідно до вищесказаного, окрім програмного забезпечення, в даному напряму робиться великий акцент на науку. Математика, статистичні методи, функціоналний аналіз, теорії управління – це все буде включено в курс.

Інформатика

Також в КПІ є напрям Інформатика.

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

Проте переглянувши список предметів спеціальності Інформатика, склалось враження, що це певний мікс програмної інженерії з основами системного аналізу. Комп’ютерна графіка там також є. Дуже схоже на Комп’ютерні Науки. Єдину різницю зауважив в тому, що Штучний Інтелект замінено Нейронними Мережами.

Якщо ви знаєте інші відмінності напрямку Інформатика та Комп’ютерні Науки – запрошую прокоментувати.

Прикладна математика

На завершення, оглянемо напрям Прикладна Математика. Даний напрям популярний більше серед ВУЗів із більш теоретично-науковим спрямуванням, аніж в політехніках.

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

Тобто, в першу чергу, Прикладна Математика – це галузь математики. Відповідно мова йде про застосування математики на практиці, у різноманітних галузях.

На сайтах Львівського Національного Універсистету ім. Франка і університету “Київський Політехнічний Інститут” можна ознайомитись із програмою та предметами даного напрямку.

До 4-го курсу у студентів даного напрямку переважають математичні дисципліни. На п’ятому вони вивчають трохи більше предметів, які мають безпосереднє відношення до комп’ютерів та програмування: бази даних, комп’ютерне моделювання, веб-проектування.

То ж що мені обрати?

Якщо коротка відповідь на початку статті вас не задовільняє, а роз’яснення кожної із спеціальностей вище не допомогли, тоді тримайте моє коротке резюме. Надіюсь воно допоможе вам зорієнтуватись:

  • точно знаєте, що хочете програмувати і не лізти в апаратну частину (плати, мікроконтроллери, роботи)? – обирайте Програмну Інженерію;
  • думаєте, що апаратна частина також може вам сподобатись? – пробуйте Комп’ютерну Інженерію;
  • взагалі не маєте уявлення, що хочете і що сподобається? – обирайте Комп’ютерні Науки або Інформатику;
  • отримуєте кайф від математики і хотіли б залишатись з нею застосовуючи свої знання на практиці? – обирайте Системний Аналіз або Прикладну Математику.

Сам я закінчував механіко-математичний факультет. Програмування там було лише у вигляді одного чи двох симестрів Паскаля. Це не завадило мені стати професійним програмістом. Тому впевнений, що вибір спеціальності у ВУЗі вам також не завадить досягти результату!

Якщо ви володієте особистим досвідом щодо даного питання, будь-ласка, прокоментуйте і допоможіть абітурієнтам визначитись із вибором.