Quatro habilidades para se tornar um desenvolvedor web back-end \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 02 Horas 

 04 Min 

 30 Seg 

   Tempo restante da oferta: 02 04 30 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Quatro habilidades para se tornar um desenvolvedor web back-end  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

# Quatro habilidades para se tornar um desenvolvedor web back-end

 Conheça as habilidades necessárias para se tornar um bom desenvolvedor web back-end.

 [ Wladimilson M. Nascimento ](https://www.treinaweb.com.br/blog/autor/wladimilson-m-nascimento) 8 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/08/17172630/desenvolvedor-web.png)  

Atualmente muito se escuta que um desenvolvedor precisa ser full-stack, conhecer um pouco de tudo. Mas não é de agora que esse conhecimento é requerido do desenvolvedor web, vem de muito tempo já. Mesmo que seja “apenas” back-end, o desenvolvedor web precisa:

- Escrever o HTML que apresentará os dados do usuário;
- Criar uma aplicação web que responda as solicitações do usuário;
- Persistir os dados do usuário em uma base de dados;
- Fornecer dados por APIs de acesso;
- Manter a aplicação sempre atualizada;

Neste artigo falei das quatro habilidades principais que um desenvolvedor necessita possuir caso queria ser um desenvolvedor back-end completo.

## Primeira habilidade: conhecer uma linguagem de programação.

Vamos começar com um exemplo de uma aplicação web “simples”:

```csharp
using System;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;

namespace WebApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            WebHost.CreateDefaultBuilder(args)
                .Configure(app => 
                {
                    app.Run(async (context) =>
                    {
                        await context.Response.WriteAsync("Bem-vindo ao site!");
                    });
                })
                .Build().Run();
        }
    }
}

```

Ao ser executada, a aplicação acima irá responder a qualquer requisição com a mensagem “Bem-vindo ao site!”:

![](https://dkrn4sk0rn31v.cloudfront.net/2018/08/03172728/bem-vindo.png)

Escolhi desenvolver esta aplicação em uma linguagem de programação chamada C#, em conjunto como o framework .NET Core. Mas uma aplicação web simples, pode ser criada com uma grande gama de linguagens de programação: Java, JavaScript, Python, PHP, Ruby, entre muitas outras.

Quando o navegador acessa a aplicação, é gerado uma requisição no servidor e este se encarrega de chamar o código correspondente, que irá processar a requisição e retornar uma resposta. Esta resposta é enviada pelo servidor para o navegador do usuário.

[  ![C# (C Sharp) Básico](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/csharp.svg)   Curso C# (C Sharp) Básico Conhecer o curso ](https://www.treinaweb.com.br/curso/csharp-basico)

Para aprender como lidar com este processo é importante é conheça uma linguagem de programação que permita isso.

## Segunda habilidade: Banco de dados e SQL

Caso a nossa aplicação seja um blog, isso poderia ser traduzido como a necessidade de armazenar artigos e exibi-los quando o usuário acessar a página.

Para isso, vamos definir um banco de dados. Pense no banco de dados como uma coleção de planilhas, onde cada tabela do banco é uma planilha, com dados salvos em linhas e colunas.

Para a aplicação, foi definida a tabela abaixo:

![](https://dkrn4sk0rn31v.cloudfront.net/2018/08/03172727/tabela.png)

Para exibir o conteúdo desta tabela, é necessário modificar a aplicação:

```csharp
using System;
using System.Linq;
using System.Net;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Data.Sqlite;
using System.Text;

namespace WebApp
{
    public class Program
    {
        public struct Article
        {
            public string Title;
            public string Content;
        }
        public static void Main(string[] args)
        {

            WebHost.CreateDefaultBuilder(args)
                .Configure(app => 
                {
                    app.Run(async (context) =>
                    {

                        context.Response.ContentType = "text/html; charset=utf-8";

                        var content = new StringBuilder("");
                        foreach(var article in Articles())
                            content.Append($"{article.Title}{article.Content}");
                        content.Append("");

                        await context.Response.WriteAsync(content.ToString());
                    });
                })
                .Build().Run();
        }

        public static List Articles() {
            var articles = new List();
            using (var connection = new SqliteConnection(new SqliteConnectionStringBuilder
                        {
                            DataSource = "data.db"
                        }.ToString()))
                {

                    connection.Open();

                    var command = connection.CreateCommand();
                    command.CommandText = "SELECT * FROM Article";
                    using (var reader = command.ExecuteReader())
                    {
                        Console.WriteLine(reader.RecordsAffected);
                        while (reader.Read())
                        {
                            Console.WriteLine(reader.ToString());
                            articles.Add(new Article { Title = reader["title"].ToString(), Content = reader["content"].ToString()});
                        }
                    }
            }

            return articles;
        }
    }
}

```

Para obter as informações do banco de dados utilizamos uma linguagem chamada de SQL (Structured Query Language):

```sql
SELECT * FROM Article

```

Ela basicamente informa ao banco que queremos obter todo conteúdo da tabela `Article`: os dados das colunas `title` e `content`. Ao executar a aplicação, este conteúdo é exibido no navegador:

![](https://dkrn4sk0rn31v.cloudfront.net/2018/08/03172730/banco-de-dados.png)

Existem vários sistemas de gerenciamento de banco de dados: MySQL, PostgreSQL, SQL Server, Oracle, entre outros. Mas todos funcionam de uma forma muito parecida, ou seja, salvam dados em linhas e colunas de tabelas.

As aplicações não possuem conteúdo estático. Elas não serão como o exemplo acima, que sempre retorna a mesma mensagem. É importante que a aplicação possa armazenar informações, geralmente informadas pelos usuários e exibi-las no navegador.

[  ![Kotlin com Android - Primeiros Passos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/kotlin.svg)   Curso Kotlin com Android - Primeiros Passos Conhecer o curso ](https://www.treinaweb.com.br/curso/kotlin-com-android-primeiros-passos)

Como as aplicações não possuem apenas conteúdo estático, é importante que elas armazenem informações, geralmente informadas pelos usuários, e que as exibi-las no navegador. Assim como a nossa aplicação.

Como deve ter notado, aprender SQL é outra habilidade importante do desenvolvedor back-end.

## Terceira habilidade: HTML

A aplicação está exibindo o conteúdo no navegador, mas ele não está muito bonito. Para melhorar isso, definirei um template, que utilizará HTML (HyperText Markup Language).

O HTML é uma linguagem de marcação, utilizada para formatar os dados que são exibidos no navegador. Na aplicação, ele será utilizado para formatar a exibição dos artigos do blog:

```razor
@model IEnumerable

    Aplicação web simples! - Blog

        @foreach (var article in Model){
            @article.Title
            @article.Content
        }

```

Para mesclar isso com os dados vindos do banco, é necessário modificar o código:

```csharp
using System;
using System.Linq;
using System.Net;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Data.Sqlite;
using System.Text;
using RazorLight;

namespace WebApp
{
    public class Program
    {
        public struct Article
        {
            public string Title;
            public string Content;
        }
        public static void Main(string[] args)
        {
            var engine = new RazorLightEngineBuilder()
                            .UseEmbeddedResourcesProject(typeof(Program))
                            .UseMemoryCachingProvider()
                            .Build();

            WebHost.CreateDefaultBuilder(args)
                .Configure(app => 
                {
                    app.Run(async (context) =>
                    {

                        context.Response.ContentType = "text/html; charset=utf-8";

                        string result = await engine.CompileRenderAsync("Home.cshtml", Articles());

                        await context.Response.WriteAsync(result);
                    });
                })
                .Build().Run();
        }

        public static List Articles() {
            var articles = new List();
            using (var connection = new SqliteConnection(new SqliteConnectionStringBuilder
                        {
                            DataSource = "data.db"
                        }.ToString()))
                {

                    connection.Open();

                    var command = connection.CreateCommand();
                    command.CommandText = "SELECT * FROM Article";
                    using (var reader = command.ExecuteReader())
                    {
                        Console.WriteLine(reader.RecordsAffected);
                        while (reader.Read())
                        {
                            Console.WriteLine(reader.ToString());
                            articles.Add(new Article { Title = reader["title"].ToString(), Content = reader["content"].ToString()});
                        }
                    }
            }

            return articles;
        }
    }
}

```

Agora ao executar a aplicação, ela exibirá os artigos em um melhor formato:

![](https://dkrn4sk0rn31v.cloudfront.net/2018/08/03172729/formatado.png)

Todo site possui HMTL, porque é isso que o navegador espera. Os desenvolvedores front-end são os responsáveis por definí-lo, mas mesmo que o desenvolvedor back-end não mexa muito nele, é importante que tenha conhecimento de HTML.

[  ![Scrum - Planejamento e Desenvolvimento Ágeis](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/scrum.svg)   Curso Scrum - Planejamento e Desenvolvimento Ágeis Conhecer o curso ](https://www.treinaweb.com.br/curso/scrum-planejamento-e-desenvolvimento-ageis)

## Quarta habilidade: JSON ou XML

Os navegadores não são os únicos programas que podem se comunicar com uma aplicação web. Cada vez mais, empresas disponibilizam aplicativos móveis que se comunicam com a aplicação. Ou definem aplicações baseadas no JavaScript (através de frameworks como React, Vue, Angular), que só possuem o front-end e obtém os dados de uma interface, comumente chamada de API.

O HTML é bom para formatar os dados que serão apresentados em um navegador, mas quando esses dados precisam ser enviados para outra aplicação, é necessário utilizar outro formato. Os dois formatos mais populares são XML (eXtensible Markup Language) e JSON (JavaScript Object Notation). Esses formatos foram criados para facilitar o envio de dados entre aplicações.

Nesses dois formados, os artigos do blog são representados da seguinte forma:

XML:

```xml

      Primeiro post
      Este é o primeiro post do nosso blog.

      O poder do C#
      Um site criado utilizando apenas um arquivo de código.

```

JSON:

```json
[{"Title":"Primeiro post","Content":"Este é o primeiro post do nosso blog."},{"Title":"O poder do C#","Content":"Um site criado utilizando apenas um arquivo de código."}]

```

Para que a aplicação retorne os dados em um desses formatos, ela será modificada para:

```csharp
using System;
using System.Linq;
using System.Net;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Data.Sqlite;
using System.Text;
using RazorLight;
using Newtonsoft.Json;

namespace WebApp
{
    public class Program
    {
        public struct Article
        {
            public string Title;
            public string Content;
        }
        public static void Main(string[] args)
        {
            var engine = new RazorLightEngineBuilder()
                            .UseEmbeddedResourcesProject(typeof(Program))
                            .UseMemoryCachingProvider()
                            .Build();

            WebHost.CreateDefaultBuilder(args)
                .Configure(app => 
                {
                    app.Map("/articles.json", conf => {
                        app.Run(async (context) => {
                            context.Response.ContentType = "text/json; charset=utf-8";
                            var result = JsonConvert.SerializeObject(Articles());

                            await context.Response.WriteAsync(result);
                        });
                    });

                    app.Run(async (context) =>
                    {

                        context.Response.ContentType = "text/html; charset=utf-8";

                        string result = await engine.CompileRenderAsync("Home.cshtml", Articles());

                        await context.Response.WriteAsync(result);
                    });
                })
                .Build().Run();
        }

        public static List Articles() {
            var articles = new List();
            using (var connection = new SqliteConnection(new SqliteConnectionStringBuilder { DataSource = "data.db" }.ToString()))
                {
                    connection.Open();

                    var command = connection.CreateCommand();
                    command.CommandText = "SELECT * FROM Article";
                    using (var reader = command.ExecuteReader())
                    {
                        Console.WriteLine(reader.RecordsAffected);
                        while (reader.Read())
                        {
                            Console.WriteLine(reader.ToString());
                            articles.Add(new Article { Title = reader["title"].ToString(), Content = reader["content"].ToString()});
                        }
                    }
            }

            return articles;
        }
    }
}

```

Agora, ao executá-la e ao acessar o caminho `/articles.json`, os dados são exibidos em JSON:

![](https://dkrn4sk0rn31v.cloudfront.net/2018/08/03172726/api.png)

Mesmo que as APIs possam ser acessadas no navegador, o seu principal beneficio, e objetivo, é quando são acessadas por outras aplicações. Assim, atualmente cada vez mais saber definir e utilizar APIs é uma importante habilidade.

[  ![XML Completo](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/xml.svg)   Curso XML Completo Conhecer o curso ](https://www.treinaweb.com.br/curso/xml-completo)

## Onde aprender essas habilidades

Agora que você sabe quais são as habilidades mais importantes, pode estar pensando, “Onde vou aprender isso?”. Aqui na TreinaWeb temos cursos focados nos quatro pontos acima:

- Temos cursos para várias linguagens: [C#](https://www.treinaweb.com.br/curso/csharp-basico), [Java](https://www.treinaweb.com.br/curso/java-fundamentos), [PHP](https://www.treinaweb.com.br/curso/php-basico), [Python](https://www.treinaweb.com.br/curso/python-fundamentos), [Ruby](https://www.treinaweb.com.br/curso/ruby-on-rails-basico), entre outras;
- Temos cursos para banco de dados: [SQL Server](https://www.treinaweb.com.br/curso/sql-server-desenvolvedor), [MySQL](https://www.treinaweb.com.br/curso/mysql-desenvolvedor), [PostgreSQL](https://www.treinaweb.com.br/curso/postgresql-desenvolvedor) e [Oracle](https://www.treinaweb.com.br/curso/oracle-desenvolvedor);
- Cursos de [HTML](https://www.treinaweb.com.br/curso/desenvolvimento-web-com-html5-e-css3-basico);
- Também temos cursos de [XML](https://www.treinaweb.com.br/curso/xml-completo).

Autor

 ![Wladimilson M. Nascimento](//secure.gravatar.com/avatar/f0dd442f156a3eacd2880e9cd0eafbd1?d=mm)

## Wladimilson M. Nascimento

 Instrutor, nerd, cinéfilo e desenvolvedor nas horas vagas. Graduado em Ciências da Computação pela Universidade Metodista de São Paulo. 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/wladimilson-m-nascimento)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/10/5-dicas-para-conseguir-um-bom-estagio-400x280.png)  [ Carreira ](https://www.treinaweb.com.br/blog/categoria/carreira) 

     5 anos atrás

    ##  [ 5 dicas para conseguir um bom estágio ](https://www.treinaweb.com.br/blog/5-dicas-para-conseguir-um-bom-estagio) 

     Conquistar a primeira experiência profissional para adquirir experiência na área pode parecer difícil - e às vezes é mesmo. Por isso, separamos algumas ações simples, para tentar facilitar essa busca e te ajudar a conseguir as oportunidades da melhor maneira.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/08/POWER-SKILLS-400x280.png)  [ Carreira ](https://www.treinaweb.com.br/blog/categoria/carreira) 

     4 anos atrás

    ##  [ Power skills: principais habilidades que você deve desenvolver ](https://www.treinaweb.com.br/blog/power-skills-principais-habilidades-que-voce-deve-desenvolver) 

     Além da importância no mercado, este termo adquiriu mais habilidades e um novo nome: power skills, que é o que abordaremos neste artigo.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2017/06/scrum-como-ferramenta-de-apoio-ao-gerenciamento-de-projetos-400x280.png)  [ Scrum ](https://www.treinaweb.com.br/blog/categoria/scrum) 

     10 anos atrás

    ##  [ Scrum como ferramenta de apoio ao gerenciamento de projetos ](https://www.treinaweb.com.br/blog/scrum-como-ferramenta-de-apoio-ao-gerenciamento-de-projetos) 

     Você conhece a metodologia Scrum? Sabe como utilizá-la corretamente?

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/06/27092256/kanban-3-400x280.png)  [ Engenharia de Software ](https://www.treinaweb.com.br/blog/categoria/engenharia-de-software) 

     9 anos atrás

    ##  [ Princípios básicos do Kanban ](https://www.treinaweb.com.br/blog/principios-basicos-do-kanban) 

     Conheça um pouco sobre os princípios básicos do Kanban.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/09/EVENT-STORMING-400x280.jpg)  [ Arquitetura de Software ](https://www.treinaweb.com.br/blog/categoria/arquitetura-de-software) 

     4 anos atrás

    ##  [ O que é o Event Storming? ](https://www.treinaweb.com.br/blog/o-que-e-o-event-storming) 

     Em situações complexas, pode ser complicado enxergar as fronteiras entre domínios, subdomínios e bounded contexts. Para auxiliar nessa missão, existe uma técnica que pode ser utilizada: trata-se do Event Storming.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/lean-ux-como-potencializar-o-foco-na-experiencia-do-usuario-parte-1-400x280.png)  [ Acessibilidade e User Experience (UX) ](https://www.treinaweb.com.br/blog/categoria/acessibilidade-e-user-experience-ux) 

     6 anos atrás

    ##  [ Lean UX: como potencializar o foco na experiência do usuário - parte 1 ](https://www.treinaweb.com.br/blog/lean-ux-como-potencializar-o-foco-na-experiencia-do-usuario-parte-1) 

     Uma ótima experiência do usuário é essencial para o sucesso de qualquer projeto. Conheça neste artigo o Lean UX e como potencializar seus resultados.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/03/01111116/jogo-feito-400x280.png)  [ Desenvolvimento de Jogos ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-de-jogos) 

     9 anos atrás

    ##  [ Como um jogo digital é criado? ](https://www.treinaweb.com.br/blog/como-um-jogo-digital-e-criado) 

     Veja nesse artigo como um jogo digital é criado e os principais conceitos envolvidos.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2017/06/novidades-do-android-o-para-desenvolvedores-400x280.png)  [ Android ](https://www.treinaweb.com.br/blog/categoria/android) 

     10 anos atrás

    ##  [ Novidades do Android O para desenvolvedores ](https://www.treinaweb.com.br/blog/novidades-do-android-o-para-desenvolvedores) 

     O Google está a todo vapor para lançar o Android O. Porém, antes mesmo do lançamento oficial, já é possível conferir as novidades.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/firebase-1-400x280.png)  [ Computação em nuvem ](https://www.treinaweb.com.br/blog/categoria/computacao-em-nuvem) 

     10 anos atrás

    ##  [ Firebase: descubra no que esta plataforma pode te ajudar ](https://www.treinaweb.com.br/blog/firebase-descubra-no-que-esta-plataforma-pode-te-ajudar) 

     O Firebase é uma plataforma do Google que contém um conjunto de ferramentas e infraestrutura para ajudar no desenvolvimento web e mobile.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/05/08155634/capa-primeiroemprego-400x280.png)  [ Carreira ](https://www.treinaweb.com.br/blog/categoria/carreira) 

     8 anos atrás

    ##  [ Como conseguir o primeiro emprego na área de TI? ](https://www.treinaweb.com.br/blog/como-conseguir-o-primeiro-emprego-na-area-de-ti) 

     Você está estudando, mas ainda não conseguiu encontrar o primeiro emprego na sua área? Confira neste artigo algumas dicas de como acelerar esse procedimento para entrar no mercado de trabalho.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/02/12200152/serverless-400x280.png)  [ Computação em nuvem ](https://www.treinaweb.com.br/blog/categoria/computacao-em-nuvem) 

     8 anos atrás

    ##  [ Serverless: uma introdução ](https://www.treinaweb.com.br/blog/serverless-uma-introducao) 

     Nesse artigo uma introdução à arquitetura Serverless e um pouco sobre o AWS Lambda, um dos principais serviços do mercado.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/02/08152035/capa-TENDÊNCIAS-2019-400x280.png)  [ Carreira ](https://www.treinaweb.com.br/blog/categoria/carreira) 

     8 anos atrás

    ##  [ Tendências de TI para 2019 ](https://www.treinaweb.com.br/blog/tendencias-de-ti-para-2019) 

     Confira neste artigo quais são as tendências de tecnologia para este ano.

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **02h 04min 30s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
