Розвиток інформаційних технологій призводить до появи нових професій. Кожна така назва підкреслює або відображає сутність професії. Великий інтерес сьогодні представляють професії, що пов'язані з програмуванням. Особливо цікавить питання: чи змінюється від цього суть роботи та оклад? Спробуємо розібратися в тому, яку роботу передбачають такі спеціалісти як «Software Development» або «Programmer», «Software Engineer» і «Computer Scientist».
Вивчення суті питання логічно почати з розуміння термінів. Самим зрозумілим є «Software Development» або «Programmer», який в Оксфордському словнику визначається тут як людина, що відповідає за написання програм. Складнощі починаються далі.
«Software Engineer» (SE) (згідно зі статтею в webopedia, що надана тут) - це дипломований професійний інженер, який має достатньо знань і навичок для створення програмного забезпечення та супроводження проектів.
«Computer Scientist» (CS) (відповідно до словника тут) - це дипломований (сертифікований, ліцензований) професійний інженер, який має достатньо знань і навичок про роботу в області теорії обчислень і проектування комп'ютерних технологій, обладнання та програмного забезпечення, що працює в області теорії обчислювальних машин і систем.
Ми отримали три дуже різних визначення професій. Проте в традиційному Українському переліку - це три «програміста». Нажаль на вітчизняному ринку праці (на сайтах вакансій) часто виникає плутанина і всі три поняття використовуються як взаємозамінні, що не є вірним. Досить подивитися на зарубіжні сайти вакансій, де існує досить чіткий підхід до розмежування посад «Software Development», «Programmer», «Software Engineer» і «Computer Scientist», а звідси і величини оплати.
Розглянемо як провідні спеціалісти в цієї галузі ІТ розуміють цю різницю.
«Software Development» або «Programmer» відповідає тільки за забезпечення повноцінної розробки програмного забезпечення у вигляді програмного коду. Він також забезпечує інтеграцію програмних компонентів один з одним. В обов'язки програміста входить створення, спрощення, документування коду і написання тестів. Програміст повинен розбиратися в особливостях мови (мов) програмування, а також в теорії алгоритмів. Як правило, необов'язкові компетенції - це математичний аналіз, комунікативні навички та вміння організовувати супроводження проектів.
Робота «Software Engineer» полягає в комплексному підході до вирішення проблеми. SE повинен оцінювати всю картину з двох сторін: проект відповідно до загального плану і окремі завдання, необхідні для його здійснення. Він повинен вміти знаходити правильні комплексні рішення, розуміти вимоги клієнтів, прогнозувати можливі наслідки і розподіляти завдання з програмування в команді. Його робота особливо важлива під час розробки нових версій або функціональних можливостей продукту. Наприклад, коли клієнт змінює свої вимоги. Таким чином, інженер-програміст відповідає не просто за написання коду, а за весь проект, тобто SE займається розробкою, керівництвом проектів, а програміст їх реалізує шляхом написання коду.
«Computer Scientist» (CS) – відповідно до сучасного розуміння це керівник, технічний фахівець і математик в рівній мірі. Його діяльність можна порівняти з диригентом оркестру, де «Software Engineer» і «Software Development» виконують його замисел. Він володіє методиками організації проектування, математичними знаннями і пояснює, як і чому працює той чи інший інструмент, рішення або алгоритм. Його робота має велике значення для розвитку програмування в цілому. Особливістю CS є те, що йому властива спеціалізація в одній або декількох сферах, а саме: штучного інтелекту, нейронних мереж, теорії мов програмування, великих баз даних, машинного навчання. Комп'ютерні науки - це практична спеціальність. Наприклад, вона дозволяє розпізнавати людські обличчя або інші об'єкти, розуміти голос, водити автомобіль (Google Self-Driving Car), діагностувати захворювання за симптомами (Watson), розуміти тональність або зміст тексту, приймати рішення про ризики видачі кредиту, прогнозувати продаж і попит на оренду велосипедів в місті, радити товари, книги (Amazon), фільми (Netflix), виконувати функції особистого помічника або секретаря (Siri, Android Now, Cortana), захоплювати світ і виконувати багато інших.
Треба підкреслити, що сьогодні систематично виникають нові професії на межі бізнесу і IT, які відразу займають топові позиції в рейтингах привабливості для працівників. Тому сьогодні для спеціалістів «Computer Scientist» відкриваються великі можливості не тільки у великих корпораціях, а також і в маленьких фірмах. Тому професія CS дозволяє забезпечити всі кар'єрні перспективи - посади IT-директорів, керівників відповідних відділів та департаментів, які існують практично в кожній державній і приватній організації.
Таким чином CS це вищий рівень підготовки спеціалістів тому, що об'єднує знання та вміння написання коду, розробку, керівництво проектами з математичними методами по обробці даних в умовах великих обсягів і високого рівня паралелізму. Цьому ми і навчаємо на спеціальності 122 Компютерні науки.