Os desafios do recrutamento na área das tecnologias de informação

20 setembro, 2018

Ajudar sem sair do escritório

26 outubro, 2018

Opinião

O que será “programar” dentro de 10 anos?

As Tecnologias de Informação estão em constante evolução e renovação, por isso desafiamos um dos nossos Smarties a pensar como será programar daqui a 10 anos. Este foi o resultado.

26 outubro, 2018

A programação computacional é definida como o processo de desenho e construção de um programa para execução num computador, a fim de cumprir um propósito específico.

Acredito que esta definição se tem mantido inalterada ao longo dos anos, ainda que a definição das palavras desenhar e construir, neste contexto, tenha vindo a mudar radicalmente.

A criação do primeiro computador eletrónico data à década de 40, sendo inicialmente programados através de código máquina. O ato de programar era desempenhado por um grupo muito restrito de pessoas, que lidavam não só com os aspetos funcionais do software que pretendiam desenvolver, como também com os aspetos da arquitetura física (hardware), que tinham em mãos. 

Com o aparecimento dos sistemas operativos e de linguagens de programação categorizadas como high-level, das quais temos como exemplo o C, C++ ou Java, o ato de programar tornou-se cada vez mais uma tarefa de criatividade para o programador, não tendo este de lidar, de uma forma geral, com aspetos relativos ao hardware ou à complexidade inerente à programação de baixo nível.

O aparecimento da internet e o acesso à mesma a uma escala global, conjugada com os avanços referidos anteriormente, tornaram a programação uma atividade acessível a um leque mais abrangente de pessoas, pelo que com os meios emergentes de partilha e divulgação de software, deparamo-nos com uma enorme oferta e disponibilidade de frameworks e módulos de software pré-concebidos para utilizarmos no desenvolvimento das nossas aplicações. As frameworks, tal como os compiladores, podem ser vistos como aceleradores que permitem criar novos programas através da escrita de menos código.

A visão que tenho dos próximos 10 anos no que diz respeito à programação ou ao que significa/engloba ser programador, em termos profissionais, assenta essencialmente em dois pontos. Em primeiro lugar, encontramo-nos numa fase emergente das frameworks designadas de low-code, que permitem aos utilizadores criar software com recurso a interfaces gráficas e configurações, havendo pouca ou nenhuma escrita de código por parte destes. Desta forma, uma maioria percentual dos processos de desenho e construção de software irá ficar a cargo de indivíduos sem qualquer especialização na área da Engenharia Informática. Quero salientar, contudo, que este tipo de programação irá, a meu ver, abranger essencialmente o desenvolvimento de aplicações baseadas em templates pré-definidos, nas quais os programadores serão responsáveis pelas componentes de front-end (páginas web, navegação, gestão de conteúdos) e segmentos básicos de back-end (acesso e gestão de dados). Será sempre necessário um grupo especializado de programadores, ainda que diminuto em termos percentuais, com conhecimentos de cariz técnico para tratar de aspetos não funcionais de uma aplicação, como o desempenho ou a escalabilidade, ou de ajustes particulares de que o software necessite.

Em segundo lugar, cada vez mais vejo o dia-a-dia da minha profissão enquanto programador como um trabalho de pesquisa, seleção, integração e configuração de software pré-existente. É raro algum software ser feito de raiz, o que acontece é que aprendemos a utilizar software já desenvolvido e ajustamo-lo em função das necessidades do projeto que temos em mãos. Sem dúvida este continuará a ser o paradigma dos próximos anos. Irão surgir sempre novas tecnologias que teremos de aprender e utilizar nos projetos em que melhor se enquadram, não podemos estagnar tecnologicamente numa área em constante mudança, crescimento e evolução.

Olhando para o futuro da programação não numa perspetiva profissional, mas sim de educação, acompanho já desde há alguns anos a discussão relativa à hipótese de introdução da programação no plano curricular do ensino básico. A hipótese assenta em grande parte na semelhança que esta tem com a matemática, na medida em que ambas são ciências exatas e representam ferramentas de resolução de problemas.
Por vezes é difícil mentalmente ou com recurso a cálculos em folhas de papel chegar a um resultado, mas pode ser fácil expressar através de um programa os passos necessários para obter esse mesmo resultado. Não é por acaso que desde cedo ouvimos falar no conceito de “algoritmo”, um conceito chave na programação e que é definido como uma sequência de passos bem definidos que quando executados, permitem chegar ao resultado pretendido. É de notar que a execução destes passos tanto pode ser feita manualmente por nós numa folha de papel, ou de forma automática através de um programa de computador.

Não sei se 10 anos serão o suficiente para reestruturar o nosso modelo educacional de modo a integrar a programação no ensino básico, mas tento ser otimista pois reconheço o valor acrescido que estas competências trariam às gerações futuras.
Quero concluir dizendo que, pouco a pouco, todos seremos de alguma forma programadores ou saberemos de alguma forma programar, da mesma forma que sabemos fazer contas, mais ou menos complexas, com recurso a ferramentas com uma maior ou menor dificuldade de utilização. O que irá diferenciar cada tipo de programador será o fim para o qual programa e as ferramentas de que dispõe e/ou que utiliza para o fazer.
O que terão todos os programadores em comum? O processo de desenho e construção de um programa através de lógica, conceção de algoritmos e ferramentas de programação. Todos faremos programação computacional.
 

Por: Nuno
Smartie Java

Newsletter Smart

Queres saber mais sobre a Smart? Subscreve a nossa newsletter!
Novidades, Eventos, Oportunidades e muito mais.