Pular para o conteúdo principal
Programação

C# para Iniciantes: Primeiros Conceitos e Por Onde Começar

Aprenda C# do zero: o que é, por que aprender, sintaxe básica, variáveis, tipos e seu primeiro programa. Guia completo para iniciantes.

12 min de leitura
FISApp Academy

O que é C# e por que aprender essa linguagem?

Se você está pesquisando linguagens de programação para iniciantes, provavelmente já encontrou Python, JavaScript e Java nas listas. Mas tem uma linguagem que muitas vezes fica de fora dessas listas — e que merece muito mais atenção: C# (pronuncia-se "C sharp").

C# foi criada pela Microsoft em 2000 e, desde então, evoluiu para se tornar uma das linguagens mais completas e versáteis do mercado. Ela roda no ecossistema .NET, que é como um "kit de ferramentas" gigante que facilita a criação de praticamente qualquer tipo de software.

Se você ainda está na fase de decidir por onde começar, leia nosso guia definitivo para começar em programação do zero. Se já decidiu explorar o C#, este artigo é o seu ponto de partida.

Em termos simples: C# é uma linguagem de programação criada pela Microsoft. Pense nela como um idioma que você usa para dar instruções ao computador. É moderna, poderosa e usada por milhares de empresas no mundo todo — incluindo muitas no Brasil.


Por que C# é excelente para iniciantes

Pode parecer contraditório: C# é uma linguagem profissional usada em sistemas complexos, e ao mesmo tempo é ótima para iniciantes? Sim. E aqui está o porquê:

1. Tipagem forte te ensina bons hábitos

Em C#, você precisa dizer qual tipo de dado uma variável vai guardar. Isso parece trabalhoso no começo, mas na prática te protege de erros:

// C# - tipagem forte (explícita)
int idade = 25;           // Só aceita números inteiros
string nome = "Carlos";   // Só aceita texto
double preco = 49.90;     // Aceita números com decimal
bool ativo = true;        // Só aceita verdadeiro ou falso

// Isso dá ERRO em C# (e isso é bom!):
// int idade = "vinte e cinco"; // O compilador avisa que está errado

Compare com uma linguagem de tipagem fraca, onde idade = "vinte e cinco" seria aceito sem reclamar — e causaria bugs difíceis de encontrar depois.

2. O compilador é seu professor

Antes de executar o programa, o compilador C# verifica se tem algo errado. Ele te avisa:

  • Se uma variável não foi inicializada
  • Se você está usando o tipo errado
  • Se faltou um ponto e vírgula
  • Se uma função não retorna o que deveria

É como ter um revisor lendo seu texto antes de publicar.

3. Ecossistema completo e gratuito

  • Visual Studio Community — IDE completa, gratuita
  • .NET SDK — framework de execução, gratuito
  • Documentação — a Microsoft mantém uma das melhores documentações do mundo

4. Versatilidade real

Com C#, você pode criar:

| Tipo de aplicação | Tecnologia | |------------------|-----------| | Sites e APIs web | ASP.NET Core | | Aplicativos desktop | WPF, WinForms | | Aplicativos mobile | .NET MAUI | | Jogos | Unity | | Microsserviços | .NET + Docker | | Automações e scripts | .NET Console | | IA e Machine Learning | ML.NET |


Configurando o ambiente de desenvolvimento

Antes de escrever código, você precisa instalar duas coisas (ambas gratuitas):

1. .NET SDK

Baixe em dot.net. É o "motor" que executa programas C#.

Para verificar se instalou corretamente, abra o terminal e digite:

dotnet --version

Deve aparecer algo como 8.0.x ou superior.

2. Editor de código

Duas opções principais:

  • Visual Studio Code — leve, rápido, com extensão C# Dev Kit
  • Visual Studio Community — completo, ideal para C# (recomendado para iniciantes)

Ambos são gratuitos.

Criando seu primeiro projeto

No terminal, digite:

# Criar um novo projeto console
dotnet new console -n MeuPrimeiroProjeto

# Entrar na pasta do projeto
cd MeuPrimeiroProjeto

# Executar o programa
dotnet run

O terminal vai exibir: Hello, World!

Parabéns — você acabou de rodar seu primeiro programa C#!


