Competências de codificação e programação na era da generalidade da IA: uma diva profunda

A IA generativa, uma subdisciplina da inteligência artificial, diz respeito às aplicações em que um computador simula a capacidade humana de criar e produzir — quer se trate de linguagem humana, quer de expressões criativas humanas (como desenho, composição musical, etc.). O melhor exemplo de uma IA genérica que tem vindo a fazer vagas recentemente é o ChatGPT, um modelo de linguagem larga (LLM) com o qual os utilizadores podem interagir em linguagem natural. Um domínio em que a IA gerativa é especialmente promissora oculta na forma como escrevemos o nosso código de software. Este artigo analisa as possibilidades que a IA geradora cria para apoiar este processo de desenvolvimento de software — e o seu potencial para abrir vias para escrever código de software a mais pessoas do que nunca. Juntamente com as oportunidades que abrem, o presente documento analisa também os riscos da utilização de instrumentos apoiados pelo GenAI com uma supervisão humana decrescente, e chama a atenção para potenciais horizontes a explorar se queremos fazer uma utilização mais equilibrada que tenha em conta os nossos valores fundamentais da UE.
Introdução
A IA generativa, uma subdisciplina da inteligência artificial (IA), diz respeito a aplicações em que o computador simula, ou tenta imitar, a capacidade humana de criar e produzir em linguagem humana e expressão criativa humana — como o desenho, ou a composição de música(Stokel-Walker &Van Noorden, 2023). Um exemplo de IA genérica que tem vindo a fazer ondas recentemente é o ChatGPT, um modelo de linguagem larga (LLM) com o qual os utilizadores podem interagir através da datilografia. O desempenho desta LLM tem surpreendido muitos investigadores e o público em geral quanto à forma como as interações podem ser «reais» (Maslej et al., 2023).
O interesse por esta forma de IA tem vindo a aumentar desde há várias décadas, com investigação fundamental bem desenvolvida (Reiter &Dale, 1997; Kandhasamy &Xie, 2004). No entanto, as aplicações permaneceram limitadas, com um pequeno algoritmo de prova de conceitos principalmente na investigação — em grande parte devido à falta de poder computacional ou à quantidade insuficiente de dados de formação, necessários para introduzir tecnologias de qualidade de vida(Maslej et al., 2023). Esta situação mudou nos últimos anos. Entre 2015 e 2016, assistiu-se a movimentos para reunir recursos e construir grandes conjuntos e modelos de dados sistemáticos, com esforços coordenados na indústria, como a OpenAI (fundada em 2015) e a HuggingFace (fundada em 2016). Desde o final de 2022, a maturidade destas tecnologias tem sofrido um enorme impulso devido ao alinhamento entre a capacidade computacional, os algoritmos maduros e dados suficientes.
Um dos domínios em que a IA gerativa é muito promissora é o da escrita de códigos de software. O GenAI já está a ser empregado por muitos engenheiros para os ajudar na sua codificação (Sharma, 2021). O simples texto humano permite-lhes escrever um código complexo em segundos, acelerando potencialmente a sua codificação e programação (Brady, 2023). Nas ferramentas de IA gerativas, podem ser dadas instruções textuais (incitações) para dar instruções à IA para escrever código para criar determinadas funcionalidades. Consequentemente, o utilizador de uma ferramenta deste tipo pode comunicar em linguagem natural mais específica, sem necessidade de conhecer os pormenores da linguagem de codificação. De forma limitada e com as solicitações pertinentes, a IA geradora pode também gerar as etapas da lógica subjacente a uma aplicação, definindo a estrutura geral de um algoritmo.
Naturalmente, tal suscita muitas questões sobre a forma como escreveremos o nosso software no futuro equais serão as competências necessárias para o efeito. Esta secção seguinte do presente artigo aprofunda esta questão.
Programadores de software para o mercado de trabalho da UE
Há muitos anos que se verifica uma escassez de trabalhadores qualificados na indústria digital. Um estudo de 2021 da Aliança Europeia para as Competências em Software identifica o papel do «criador» como o papel de software mais procurado e indica a natureza em constante mutação deste papel como a razão subjacente a esta escassez. As competências essenciais dos criadores são a programação e a programação, duas disciplinas em que o conteúdo do emprego continua a mudar, o que coloca um problema às organizações e dificulta a atualização das competências dos trabalhadores. A crescente necessidade de peritos em TIC em todos os setores coloca em risco o objetivo da Década Digital Europeia de alcançar 20 milhões de especialistas em TIC na Europa até 2030.
Código, código: terminologia e conceitos básicos
Neste contexto, é útil alguma terminologia explicativa. O desenvolvimento de software refere-se a atividades baseadas na ciência informática, ou seja, o processo de criação, conceção, implantação e apoio de software (IBM, 2023). A fase de desenvolvimento de software ocorre quando o programador começa a definir e a escrever as instruções a seguir pelo computador, na língua pretendida.
O que é a programação? A programação refere-se ao desempenho dos criadores de atividades para definir a lógica do programa de computador, incluindo as entidades que o programa necessita de manipular e os algoritmos que tem de implementar. As competências de programação estão, portanto, estreitamente ligadas ao pensamento lógico e analítico, conceptual e abstrato, bem como ao pensamento computacional. Quando codificam os programadores, escrevem as instruções para que o computador execute determinadas ações que o computador tem de executar. Os programadores escrevem em várias línguas informáticas, que lhes proporcionam diferentes capacidades em função da sua estrutura ou finalidade. Além disso, as línguas informáticas continuam a evoluir, o que torna uma tarefa complexa para os criadores se manterem a par dos estilos e tendências mais recentes. Quando falamos de escassez de competências no mercado de trabalho, podemos referir tanto as competências relacionadas com a programação como as relacionadas com a codificação.
Apoio ao mercado de trabalho da UE
Uma vez que esta escassez de competências é preocupante há vários anos, os decisores políticos e os investigadores investiram muita energia no desenvolvimento do apoio aos intervenientes no mercado de trabalho para identificar e desenvolver essas competências nos seus (potenciais) trabalhadores. Algumas das principais iniciativas incluem quadros de competências normalizados especificamente para o contexto digital. O Quadro de Competências Digitais para os Cidadãos, DigComp 2.2 (Vuorikari, Kluzer e Punie, 2022) é o principal quadro comummente aceite na UE que identifica e estrutura as competências digitais de que os cidadãos necessitam para participar numa sociedade digital moderna. O Quadro Europeu de Competências Eletrónicas (e-CF) é um quadro de referência normalizado de 41 competências pertinentes e necessárias num contexto de trabalho profissional no domínio das TI. O quadro identifica igualmente 30 perfis de funções profissionais no domínio das TIC que abrangem diferentes aspetos do panorama da indústria digital. Na UE, trata-se de um quadro emblemático que oferece uma linguagem comum entre recrutadores e peritos em TI.
Existem também quadros mais genéricos com perfis pertinentes. Os quadros de competências setoriais através do Pacto para as Competências reúnem vários intervenientes da indústria em várias alianças setoriais a fim de identificar e estruturar as competências necessárias para continuar a desenvolver o seu setor. Em grande parte, estas incluem também competências digitais complexas, uma vez que a indústria digital está a afetar todos os setores. No que diz respeito ao empreendedorismo, o quadro EntreComp (McCallum, Weicht, McMullan and Price, 2018) inclui competências que têm em conta a utilização eficaz dos recursos, que incluem também a avaliação e a compreensão das necessidades dos recursos digitais e o desenvolvimento de resultados digitais. A evolução do contexto tecnológico é continuamente integrada nestes quadros, com as suas versões mais recentes a incluir competências para trabalhar com tecnologias de IA. Por exemplo, o DigComp, na sua última edição, 2.2., inclui agora também o conhecimento dos sistemas relacionados com a IA.
Ações da UE para promover competências de programação/codificação
Para além de prestar apoio na atribuição de nomes, identificação e desenvolvimento de competências relacionadas com o desenvolvimento de software, as iniciativas políticas centram-se também em tornar as carreiras no setor digital mais populares e conhecidas. Para suscitar um maior interesse na programação e na programação, existem várias ações recorrentes da UE. ASemana Europeia da Programação promove iniciativas de base para incentivar mais cidadãos a utilizar e desenvolver as suas competências de programação. Trabalhar com voluntários, as atividades incluem campanhas de sensibilização, workshops, conferências, etc., realizadas em toda a Europa, em línguas locais e adaptadas às necessidades e contextos regionais. Em 2021, mais de 4 milhões de pessoas em mais de 80 países de todo o mundo participaram na iniciativa, tendo a maioria das atividades sido realizadas em escolas (Comissão Europeia, 2023).
O Instituto Europeu de Tecnologia e Inovação (EIT) oferece uma plataforma para que os intervenientes da indústria se reúnam para inovar nas indústrias relevantes num ambiente seguro e aberto. O EIT Digital centra-se especificamente no apoio à inovação e ao empreendedorismo na indústria digital (EIT Digital, 2020). Além disso, muitos programas financiados pela UE centram-se na melhoria das competências digitais da mão de obra europeia para a indústria digital: basta olhar para o enorme investimento subjacente ao Programa Europa DIGITAL (7.5 mil milhões de euros destinados à transformação digital da economia e da sociedade europeias). Outro clube é o limiar de 20 % de investimento digital nos planos de recuperação e resiliência dos Estados-Membros da UE, que foi ultrapassado.
O GenAI melhorará a escassez de competências no mercado de trabalho?
A chegada da IA generativa abre um mundo de oportunidades de programação e codificação no contexto do mercado de trabalho. Por um lado, o GenAI poderia tornar as competências mais avançadas (como a codificação) mais acessíveis às pessoas: e 2023 poderia revelar-se um momento de viragem — um momento em que a IA estimula as competências de programação das pessoas, rapidamente, permitindo-nos criar ferramentas digitais de forma mais eficiente e eficaz. Por outro lado, a GenAI pode também diminuir a proficiência em competências de programação, uma vez que reduz o desenvolvimento profundo de conhecimentos e conhecimentos especializados nesta matéria. Os parágrafos que se seguem analisam o contexto em que o GenAI pode ter um impacto no desenvolvimento de software e as suas implicações para o desenvolvimento de competências.
Algum contexto
Antes de explorar quais as competências que serão relevantes neste novo espaço, é conveniente considerar alguns aspetos da codificação que podem ser afetados pela IA generativa.
Posição da codificação no processo de engenharia de software
A engenharia de software — tal como outras formas de engenharia — é uma ciência do design e, de um modo geral, segue um processo com fases de investigação, ideação, conceção, desenvolvimento e ensaio para passar de uma ideia conceptual para um produto tangível (Davis, Bersoff &Comer, 1988). Ao passar por este processo, são adquiridos conhecimentos e conhecimentos especializados e através da iteração — que passa várias vezes pelo processo — a definição do problema e os requisitos podem ser aperfeiçoados, é possível realizar mais investigação de fundo, etc. Embora, como a Despa, 2014, possa haver abordagens diferentes (incremental, cascata, espiral, prototipagem, etc.) para a forma como estas fases se moldam (por exemplo, diferenças na duração das fases ou nos resultados intermédios esperados, etc.). Cada processo de conceção tem componentes essenciais. Ver figura 1 abaixo para uma ilustração dos principais componentes de um processo de conceção de software.

