1 Por que programar?
A programação é o meio que dá vida ao mundo em que vivemos atualmente. Desde os sistemas operacionais que alimentam nossos computadores até os aplicativos de celular que usamos diariamente, a programação tem um papel fundamental. Mas o que exatamente é programação e como ela funciona? Como vamos utilizá-la nas nossas aulas?
De forma simplificada, programação é a arte de escrever instruções para computadores executarem tarefas específicas. Essas instruções são escritas através de linguagens de programação, que podem variar de simples e diretas, como R e Python, a complexas e poderosas, como C++ ou Java, e armazenadas em códigos. Ao aprender a programar, você essencialmente está ensinando ao computador como resolver problemas, realizar cálculos, manipular dados ou criar interações com algum outro usuário. Naturalmente, passamos a nos perguntar:
- “O que é uma linguagem de programação?”
- “O que é um código?”
A linguagem de programação é um conjunto de regras e instruções utilizadas para escrever programas de computador. Ela define a sintaxe e a semântica que os programadores devem seguir para comunicar suas intenções ao computador – ou seja, as regras de escrita. Observe que a palavra ‘linguagem’ não está por acaso. Pense na língua portuguesa, por exemplo: ela possui um conjunto de regras que moldam sua estrutura (tanto em termos de palavras quanto de concordância), isto é, possui uma sintaxe própria, e serve para que duas ou mais pessoas possam se comunicar. De certa forma parecido, não é?
É o meio pelo qual os programadores se comunicam com o computador, com intuito de instruí-lo a realizar determinada tarefa. Uma linguagem de programação é caracterizada pela sua sintaxe própria.
Por outro lado, o código é o resultado da aplicação dessas regras e instruções em uma linguagem de programação específica. Em outras palavras, o código é o texto ou conjunto de comandos escritos em uma linguagem de programação para realizar uma determinada tarefa ou função. Voltando à analogia da língua portuguesa, pense no código como um texto propriamente escrito em português. É a materialização da comunicação.
É o texto que contém comandos em determinada linguagem de programação. Você pode escrever um código em um arquivo do tipo .txt
, por exemplo. No entanto, na maioria dos casos, basta observar a extensão do arquivo!
A capacidade de programar tornou-se uma habilidade essencial, especialmente para aqueles que desejam explorar o mundo da estatística e da matemática aplicados à determinada ciência social. Por exemplo, no contexto de interseção entre economia e matemática – principalmente na elaboração e solução de modelos teóricos – e entre economia e estatística – testando hipóteses e realizando previsões – a programação se coloca como uma ferramenta muito útil para economizar tempo de cálculo e garantir que, caso necessário, o mesmo processo seja concluído múltiplas vezes sem erros. Em outras palavras, a programação aplicada à determinada ciência social, como a economia, traz duas principais vantagens, explicadas melhor a seguir.
1.1 Redução no tempo de cálculo
A primeira vantagem é a redução no tempo de cálculo de certos procedimentos que, se feitos de forma manual, levariam vários minutos, horas ou até mesmo dias. Vamos deixar mais claro com um exemplo.
No ensino fundamental, você aprendeu a resolver um sistema de equações simultâneas com \(2\) equações e \(2\) incógnitas, muito provavelmente pelo método de substituição. Não levava muito tempo, certo? Acontece que, na cadeira de Álgebra Linear, você aprenderá como identificar a existência e encontrar a solução de sistemas com muitas equações e muitas variáveis – dado que, ao longo do curso, você terá contato com sistemas determinísticos maiores cujo objetivo é explicar a realidade de forma simplificada. Nos que possuem solução, quanto mais complexo for o sistema, maior será a dificuldade de encontrá-la. Durante o curso, você aprenderá métodos que permitem descobrir a resolução de sistemas desse tipo de forma mais rápida, pelo menos em relação ao método de substituição. No entanto, certo tempo continuará sendo perdido se você os replicar manualmente.
Com auxílio da programação, é possível implementar estes mesmos métodos para obter o resultado de forma quase que instantânea! O tempo que você levaria realizando o procedimento de forma manual se reduz próximo a zero – ou fica mínimo, comparado ao tempo que seria gasto se você resolvesse, na mão, todos os cálculos inerentes ao método em questão.
Observe que você ainda deve focar em saber como os métodos funcionam, do contrário não será capaz de julgar se o que a máquina fez é realmente aquilo que você desejava!
1.2 Automação de processos
Na seção anterior, repare que estavamos discorrendo implicitamente sobre cálculos de ocorrência única – ou seja, realizamos o cálculo uma vez e não teríamos mais interesse de fazê-lo novamente em um futuro próximo. Porém, é importante destacar que outro benefício prático do ato de programar é a automação de tarefas repetitivas. Com a programação, é possível escrever e salvar códigos que realizam as mesmas tarefas tediosas de manipulação e análise de dados sempre que necessário, permitindo que os pesquisadores se concentrem em questões analíticas de maior relevância.
Por exemplo, imagine que alguém te peça para calcular a média de alguns valores, digamos dez, que mudam de dia para dia. Você poderia facilmente elaborar um código que, a partir de determinados números (independente de quais sejam), calcule a média correspondente. Uma vez o código escrito e salvo, você pode passar a executá-lo sempre que quiser – no nosso exemplo, você o executaria todos os dias. Repare que calcular a média uma única vez não seria um problema; no entanto, esse procedimento simples se torna custoso quando temos que repetí-lo todo dia. Ao automatizar a tarefa, o pesquisador pode concentrar o tempo economizado no cálculo para, por exemplo, pensar sobre o porquê da média ter apresentado aquele determinado valor.
1.3 Vamos programar… em R!
Em suma, aprender a programar oferece uma série de vantagens tangíveis para quem trabalha com estatística e matemática. Ela tornar o trabalho mais eficiente e produtivo, permitindo que os profissionais explorem dados de maneiras antes inimagináveis e desenvolvam soluções personalizadas para os desafios enfrentados em suas áreas de atuação.
No restante do material, aprenderemos a programar utilizando a linguagem de programação R. Em outras palavras, aprenderemos (i) sua sintaxe, isto é, a forma correta de escrever comandos para que a máquina seja capaz de interpretar o que queremos como resultado, e (ii) como executar códigos que foram escritos.
Você deve estar se perguntando: “Por que programar em R?”. Simplesmente pois é uma linguagem de programação moldada para executar tarefas estatísticas (e matemáticas, em menor grau). Não à toa, é amplamente utilizada por economistas que desejam constuir e testar hipóteses sobre seus modelos e automatizar coleta de dados econômicos.
Ao longo da apostila, existem conteúdos que são opcionais, ou seja, você pode pulá-los sem prejuízo para a sequência do material. Pense neles como se fossem aprofundamentos. Sem tempo? Pode passar direto! Eles estarão dispostos em boxes expandíveis, como abaixo.
O R é a linguagem que escolhemos para utilizar nos nossos cursos. Mas é interessante que você saiba que existem outras linguagens de programação por aí – algumas capazes de executar papel semelhante ao próprio R. Em 2023, as linguagens de programação mais utilizadas foram: JavaScript (63% dos programadores que responderam uma pesquisa disseram que a utilizavam1), Python (49%) e SQL (48%).
Apenas 4% dos respondentes tiveram contato com R. ‘Meu Deus, estamos usando uma linguagem que poucas pessoas usam!’ você pode estar pensando agora. Calma, não é bem assim! Realmente, em comparação ao Python e SQL, o R é menos utilizado. Mas, em número absoluto, a comunidade é grande. Além disso, é bom ter em mente que cada linguagem de programação tem suas vantagens e desvantagens e, por esse motivo, é preciso entender o contexto no qual você quer utilizá-la. O R foi escolhido por sua disponibilidade e eficiência computacional em relação à métodos estatísticos e matemáticos – ideal para cursos de estatística e matemática!