Як скоро ваше місце займе AI

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

В майбутньому сфера розробки програмного забезпечення зазнає радикальних змін: поєднання машинного навчання та штучного інтелекту з технологіями генерації коду покращиться настільки, що до 2040 року більшу частину коду будуть писати машини, а не люди. По украй мірі так вважають в Національній лабораторії Ок-Рідж Міністерства енергетики США.

Звичайно, в майбутньому багато робочі місця, які існують зараз, втратять свою актуальність. Згідно з оцінками Бюро статистики праці США, до 2026 року скорочення зайнятості серед 11 професій з оплатою більше 60 000 доларів в рік складе більше 74 тисяч позицій порівняно з 2016 роком або близько 6,4 млрд доларів в заробітній платі. При цьому зайнятість програмістів знизиться на 7,6% з 294 900 до 272 300. Це, звичайно, не говорить про те, що вже не варто вчитися на програміста, але як мінімум вказує на те, що ринок буде ставати все більш конкурентним.

В цей час в Індії, де сфера інформаційних технологій стрімко розвивалася в останні роки завдяки аутсорсингу, вже сьогодні скорочується кількість вакансій. Схоже, індустрія, яка генерує річний дохід у розмірі понад 150 млрд доларів і в якій задіяно близько 4 млн осіб, починає давати збій. Поки що масштаб скорочень не ясний. Але згідно з дослідженням Національної асоціації компаній з програмного забезпечення (Nasscom) і McKinsey India за 2015 рік, до 2020 року від 50% до 70% нинішніх робочих навичок стануть неактуальними.

«Поточні скорочення в аутсорсе (автоматизації) в кінцевому підсумку приведуть до сценарію, в якому (тільки) 30 відсотків робочої сили будуть залишатися актуальними», — вважає ДД Мішра , директор з досліджень консалтингової компанії Gartner.

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

Ми більше не будемо писати код

За словами Андрія Карпати , директора AI в Tesla, ми більше не будемо писати код. Ми просто будемо знаходити дані і вводити їх в системи машинного навчання. У цьому випадку ми можемо відвести собі роль інженера-програміста, який перетворюється в «куратора даних». Але як би ми не називали себе, ми будемо людьми, які більше не пишуть код, вважає він.

«Велика частина програмістів завтрашнього дня більше не будуть тримати складні репозиторії програмного забезпечення і не будуть писати складні програми», — вважає Карпати. — «Вони будуть збирати, очищати, маніпулювати, маркувати, аналізувати і візуалізувати дані, які генерують нейронні мережі».

У свою чергу Карлос Е. Перес, автор книги «Deep Learning AI Playbook» пише : «Особисто я не думаю, що розробка програмного забезпечення скоро зникне. Навіть якщо ця роль еволюціонує — назвіть її „інженер програмного забезпечення 2.0“ або „вченим-дослідником 2.0“ або як-небудь по-іншому — є шляхи, які дозволять нинішньому програмісту залишатися актуальним».

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

Олександр Кондуфоров, Data Science Competence Leader в AltexSoft

Про побоюваннях

Програмісти можуть побоюватися цього не більше, ніж фахівці в інших областях розумової праці. Якісь дуже прості види робіт, наприклад, пов'язані з генерацією нескладного HTML або SQL, можуть бути автоматизовані, але щось більше вимагає від машин високого рівня «розуміння» поставленої задачі, вміння генерувати логіку і часто знаходити нестандартні рішення, а це, на мій погляд, навряд чи досяжно в перспективі 5-10 років.

Можливо, верстка, написання запитів до баз даних, якісь елементи тестування, включаючи unit testing, і можна буде замінити алгоритмом. Але якщо ж говорити про «автоматизації програмування», то поточні дослідження знаходяться поки що на досить дитячому рівні.

Про обмеження машинного навчання

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

Однак у машинного навчання є і свої обмеження, які не дозволяють йому вирішувати абсолютно будь-які завдання. Швидше, машинне навчання і традиційне програмування будуть дуже довго і успішно співіснувати разом.

Про роль програмістів в майбутньому

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

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

Артем Чорнодуб, Chief Scientist в Clikque Technology, доцент УКУ

Про побоюваннях

Технології штучного інтелекту дійсно розвиваються, що робить можливим автоматизувати рішення завдань, які раніше виконувалися виключно людьми, homo sapiens. Дуже добре, що цей високотехнологічний процес відбувається, в тому числі й у нас, в Україні — я можу згадати сервіс Flawless App Ахмеда Сулеймана і Лізи Дзюби для налагодження візуального дизайну мобільних додатків, а також магістерський диплом Анатолія Стегнія, присвячений генерації коду програм з текстовим описам, захищений в цьому році в УКУ.

Про обмеження машинного навчання

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

Свого часу поява Smalltalk та C++ зробили революцію в індустрії за рахунок використання нової парадигми об'єктно-орієнтованого програмування. Потім поява візуальних середовищ Visual Basic і Delphi дозволило спростити і прискорити процес розробки користувальницьких інтерфейсів, поява Java з вбудованим механізмом «прибирання сміття», що дозволило значно прискорити розробку порівняно з С++ і так далі. Проте всі ці прориви не знижували кількість розробників в цілому, і воно тривало збільшуватися разом з розвитком інформаційних технологій та їх проникнення в повсякденне життя. Проблеми з працевлаштуванням з'являлися тільки у тих, хто не хотів йти в ногу з часом, освоюючи нові ідеї.

Про роль програмістів в майбутньому