Sintaxe básica do C#

Agora vamos entender o que cada parte do código significa.

A estrutura mínima de um programa C#

// Versão moderna (C# 10+, .NET 6+)
// Programa simplificado - sem necessidade de classe/Main explícitos

Console.WriteLine("Olá, mundo!");

Nas versões mais recentes do C#, você pode escrever código diretamente no arquivo, sem precisar da estrutura completa de classe. Mas é importante conhecer a versão completa:

// Versão tradicional (completa)
using System;

namespace MeuPrimeiroProjeto
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Olá, mundo!");
        }
    }
}

| Elemento | O que faz | |----------|-----------| | using System; | Importa funcionalidades básicas | | namespace | Organiza o código em grupos | | class Program | Define uma classe (um bloco de código) | | static void Main | Ponto de entrada do programa | | Console.WriteLine | Exibe texto no terminal |

Exemplo prático

Vamos criar um programa que recebe dados do usuário e exibe uma mensagem personalizada:

// Programa: Ficha de cadastro simples
Console.WriteLine("=== Cadastro ===");

Console.Write("Seu nome: ");
string nome = Console.ReadLine()!;

Console.Write("Sua idade: ");
int idade = int.Parse(Console.ReadLine()!);

Console.Write("Sua cidade: ");
string cidade = Console.ReadLine()!;

Console.WriteLine();
Console.WriteLine("=== Sua Ficha ===");
Console.WriteLine($"Nome: {nome}");
Console.WriteLine($"Idade: {idade} anos");
Console.WriteLine($"Cidade: {cidade}");

if (idade >= 18)
    Console.WriteLine("Status: Maior de idade");
else
    Console.WriteLine("Status: Menor de idade");

Conceitos usados: variáveis, entrada de dados (Console.ReadLine), conversão de tipo (int.Parse), interpolação de strings ($""), condicional (if/else).

Erro comum: Esquecer o ponto e vírgula (;) no final das linhas. Em C#, toda instrução termina com ;. Diferente de Python, onde a quebra de linha já é suficiente. O lado bom: o compilador vai te avisar exatamente onde faltou.


Variáveis e tipos de dados em C#

C# é uma linguagem de tipagem forte e estática. Isso significa que você precisa declarar o tipo de cada variável, e esse tipo não muda depois.

Tipos mais usados

// Números inteiros
int quantidade = 42;
long populacaoMundial = 8000000000L;

// Números decimais
double preco = 29.90;
decimal salario = 4500.50m; // Ideal para valores monetários

// Texto
string nome = "FISApp Academy";
char letra = 'A';

// Lógico (verdadeiro/falso)
bool ativo = true;
bool matriculado = false;

// Data
DateTime agora = DateTime.Now;
DateTime nascimento = new DateTime(1995, 6, 15);

var — inferência de tipo

C# também permite usar var, onde o compilador descobre o tipo automaticamente:

var nome = "Maria";      // O compilador sabe que é string
var idade = 30;           // O compilador sabe que é int
var preco = 49.90;        // O compilador sabe que é double

O tipo ainda é forte — var apenas evita que você escreva o tipo explicitamente. Depois de definido, o tipo não muda.

Conversão entre tipos

Às vezes você precisa converter um tipo em outro:

// String para número
string textoIdade = "25";
int idade = int.Parse(textoIdade);

// Número para string
int numero = 42;
string textoNumero = numero.ToString();

// Conversão segura (não lança exceção se falhar)
string entrada = "abc";
bool converteu = int.TryParse(entrada, out int resultado);
if (converteu)
    Console.WriteLine($"Número: {resultado}");
else
    Console.WriteLine("Entrada inválida!");

Quer aprender C# com projetos reais?

Entender a sintaxe é o primeiro passo. Mas C# de verdade se aprende construindo projetos — e é exatamente isso que o curso Programação do Zero ao Avançado - Start da FISApp Academy oferece.

O PZA Start usa C# como linguagem principal e vai dos fundamentos de lógica até banco de dados, POO e Git — tudo com exercícios e projetos que viram portfólio real.

Comece a aprender C# com o PZA Start


Estruturas de controle em C#

