---
title: "C# e .NET junior: como entrar de verdade no Brasil"
url: "https://eu.dev.br/carreira/csharp-dotnet-junior-brasil/"
markdown_url: "https://eu.dev.br/carreira/csharp-dotnet-junior-brasil.MD"
description: "C# e .NET é a stack que sustenta banco, consultoria, governo e ERP no Brasil — e por isso tem muita vaga de backend junior. Veja o que o dev .NET junior faz de verdade, o caminho de estudo e como montar portfólio que se destaca."
date: "2026-07-19"
author: ""
---

# C# e .NET junior: como entrar de verdade no Brasil

C# e .NET é a stack que sustenta banco, consultoria, governo e ERP no Brasil — e por isso tem muita vaga de backend junior. Veja o que o dev .NET junior faz de verdade, o caminho de estudo e como montar portfólio que se destaca.


Procurar "desenvolvedor C# junior" ou ".NET junior" no Brasil rende uma mistura boa e barulhenta. A boa: .NET é uma das stacks que mais segura vaga de backend corporativo no país. Banco, fintech, seguradora, consultoria, integradora, órgão público e fabricante de ERP rodam sistema crítico em C# com ASP.NET, e todo esse mundo precisa de junior. A barulhenta: o título varia demais. "Desenvolvedor .NET junior", "analista de sistemas C#", "programador C#", "dev backend .NET", "analista desenvolvedor" — às vezes descrevem o mesmo trabalho, às vezes empilham .NET com SQL Server, Azure, Angular e "desejável React" num anúncio só. Você sai da busca sem saber direito o que a vaga cobra.

Respira. Essa confusão de rótulo não é cilada. É o mercado .NET brasileiro de verdade — e ele é mais acessível do que o jargão de anúncio de banco sugere.

A porta de entrada em C# .NET não pede faculdade específica, não pede certificação Microsoft antes da primeira vaga e não pede que você decore o ecossistema Windows inteiro. Ela pede a base certa da linguagem, um framework web que entrega endpoint, um ORM que conversa com banco e a capacidade de abrir pull request pequeno sem quebrar o resto. Quem entende isso para de acumular curso de C# avançado antes de resolver um problema e começa a mirar nas vagas que existem de verdade. Para enxergar o mercado real, abra as [vagas de back-end remoto](/vagas/backend-remoto/) filtrando por C#, .NET e ASP.NET, ou comece pela lista viva de [vagas junior remotas](/vagas/junior-remoto/). Em qualquer dos dois, leia o corpo da vaga, não só o título.

## primeiro: o que o dev C# .NET junior faz de verdade

Esquece a imagem de "passar o dia desenhando diagrama de classe abstrata". Quem entra como dev C# .NET junior num time brasileiro de backend costuma fazer isto:

- pegar um ticket, abrir um controller ou serviço que já existe em ASP.NET Core e adicionar um comportamento (endpoint, regra, validação);
- mapear entidade com Entity Framework Core, escrever consulta em LINQ e ajustar relacionamento que o log reclamou;
- escrever teste com xUnit ou NUnit e Moq antes ou depois do código, conforme o time;
- abrir pull request pequeno, responder code review por escrito e corrigir o que o reviewer pediu;
- investigar bug em produção com a ajuda de log, Application Insights e de alguém mais velho do time.

Framework é ferramenta pra entregar funcionalidade, não ornamentação. O sênior não te paga para decorar padrão de projeto; te paga para resolver um pedaço pequeno do problema sem quebrar o resto. Por isso o cargo premia quem escreve código legível, dá nome decente para coisa, faz teste e pergunta no momento certo — bem mais do que quem acumula certificação Microsoft sem nunca ter subido uma API.

