Como programar
Entender como programar é a primeira barreira de muita gente que chega à área de TI. Diversas pessoas são apresentadas à programação, concluem que tudo é complexo demais e acabam desistindo antes de escrever a primeira linha de código.
Ajudar essas pessoas na entrada é muito importante. Afinal, o mercado de tecnologia segue com alta demanda por profissionais, e a falta de mão de obra qualificada é, em parte, um efeito colateral dessa evasão.
Uma forma de combater esse cenário é melhorar a maneira como a programação é apresentada. Por isso, este artigo parte do conceito, passa pela lógica e termina com um programa real em C#, explicado linha por linha.
O que significa programar
Imagine que é possível se comunicar com computadores de todo tipo. Estações de trabalho, smartphones, dispositivos domésticos inteligentes e até máquinas industriais entram nessa lista.
Agora pense em como o dia a dia ficaria mais fácil se você passasse instruções para esses computadores. Eles executariam as tarefas com mais precisão que nós, com resultados rápidos e ainda devolveriam relatórios completos.
Não é difícil perceber que isso já é possível. Na maioria dos casos, porém, a comunicação não acontece por conversa ou gesto, e sim por instruções escritas.
Em outras palavras, programar é passar para o computador informações e instruções sobre como agir e o que fazer. Essa é a definição mais simples, e ela já basta para dar o próximo passo.
Esse próximo passo é entender o ato de programar em si. Para isso, primeiro vamos definir o processo lógico que sustenta qualquer programa, a chamada lógica de programação.
O que é lógica de programação
A palavra lógica, assim como muitas outras, tem origem em uma língua antiga, neste caso o grego. Ela deriva de logos, termo que significa, entre outras coisas, argumentação.
Na prática, a lógica é uma forma de estruturar pensamentos aplicando algumas regras. Mortari (2001) a descreve como "a ciência que estuda princípios e métodos de inferência, tendo o objetivo principal de determinar em que condições certas coisas se seguem (são consequências), ou não, de outras".
Já a palavra programação remete à junção de duas ideias: programar e ação. Programar significa planejar e passar instruções, enquanto ação significa praticar.
Assim, o termo lógica de programação pode ser descrito como raciocínio lógico voltado para computadores. De fato, é justamente esse raciocínio que você desenvolve quando estuda e pratica a programação.
Algoritmos no dia a dia
Um algoritmo é uma sequência finita de passos que resolve um problema. Por exemplo, uma receita de bolo é um algoritmo: ela define os ingredientes, a ordem das etapas e o resultado esperado.
Quando você aprende a programar, aprende a descrever problemas dessa forma, com passos claros e sem ambiguidade. O computador não adivinha intenções, então cada passo precisa estar explícito.
É por isso que muitos cursos começam com pseudocódigo ou fluxogramas. Primeiro você organiza o raciocínio e, só depois, traduz esse raciocínio para uma linguagem de programação.
Como programar do zero
Agora que os termos estão definidos, chegamos à questão principal: como programar?
Para programar, o mais importante é estudar primeiro um pouco de lógica de programação e algoritmos, compilação, interpretação e tipagem de dados. Essa base prepara você para usar as linguagens de programação na construção dos seus primeiros programas.
Pular essa etapa costuma gerar a sensação de que programar é decorar comandos. Na verdade, os comandos mudam de linguagem para linguagem, enquanto a lógica permanece a mesma.
Compilação e interpretação
O computador não entende diretamente o texto que você escreve. Por isso, alguma ferramenta precisa traduzir o código para uma forma que a máquina consiga executar.
Na compilação, um programa chamado compilador traduz o código antes da execução. Já na interpretação, um interpretador lê e executa as instruções durante a própria execução.
O C# é uma linguagem compilada. Segundo a documentação da Microsoft, o comando dotnet build compila os arquivos de código e o comando dotnet run compila e executa em uma única etapa.
Entender essa diferença ajuda a interpretar mensagens de erro. Um erro de compilação, por exemplo, aparece antes de o programa rodar, enquanto um erro de execução só surge com o programa em funcionamento.
Tipagem de dados
Todo programa manipula dados, como números, textos, datas e valores verdadeiro ou falso. A tipagem define que tipo de dado cada informação representa e quais operações fazem sentido sobre ela.
Em C#, por exemplo, int representa números inteiros, string representa textos e bool representa valores lógicos. Somar dois números faz sentido, mas somar um número a um valor lógico não faz, e o compilador avisa sobre isso.
Assim, a tipagem funciona como uma rede de proteção. Ela impede uma série de erros antes mesmo de o programa ser executado.
O que são linguagens de programação
Uma linguagem de programação é a escrita formal usada para passar comandos, instruções e regras a um computador. Um conjunto desses itens pode ser descrito como um programa.
Programas podem ser simples, como exibir um texto em uma tela. Por outro lado, também podem ser extremamente complexos, limitados apenas ao propósito para o qual foram escritos.
Cada linguagem tem a própria sintaxe, ou seja, as próprias regras de escrita. Ainda assim, quem aprende a programar em uma linguagem leva conceitos como variáveis, condições e repetições para qualquer outra.
Se você quer conhecer a história das linguagens, os compiladores e exemplos em várias delas, o artigo sobre linguagens de programação aprofunda esse panorama.
Qual linguagem usar para programar
Essa é uma das perguntas mais frequentes entre quem está começando a programar ou estudando essa possibilidade.
A linguagem ideal depende do propósito do software que será desenvolvido. Algumas se destacam pelo desempenho, outras pela precisão e outras por recursos específicos para determinado tipo de aplicação.
Para quem está começando, contudo, o critério mais útil é outro. Vale escolher uma linguagem com boa documentação, comunidade ativa, ferramentas acessíveis e espaço no mercado de trabalho.
O C# atende bem a esses critérios. Por isso, ele é a linguagem do exemplo prático deste artigo, que mostra como programar um texto de saída na tela.
Se quiser um panorama mais leve sobre o papel das linguagens e sobre o C#, o artigo programação descomplicada complementa esta seção.
Mão na massa: como programar seu primeiro Hello World
Existem sites onde você pode escrever código em uma linguagem e analisar os resultados diretamente no navegador. Um deles é o DotNetFiddle, que compila o código e exibe a saída sem exigir nenhuma instalação.
Antes de tudo, vamos seguir o ritual do Hello World!. Diz a brincadeira que, ao iniciar o estudo de uma nova linguagem, você deve primeiro escrever o Hello World! nela, ou não vai aprender corretamente.
A brincadeira carrega uma ideia séria. Primeiro aprendemos o básico e, depois, avançamos para passos mais complexos, construindo uma base sólida que permite chegar mais longe.
Sem mais delongas, acesse o DotNetFiddle e observe o código que a página já apresenta:
using System;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World!");
}
}
Esse é todo o código necessário para escrever o nosso Hello World!. Em seguida, vamos entender o que acontece em cada parte.
A diretiva using
using System;
Aqui você informa ao compilador que ele deve trazer o namespace System para o contexto. Nele existem recursos que o programa usa mais à frente, como a classe Console.
Sem essa linha, você precisaria escrever o nome completo System.Console sempre que quisesse usar o console.
A classe Program
public class Program
{
}
Neste trecho, criamos a estrutura do nosso programa. A palavra public indica que a classe pode ser acessada por outras partes do código.
Já class declara uma classe, que agrupa dados e comportamentos com um objetivo comum. Por fim, Program é o nome escolhido para identificar essa classe.
O método Main
public static void Main()
{
}
Dentro da classe, inserimos o trecho acima para declarar um método. Os métodos são ações que definem os comportamentos que a classe terá.
O nome do método é Main, e esse nome tem um papel especial. Segundo a documentação do C#, quando a aplicação inicia, o runtime chama o método Main, que funciona como o ponto de entrada do programa.
A palavra static permite chamar o método sem criar um objeto da classe. Já void indica que o método não devolve nenhum valor.
Escrevendo no console
Console.WriteLine("Hello World!");
Por fim, chamamos a classe Console e, em seguida, o método WriteLine. Ele escreve na tela o texto que está entre as aspas e pula para a próxima linha.
Ao executar o programa, a saída é esta:
Hello World!
Pronto, você acabou de programar o seu primeiro programa em C#. Então, experimente trocar o texto entre aspas e executar de novo para ver a saída mudar.
Melhorias no C# com top-level statements
Desde a versão 9.0 do C#, é possível reduzir toda a escrita vista acima a uma única linha:
System.Console.WriteLine("Hello World!");
Esse recurso se chama top-level statements. Com ele, você escreve o código executável direto na raiz do arquivo, sem declarar a classe e o método Main.
Nesse caso, o próprio compilador gera a classe e o ponto de entrada por trás dos panos. Portanto, o programa funciona da mesma forma e exibe o mesmo texto na tela.
Vale conhecer duas regras desse recurso. Primeiro, apenas um arquivo do projeto pode conter top-level statements, e a execução começa pela primeira linha de código desse arquivo.
Além disso, a documentação informa que os templates de aplicação console do .NET 6 em diante já usam esse estilo. Assim, ao criar um projeto com dotnet new console, você encontra o arquivo Program.cs com uma única linha de Console.WriteLine.
Os dois estilos produzem código equivalente após a compilação. Então, a escolha entre eles é uma questão de clareza, e não de desempenho.
Mesmo assim, entender a estrutura completa continua importante. Afinal, muitas aplicações do mundo real usam o método Main explícito, e os conceitos de classe, método e namespace aparecem em todo projeto C#.
Próximos passos para aprender a programar
Depois do primeiro programa, o caminho natural é aprofundar os fundamentos. Variáveis, condições, laços de repetição, coleções e funções formam o próximo bloco de estudo.
Além disso, vale sair do navegador e preparar o ambiente na sua máquina. O artigo sobre instalação e primeiros passos com .NET mostra como instalar o SDK e criar o primeiro projeto.
Com o SDK instalado, você também pode criar projetos pelo terminal, como explica o artigo sobre criar projetos .NET via console.
Praticar com exercícios curtos também acelera o aprendizado. Por exemplo, o artigo pratique algoritmo com matrizes traz um desafio para exercitar a lógica.
Se preferir uma trilha guiada, você pode seguir aqui mesmo na plataforma, começando pelo manual do aluno. Também existem cursos gratuitos para você começar a programar e se tornar um desenvolvedor disputado no mercado.
Erros comuns de quem está começando a programar
O primeiro erro é tentar aprender várias linguagens ao mesmo tempo. Como a lógica se repete entre elas, dominar uma linguagem primeiro torna as próximas muito mais fáceis.
O segundo erro é estudar apenas a teoria. Ler sobre como programar ajuda, mas o aprendizado só se consolida quando você escreve, executa e corrige o próprio código.
Outro tropeço frequente é se assustar com mensagens de erro. Na verdade, elas são aliadas, porque apontam a linha e o motivo do problema, principalmente em uma linguagem compilada como o C#.
Por fim, muita gente desiste por comparar o próprio início com o trabalho de profissionais experientes. Lembre que todo desenvolvedor sênior também começou com um Hello World!.
Conclusão
Aprender a programar começa pelo entendimento do que é programar: passar instruções claras para um computador executar.
A lógica de programação sustenta esse processo, enquanto compilação, interpretação e tipagem explicam como o código vira um programa funcional.
Com essa base, a escolha da linguagem fica mais simples. O C#, com boa documentação e ferramentas acessíveis, é uma porta de entrada sólida.
Por isso, o próximo passo é praticar todos os dias, com programas pequenos e progressivos. É assim que a sensação de complexidade dá lugar à confiança.
FAQ
Preciso ser bom em matemática para programar?
Não para começar. A lógica de programação exige raciocínio estruturado, e a matemática mais avançada só aparece em áreas específicas, como gráficos ou ciência de dados.
Qual a melhor linguagem para começar a programar?
Depende do objetivo, mas uma linguagem com boa documentação e comunidade ativa ajuda. O C# é uma boa escolha para quem quer trabalhar com aplicações web, desktop, mobile ou jogos.
Preciso instalar algo para escrever meu primeiro programa?
Não. Sites como o DotNetFiddle compilam e executam código C# direto no navegador.
O que é o Hello World?
É o primeiro programa tradicional ao estudar uma linguagem. Ele apenas exibe uma mensagem na tela e serve para validar o ambiente e a sintaxe básica.
Ainda preciso aprender o método Main com os top-level statements?
Sim. Os top-level statements simplificam programas novos, mas muitos projetos usam o Main explícito, e os conceitos de classe e método aparecem em todo código C#.