Se você já leu nosso artigo sobre lógica de programação, vai reconhecer esses conceitos. Aqui vamos ver como eles funcionam especificamente em C#.

Condicionais

// if / else if / else
double nota = 7.5;

if (nota >= 9.0)
    Console.WriteLine("Conceito A - Excelente");
else if (nota >= 7.0)
    Console.WriteLine("Conceito B - Bom");
else if (nota >= 5.0)
    Console.WriteLine("Conceito C - Regular");
else
    Console.WriteLine("Conceito D - Insuficiente");

// switch — ideal para múltiplas comparações com valor fixo
string diaSemana = "segunda";

switch (diaSemana)
{
    case "segunda":
    case "terça":
    case "quarta":
    case "quinta":
    case "sexta":
        Console.WriteLine("Dia útil");
        break;
    case "sábado":
    case "domingo":
        Console.WriteLine("Fim de semana");
        break;
    default:
        Console.WriteLine("Dia inválido");
        break;
}

Loops

// for — quando sabe quantas vezes repetir
for (int i = 0; i < 5; i++)
{
    Console.WriteLine($"Iteração {i}");
}

// while — quando não sabe quantas vezes
int tentativas = 0;
while (tentativas < 3)
{
    Console.Write("Digite a senha: ");
    string senha = Console.ReadLine()!;
    if (senha == "1234")
    {
        Console.WriteLine("Acesso permitido!");
        break;
    }
    tentativas++;
    Console.WriteLine($"Senha incorreta. {3 - tentativas} tentativa(s) restante(s).");
}

// foreach — para percorrer coleções
List<string> tecnologias = new() { "C#", ".NET", "SQL", "Git", "HTML" };

foreach (string tech in tecnologias)
{
    Console.WriteLine($"Estudar: {tech}");
}

Funções (métodos) em C#

Em C#, funções são chamadas de métodos. Elas encapsulam lógica reutilizável:

// Método que retorna um valor
static double CalcularIMC(double peso, double altura)
{
    return peso / (altura * altura);
}

// Método sem retorno (void)
static void ExibirResultadoIMC(double imc)
{
    Console.Write($"Seu IMC: {imc:F1} - ");

    if (imc < 18.5)
        Console.WriteLine("Abaixo do peso");
    else if (imc < 25)
        Console.WriteLine("Peso normal");
    else if (imc < 30)
        Console.WriteLine("Sobrepeso");
    else
        Console.WriteLine("Obesidade");
}

// Usando os métodos
double meuIMC = CalcularIMC(75, 1.78);
ExibirResultadoIMC(meuIMC);

Exemplo prático

Vamos criar um sistema de notas completo com vários métodos:

static double LerNota(string descricao)
{
    Console.Write($"Digite a {descricao}: ");
    return double.Parse(Console.ReadLine()!);
}

static double CalcularMedia(double[] notas)
{
    double soma = 0;
    foreach (double nota in notas)
        soma += nota;
    return soma / notas.Length;
}

static string ObterSituacao(double media)
{
    if (media >= 7.0) return "APROVADO";
    if (media >= 5.0) return "RECUPERAÇÃO";
    return "REPROVADO";
}

static void ExibirBoletim(string aluno, double[] notas, double media, string situacao)
{
    Console.WriteLine($"\n=== Boletim de {aluno} ===");
    for (int i = 0; i < notas.Length; i++)
        Console.WriteLine($"  Nota {i + 1}: {notas[i]:F1}");
    Console.WriteLine($"  Média: {media:F1}");
    Console.WriteLine($"  Situação: {situacao}");
}

// Programa principal
Console.Write("Nome do aluno: ");
string aluno = Console.ReadLine()!;

double[] notas = new double[4];
for (int i = 0; i < 4; i++)
    notas[i] = LerNota($"nota {i + 1}");

double media = CalcularMedia(notas);
string situacao = ObterSituacao(media);

ExibirBoletim(aluno, notas, media, situacao);

Cada método faz uma coisa e faz bem. Isso é fundamental para código limpo e manutenível.


C# vs outras linguagens: comparação rápida

Para você ter uma referência de como C# se compara:

O mesmo programa em 3 linguagens

C#:

List<int> numeros = new() { 1, 2, 3, 4, 5 };
var pares = numeros.Where(n => n % 2 == 0).ToList();
pares.ForEach(n => Console.WriteLine(n));