A confusão comum é achar que "dev .NET" é só backend. Na maioria das vagas brasileiras é. Mas o rótulo também aparece em vagas fullstack .NET (backend em C# + frontend em Angular, Blazor ou React), em suporte técnico de sistema legado em .NET Framework e, mais raro, em desenvolvimento de jogo com Unity (onde C# é a linguagem, mas o trabalho é outro). Antes de aplicar, confira no corpo da vaga se o trabalho é escrever backend ASP.NET Core ou se é outra coisa com nome de .NET.

## a stack que aparece em quase toda vaga de .NET junior

Abra dez anúncios de "dev .NET junior" no Brasil e você vai enxergar um padrão. Não são dez ferramentas diferentes; é o mesmo conjunto, com pequena variação.

**C# core.** Orientação a objeto, `LINQ` (`Select`, `Where`, `GroupBy`, `SelectMany`), `async`/`await`, generics, tratamento de exceção, `IEnumerable` vs `IQueryable` e o básico de `Task`. É a base que separpa quem entende ASP.NET Core de quem só copia `public class` de tutorial.

**.NET (moderno) e ASP.NET Core.** A vaga de backend brasileira vem com .NET 8 ou 9 (o ".NET" sem "Core" e sem "Framework" no nome é a versão moderna, multiplataforma e open source). Injeção de dependência nativa, Web API, middleware, configuração com `appsettings.json`, minimal API e roteamento. Sem ASP.NET Core, o portfólio fica difícil de defender num time que usa ASP.NET Core.

**Entity Framework Core.** O ORM padrão do ecossistema. Entidade, `DbContext`, migração (`dotnet ef migrations add`), consulta com LINQ, relacionamento e o problema clássico de N+1. É onde o junior mais tropeça em entrevista e em código real.

**SQL Server.** O banco default do mundo .NET corporativo brasileiro. T-SQL, `JOIN`, `GROUP BY`, índice, procedure e modelo relacional na mão — não só o que o EF Core gera. PostgreSQL também aparece (e cresce), mas SQL Server segue dominando a vaga de banco.

**Git, pull request e teste.** Git de verdade (branch, commit, merge, PR), code review e teste com xUnit ou NUnit mais Moq. Mais importante do que framework específico.

**Azure e pipeline (noção).** Como .NET e Azure nasceram da mesma casa, muita vaga corporativa pede noção de Azure App Service, Azure DevOps (repositório + pipeline) e Application Insights para ler log e erro. Não precisa virar arquiteto de cloud; precisa saber que esses caras existem e onde o seu código roda.

**Ferramenta de build e IDE.** Visual Studio, VS Code com extensão C# ou Rider (JetBrains). NuGet como gerenciador de pacote. `dotnet build`, `dotnet run`, `dotnet test` no terminal.

O que costuma **não** aparecer na vaga de junior de verdade: arquitetura hexagonal decorativa, microserviço em grande escala, design pattern catalogado, Kubernetes avançado, mensageria complexa com RabbitMQ ou Kafka. Se a vaga de ".NET junior" pede cinco anos e tudo isso, ela não é junior; pule. O guia de [vaga fake junior: como identificar](/blog/fake-junior-como-identificar/) ajuda a separar rótulo inflado de oportunidade real.

## o caminho de aprendizado (com timeline honesta)

A armadilha clássica é pular a linguagem direto pro framework. Quem estuda ASP.NET Core sem entender C# e LINQ termina conseguindo rodar um tutorial e sem saber explicar o que `Task` ou `IQueryable` faz. Estude em camadas, numa ordem que fecha vaga.

**Mês 1 — C# core.** Variável, controle de fluxo, orientação a objeto (classe, interface, herança, polimorfismo), `LINQ`, generics, `async`/`await`, exceção e coleção. Faça exercício pequeno todo dia; não passe pra ASP.NET Core enquanto não souber explicar a diferença entre `IEnumerable` e `IQueryable`.

**Mês 2 — SQL Server e Git.** Banco relacional na mão: `SELECT`, `JOIN`, `GROUP BY`, subconsulta, `procedure` básica e modelo de tabela. Em paralelo, Git de verdade: branch, commit, merge, pull request. São duas skills que aparecem em toda vaga .NET e que curso de C# costuma ignorar.

**Mês 3 — ASP.NET Core + EF Core.** Agora sim. Sobe uma Web API, conecta no SQL Server (ou PostgreSQL) com EF Core, escreve entidade e `DbContext`, cria migração, trata exceção com middleware. É aqui que a base de C# e SQL se junta.

**Mês 4 — Teste e projeto.** xUnit ou NUnit, Moq, teste de unidade e de integração. Comece o primeiro projeto de portfólio agora, não depois. Código com teste vale muito mais do que código bonito sem teste.

**Mês 5 a 6 — Portfólio, Azure básico e candidatura.** Termine 3 projetos, organize o GitHub, monte o currículo, adicione noção de Azure App Service e pipeline, e comece a aplicar com método. A candidatura boa começa antes do botão de aplicar — leia [como aplicar para vaga tech nas primeiras 48h](/carreira/aplicar-vaga-tech-48h/).

É um caminho de 4 a 6 meses pra quem estuda com regularidade, não fim de semana soltos. Antes de começar, vale conferir se C# .NET é mesmo a stack certa pra você com o guia de [como escolher stack para a primeira vaga tech](/carreira/escolher-stack-primeira-vaga-tech/).

## portfólio C# .NET que abre vaga junior (e o que quebra a credibilidade)

Recrutador e pessoa técnica olham três coisas: código que roda, teste que prova e README que explica decisão. Se falta um dos três, o projeto parece exercício de curso. Três especificações que funcionam:

1. **Web API com ASP.NET Core, EF Core, migração e teste.** Domínio pequeno (pedido, cliente, produto), endpoints de criar/listar/buscar, tratamento de erro com middleware, migração com EF Core e teste de integração subindo banco em memória (`InMemory` ou `Testcontainers` com SQL Server). Mostre que você pensa em erro, versão de schema e teste — não só em "funciona na minha máquina".
2. **Um serviço onde você conserta um N+1 de propósito.** Crie o problema, mostre o log de query repetida que o EF Core gerou, resolva com `Include`/`ThenInclude` ou `AsNoTracking` e projection, e escreva no README o antes e depois. Esse é o projeto que separa quem copiou tutorial de quem entendeu EF Core — o equivalente .NET do problema clássico de JPA em Java.
3. **Um job de importação em lote (background service).** Leia CSV ou JSON, valide campo, persista no banco com EF Core e gere relatório dos registros que falharam. Parece trabalho real de junior em sistema corporativo — e é o tipo de entrega que quase ninguém coloca no portfólio. Se quiser mostrar noção de pipeline, rode o `dotnet test` e o build num GitHub Actions simples e cole o badge verde no README.

O que quebra credibilidade: clone de to-do list sem teste; "API de produtos" sem README, sem tratamento de erro e sem migração; repositório com `master` cheio de `commit final`, `commit final mesmo` e `agora vai`. O guia de [portfólio com 3 projetos certos](/carreira/portfolio-3-projetos/) aprofunda a estrutura de README e entrega, e o de [GitHub que recrutador olha vs GitHub que dev olha](/carreira/github-junior/) mostra o que faz um repositório parecer vivo. Para transformar isso em página objetiva, leia [primeiro CV tech sem experiência](/carreira/primeiro-cv-sem-experiencia-tech/).

## o teste técnico de C# .NET junior de verdade

O teste costuma ter três formatos: take-home (implementar endpoint ou serviço), live coding (consulta em LINQ, lógica com `async`/`await` ou manipulação de coleção ao vivo) e case de sistema (desenhar modelo e justificar). O erro mais comum é tentar entregar tudo e capengar na metade. O acerto é escopo pequeno, código que roda e limite honesto.

O que costuma cair de .NET específico:

- implementar um endpoint REST (controller ou minimal API) que cria e busca recurso;
- mapear entidade com EF Core, escrever uma consulta em LINQ e explicar por que ela gera (ou não gera) N+1;
- lógica com `LINQ` (`SelectMany`, `GroupBy`, `Where`) e manipulação de coleção;
- escrever teste de unidade com xUnit e Moq;
- explicar, em voz alta, o que é injeção de dependência nativa do ASP.NET Core, a diferença entre `Task` e `Thread`, o que `async`/`await` faz de verdade e por que `IQueryable` adia a execução da query.

Para o live, leia [entrevista técnica junior](/carreira/entrevista-tecnica-junior/). Para o take-home e o case, o roteiro de [teste técnico para junior](/carreira/teste-tecnico-junior/) vale ouro — o conselho de limitar escopo antes de começar pesa dobrado em .NET, onde é fácil se perder em camada de serviço, repositório e validação. Depois do teste, o [debrief de teste técnico junior](/carreira/debrief-teste-tecnico-junior/) ajuda a transformar resultado em ajuste.

## onde achar vaga real (e como ler o título)

Abra o [eu.dev.br](/vagas/) e busque por "C#", ".NET", "ASP.NET" e "backend .NET", ou comece pela lista de [vagas de back-end remoto](/vagas/backend-remoto/) (atualizada 2x por dia). Empresas brasileiras que costumam ter pipeline de junior em .NET: bancos e fintech (Itaú, Bradesco, Banco do Brasil, BTG Pactual, Sicredi, Sicoob, Banco Inter), integradora e consultoria (Stefanini, CI&T, Accenture, TIVIT, Sonda, GFT, Cognizant, Encora, Capgemini, Deloitte, Talan), governo (Serpro, Dataprev) e varejo e ERP (TOTVS, B3). Quando a vaga aparecer, leia o corpo:

- se pede cinco anos no título "junior", não é junior de verdade;
- se a descrição inteira é sobre .NET Framework 4.x legado em Windows sem plano de modernização, pergunte na entrevista qual versão o time usa — passar dois anos só em código antigo te trava no mercado;
- se o anúncio mistura "dev .NET junior" com "pleno/sênior" e empilha Angular, React, Azure, Kafka e Docker no "desejável", costuma ser triagem inflada; separe o que é pré-requisito real do que é lista de desejo.

Monte rotina de candidatura com o guia de [rotina semanal de fontes para vaga junior](/carreira/rotina-fontes-vagas-junior/), filtre remoto real com [como filtrar vaga remota junior](/carreira/filtrar-vaga-remota-junior/) e monte um [perfil Gupy para junior](/carreira/como-montar-perfil-gupy-junior/), porque muita triagem de banco e consultoria roda em plataforma brasileira. Se estiver entre estágio, trainee e vaga junior, leia [trainee, estágio ou vaga junior](/carreira/trainee-estagio-vaga-junior/) para decidir a porta certa.

## C# e .NET vale como primeira stack?

Vale, com dois poréns honestos. .NET abre muita vaga de backend no Brasil — em volume, perde só para Java no mundo corporativo — e por isso é uma das portas mais estáveis pra quem quer entrar como dev. A vantagem é volume e estabilidade; o custo é que muita vaga está em sistema grande, antigo e regulado, com ritmo e burocracia próprios.

Primeiro ponto de atenção: a armadilha do legado. Ainda existe muito projeto brasileiro rodando .NET Framework 4.x (o antigo, só Windows) e C# antigo, em processo de migração para .NET moderno (8/9). Antes de aceitar, pergunte a versão e o plano de modernização; passar dois anos só em .NET Framework 4.x sem migrar te trava. Segundo ponto: o estereótipo de ".NET é coisa de banco fechado e lento" ficou para trás. Desde 2016 o .NET é multiplataforma, open source e roda em Linux; a maioria das vagas modernas já é .NET 8/9 em container. Mas em startup e produto novo, Node.js, Python e Go podem aparecer mais — nesse terreno .NET pesa menos. Para comparar com outra porta de backend grande, leia o guia de [Java junior](/carreira/java-junior-brasil/); para o lado startup, [vagas de JavaScript remoto](/vagas/javascript-remoto/).

Se você ainda não fechou a stack, leia [como escolher stack para a primeira vaga tech](/carreira/escolher-stack-primeira-vaga-tech/). Para comparar portas de backend no mercado real, abra [vagas de back-end remoto](/vagas/backend-remoto/) e [vagas de dev junior remoto](/vagas/junior-remoto/).

## salário: o que esperar na entrada

Faixa de entrada de dev .NET junior varia bastante por contrato (CLT vs PJ), porte da empresa e região, e costuma subir quando você domina ASP.NET Core e vira a pessoa do serviço no time. Vaga de banco e de órgão público costuma ser CLT com benefício (e ritmo próprio); consultoria e integradora misturam CLT e PJ. Os números mudam e dependem de negociação — por isso o melhor movimento é ler [salário junior no Brasil](/carreira/salario-junior-brasil/) para o contexto de contrato e região, e [pretensão salarial para vaga junior](/carreira/pretensao-salarial-vaga-junior/) antes de responder faixa num processo. Para entender a diferença entre CLT, PJ e estágio antes de aceitar, leia [CLT vs PJ vs estágio](/carreira/clt-vs-pj-vs-estagio/).

## se você vem de outra área

Quem vem de engenharia, exatas, administração, suporte de sistema ou análise de negócio leva vantagem real em .NET backend: muito projeto é sistema grande com regra de negócio pesada, processo claro e regulação, e quem já pensou assim se adapta rápido. É comum entrar como dev .NET junior vindo dessas áreas sem curso tech formal. O guia de [transição de carreira para tech](/carreira/transicao-carreira-tech-junior/) mostra como transformar esse histórico em evidência em vez de desculpa, e o [primeiro CV tech sem experiência](/carreira/primeiro-cv-sem-experiencia-tech/) ajuda a reposicionar trabalho anterior como prova de raciocínio e entrega.

## para onde .NET cresce (e como não travar)

Vale saber o caminho depois da entrada. A progressão natural em .NET é virar pleno (dono de módulo, design de serviço), depois sênior (arquitetura de solução, performance, integração). Os saltos comuns a partir daí são cloud/DevOps (Azure é a porta natural — App Service, Functions, Azure DevOps, container), arquitetura (microserviço, DDD, mensageria) ou especialização em dados/IA com C# + ML.NET ou Python ao lado. Quem quer crescer rumo a cloud sem virar sênior antes da hora pode seguir o roteiro de [DevOps e cloud para junior](/carreira/devops-cloud-junior/) (Linux, Docker, pipeline, AWS/Azure). O ponto não é acumular certificação Microsoft; é virar a pessoa do serviço antes de virar a pessoa da arquitetura.

## o resumo prático

- Entenda o cargo: dev .NET junior entrega feature em ASP.NET Core, escreve consulta em LINQ com EF Core, faz teste e abre PR pequeno.
- Estude na ordem: C# core e LINQ primeiro, depois SQL Server e Git, depois ASP.NET Core + EF Core, depois teste.
- Faça 3 projetos com código que roda, migração que prova e README que explica decisão — incluindo um que conserte N+1 de propósito.
- Antes de aceitar, pergunte a versão do .NET do time — fuja de .NET Framework 4.x sem plano de modernização.
- Leia o corpo da vaga, não só o título; pule anúncio que pede cinco anos no "junior".

C# e .NET não é a stack mais nova, nem a mais falada em startup. É a que mais sustenta sistema grande de banco, consultoria e governo no Brasil — e por isso continua sendo uma das portas mais estáveis pra quem quer entrar como dev backend junior. A vaga existe em quantidade; o que falta pra muita gente é a base certa da linguagem e um portfólio que se explique sozinho.
