„ Последен излез, исклучете го уредувачот на код. “ Оваа шегаџиска фраза се ширеше низ форумите за програмери, одразувајќи вознемирен хумор за подемот на асистентите за кодирање со вештачка интелигенција. Бидејќи моделите на вештачка интелигенција стануваат сè поспособни за пишување код, многу програмери се прашуваат дали човечките програмери се упатуваат кон истата судбина како операторите на лифтови или операторите на централи - работни места што се застарени од автоматизацијата. Во 2024 година, смелите наслови најавуваа дека вештачката интелигенција наскоро би можела да го напише целиот наш код, оставајќи ги човечките програмери без што да прават. Но, зад возбудата и сензационализмот, реалноста е многу понијансирана.
Да, вештачката интелигенција сега може да генерира код побрзо од кој било човек, но колку е добар тој код и дали вештачката интелигенција може сама да се справи со целиот животен циклус на развој на софтвер? Повеќето експерти велат „не толку брзо“. Лидерите во софтверското инженерство, како што е извршниот директор на Мајкрософт, Сатја Надела, нагласуваат дека „вештачката интелигенција нема да ги замени програмерите, но ќе стане суштинска алатка во нивниот арсенал. Станува збор за овластување на луѓето да прават повеќе, а не помалку“. ( Дали вештачката интелигенција ќе ги замени програмерите? Вистината зад возбудата | од The PyCoach | Artificial Corner | март, 2025 | Medium ) Слично на тоа, шефот за вештачка интелигенција на Google, Џеф Дин, забележува дека иако вештачката интелигенција може да се справи со рутински задачи за кодирање, „сè уште ѝ недостасуваат креативност и вештини за решавање проблеми“ - токму квалитетите што човечките програмери ги носат на маса. Дури и Сем Алтман, извршен директор на OpenAI, признава дека денешната вештачка интелигенција е „многу добра во задачите“ , но „ужасна во целосни задачи“ без човечки надзор. Накратко, вештачката интелигенција е одлична во помагањето со делови од работата, но не е способна целосно да ја преземе работата на програмерот од почеток до крај.
Оваа бела книга фрла искрен, избалансиран поглед на прашањето „Дали вештачката интелигенција ќе ги замени програмерите?“ Испитуваме како вештачката интелигенција влијае на улогите во развојот на софтвер денес и какви промени претстојат. Преку примери од реалниот свет и неодамнешни алатки (од GitHub Copilot до ChatGPT), истражуваме како програмерите можат да се прилагодат, да се адаптираат и да останат релевантни додека вештачката интелигенција еволуира. Наместо едноставен одговор со да или не, ќе видиме дека иднината е соработка помеѓу вештачката интелигенција и човечките програмери. Целта е да се истакнат практични сознанија за тоа што програмерите можат да направат за да напредуваат во ерата на вештачката интелигенција - од усвојување нови алатки до учење нови вештини и проектирање како кариерите во кодирањето би можеле да се развиваат во наредните години.
Вештачката интелигенција во развојот на софтвер денес
Вештачката интелигенција брзо се вткајува во модерниот работен процес на развој на софтвер. Далеку од тоа да биде научна фантастика, алатките базирани на вештачка интелигенција веќе пишуваат и прегледуваат код , автоматизираат здодевни задачи и ја зголемуваат продуктивноста на програмерите. Програмерите денес ја користат вештачката интелигенција за генерирање фрагменти од код, автоматско дополнување на функции, откривање грешки, па дури и креирање тест случаи ( Дали постои иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] ) ( Дали постои иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] ). Со други зборови, вештачката интелигенција ја презема макотрпната работа и стандардните шаблони, дозволувајќи им на програмерите да се фокусираат на посложени аспекти на креирањето софтвер. Да погледнеме некои од истакнатите можности и алатки на вештачката интелигенција кои го трансформираат програмирањето токму сега:
-
Генерирање код и автоматско дополнување: Современите асистенти за кодирање со вештачка интелигенција можат да создаваат код базиран на потсетници на природен јазик или делумен контекст на код. На пример, GitHub Copilot (изграден врз основа на моделот Codex на OpenAI) се интегрира со уредниците за да предложи следниот ред или блок код додека пишувате. Користи огромен сет за обука на код со отворен код за да понуди предлози свесни за контекстот, честопати способни да завршат цели функции само од коментар или име на функција. Слично на тоа, ChatGPT (GPT-4) може да генерира код за дадена задача кога опишувате што ви треба на едноставен англиски јазик. Овие алатки можат да изготват стандарден код за секунди, од едноставни помошни функции до рутински CRUD операции.
-
Детекција и тестирање на грешки: Вештачката интелигенција исто така помага во откривањето на грешките и подобрувањето на квалитетот на кодот. Алатките за статичка анализа и лајнтерите, управувани од вештачка интелигенција, можат да ги означат потенцијалните грешки или безбедносните ранливости со учење од минатите шеми на грешки. Некои алатки за вештачка интелигенција автоматски генерираат единечни тестови или предлагаат тест случаи со анализа на патеките на кодот. Ова значи дека развивачот може да добие моментална повратна информација за екстремни случаи што можеби ги пропуштил. Со рано откривање на грешки и предлагање поправки, вештачката интелигенција делува како неуморен асистент за контрола на квалитетот кој работи заедно со развивачот.
-
Оптимизација на код и рефакторирање: Друга употреба на вештачката интелигенција е предлагање подобрувања на постоечкиот код. Даден е еден фрагмент, вештачката интелигенција може да препорача поефикасни алгоритми или почисти имплементации со препознавање на шеми во кодот. На пример, може да предложи поидиоматска употреба на библиотека или да означи вишок код што може да се рефакторира. Ова помага во намалување на техничкиот долг и подобрување на перформансите. Алатките за рефакторирање базирани на вештачка интелигенција можат да го трансформираат кодот за да се придржуваат до најдобрите практики или да го ажурираат кодот во нови верзии на API, заштедувајќи им време на програмерите при рачно чистење.
-
DevOps и автоматизација: Освен пишувањето код, вештачката интелигенција придонесува за процесите на градење и распоредување. Интелигентните алатки за CI/CD користат машинско учење за да предвидат кои тестови веројатно нема да успеат или да дадат приоритет на одредени задачи за градење, правејќи го континуираниот интеграциски процес побрз и поефикасен. Вештачката интелигенција може да анализира логови на производство и метрики за перформанси за да ги утврди проблемите или да предложи оптимизации на инфраструктурата. Всушност, вештачката интелигенција помага не само во кодирањето, туку и низ целиот животен циклус на развој на софтвер - од планирање до одржување.
-
Интерфејси и документација на природен јазик: Исто така, гледаме дека вештачката интелигенција овозможува поприродни интеракции со алатките за развој. Програмерите буквално можат да побараат од вештачката интелигенција да извршува задачи („генерира функција што прави X“ или „објасни го овој код“) и да добиваат резултати. Чет-ботовите со вештачка интелигенција (како ChatGPT или специјализирани асистенти за развивачи) можат да одговорат на прашања поврзани со програмирање, да помогнат со документацијата, па дури и да напишат проектна документација или да извршат пораки врз основа на промени во кодот. Ова го премостува јазот помеѓу човечката намера и кодот, правејќи го развојот подостапен за оние кои можат да опишат што сакаат.
-
Програмерите ги прифаќаат алатките за вештачка интелигенција: Анкета од 2023 година покажува дека огромни 92% од програмерите користеле алатки за кодирање со вештачка интелигенција на некаков начин - или на работа, во нивните лични проекти или и двете. Само мали 8% изјавиле дека не користат никаква помош од вештачка интелигенција во кодирањето. Оваа табела покажува дека две третини од програмерите користат алатки за вештачка интелигенција и на работа и надвор од неа , додека една четвртина ги користат исклучиво на работа, а мало малцинство само надвор од работа. Заклучокот е јасен: кодирањето со помош на вештачка интелигенција брзо стана мејнстрим меѓу програмерите ( Анкетата го открива влијанието на вештачката интелигенција врз искуството на програмерите - Блогот на GitHub ).
Ова ширење на алатки за вештачка интелигенција во развојот доведе до зголемена ефикасност и намалена макотрпна работа во кодирањето. Производите се создаваат побрзо бидејќи вештачката интелигенција помага во генерирање стандарден код и справување со повторувачки задачи ( Дали има иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] ) ( Дали вештачката интелигенција ќе ги замени програмерите во 2025 година: краток поглед во иднината ). Алатки како Copilot дури можат да предложат цели алгоритми или решенија кои „можеби не се веднаш очигледни за човечките програмери“, благодарение на учењето од огромни збирки на податоци од код. Примери од реалниот свет се изобилни: инженер може да побара од ChatGPT да имплементира функција за сортирање или да пронајде грешка во нивниот код, а вештачката интелигенција ќе произведе нацрт-решение за секунди. Компании како Amazon и Microsoft распоредија програмери со парови од вештачка интелигенција (CodeWhisperer на Amazon и Copilot на Microsoft) во своите тимови за развивачи, пријавувајќи побрзо завршување на задачите и помалку секојдневни часови поминати на стандарден дизајн. Всушност, 70% од програмерите анкетирани во анкетата Stack Overflow од 2023 година изјавиле дека веќе користат или планираат да користат алатки за вештачка интелигенција во нивниот процес на развој ( 70% од програмерите користат алатки за кодирање со вештачка интелигенција, 3% имаат голема доверба во нивната точност - ShiftMag ). Најпопуларните асистенти се ChatGPT (користен од ~83% од испитаниците) и GitHub Copilot (~56%), што укажува дека општата конверзациска вештачка интелигенција и интегрираните IDE помагачи се клучни играчи. Програмерите првенствено се свртуваат кон овие алатки за да ја зголемат продуктивноста (наведено од ~33% од испитаниците) и да го забрзаат учењето (25%), додека околу 25% ги користат за да станат поефикасни со автоматизирање на повторувачката работа.
Важно е да се напомене дека улогата на вештачката интелигенција во програмирањето не е сосема нова - нејзините елементи постојат со години (разгледајте го автоматското дополнување на кодот во IDE или автоматизираните рамки за тестирање). Но, изминатите две години беа пресвртница. Појавата на моќни големи јазични модели (како серијата GPT на OpenAI и AlphaCode на DeepMind) драматично го прошири она што е можно. На пример, AlphaCode се најде на насловните страници со настап на ниво на натпревар по програмирање , постигнувајќи околу топ 54% рангирање на предизвиците за кодирање - во суштина одговарајќи на вештината на просечен човечки натпреварувач ( AlphaCode на DeepMind се совпаѓа со вештината на просечен програмер ). Ова беше прв пат систем со вештачка интелигенција да настапи конкурентно на натпревари во програмирање. Сепак, кажува дека дури и AlphaCode, со целата своја вештина, сè уште беше далеку од тоа да ги победи најдобрите човечки програмери. На тие натпревари, AlphaCode можеше да реши околу 30% од проблемите во рамките на дозволените обиди, додека врвните човечки програмери решаваат >90% од проблемите со еден обид. Овој јаз истакнува дека иако вештачката интелигенција може да се справи со добро дефинирани алгоритамски задачи до одредена точка, најтешките проблеми што бараат длабоко расудување и генијалност остануваат човечко упориште .
Накратко, вештачката интелигенција цврсто се вгради во секојдневниот сет на алатки на програмерите. Од помагање во пишувањето код до оптимизирање на распоредувањето, таа допира до секој дел од процесот на развој. Односот денес е во голема мера симбиотски: вештачката интелигенција делува како копилот (соодветно именуван) што им помага на програмерите да кодираат побрзо и со помалку фрустрации, наместо како независен автопилот што може да лета сам. Во следниот дел, ќе навлеземе во тоа како ова вклучување на алатки за вештачка интелигенција ја менува улогата на програмерите и природата на нивната работа, на подобро или на полошо.
Како вештачката интелигенција ги менува улогите и продуктивноста на програмерите
Со оглед на тоа што вештачката интелигенција се справува со поголем дел од рутинската работа, улогата на развивачот на софтвер навистина почнува да се развива. Наместо да трошат часови пишувајќи стандарден код или дебагирање на обични грешки, развивачите можат да ги префрлат тие задачи на своите асистенти за вештачка интелигенција. Ова го поместува фокусот на развивачот кон решавање проблеми на повисоко ниво, архитектура и креативни аспекти на софтверското инженерство. Во суштина, вештачката интелигенција ги подобрува развивачите, дозволувајќи им да бидат попродуктивни и потенцијално поиновативни. Но, дали ова се преведува во помалку работни места за програмирање или едноставно во различен вид работа? Ајде да го истражиме влијанието врз продуктивноста и улогите:
Зголемување на продуктивноста: Според повеќето извештаи и рани студии, алатките за кодирање со вештачка интелигенција значително ја зголемуваат продуктивноста на програмерите. Истражувањето на GitHub покажа дека програмерите што користат Copilot беа во можност да завршат задачи многу побрзо од оние без помош од вештачка интелигенција. Во еден експеримент, програмерите решија задача за кодирање во просек 55% побрзо со помош на Copilot - земајќи околу 1 час и 11 минути наместо 2 часа и 41 минути без неа ( Истражување: квантификација на влијанието на GitHub Copilot врз продуктивноста и среќата на програмерите - Блогот на GitHub ). Тоа е впечатливо зголемување на брзината. Не е само брзината; програмерите известуваат дека помошта од вештачка интелигенција помага да се намали фрустрацијата и „прекините на протокот“. Во анкетите, 88% од програмерите што користат Copilot рекле дека тоа ги направило попродуктивни и им овозможило да се фокусираат на позадоволувачка работа ( Колкав процент од програмерите рекле дека github copilot прави ... ). Овие алатки им помагаат на програмерите да останат „во зоната“ со справување со досадни делови, што пак заштедува ментална енергија за потешки проблеми. Како резултат на тоа, многу програмери сметаат дека кодирањето станало позабавно - помалку макотрпна работа и повеќе креативност.
Промена на секојдневната работа: Секојдневниот работен тек на програмерот се менува заедно со овие зголемувања на продуктивноста. Голем дел од „зафатената работа“ - пишување стандардни програми, повторување на вообичаени шеми, барање синтакса - може да се префрли на вештачката интелигенција. На пример, наместо рачно да пишува класа на податоци со гејтери и поставувачи, развивачот може едноставно да ја поттикне вештачката интелигенција да ја генерира. Наместо да пребарува низ документацијата за да го пронајде вистинскиот API повик, развивачот може да ја праша вештачката интелигенција на природен јазик. Ова значи дека развивачите трошат релативно помалку време на рутинско кодирање и повеќе време на задачи што бараат човечка проценка . Бидејќи вештачката интелигенција го презема пишувањето на лесните 80% од кодот, работата на развивачот се префрла кон надгледување на излезот од вештачката интелигенција (преглед на предлози за код, нивно тестирање) и справување со незгодните 20% од проблемите што вештачката интелигенција не може да ги реши. Во пракса, развивачот може да го започне денот тријажирајќи барања за повлекување генерирани од вештачката интелигенција или прегледувајќи серија предложени поправки од вештачката интелигенција, наместо да ги пишува сите тие промени од нула.
Соработка и тимска динамика: Интересно е што вештачката интелигенција (ВИ) влијае и врз тимската динамика. Со автоматизирани рутински задачи, тимовите потенцијално можат да постигнат повеќе со помалку помлади програмери на кои им е доделена брза работа. Некои компании известуваат дека нивните постари инженери можат да бидат посамостојни - тие можат брзо да создадат прототипови на функции со помош на ВИ, без потреба од помлад инженер да прави почетни нацрти. Сепак, ова покренува нов предизвик: менторство и споделување знаење. Наместо помладите да учат преку извршување на едноставните задачи, тие можеби ќе треба да научат како ефикасно да управуваат со резултатите од ВИ. Тимската соработка може да се префрли на активности како колективно усовршување на ВИ инструкциите или преглед на кодот генериран од ВИ за стапици. Од позитивна страна, кога секој во тимот има ВИ асистент, тоа би можело да го изедначи полето за игра и да овозможи повеќе време за дискусии за дизајн, креативно размислување и справување со сложени кориснички барања што ниедна ВИ во моментов не ги разбира веднаш. Всушност, повеќе од четири од пет програмери веруваат дека алатките за кодирање со вештачка интелигенција ќе ја подобрат тимската соработка или барем ќе ги ослободат да соработуваат повеќе во дизајнот и решавањето проблеми, според наодите од анкетата на GitHub за 2023 година ( Анкетата открива влијанието на вештачката интелигенција врз искуството на програмерите - Блогот на GitHub ).
Влијание врз работните улоги: Главно прашање е дали вештачката интелигенција ќе ја намали побарувачката за програмери (бидејќи секој програмер сега е попродуктивен) или едноставно ќе ги промени бараните вештини. Историскиот преседан со друга автоматизација (како што е порастот на алатките devops или програмските јазици на повисоко ниво) сугерира дека работните места за програмери не се толку елиминирани колку што се зголемуваат . Всушност, аналитичарите од индустријата предвидуваат дека улогите во софтверското инженерство ќе продолжат да растат , но природата на тие улоги ќе се промени. Неодамнешен извештај на Gartner предвидува дека до 2027 година, 50% од организациите за софтверско инженерство ќе усвојат платформи за „интелигенција за софтверско инженерство“ зголемени со вештачка интелигенција за да ја зголемат продуктивноста , во споредба со само 5% во 2024 година ( Дали постои иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] ). Ова укажува дека компаниите широко ќе ја интегрираат вештачката интелигенција, но имплицира дека програмерите ќе работат со тие интелигентни платформи. Слично на тоа, консултантската фирма McKinsey проектира дека иако вештачката интелигенција може да автоматизира многу задачи, околу 80% од работните места во програмирањето сè уште ќе бараат човек во јамката и ќе останат „центрирани на човекот“ . Со други зборови, сè уште ќе ни требаат луѓе за повеќето позиции на програмери, но описите на работните места може да се променат.
Една можна промена е појавата на улоги како „Софтверски инженер за вештачка интелигенција“ или „Инженер за брза помош“ – програмери кои се специјализирани за градење или оркестрирање на компоненти за вештачка интелигенција. Веќе гледаме дека побарувачката за програмери со експертиза за вештачка интелигенција/машинско учење е во пораст. Според анализата на Indeed, трите најбарани работни места поврзани со вештачка интелигенција се научник за податоци, софтверски инженер и инженер за машинско учење , а побарувачката за овие улоги се зголеми повеќе од двојно во последните три години ( Дали постои иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] ). Од традиционалните софтверски инженери сè повеќе се очекува да ги разберат основите на машинското учење или да интегрираат услуги за вештачка интелигенција во апликациите. Далеку од тоа да ги направи програмерите отпуштни, „Вештачката интелигенција би можела да ја подигне професијата, овозможувајќи им на програмерите да се фокусираат на задачи од повисоко ниво и иновации.“ ( Дали вештачката интелигенција ќе ги замени програмерите во 2025 година: краток поглед во иднината ) Многу рутински задачи за кодирање би можеле да бидат извршени од вештачката интелигенција, но програмерите ќе бидат повеќе зафатени со дизајн на систем, интегрирање модули, обезбедување квалитет и решавање на нови проблеми. Виш инженер од една компанија напредна во вештачката интелигенција добро го сумираше ова: вештачката интелигенција не ги заменува нашите програмери; таа засилува . Еден развивач вооружен со моќни алатки за вештачка интелигенција може да ја заврши работата на неколкумина, но тој развивач сега презема работа што е посложена и повлијателна.
Пример од реалниот свет: Да разгледаме сценарио од софтверска фирма која го интегрирала GitHub Copilot за сите свои развивачи. Непосредниот ефект бил значително намалување на времето поминато на пишување единечни тестови и стандарден код. Еден помлад развивач открил дека користејќи го Copilot може брзо да генерира 80% од кодот на нова функција, а потоа да го помине времето прилагодувајќи ги преостанатите 20% и пишувајќи тестови за интеграција. Нејзината продуктивност во однос на излезниот код речиси се удвоила, но поинтересно е што природата на нејзиниот придонес се променила - таа станала повеќе прегледувач на код и дизајнер на тестови за код напишан со вештачка интелигенција. Тимот, исто така, забележал дека прегледите на кодот почнале да ги откриваат грешките со вештачка интелигенција , а не човечките печатни грешки. На пример, Copilot повремено предлагал небезбедна имплементација на енкрипција; човечките развивачи морале да ги забележат и исправат. Овој вид пример покажува дека додека излезниот резултат се зголемувал, човечкиот надзор и експертиза станале уште поважни во работниот тек.
Како заклучок, вештачката интелигенција несомнено го менува начинот на кој работат програмерите: ги прави побрзи и им овозможува да се справат со поамбициозни проблеми, но исто така бара од нив да ги надградат вештините (и во искористувањето на вештачката интелигенција и во размислувањето на повисоко ниво). Тоа е помалку приказна за „вештачката интелигенција што ги презема работните места“, а повеќе приказна за „вештачката интелигенција што ги менува работните места“. Програмерите кои учат ефикасно да ги користат овие алатки можат да го зголемат своето влијание - клишето што често го слушаме е: „Вештачката интелигенција нема да ги замени програмерите, но програмерите кои користат вештачка интелигенција може да ги заменат оние кои не ја користат“. Следните делови ќе истражат зошто човечките програмери се сè уште неопходни (што вештачката интелигенција не може да го направи добро) и како програмерите можат да ги прилагодат своите вештини за да напредуваат заедно со вештачката интелигенција.
Ограничувањата на вештачката интелигенција (зошто луѓето остануваат витални)
И покрај своите импресивни можности, денешната вештачка интелигенција има јасни ограничувања што ја спречуваат да ги направи човечките програмери застарени. Разбирањето на овие ограничувања е клучно за да се види зошто програмерите се сè уште многу потребни во процесот на развој. Вештачката интелигенција е моќна алатка, но не е магичен куршум што може да ја замени креативноста, критичкото размислување и контекстуалното разбирање на човечкиот развивач. Еве некои од фундаменталните недостатоци на вештачката интелигенција во програмирањето и соодветните предности на човечките развивачи:
-
Недостаток на вистинско разбирање и креативност: Сегашните модели на вештачка интелигенција не го разбираат кодот или проблемите на начин на кој го разбираат луѓето; тие препознаваат шеми и ги повторуваат веројатните резултати врз основа на податоци за обука. Ова значи дека вештачката интелигенција може да се бори со задачи што бараат оригинални, креативни решенија или длабоко разбирање на нови проблемски домени. Вештачката интелигенција може да биде во можност да генерира код за да исполни спецификација што ја видел претходно, но да побара од неа да дизајнира нов алгоритам за невиден проблем или да протолкува двосмислено барање, и веројатно ќе се поколеба. Како што рече еден набљудувач, вештачката интелигенција денес „и недостасуваат способности за креативно и критичко размислување што ги носат човечките програмери“. ( Дали вештачката интелигенција ќе ги замени програмерите во 2025 година: краток поглед во иднината ) Луѓето се одлични во размислувањето надвор од кутијата - комбинирајќи знаење за доменот, интуиција и креативност за дизајнирање софтверски архитектури или решавање сложени проблеми. Вештачката интелигенција, пак, е ограничена на шемите што ги научила; ако проблемот не се совпаѓа добро со тие шеми, вештачката интелигенција може да произведе неточен или бесмислен код (честопати самоуверено!). Иновацијата во софтверот – смислување нови функции, нови кориснички искуства или нови технички пристапи – останува активност водена од човекот.
-
Разбирање на контекстот и пошироката слика: Градењето софтвер не е само пишување линии код. Тоа вклучува разбирање на причината зад кодот - деловните барања, потребите на корисниците и контекстот во кој работи софтверот. Вештачката интелигенција има многу тесен прозорец на контекст (обично ограничен на влезните податоци што ги дава во исто време). Таа не ја разбира навистина главната цел на системот или како еден модул комуницира со друг надвор од она што е експлицитно во кодот. Како резултат на тоа, вештачката интелигенција може да генерира код кој технички функционира за мала задача, но не се вклопува добро во пошироката системска архитектура или прекршува некој имплицитен услов. Потребни се човечки програмери за да се осигурат дека софтверот се усогласува со деловните цели и очекувањата на корисниците. Дизајн на сложени системи - разбирање како промената во еден дел може да се прошири низ другите, како да се балансираат компромисите (како перформанси наспроти читливост) и како да се планира долгорочна еволуција на базата на кодови - е нешто што вештачката интелигенција не може да го направи денес. Во големи проекти со илјадници компоненти, вештачката интелигенција „ги гледа дрвјата, но не и шумата“. Како што е наведено во една анализа, „Вештачката интелигенција се бори со разбирањето на целиот контекст и сложеноста на големите софтверски проекти“, вклучувајќи ги деловните барања и размислувањата за корисничкото искуство ( Дали вештачката интелигенција ќе ги замени програмерите во 2025 година: краток поглед во иднината ). Луѓето ја одржуваат визијата за пошироката слика.
-
Здрав разум и решавање на двосмислености: Барањата во реалните проекти често се нејасни или еволуираат. Човечкиот развивач може да бара појаснување, да прави разумни претпоставки или да се спротивставува на нереални барања. Вештачката интелигенција не поседува здрав разум или способност да поставува појаснувачки прашања (освен ако не е експлицитно повторувано во прашање, па дури и тогаш нема гаранција дека ќе го направи правилно). Затоа кодот генериран од вештачка интелигенција понекогаш може да биде технички точен, но функционално неточен - му недостасува проценка за да знае што навистина имал намера корисникот ако инструкциите се нејасни. Спротивно на тоа, човечкиот програмер може да протолкува барање на високо ниво („да го направи овој кориснички интерфејс поинтуитивен“ или „апликацијата треба грациозно да се справува со неправилни влезни податоци“) и да открие што треба да се направи во кодот. На вештачката интелигенција ќе ѝ требаат исклучително детални, недвосмислени спецификации за навистина да го замени развивачот, па дури и ефикасното пишување на таква спецификација е исто толку тешко како и пишувањето на самиот код. Како што соодветно е забележано во статијата на Форбс Технолошкиот совет, за вештачката интелигенција всушност да ги замени развивачите, ќе треба да разбира нејасни инструкции и да се адаптира како човек - ниво на расудување што сегашната вештачка интелигенција го нема ( Објава на Сергиј Кузин - LinkedIn ).
-
Сигурност и „халуцинации“: Денешните генеративни модели на вештачка интелигенција имаат добро позната маана: тие можат да произведат неточни или целосно измислени излезни резултати, феномен што често се нарекува халуцинација . Во кодирањето, ова може да значи дека вештачката интелигенција пишува код што изгледа веродостојно, но е логички погрешен или несигурен. Програмерите не можат слепо да им веруваат на предлозите на вештачката интелигенција. Во пракса, секој дел од кодот напишан од вештачка интелигенција бара внимателен преглед и тестирање од страна на човек . Податоците од анкетата Stack Overflow го одразуваат ова - од оние што користат алатки за вештачка интелигенција, само 3% имаат голема доверба во точноста на излезот на вештачката интелигенција, а всушност мал процент активно не му веруваат ( 70% од програмерите користат алатки за кодирање со вештачка интелигенција, 3% имаат голема доверба во нивната точност - ShiftMag ). Огромното мнозинство програмери ги третираат предлозите на вештачката интелигенција како корисни совети, а не како евангелие. Оваа ниска доверба е оправдана затоа што вештачката интелигенција може да направи бизарни грешки што ниту еден компетентен човек не би ги направил (како грешки „одредени по еден“, користење застарени функции или производство на неефикасни решенија) затоа што навистина не размислува за проблемот. Како што еден коментар на форумот иронично забележа, „Тие (ВИ) халуцинираат многу и прават чудни дизајнерски избори што човек никогаш не би ги направил“ ( Дали програмерите ќе станат застарени поради ВИ? - Совет за кариера ). Човечкиот надзор е клучен за откривање на овие грешки. ВИ може брзо да ви обезбеди 90% од некоја функција, но ако преостанатите 10% имаат суптилна грешка, сепак е на човечкиот развивач да ја дијагностицира и поправи. И кога нешто тргне наопаку во производството, човечките инженери се тие што мора да ја дебагираат - ВИ сè уште не може да преземе одговорност за своите грешки.
-
Одржување и еволуција на бази на кодови: Софтверските проекти живеат и растат со години. Тие бараат конзистентен стил, јасност за идните одржувачи и ажурирања како што се менуваат барањата. Вештачката интелигенција денес нема меморија за минатите одлуки (надвор од ограничените инструкции), па затоа можеби нема да го одржи кодот конзистентен низ голем проект освен ако не е воден. Човечките програмери обезбедуваат одржливост на кодот - пишување јасна документација, избирање читливи решенија наместо паметни, но нејасни и рефакторирање на кодот по потреба кога архитектурата еволуира. Вештачката интелигенција може да помогне во овие задачи (како што е предлагање рефакторирања), но одлучувањето што да се рефакторира или кои делови од системот треба да се редизајнираат е човечка проценка. Понатаму, при интегрирање на компоненти, разбирањето на влијанието на новата функција врз постојните модули (обезбедување на компатибилност со постари верзии итн.) е нешто што луѓето го прават. Кодот генериран од вештачка интелигенција мора да биде интегриран и хармонизиран од луѓето. Како експеримент, некои програмери се обидоа да му дозволат на ChatGPT да изгради цели мали апликации; резултатот честопати функционира на почетокот, но станува многу тешко да се одржи или прошири бидејќи вештачката интелигенција не применува постојано внимателна архитектура - таа донесува локални одлуки што човечки архитект би ги избегнал.
-
Етички и безбедносни аспекти: Како што вештачката интелигенција пишува повеќе код, таа исто така покренува прашања за пристрасност, безбедност и етика. Вештачката интелигенција може ненамерно да воведе безбедносни ранливости (на пример, неправилно дезинфицирање на влезните податоци или користење небезбедни криптографски практики) што би ги открил искусен човечки развивач. Исто така, вештачката интелигенција нема вродено чувство за етика или грижа за праведност - на пример, може да се обучува на пристрасни податоци и да предлага алгоритми кои ненамерно дискриминираат (во функција управувана од вештачка интелигенција како што е код за одобрување на кредит или алгоритам за вработување). Човечките развивачи се потребни за да ги ревидираат резултатите од вештачката интелигенција за овие проблеми, да обезбедат усогласеност со прописите и да го надополнат софтверот со етички аспекти. Социјалниот аспект на софтверот - разбирањето на довербата на корисниците, загриженоста за приватноста и донесувањето одлуки за дизајн што се усогласуваат со човечките вредности - „не може да се занемари. Овие човечки ориентирани аспекти на развојот се надвор од дофатот на вештачката интелигенција, барем во догледна иднина.“ ( Дали вештачката интелигенција ќе ги замени развивачите во 2025 година: краток поглед во иднината ) Развивачите мора да служат како совест и порта за квалитет за придонесите од вештачката интелигенција.
Со оглед на овие ограничувања, моменталниот консензус е дека вештачката интелигенција е алатка, а не замена . Како што рече Сатја Надела, станува збор за овластување на програмерите, а не за нивна замена ( Дали вештачката интелигенција ќе ги замени програмерите? Вистината зад возбудата | од The PyCoach | Artificial Corner | март, 2025 | Medium ). Вештачката интелигенција може да се смета за помлад асистент: таа е брза, неуморна и може да го направи првиот обид за многу задачи, но ѝ треба водство и експертиза од постар развивач за да произведе дотеран финален производ. Карактеристично е што дури и најнапредните системи за кодирање со вештачка интелигенција се распоредуваат како асистенти во реалната употреба (Copilot, CodeWhisperer, итн.), а не како автономни кодери. Компаниите не ги отпуштаат своите тимови за програмирање и не дозволуваат вештачката интелигенција да работи диво; наместо тоа, тие ја вградуваат вештачката интелигенција во работните процеси на развивачите за да им помогнат.
Еден илустративен цитат доаѓа од Сем Алтман од OpenAI, кој забележа дека дури и како што агентите на вештачката интелигенција се подобруваат, „овие агенти на вештачката интелигенција нема целосно да ги заменат луѓето“ во развојот на софтвер ( Сем Алтман вели дека агентите на вештачката интелигенција наскоро ќе извршуваат задачи што ги извршуваат софтверските инженери: Целосна сторија во 5 точки - Индија денес ). Тие ќе функционираат како „виртуелни соработници“ кои ќе се справуваат со добро дефинирани задачи за човечки инженери, особено оние задачи типични за софтверски инженер на ниско ниво со неколкугодишно искуство. Со други зборови, вештачката интелигенција на крајот би можела да ја заврши работата на помлад развивач во некои области, но тој помлад развивач не станува невработен - тие еволуираат во улога на надгледувач на вештачката интелигенција и справување со задачите на повисоко ниво што вештачката интелигенција не може да ги изврши. Дури и гледајќи кон иднината, каде што некои истражувачи предвидуваат дека до 2040 година вештачката интелигенција би можела да напише поголем дел од својот код ( Дали постои иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] ), генерално е согласно дека човечките програмери сè уште ќе бидат потребни за да надгледуваат, водат и обезбедуваат креативна искра и критичко размислување што им недостасува на машините .
Исто така, вреди да се напомене дека развојот на софтвер е повеќе од само кодирање . Тој вклучува комуникација со засегнатите страни, разбирање на приказните на корисниците, соработка во тимови и итеративен дизајн - сите области каде што човечките вештини се неопходни. Вештачката интелигенција не може да седи на состанок со клиент за да разјасни што навистина сака, ниту пак може да преговара за приоритети или да инспирира тим со визија за производ. Човечкиот елемент останува централен.
Накратко, вештачката интелигенција има важни слабости: нема вистинска креативност, ограничено разбирање на контекстот, склоност кон грешки, нема одговорност и нема разбирање за пошироките импликации од софтверските одлуки. Токму овие празнини се она што го истакнуваат човечките програмери. Наместо да се гледа вештачката интелигенција како закана, можеби е поточно да се гледа како моќен засилувач за човечките програмери - справување со секојдневните работи за луѓето да можат да се фокусираат на длабокото. Следниот дел ќе дискутира за тоа како програмерите можат да го искористат ова засилување со прилагодување на своите вештини и улоги за да останат релевантни и вредни во светот на развој со проширена вештачка интелигенција.
Адаптирање и просперитет во ерата на вештачката интелигенција
За програмерите и развивачите, порастот на вештачката интелигенција во кодирањето не мора да биде сериозна закана - може да биде можност. Клучот е да се адаптираат и да се развиваат заедно со технологијата. Оние кои ќе научат да ја користат вештачката интелигенција веројатно ќе се најдат себеси попродуктивни и побарани, додека оние кои ја игнорираат може да откријат дека заостанале. Во овој дел, се фокусираме на практични чекори и стратегии за развивачите да останат релевантни и да напредуваат додека алатките за вештачка интелигенција стануваат дел од секојдневниот развој. Начинот на размислување што треба да се усвои е континуирано учење и соработка со вештачката интелигенција, наместо конкуренција. Еве како развивачите можат да се прилагодат и кои нови вештини и улоги треба да ги земат предвид:
1. Прифатете ја вештачката интелигенција како алатка (научете ефикасно да користите асистенти за кодирање со вештачка интелигенција): Прво и најважно, програмерите треба да се навикнат на достапните алатки за вештачка интелигенција. Третирајте ги Copilot, ChatGPT или други асистенти за кодирање како ваш нов партнер за програмирање во пар. Ова значи учење како да пишувате добри инструкции или коментари за да добиете корисни предлози за код и знаење како брзо да го валидирате или дебагирате кодот генериран од вештачка интелигенција. Исто како што еден развивач морал да го научи своето IDE или контрола на верзии, учењето на необичностите на асистентот за вештачка интелигенција станува дел од вештините. На пример, развивачот може да вежба со земање дел од кодот што го напишал и барање од вештачката интелигенција да го подобри, а потоа да ги анализира промените. Или, кога започнувате задача, наведете го во коментари и видете што нуди вештачката интелигенција, а потоа усовршувајте од таму. Со текот на времето, ќе развиете интуиција за тоа во што е добра вештачката интелигенција и како да ко-креирате со неа. Сфатете го тоа како „развој потпомогнат од вештачка интелигенција“ - нова вештина што треба да ја додадете во вашата кутија со алатки. Всушност, програмерите сега зборуваат за „брз инженеринг“ како вештина - знаење како да ѝ поставите на вештачката интелигенција вистинските прашања. Оние кои ја совладаат можат да постигнат значително подобри резултати од истите алатки. Запомнете, „програмерите кои користат вештачка интелигенција може да ги заменат оние кои не ја користат“ – затоа прифатете ја технологијата и направете ја ваш сојузник.
2. Фокусирајте се на вештини од повисоко ниво (решавање проблеми, дизајн на системи, архитектура): Бидејќи вештачката интелигенција може да се справи со повеќе кодирање на ниско ниво, програмерите треба да се искачат на скалата на апстракција . Ова значи да се стави поголем акцент на разбирањето на дизајнот и архитектурата на системот. Развијте вештини за разложување на сложени проблеми, дизајнирање скалабилни системи и донесување архитектонски одлуки - области каде што човечкиот увид е клучен. Фокусирајте се на зошто и како на решението, а не само на што. На пример, наместо да го трошите целото време усовршувајќи ја функцијата за сортирање (кога вештачката интелигенција може да напише една за вас), одвојте време за да разберете кој пристап за сортирање е оптимален за контекстот на вашата апликација и како се вклопува во протокот на податоци на вашиот систем. Дизајнерското размислување - земајќи ги предвид потребите на корисниците, протокот на податоци и интеракциите на компонентите - ќе биде високо ценето. Вештачката интелигенција може да генерира код, но развивачот е тој што ја одлучува целокупната структура на софтверот и осигурува дека сите делови работат во хармонија. Со изострување на вашето размислување за пошироката слика, се правите неопходен како лице кое ја води вештачката интелигенција (и остатокот од тимот) во градењето на вистинската работа. Како што забележа еден извештај насочен кон иднината, програмерите треба „да се фокусираат на области каде што човечкиот увид е незаменлив, како што се решавање проблеми, дизајнерско размислување и разбирање на потребите на корисниците“. ( Дали вештачката интелигенција ќе ги замени програмерите во 2025 година: краток поглед во иднината )
3. Зголемете го вашето знаење за вештачка интелигенција и машинско учење: За да работите заедно со вештачката интелигенција, помага да се разбере вештачката интелигенција. Не сите програмери треба да станат истражувачи за машинско учење, но ќе биде корисно да имате солидно разбирање за тоа како функционираат овие модели. Научете ги основите на машинското учење и длабинското учење - ова не само што може да отвори нови кариерни патеки (бидејќи работните места поврзани со вештачката интелигенција се во подем ( Дали постои иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] )), туку ќе ви помогне и поефикасно да ги користите алатките за вештачка интелигенција. Ако ги знаете, на пример, ограничувањата на голем јазичен модел и како бил обучен, можете да предвидите кога може да не успее и соодветно да ги дизајнирате вашите инструкции или тестови. Дополнително, многу софтверски производи сега вклучуваат функции на вештачката интелигенција (на пример, апликација со механизам за препораки или чатбот). Развивач на софтвер со одредено знаење за машинско учење може да придонесе за тие функции или барем интелигентно да соработува со научници за податоци. Клучните области што треба да се земат предвид за учење вклучуваат: основи на науката за податоци , како да се преобработуваат податоци, обука наспроти инференција и етиката на вештачката интелигенција. Запознајте се со рамки за вештачка интелигенција (TensorFlow, PyTorch) и услуги за вештачка интелигенција во облак; дури и ако не градите модели од нула, знаењето како да интегрирате API за вештачка интелигенција во апликација е вредна вештина. Накратко, станувањето „писмено за вештачка интелигенција“ брзо станува исто толку важно како и писменоста во веб или технологиите за бази на податоци. Програмерите кои можат да се снајдат во светот на традиционалното софтверско инженерство и вештачката интелигенција ќе бидат во одлична позиција да водат идни проекти.
4. Развијте посилни меки вештини и познавање на доменот: Како што вештачката интелигенција презема механички задачи, уникатните човечки вештини стануваат уште поважни. Комуникацијата, тимската работа и експертизата во доменот се области на кои треба да се удвои вниманието. Развојот на софтвер често се однесува на разбирање на проблематичната област - без разлика дали станува збор за финансии, здравствена заштита, образование или која било друга област - и преведување на тоа во решенија. Вештачката интелигенција нема да го има тој контекст или способност да се поврзе со засегнатите страни, но вие ја имате. Стекнувањето поголемо знаење во доменот во кој работите ве прави лицето на кое се обраќате за да се осигурате дека софтверот всушност ги задоволува потребите на реалниот свет. Слично на тоа, фокусирајте се на вашите вештини за соработка: менторство, лидерство и координација. Тимовите сè уште ќе имаат потреба од постари програмери за да го прегледуваат кодот (вклучувајќи го и кодот напишан од вештачка интелигенција), да ги менторираат помладите за најдобри практики и да координираат сложени проекти. Вештачката интелигенција не ја отстранува потребата од човечка интеракција во проектите. Всушност, со генерирање код од вештачка интелигенција, менторството на постар развивач може да се префрли кон учење на помладите како да работат со вештачка интелигенција и да го потврдат нејзиниот излез , наместо како да напишат for-јамка. Можноста да се водат другите во оваа нова парадигма е вредна вештина. Исто така, вежбајте критичко размислување – поставувајте прашања и тестирајте ги резултатите од вештачката интелигенција и охрабрете ги другите да го сторат истото. Негувањето здрав скептицизам и начин на размислување за верификација ќе спречи слепо потпирање на вештачката интелигенција и ќе ги намали грешките. Во суштина, подобрете ги вештините што ѝ недостасуваат на вештачката интелигенција: разбирање на луѓето и контекстот, критичка анализа и интердисциплинарно размислување.
5. Доживотно учење и прилагодливост: Темпото на промени во вештачката интелигенција е екстремно брзо. Она што денес се чини како врвно, може да биде застарено за неколку години. Програмерите мора да го прифатат доживотното учење повеќе од кога било. Ова може да значи редовно испробување нови асистенти за кодирање со вештачка интелигенција, посетување онлајн курсеви или сертификати за вештачка интелигенција/машинска работа, читање истражувачки блогови за да бидете во тек со она што доаѓа или учество во заедници на програмери фокусирани на вештачка интелигенција. Прилагодливоста е клучна - бидете подготвени да се свртите кон нови алатки и работни процеси како што се појавуваат. На пример, ако се појави нова алатка за вештачка интелигенција што може да го автоматизира дизајнот на кориснички интерфејс од скици, front-end развивачот треба да биде подготвен да учи и да го вклучи тоа, префрлајќи го својот фокус можеби кон усовршување на генерираниот кориснички интерфејс или подобрување на деталите за корисничко искуство што ги пропуштила автоматизацијата. Оние кои го третираат учењето како тековен дел од нивната кариера (што многу програмери веќе го прават) ќе им биде полесно да ги интегрираат развојот на вештачката интелигенција. Една стратегија е да посветите мал дел од вашата недела на учење и експериментирање - третирајте го тоа како инвестирање во вашата сопствена иднина. Компаниите исто така почнуваат да обезбедуваат обука за своите програмери за ефикасно користење на алатките за вештачка интелигенција; искористувањето на ваквите можности ќе ве однесе напред. Програмерите кои напредуваат ќе бидат оние кои ја гледаат вештачката интелигенција како партнер во развој и постојано го усовршуваат својот пристап кон соработката со тој партнер.
6. Истражете ги новите улоги и кариерни патеки: Како што вештачката интелигенција се вплетува во развојот, се појавуваат нови можности за кариера. На пример, инженер за прашања или специјалист за интеграција на вештачка интелигенција се улоги фокусирани на креирање на вистинските инструкции, работни процеси и инфраструктура за користење на вештачката интелигенција во производите. Друг пример е инженер за етика во вештачката интелигенција или ревизор за вештачка интелигенција - улоги кои се фокусираат на преглед на резултатите од вештачката интелигенција за пристрасност, усогласеност и точност. Ако имате интерес во тие области, позиционирањето со вистинското знаење би можело да отвори овие нови патеки. Дури и во класичните улоги, може да најдете ниши како „фронтенд развивач со помош на вештачка интелигенција“ наспроти „бекенд развивач со помош на вештачка интелигенција“ каде што секоја користи специјализирани алатки. Внимавајте како организациите ги структурираат тимовите околу вештачката интелигенција. Некои компании имаат „гилди на вештачката интелигенција“ или центри на извонредност за да го водат усвојувањето на вештачката интелигенција во проектите - активноста во такви групи може да ве стави во првите редови. Покрај тоа, размислете за придонес во развојот на самите алатки за вештачка интелигенција: на пример, работа на проекти со отворен код кои го подобруваат алатот за развивачи (можеби подобрување на способноста на вештачката интелигенција да објаснува код, итн.). Ова не само што го продлабочува вашето разбирање за технологијата, туку ве сместува и во заедница која ги предводи промените. Суштината е да бидете проактивни во однос на агилноста во кариерата . Доколку делови од вашата тековна работа станат автоматизирани, бидете подготвени да се префрлите на улоги кои ги дизајнираат, надгледуваат или подобруваат тие автоматизирани делови.
7. Одржување и прикажување на човечкиот квалитет: Во свет каде што вештачката интелигенција може да генерира просечен код за просечен проблем, човечките програмери треба да се стремат да произведат исклучителни и емпатични решенија што вештачката интелигенција не може. Ова може да значи фокусирање на финесата на корисничкото искуство, оптимизации на перформансите за необични сценарија или едноставно пишување код кој е чист и добро документиран (вештачката интелигенција не е одлична во пишувањето значајна документација или разбирливи коментари за код - тука можете да додадете вредност!). Поставете си за цел да го интегрирате човечкиот увид во работата: на пример, ако вештачката интелигенција генерира дел од кодот, вие додавате коментари објаснувајќи ја образложението на начин што друг човек може да го разбере подоцна, или го прилагодувате за да биде читлив. Со тоа, додавате слој на професионализам и квалитет што недостасува на чисто машински генерирана работа. Со текот на времето, градењето репутација за висококвалитетен софтвер кој „едноставно работи“ во реалниот свет ќе ве издвои. Клиентите и работодавците ќе ги ценат програмерите кои можат да ја комбинираат ефикасноста на вештачката интелигенција со човечката изработка .
Да разгледаме и како образовните патеки би можеле да се адаптираат. Новите програмери кои влегуваат во оваа област не треба да се плашат од алатките за вештачка интелигенција во нивниот процес на учење. Напротив, учењето со вештачка интелигенција (на пр., користење на вештачка интелигенција за помош со домашните задачи или проектите, а потоа анализа на резултатите) може да го забрза нивното разбирање. Сепак, од витално значење е длабоко да се научат и основите - алгоритми, структури на податоци и основни концепти на програмирање - за да имате солидна основа и да можете да препознаете кога вештачката интелигенција залутала. Бидејќи вештачката интелигенција се справува со едноставни вежби за кодирање, наставните програми може да стават поголема тежина на проектите што бараат дизајн и интеграција. Ако сте почетник, фокусирајте се на градење портфолио што ја покажува вашата способност за решавање сложени проблеми и за користење на вештачката интелигенција како една од многуте алатки.
За да се опише стратегијата за адаптација: бидете пилот, а не патник. Користете алатки за вештачка интелигенција, но немојте премногу да се потпирате на нив или да се самозадоволувате. Продолжете да ги усовршувате единствено човечките аспекти на развојот. Грејди Буч, почитуван пионер во софтверското инженерство, добро го кажа тоа: „Вештачката интелигенција фундаментално ќе го промени она што значи да се биде програмер. Нема да ги елиминира програмерите, но ќе бара од нив да развијат нови вештини и да работат на нови начини.“ ( Дали има иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] ). Со проактивно развивање на тие нови вештини и начини на работа, програмерите можат да се осигурат дека ќе останат на чело на своите кариери.
За да резимираме овој дел, еве една брза листа за проверка за програмери кои сакаат да ги обезбедат своите кариери за иднината во ерата на вештачката интелигенција:
Стратегија за адаптација | Што да се прави |
---|---|
Научете алатки за вештачка интелигенција | Вежбајте со Copilot, ChatGPT итн. Научете брзо креирање и валидација на резултатите. |
Фокусирајте се на решавање проблеми | Подобрете ги вештините за дизајн на системи и архитектура. Справете се со прашањата „зошто“ и „како“, а не само со прашањата „што“. |
Надградба на вештини во вештачка интелигенција/машинско учење | Научете ги основите на машинското учење и науката за податоци. Разберете како функционираат моделите на вештачка интелигенција и како да ги интегрирате. |
Зајакнување на меките вештини | Подобрете ја комуникацијата, тимската работа и експертизата во областа. Бидете мост помеѓу технологијата и потребите од реалниот свет. |
Доживотно учење | Останете љубопитни и продолжете да учите нови технологии. Придружете се на заедниците, посетувајте курсеви и експериментирајте со нови алатки за развивање на вештачка интелигенција. |
Истражете нови улоги | Внимавајте на новите работни места (ревизор за вештачка интелигенција, инженер за брза помош итн.) и бидете подготвени да се смените доколку ве интересираат. |
Одржувајте квалитет и етика | Секогаш проверувајте го квалитетот на резултатите од вештачката интелигенција. Додадете човечки допир – документација, етички размислувања, прилагодувања ориентирани кон корисникот. |
Следејќи ги овие стратегии, програмерите можат да ја свртат револуцијата на вештачката интелигенција во своја корист. Оние кои ќе се прилагодат ќе откријат дека вештачката интелигенција ги подобрува нивните способности и им овозможува да произведуваат подобар софтвер од кога било досега, наместо да го прави застарен.
Идни перспективи: Соработка помеѓу вештачката интелигенција и програмерите
Што носи иднината за програмирањето во свет управуван од вештачка интелигенција? Врз основа на моменталните трендови, можеме да очекуваме иднина каде што вештачката интелигенција и човечките програмери работат рака под рака уште поблиску . Улогата на програмерот веројатно ќе продолжи да се префрла кон надзорна и креативна позиција, при што вештачката интелигенција ќе се справува со поголемиот дел од „тешките задачи“ под човечко водство. Во овој заклучен дел, проектираме некои идни сценарија и уверуваме дека изгледите за програмерите можат да останат позитивни - под услов да продолжиме да се прилагодуваме.
Во блиска иднина (во следните 5-10 години), многу е веројатно дека вештачката интелигенција ќе стане сеприсутна во процесот на развој како и самите компјутери. Исто како што ниеден развивач денес не пишува код без уредник или без Google/StackOverflow на дофат на раката, наскоро ниеден развивач нема да пишува код без некаква форма на помош од вештачка интелигенција што работи во позадина. Интегрираните развојни средини (IDE) веќе се развиваат за да вклучат функции управувани од вештачка интелигенција во нивното јадро (на пример, уредници на код што можат да ви го објаснат кодот или да предложат целосни промени во кодот низ целиот проект). Можеби ќе стигнеме до точка каде што примарната работа на развивачот е да формулира проблеми и ограничувања на начин што вештачката интелигенција може да го разбере, а потоа да ги курира и усовршува решенијата што ги нуди вештачката интелигенција . Ова наликува на форма на програмирање на повисоко ниво, понекогаш наречена „брзо програмирање“ или „оркестрација на вештачка интелигенција“.
Сепак, суштината на она што треба да се направи - решавање на проблеми за луѓето - останува непроменета. Идната вештачка интелигенција би можела да генерира цела апликација од опис („изградете ми мобилна апликација за закажување прегледи кај лекар“), но работата за разјаснување на тој опис, обезбедување дека е точен и фино подесување на резултатот за да ги задоволи корисниците ќе вклучува програмери (заедно со дизајнери, менаџери на производи итн.). Всушност, ако основното генерирање апликации стане лесно, човечката креативност и иновации во софтверот ќе станат уште поважни за диференцирање на производите. Можеби ќе видиме процут на софтверот, каде што многу рутински апликации се генерирани од вештачка интелигенција, додека човечките програмери се концентрираат на најсовремени, сложени или креативни проекти што ги поместуваат границите.
Исто така, постои можност бариерите за влез во програмирањето да се намалат - што значи дека повеќе луѓе кои не се традиционални софтверски инженери (на пример, бизнис аналитичар или научник или маркетер) би можеле да креираат софтвер користејќи алатки за вештачка интелигенција (продолжение на движењето „без код/низок код“ поттикнато од вештачката интелигенција). Ова не ја елиминира потребата од професионални програмери; напротив, ја менува. Програмерите би можеле да преземат поголема консултантска или водечка улога во такви случаи, осигурувајќи дека овие апликации развиени од граѓани се безбедни, ефикасни и одржливи. Професионалните програмери би можеле да се фокусираат на градење платформи и API-интерфејси што ги користат „не-програмерите“ потпомогнати од вештачка интелигенција.
Од перспектива на работните места, одредени програмски улоги може да се намалат, додека други растат. На пример, некои позиции за кодирање на почетно ниво би можеле да станат помалкубројни ако компаниите се потпираат на вештачката интелигенција за едноставни задачи. Може да се замисли мал стартап во иднина на кој ќе му треба можеби половина од бројот на помлади програмери, бидејќи нивните постари програмери, опремени со вештачка интелигенција, можат да завршат голем дел од основната работа. Но, во исто време, ќе се појават сосема нови работни места (како што дискутиравме во делот за адаптација). Покрај тоа, како што софтверот продира уште повеќе во економијата (со вештачката интелигенција што генерира софтвер за нишни потреби), вкупната побарувачка за работни места поврзани со софтвер би можела да продолжи да расте. Историјата покажува дека автоматизацијата честопати води до повеќе работни места на долг рок , иако станува збор за различни работни места - на пример, автоматизацијата на одредени производствени задачи доведе до раст на работните места за дизајнирање, одржување и подобрување на автоматизираните системи. Во контекст на вештачката интелигенција и програмирањето, иако некои задачи што ги извршуваше помлад развивач се автоматизирани, целокупниот опсег на софтверот што сакаме да го создадеме се проширува (бидејќи сега е поевтино/побрзо да се создаде), што може да доведе до повеќе проекти и со тоа до потреба од поголем човечки надзор, управување со проекти, архитектура итн. Извештајот на Светскиот економски форум за идните работни места сугерира дека улогите во развојот на софтвер и вештачката интелигенција се меѓу оние за кои е зголемена , а не намалена, поради дигиталната трансформација.
Треба да го земеме предвид и предвидување за 2040 година : истражувачите од Националната лабораторија Оук Риџ сугерираа дека до 2040 година, „машините… ќе го пишуваат поголемиот дел од својот код“ ( Дали има иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] ). Ако тоа се покаже како точно, што им останува на човечките програмери? Веројатно, фокусот би бил на водство на многу високо ниво (кажувајќи им на машините што сакаме да постигнат во општи потези) и на области што вклучуваат комплексна интеграција на системи, разбирање на човечката психологија или нови проблемски домени. Дури и во такво сценарио, луѓето би преземале улоги слични на дизајнери на производи, инженери за барања и тренери/верификатори на вештачка интелигенција . Кодот може во голема мера да се напише сам, но некој мора да одлучи кој код треба да се напише и зошто , а потоа да потврди дека крајниот резултат е точен и усогласен со целите. Тоа е аналогно на тоа како автомобилите што се управуваат сами еден ден би можеле да се возат сами, но сепак му кажувате на автомобилот каде да оди и да интервенира во сложени ситуации - плус луѓето ги дизајнираат патиштата, сообраќајните закони и целата инфраструктура околу него.
Затоа, повеќето експерти предвидуваат иднина на соработка, а не замена . Како што рече една технолошка консултантска компанија, „иднината на развојот не е избор помеѓу луѓето или вештачката интелигенција, туку соработка што ги искористува најдобрите од обете“. ( Дали вештачката интелигенција ќе ги замени програмерите во 2025 година: краток поглед во иднината ) Вештачката интелигенција несомнено ќе го трансформира развојот на софтвер, но тоа е повеќе еволуција на улогата на развивачот отколку исчезнување. Програмерите кои „ги прифаќаат промените, ги адаптираат своите вештини и се фокусираат на единствено човечките аспекти на нивната работа“ ќе откријат дека вештачката интелигенција ги подобрува нивните способности, наместо да ја намалува нивната вредност.
Можеме да повлечеме паралела со друга област: да го земеме предвид подемот на компјутерски потпомогнатото дизајнирање (CAD) во инженерството и архитектурата. Дали тие алатки ги заменија инженерите и архитектите? Не - тие ги направија попродуктивни и им дозволија да создаваат посложени дизајни. Но, човечката креативност и донесувањето одлуки останаа централни. Слично на тоа, вештачката интелигенција може да се гледа како компјутерски потпомогнато кодирање - таа ќе помогне во справувањето со сложеноста и макотрпната работа, но развивачот останува дизајнер и донесувач на одлуки.
На долг рок, ако замислиме навистина напредна вештачка интелигенција (да речеме, некоја форма на општа вештачка интелигенција што би можела да го направи поголемиот дел од она што човекот може), општествените и економските промени би биле многу пошироки отколку само во програмирањето. Сè уште не сме таму и имаме значителна контрола врз тоа како ја интегрираме вештачката интелигенција во нашата работа. Мудриот пат е да продолжиме да ја интегрираме вештачката интелигенција на начини што го зголемуваат човечкиот потенцијал . Тоа значи инвестирање во алатки и практики (и политики) што ги информираат луѓето. Веќе гледаме компании како воспоставуваат управување со вештачката интелигенција - упатства за тоа како вештачката интелигенција треба да се користи во развојот за да се обезбедат етички и ефикасни резултати ( Анкетата го открива влијанието на вештачката интелигенција врз искуството на развивачите - Блогот на GitHub ). Овој тренд веројатно ќе расте, осигурувајќи дека човечкиот надзор е формално дел од процесот на развој на вештачката интелигенција.
Како заклучок, на прашањето „Дали вештачката интелигенција ќе ги замени програмерите?“ може да се одговори: Не - но значително ќе го промени она што го прават програмерите. Секојдневните делови од програмирањето се на пат да бидат претежно автоматизирани. Креативните, предизвикувачките и човечки ориентирани делови се тука за да останат и навистина ќе станат поизразени. Иднината веројатно ќе ги види програмерите како работат рамо до рамо со сè попаметни асистенти за вештачка интелигенција, слично како член на тимот. Замислете да имате колега за вештачка интелигенција кој може да создава код 24/7 - тоа е одлично зголемување на продуктивноста, но сепак му треба некој да му каже на кои задачи да работи и да ја провери неговата работа.
Најдобри резултати ќе постигнат оние кои ја третираат вештачката интелигенција како соработник. Како што рече еден извршен директор, „Вештачката интелигенција нема да ги замени програмерите, но програмерите кои ја користат вештачката интелигенција ќе ги заменат оние кои не ја користат“. Во пракса, ова значи дека одговорноста е на програмерите да еволуираат со технологијата. Професијата програмирање не умира - таа се адаптира . Ќе има многу софтвер за градење и проблеми за решавање во догледна иднина, можеби дури и повеќе отколку денес. Со тоа што ќе останат образовани, ќе останат флексибилни и ќе се фокусираат на она што луѓето го прават најдобро, програмерите можат да обезбедат успешна и исполнета кариера во партнерство со вештачката интелигенција .
Конечно, вреди да се прослави фактот дека влегуваме во ера каде што програмерите имаат супермоќи на располагање. Следната генерација програмери ќе го постигне она што порано траеше со денови за неколку часа и ќе се справи со проблемите што претходно беа недостижни, со искористување на вештачката интелигенција. Наместо страв, чувството што ќе се движи напред може да биде оптимизам и љубопитност . Доколку пристапуваме кон вештачката интелигенција со отворени очи - свесни за нејзините ограничувања и свесни за нашата одговорност - можеме да обликуваме иднина каде што вештачката интелигенција и програмерите заедно градат неверојатни софтверски системи, далеку над она што би можеле да го направат сами. Човечката креативност во комбинација со ефикасноста на машините е моќна комбинација. На крајот, не станува збор за замена , туку за синергија. Приказната за вештачката интелигенција и програмерите сè уште се пишува - и ќе ја пишуваат и луѓето и машините, заедно.
Извори:
-
Brainhub, „Дали постои иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024]“ ( Дали постои иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] ).
-
Brainhub, експертски цитати од Сатја Надела и Џеф Дин за вештачката интелигенција како алатка, а не како замена ( Дали постои иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] ) ( Дали постои иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] ).
-
Medium (PyCoach), „Дали вештачката интелигенција ќе ги замени програмерите? Вистината зад возбудата“ , забележувајќи ја нијансираната реалност наспроти возбудата ( Дали вештачката интелигенција ќе ги замени програмерите? Вистината зад возбудата | од The PyCoach | Artificial Corner | март, 2025 | Medium ) и цитатот на Сем Алтман за тоа дека вештачката интелигенција е добра во задачите, но не и во целосните работни места.
-
DesignGurus, „Дали вештачката интелигенција ќе ги замени програмерите… (2025)“ , нагласувајќи дека вештачката интелигенција ќе ги подобри и подобри програмерите, наместо да ги направи излишни ( Дали вештачката интелигенција ќе ги замени програмерите во 2025 година: краток поглед во иднината ) и наведувајќи ги областите во кои вештачката интелигенција заостанува (креативност, контекст, етика).
-
Анкета за развивачи на Stack Overflow за 2023 година, употреба на алатки за вештачка интелигенција од страна на 70% од развивачите, ниска доверба во точноста (3% имаат голема доверба) ( 70% од развивачите користат алатки за кодирање со вештачка интелигенција, 3% имаат голема доверба во нивната точност - ShiftMag ).
-
Анкетата на GitHub за 2023 година покажува дека 92% од програмерите ги испробале алатките за кодирање со вештачка интелигенција и 70% гледаат придобивки ( анкетата го открива влијанието на вештачката интелигенција врз искуството на програмерите - Блогот на GitHub ).
-
Истражување на GitHub Copilot, кое откри 55% побрзо завршување на задачите со помош на вештачка интелигенција ( Истражување: квантифицирање на влијанието на GitHub Copilot врз продуктивноста и среќата на програмерите - Блогот на GitHub ).
-
GeekWire, според AlphaCode на DeepMind, се покажува на просечно ниво на човечки програмер (топ 54%), но е далеку од врвни ( AlphaCode на DeepMind се совпаѓа со просечниот програмер ).
-
IndiaToday (февруари 2025), резиме на визијата на Сем Алтман за „колеги“ од вештачката интелигенција кои ги извршуваат задачите на помладите инженери, но „нема целосно да ги заменат луѓето“ ( Сем Алтман вели дека агентите од вештачката интелигенција наскоро ќе извршуваат задачи што ги прават софтверските инженери: Целосна сторија во 5 точки - India Today ).
-
„МекКинси и Компани“ проценуваат дека ~80% од работните места во програмирањето ќе останат ориентирани кон луѓето и покрај автоматизацијата ( Дали постои иднина за софтверските инженери? Влијанието на вештачката интелигенција [2024] ).
Статии што можеби ќе ве интересираат по оваа:
🔗 Најдобри алатки за програмирање со вештачка интелигенција во парови
Истражете ги водечките алатки за вештачка интелигенција кои можат да соработуваат со вас како партнер за кодирање за да го подобрат вашиот работен тек за развој.
🔗 Која вештачка интелигенција е најдобра за кодирање – Најдобри асистенти за кодирање со вештачка интелигенција
Водич за најефикасните алатки за вештачка интелигенција за генерирање код, дебагирање и забрзување на софтверски проекти.
🔗 Развој на софтвер за вештачка интелигенција – Трансформирање на иднината на технологијата.
Разберете како вештачката интелигенција го револуционизира начинот на кој се гради, тестира и распоредува софтверот.