Python:

numeros = [1, 2, 3, 4, 5]
pares = [n for n in numeros if n % 2 == 0]
for n in pares:
    print(n)

JavaScript:

const numeros = [1, 2, 3, 4, 5];
const pares = numeros.filter(n => n % 2 === 0);
pares.forEach(n => console.log(n));

Perceba que a lógica é a mesma — o que muda é a sintaxe. Por isso aprender lógica primeiro é tão importante.

Em termos simples: C# é mais "falante" que Python — você escreve mais caracteres. Mas essa verbosidade traz clareza. Quando o projeto cresce para milhares de linhas, a organização do C# se paga com juros. É como a diferença entre anotar "comprar coisas" e anotar "comprar 2kg de arroz tipo 1 marca X": a segunda é mais longa, mas muito mais útil.


Próximos passos com C#

Depois de dominar a sintaxe básica, o caminho natural é:

  1. Programação Orientada a Objetos — Classes, herança, interfaces (o forte do C#)
  2. Banco de Dados com SQL — Conectar C# a bancos de dados usando Entity Framework — veja nosso artigo sobre banco de dados para iniciantes
  3. APIs Web — Criar APIs REST com ASP.NET Core — entenda melhor em API, front-end e back-end
  4. Git — Versionar seus projetos C#
  5. Testes — Garantir que seu código funciona com testes automatizados

Para a trilha completa do que estudar em cada etapa, leia O Que Estudar Depois da Lógica de Programação.


Resumo rápido

  • C# é uma linguagem moderna, tipada e versátil criada pela Microsoft
  • Roda no ecossistema .NET, que é gratuito e completo
  • A tipagem forte te ensina bons hábitos desde o início
  • O compilador funciona como um professor que aponta erros antes de executar
  • Você pode criar: web, desktop, mobile, jogos, APIs, automações
  • O mercado no Brasil é forte e em crescimento
  • Ferramentas necessárias: .NET SDK + Visual Studio (ambos gratuitos)
  • Comece com programas console e evolua para projetos mais complexos
  • A lógica de programação é a mesma — C# é apenas a forma de expressá-la

O que estudar depois

Continue aprofundando seus conhecimentos:


Domine C# do zero ao avançado

Se você gostou do que viu neste artigo e quer ir mais fundo, o curso Programação do Zero ao Avançado - Start da FISApp Academy usa C# como linguagem principal.

Você vai sair do "Hello World" e chegar em projetos reais com orientação a objetos, banco de dados e versionamento. Tudo estruturado, sem enrolação, com foco em te preparar para o mercado.

C# é uma das linguagens mais valorizadas do mercado. Comece agora.

Quero aprender C# com o PZA Start

Perguntas Frequentes

C# é difícil para quem nunca programou?

C# tem uma curva de aprendizado moderada. A sintaxe é mais verbosa que Python, mas isso é na verdade uma vantagem: o código fica mais explícito e organizado. A tipagem forte ajuda a pegar erros antes de executar o programa. Com uma boa trilha de estudos, qualquer pessoa consegue aprender.

Qual a diferença entre C# e .NET?

C# é a linguagem de programação (as palavras e regras que você escreve). .NET é a plataforma/framework que executa o código C# e oferece bibliotecas prontas. Pense assim: C# é o idioma, .NET é o país onde esse idioma é falado. Você precisa dos dois para criar aplicações.

C# serve para criar sites e aplicativos?

Sim! Com C# e .NET, você pode criar: sites e APIs web (ASP.NET), aplicativos mobile (MAUI/.NET MAUI), aplicativos desktop (WPF, WinForms), jogos (Unity), microsserviços, automações e muito mais. É uma das linguagens mais versáteis do mercado.

O mercado de C# é bom no Brasil?

Excelente. C# é amplamente usado em empresas de médio e grande porte no Brasil, especialmente em fintechs, bancos, seguradoras, e-commerce e empresas de software. A demanda é alta e os salários são competitivos, tanto para vagas presenciais quanto remotas.

Quer aprender na prática?

Conheça o curso que vai te levar do zero ao avançado com projetos reais.

Conhecer o curso

Continue lendo