Neste processo, a codificação — o processo de redação do verdadeiro código de software — ocorre principalmente na fase de desenvolvimento e ensaio. Neste momento do processo de conceção, o problema e a solução potencial já foram definidos, tendo sido tomadas decisões de conceção de alto nível. O software é então produzido na fase de desenvolvimento e testado na fase de ensaio. Em comparação com outras disciplinas de engenharia, os custos de produção do software são relativamente baixos. Também aqui temos a «industrialização» da produção de software, em que são envidados esforços contínuos para se desenvolver ainda mais rapidamente e mais eficiente em termos de tempo, garantindo ao mesmo tempo a qualidade do material produzido (Humphrey, 1988). Algumas formas de o fazer são, por exemplo, através da partilha eficiente de blocos de código (por exemplo, plataformas do tipo de repositor GitHub) e, mais recentemente, de plataformas de baixo código/sem código, em que os módulos reutilizáveis são utilizados como ponto de partida para abordar a conceção de forma mais abstrata, acelerando todo o processo (No-Code.tech, 2023; Adalo, 2023). Isto abre essencialmente a codificação a pessoas que não são qualificadas (nem têm, possivelmente, interesse em ser qualificadas) na mecânica do código de escrita.
No lado oposto, esta dimensão é a«artede software», em que a competência técnica ou a arte de criar um código se torna uma vez mais importante. Aproximando-se da criação de software aos olhos de um aprendiz, este movimento estimula o orgulho na criação de software, a tradição de valores na criação de software e coloca a tónica no género individual (Software Craftmanship Manifesto, 2009). Pode mesmo compará-lo com a forma como encaramos a cozinha em casa e a cozinhar numa cozinha profissional. Nas nossas casas, olhamos principalmente para cozinhar como o processo de produção de alimentos de qualidade. Quando a cozinha se torna um «artesanato», implica disciplina, qualidade, eficiência temporal e um esforço orientado para atingir a altura dos produtos de qualidade. O «artesanato» na culinária implica aumentar as competências de produção e os recursos disponíveis para atingir este nível de excelência (por exemplo, a utilização de ingredientes de qualidade, o aperfeiçoamento de competências de faca, a criação de novas técnicas para obter sabores e experiências diferentes, etc.).
Podemos levar estas mesmas ideias e extrapolá-las para o artesanato envolvido na elaboração e produção de códigos de qualidade.
Proliferação de códigos em empregos com utilização intensiva de conhecimentos
Tão complexa como sã, a codificação não se limita aos espaços do software profissional ou do setor das TIC. Um facto subestimado é que é necessária alguma forma de codificação para muitas tecnologias profissionais especializadas no trabalho de conhecimento. Por exemplo, se estiver a fazer alguma análise estatística, ou mesmo a utilizar funções Excel básicas, já precisa de compreender o código de escrita num formato mínimo, pelo menos. Neste contexto, a codificação tornou-se semelhante a outras competências e literárias (pense: linguagem humana e matemática), em que todos precisam de ter conhecimentos básicos e proficiências de produção para participar na sociedade (Burke, O'Byrne e Kafai, 2016). A diferença reside no facto de a nossa compreensão da codificação como literacia ainda não estar tão avançada, nem integrada no nosso sistema escolar como estas outras literacias (Rea, 2022). O sistema de ensino primário é construído em torno destas literações, que são essenciais para se desenvolver nos últimos anos. No entanto, a transição digital está a mudar rapidamente, tornando a codificação e o pensamento computacional tão necessários desde tenra idade como as outras literárias.
Apoio tecnológico versus nossa compreensão geral
Por conseguinte, esta situação cria um desfasamento: por um lado, ainda não compreendemos as complexidades de lidar com a programação como uma literacia, nem a incorporámos plenamente nos nossos sistemas educativos (Vee, 2017). Por outro lado, dispomos agora de ferramentas muito sofisticadas que nos permitem criar, conceber e escrever um código. Além disso, a natureza do espaço digital é tal que todas estas ferramentas são, na sua maioria, acessíveis (mediante pagamento de uma taxa) a um grande público.
Para ilustrar esta assimetria, considere as aplicações do ChatGPT e a forma como são percecionadas pelas pessoas:
Quando solicita ao ChatGPT que escreva um texto, quase todos poderão dizer se se trata de um texto bem escrito (não tendo em conta o seu conteúdo de momento, mas apenas a forma do texto em linguagem humana natural).
Quando solicita à ChatGPT que conclua um cálculo matemático, muitos cidadãos poderão dizer se este foi corretamente feito ou, pelo menos, se foi escolhida a abordagem correta para resolver a questão.
Mas... quando solicita à ChatGPT que escreva um código, nem muitos do público em geral poderão (ainda) dizer se está correto.
Como o GenAI pode atenuar a escassez de competências no mercado de trabalho
O ponto supra mostra um dos domínios em que a IA genérica pode revelar-se um fator de mudança. Vamos agora aprofundar as questões atuais da escassez de competências e analisar o potencial do GenAI para as atenuar.
Uma primeira questão diz respeito às grandes diferenças no nível de proficiência em matéria de competências de programação entre as pessoas. As diferentes pessoas têm diferentes níveis de proficiência em código escrito e não existe um nível básico geralmente aceite de proficiência em codificação. São diversas as razões para esta situação:
- Uma vez que a programação e a programação não são posicionadas como literacia, não estão integradas no ensino formal ao longo de todo o currículo. Isto significa que não existe um acesso geral a oportunidades de codificação e programação, nem uma expectativa geral de que cada indivíduo desenvolva um nível básico de proficiência.
- O desenvolvimento das competências depende, em grande medida, do interesse pessoal individual e da disciplina pessoal. Se quiser desenvolver as suas competências neste domínio, tem de procurar oportunidades formais e não formais, em linha e fora de linha, através de seminários, campos de perfuração, etc. Uma vez que tal está muito fora do ensino formal, é necessário mais esforço e tempo para investir nesta forma de desenvolvimento de competências.
- A linha de base é aqui importante: o desenvolvimento de competências em matéria de codificação depende do investimento de tempo e dinheiro em oportunidades relevantes para desenvolver competências de codificação. Este investimento pode não ser possível de um modo geral para todos na sociedade, uma vez que há necessidade de infraestruturas (hardware e Internet), tempo (fora do tempo de educação formal) e potenciais custos adicionais para software ou licenças pertinentes.
Tal como em muitas questões relacionadas com a inclusão digital, existe na sociedade um grande fosso entre as salvas e os «have-nots» neste domínio, com grandes consequências para as pessoas vulneráveis, as mulheres, os idosos e as pessoas oriundas de meios socioeconómicos mais baixos (Nações Unidas, 2023).
A IA generativa para a codificação pode reduzir em grande medida o limiar para que as pessoas invistam em aprender a codificar. Uma vez que permite interagir com o computador em linguagem natural, qualquer pessoa que possa formular as suas ideias para software em linguagem humana pode, em teoria, escrever o código para fazer este software. No entanto, as questões da acessibilidade (no tempo e nos esforços) continuam a ser: também neste caso existe a possibilidade de o GenAI aumentar o fosso entre os que podem e os que não podem codificar.
Uma segunda questão diz respeito à urgência das competências necessárias para as pessoas empregadas. O mercado de trabalho necessita destas competências digitais hoje e num futuro próximo. OCedefop prevê a necessidade de cerca de 979,600 técnicos de TIC e de outros 2,977,600 profissionais de TIC no período 2022-2035 (Cedefop, 2023). No entanto, a aquisição de conhecimentos aprofundados e o desenvolvimento destas competências para níveis mais elevados de proficiência demora tempo, o que é também potencialmente um obstáculo à adoção da codificação. Os campos de futebol e outros tipos de aprendizagem a curto prazo, mas intensivos, são eficazes, mas exigem tempo e recursos que nem todos têmnecessariamente (Thayer &Ko, 2017). Além disso, os trabalhadores não só têm de atingir um nível básico de proficiência, como também têm de depender de si próprios para melhorar continuamente o desenvolvimento destas competências.
O GenAI tem potencial para atenuar esta questão em certa medida. A acessibilidade da tecnologia em linguagem natural pode reduzir o limiar para muitos e proporcionar apoio «just-in-time» para encontrar o que é necessário, tornando a codificação e a geração de códigos mais eficientes e possivelmente motivando as pessoas a utilizá-la. A tecnologia pode apoiar a autoeficácia, facilitando e acelerando a procura de respostas quando estas estão bloqueadas, e criando um ambiente em que os aprendentes querem desenvolver continuamente as suas competências em matéria de programação e programação. No entanto, também neste caso existe a possibilidade de estas tecnologias aumentarem o fosso entre os que já o podem e os que não o podem. Além disso, neste contexto, uma ferramenta de apoio baseada no GenIA atua eficazmente num sistema especializado (ou seja, as perguntas humanas, o GenAI cria). É importante considerar aqui o nível de supervisão humana necessário.
Uma terceira questão diz respeito à forma como o desenvolvimento de competências na programação e programação está atualmente organizado. Em contextos formais, as competências de programação inserem-se em seminários ou campos de futebol — potencialmente em torno de línguas de programação específicas ou de atividades mais genéricas baseadas em problemas. Os contextos não formais dependem de as pessoas criarem os seus próprios percursos de aprendizagem através de vários recursos em linha, misturados com experiências alternativas fora de linha.
As ferramentas de GenAI podem aumentar estas atividades com um baixo limiar de apoio «just-in-time» para encontrar o que é necessário, tornando a geração de códigos mais eficiente e mais eficaz. No entanto, a utilização destas ferramentas depende ainda da determinação humana da exatidão das respostas e da aceitabilidade dos resultados do software. Neste contexto, corre-se o risco de as ferramentas GenAI se tornarem um sistema propício, em que o aprendente humano apenas o utiliza para alcançar um objetivo imediato, sem desenvolver conhecimentos aprofundados sobre a codificação.
Implicações para o desenvolvimento de competências na codificação e programação numa era de GenAI
É evidente que o GenAI oferece muitas oportunidades para baixar o limiar para muitos do público em geral, a fim de começar não só a conceber software, mas também a colocar efetivamente o software a utilizar nos contextos quotidianos. De facto, para muitos aprendentes, o limiar baixo pode também ser um fator motivador para iniciar a programação. No entanto, a fim de garantir que os seres humanos continuam a desenvolver conhecimentos aprofundados sobre a codificação — e não só veem o GenAI como uma ferramenta que pode assumir a função de programação em cadeia — ainda é necessário tomar algumas precauções. Em
primeiro lugar, é necessário abordar a codificação como uma literacia que pode ser integrada em todo o sistema educativo formal. Embora já estejam em curso esforços para incorporar a codificação nos planos de aprendizagem e nos programas curriculares, é necessária uma mudança mais sistémica (Rea, 2022; Vee, 2017). Os quadros fundamentais em matéria de competências digitais acima enumerados dão mais informações sobre a complexidade destas competências e oferecem formas de adotar uma abordagem mais matizada para as desenvolver.
Em segundo lugar, as pessoas também têm de estar cientes dos limites da IA — o que pode e não pode fazer, e ainda mais, o que deve e não deve fazer. Pela sua natureza, a tecnologia de IA retoma algumas atividades de tomada de decisões por parte das pessoas. Embora esta criação de muitas oportunidades positivas (por exemplo, ser capaz de lidar com muito mais dados do que um ser humano), comporta também riscos graves, que as pessoas têm de estar cientes quando utilizam estes sistemas. A nível político, esta é a via que é sublinhada. A versão mais recente do DigComp inclui o conhecimento dos sistemas de IA como competência de todos os cidadãos. O Regulamento Inteligência Artificial da UE está a posicionar as guardas neste ambiente e a clarificar quais são os riscos baixos, elevados e inaceitáveis no trabalho com ferramentas de IA.
Em terceiro lugar, para a codificação específica, é útil explorar algumas boas práticas e orientações. O GenAI terá indubitavelmente um enorme impacto na prática da codificação. Em teoria, esta situação reduz o limiar e oferece a mais pessoas a oportunidade de aprender a programação — especialmente as que podem ter perdido motivação devido aos pormenores técnicos e à mecânica em torno do código de escrita. Para utilizar estas ferramentas de GenAI de forma eficaz, é necessário, em primeiro lugar, estabelecer guias e acordos adequados sobre a forma e o momento em que essas ferramentas podem ser utilizadas.
Em qualquer utilização do GenAI para a codificação, é evidente que um computador escreverá um código que as pessoas utilizarão.Mas como podemos confiar neste código? Neste cenário, já não existe uma supervisão humana absoluta. Além disso, quais são os processos de controlo da qualidade e de qualidade aplicados para garantir que o código GenAI continua a ser fiável? São necessários novos procedimentos de ensaio neste novo contexto e quais seriam as suas características? É igualmente útil abrir o debate sobre o que implica a confiança e quais são os marcadores para indicar esta fiabilidade da IA. Uma possibilidade é a utilização de novos rótulos de qualidade ou a especificação da utilização da IA em códigos éticos, como no setor do jornalismo, em que a utilização de ferramentas de escrita GenAI está a aumentar (Raad van Journalistiek, 2023).
Por último, é importante continuar a reconhecer e valorizar o artesanato na codificação e programação de software. Para muitos criadores, a codificação é a língua do seu artesanato, que lhes dá desafios intelectuais e satisfação cognitiva quando atingem os seus desenhos, mas as suas realizações são, em grande medida, ocultas. De que forma torna estas iniciativas mais visíveis e reconhecem as suas realizações? Nestes casos, não devemos limitar a nossa visão ao valor utilitário da programação, mas sim apreciar a competência e o artesanato. Além disso, é através da prática de redação de códigos que as pessoas desenvolvem um conhecimento aprofundado da codificação, o que lhes dá a base para melhorar a linguagem de codificação e criar línguas novas e melhoradas para a codificação. Por outras palavras, se quisermos continuar a melhorar a codificação do software, precisamos de um número suficiente de pessoas que escrevam eles próprios o código. É importante reavaliar as competências humanas neste domínio.
Vias futuras
A IA generativa oferece muitas oportunidades nos domínios da codificação e programação de software, tornando potencialmente mais fácil a participação de mais pessoas na programação e na criação das suas próprias aplicações. Trata-se de um enorme potencial de democratização da criação de software, ou seja, de abertura a quem pode não ter sido motivado para aprender ou encará-lo como uma possibilidade para si próprios. O GenAI pode também tornar o processo de redação do código mais eficiente em termos de tempo e de esforço. No entanto, o facto de depender demasiado do desenvolvimento automatizado de códigos sem supervisão humana suficiente pode significar a perda de qualidade e a perda de oportunidades para melhorar a prática de codificação.
Olhando para o futuro, podem ser vistas algumas vias gerais de exploração.
O software adequado à finalidade provém do conhecimento humano, que alinha as necessidades percecionadas e os requisitos técnicos com a conceção tecnológica, a aplicação e a eventual utilização. O software ainda precisa de trabalhar num ambiente humano complexo e os seres humanos são os mais capazes de lidar com esta complexidade. No entanto, é essencial encontrar um equilíbrio entre as possibilidades de codificação automatizada com o GenAI e a redação humana de códigos ou outras formas de supervisão, que garantam uma visão humana suficiente deste processo e permitam melhorá-lo eficazmente no futuro. Os processos de garantia da qualidade no desenvolvimento de software já estão a tornar-se cada vez mais prolíficos, com a passagem para a «Shift Left», ou seja, iniciar a garantia da qualidade numa fase mais precoce do processo de desenvolvimento do software e prosseguir este processo ao longo de todo o processo. Por outras palavras, poderiam ser previstas muitas garantias de qualidade antes de ser alcançada a fase de elaboração de códigos efetiva. O apoio baseado no GenIA para o código de escrita é então integrado num processo de desenvolvimento qualitativo mais vasto, em que os seus pontos fortes são utilizados da melhor forma possível.
Palavras-chave
IA generativa, ChatGPT, escassez de competências, codificação, programação, desenvolvimento de software
Baixar
Descarregue o documento completo «Coding and programming skills in the age of GenerativeAI» (competências de codificação e programação na era da generativeAI) e uma bibliografia das suas referências aqui e abaixo.
Sobre o autor
ODr. Kamakshi Rajagopal é um investigador interdisciplinar e consultor independente em conceção educativa e tecnologia, com uma vasta experiência de aprendizagem em rede e em formatos de aprendizagem social, apoiada por tecnologias inovadoras. É titular de um mestrado em Linguística (2003) e Inteligência Artificial (2004) da KU Lovaina (BE). Concluiu a sua investigação de doutoramento na Open Universiteit (NL) em 2013, investigando as redes de aprendizagem pessoal e o seu valor para o desenvolvimento profissional contínuo. A sua investigação atual visa estudar a complexidade dos ambientes de aprendizagem e, mais especificamente, a forma como os professores e os aprendentes podem ser apoiados para lidar com esta complexidade. O Dr. Rajagopal desenvolveu múltiplos projetos de investigação em colaboração (financiados a nível nacional e europeu) no ensino primário, secundário e superior com parceiros do setor público, da indústria e da sociedade civil. Alguns exemplos dos seus projetos dizem respeito ao papel das redes de professores na inovação educativa, aos círculos de teses no ensino superior, à medição multimodal em espaços colaborativos de aprendizagem híbrida e à integração da mobilidade virtual nos estabelecimentos de ensino superior. Desde 2023, trabalha na área da aprendizagem e desenvolvimento da consultoria em TI &D.