Нинішнім програмістам потрібно побоюватися конкуренції не штучного інтелекту, а своїх колег-програмістів, що володіють навичками Data Science. Технології штучного інтелекту і машинного навчання будуть все більше проникати в додатки. Вони вимагають розуміння принципів їх проектування, розробки, тестування, розгортання і підтримки, часом досить специфічних. Наприклад, безглуздо тестувати алгоритм розпізнавання осіб по одній, двом або навіть десяти фотографій на демостранице, щоб оцінити якість його роботи.

Такі «розумні» алгоритми в деяких місцях значно відрізняються від «звичайних» алгоритмів, і цьому потрібно спеціально вчитися. Більш конкретно, рекомендую наступні 5 книг з машинного навчання , а також онлайн курси за Data Science/Machine Learning/Neural Networks на Coursera/Udemy/Udacity/Prometheus або вступати до нас на магістерську програму в УКУ.

Олександр Романко, старший науковий співробітник IBM Canada, професор Університету Торонто

Про побоюваннях

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

Про обмеження машинного навчання

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

Про роль програмістів в майбутньому

Такі напрям в IT як Data Science, штучний інтелект та аналітика будуть тривалий час залишатися затребуваними.

Андрій Яворський, VP Engineering у GlobalLogic

Про побоюваннях

Удосконалення інформаційних технологій розвивається експоненційно, в найближчі 5-7 років можна очікувати значної трансформації професією інженера-програміста. Найбільш вразливими будуть професії, пов'язані з рутинними, повторюваними завданнями, у яких слабо задіяно абстрактне мислення, розуміння концепцій, технологій взаємодії та функціональних компонентів.

Професія програміста, як втім і безліч інших професій, змінюється і еволюціонує з розвитком технологій, суспільства, економічних потреб. Завдання та навички лікарів, водіїв, фінансистів сьогодні і 100 років тому відрізняються драматично. Технології, якими користувалися професійні програмісти у 70-х, 90-х, 2000-х, і завдання, які їм доводилося вирішувати, з тих пір сильно змінилися.

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

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

Про обмеження машинного навчання

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

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

Про роль програмістів в майбутньому

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

По-перше, розвиток ІЇ орієнтованих обчислювальних платформ, здатних вирішувати певний набір завдань без необхідності традиційного програмування. Наприклад, щось подібне можна побачити в розвитку CMS або е-Commerce систем, якими на сьогоднішній день можуть користуватися люди без глибоких технічних навичок.

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

По-третє, підвищення продуктивності за рахунок AI орієнтованих процесорів і здешевлення обчислювальних потужностей підвищить швидкість отримання результатів, наблизивши їх до систем аналізу в реальному часі. Можливості бізнес-застосування подібних платформ значно розширяться.

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

Олександр Краковецький, CEO DevRain Solutions, Ph.D., CTO ДонорUA

Про побоювання

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

По-перше, в усьому світі катастрофічно не вистачає ІТ-спеціалістів, і з кожним роком ця тенденція стає дедалі гіршою. Передусім не вистачає саме спеціалістів з Machine Learning та Data Scientists. У свою чергу, розвиток хмарних технологій, IoT, блокчейну та криптовалют створив величезний запит на нові професії та навики. Коли все перепишуть на блокчейн, вже з'явиться умовно «новий і покращений blockchain 2.0 і 3.0 beta», і всі одразу захочуть мігрувати туди. Це безперервний процес, допоки людство не стані цивілізацією іншого або третього типу, але і після того можливі неприємні нюанси, не пов'язані зі штучним інтелектом, — або метеорит жахне, або Сонце вибухне, або українці знову виберуть якогось пришелепкуватого президента.

По-друге, є гарний вислів Вільяма Гібсона: «Майбутнє вже тут, воно просто нерівномірно розподілене». Десь вже запускають 5G, а у нас і 3G ще досить погано працює. Дуже багато корпорацій до цих пір сидять на Delphi та екселі з макросами, тому необхідність підтримувати ці системи ще довго буде гальмувати впровадження та використання штучного інтелекту.

Про обмеження машинного навчання

Ще не так давно говорили, що з приходом хмарних сервісів адміни стануть непотрібними, а вже через 5 років «нові адміни», або як їх тепер називають — девопси, — мають одну з найвищих зарплат серед ІТ-спеціалістів (маю на увазі США, в першу чергу).

Про роль програмістів у майбутньому

Програмісти без роботи точно не залишаться, хоча процес програмування та процес роботи звісно зміняться.

Що ж робити розробникам

У найближчому майбутньому побоюватися ІІ програмістам не варто, але починати вивчати машинне навчання корисно вже зараз, адже попит на фахівців зростає — на думку українських експертів. Можливо, хтось захоче поміняти спеціалізацію або просто зайнятися вирішенням інших завдань. Але в цілому необов'язково і навіть не потрібно повністю переорієнтуватися в напрямок Data Science, але необхідно постійно отримувати нові навички і базові знання. Це як мінімум дозволить в майбутньому претендувати на більш високі позиції і більш цікаві проекти, пов'язані зі штучним інтелектом.

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

Опубліковано: 07/05/18 @ 07:13
Розділ Різне

Рекомендуємо:

Go дайджест #3: Go 1.10.2 and 1.9.6, новий брендинг для Go, NGINX Unit 1.0 сервер додатків з підтримкою Go
Легкий старт в ІТ: що таке RPA і як освоїти технологію з нуля
DOU Books: 5 книжок про спілкування в команді від Андрея Трофімова, керівника львівського офісу EPAM
Квітень 2018. Финстрип. 100К в міс почекають. Червоні трикутники.
Як стати доповідачем на міжнародній конференції: покрокова інструкція