Por onde começar na programação?
Tags: beginners, frontend, backend, webdev
Published: 2023-04-05 14:47:23


Para começar na programação você deve entender que a principal função de um programador é **resolver problemas**. Para resolver esses problemas são utilizadas ferramentas e algumas dessas ferramentas são as **linguagens de programação**.

Cada linguagem de programação foi pensada para resolver problemas específicos. Vamos pensar em três cenários diferentes:

1 - Um escritor decide que precisa recolher algumas informações dos seus leitores, por exemplo: nome, e-mail, região que mora, livro favorito, etc. Para isso ele irá utilizar um site com um formulário embutido. O site precisa ser fácil de mexer e deve funcionar em todos os navegadores perfeitamente.

Qual profissional será responsável por resolver o problema desse escritor? O **densenvolvedor frontend**, já que ele é responsável por criar as interfaces dos websites.
![Frontend Developer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9zri8ho5tl4vzx347w61.png)

**Principais ferramentas utilizadas no frontend**: HTML, CSS, JavaScript.

2 - Um cientista lançou um satélite no espaço e precisa salvar esses dados no banco de dados para poder acessar mais tarde, não sendo necessária uma interface gráfica.


> 💡 O que é uma Interface Gráfica?
> 
> A Interface Gráfica do Usuário, também conhecida como Graphical User Interface (GUI) é um modelo de interface que permite a interação com dispositivos digitais por meio de **[elementos gráficos](https://victorvision.com.br/blog/pbox-o-kit-de-desenvolvimento-de-lcms/)**.  
> Contendo janelas, menus, ícones, botões e links, é ela que possibilita que usuários visualizem e selecionem arquivos com facilidade.
>
> Resumindo: Tu consegue utilizar o mouse para selecionar as coisas

Qual profissional será responsável por resolver o problema desse cientista? O **desenvolvedor backend**, já que umas das atribuições dele é salvar informações no banco de dados de forma segura e eficiente.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mjrcryt4xn4e8ctlrfda.png)

**Principais ferramentas utilizadas no backend:**

- Alguma linguagem de programação como: C#, Java, Python, Javscript, etc.
- Conhecimento em algum banco de dado: SQL ou noSQL

3-  Uma floricultura quer aguar as plantas automaticamente, para isso será necessário criar uma estrutura física com mangueiras, reservatórios de água, etc e no fim será utilizado um arduíno com uma torneira programável para tornar todo o processo automático.

Qual profissional será responsável por resolver o problema da floricultura? O **desenvolvedor de sistemas embarcados**, já que ele é responsável por programar os sistemas embutidos em microprocessadores. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/afz4r3l8740wuvalqgg6.png)

> 💡 Onde são encontrados os sistemas embutidos em microprocessadores?
>
> Esses sistemas estão em diversos equipamentos utilizados no dia a dia, como: aparelhos de ar condicionado, semáforos, geladeiras mais modernas, microondas, etc.

**Principais ferramentas utilizadas no backend:**

- Alguma linguagem de programação como: C ou Assembly
- Conhecimento em microcontroladores, microprocessadores , componentes eletrônicos e etc.


Existem n outras áreas relacionadas a tecnologia, caso você não tenha se identificado com nenhuma que eu citei acima tente procurar um pouco mais e talvez você encontre a sua profissão ideal.

## Já encontrei uma área que eu goste e agora?

Você precisa se aprofundar em algo então estude bastante. Saiba lidar com os problemas que irão aparecer, por exemplo: “Ai meu código não ta funcionando”, pesquisa no google, pergunte e vá atrás da resposta, não espere pelos outros. A tua pergunta provavelmente já foi respondida milhares de vezes já que o Google possui mais de **3 bilhões** de usuários.

A partir deste artigo eu irei criar uma série de tutoriais para que você consiga ter a base para se virar. Alguns tutoriais que virão a seguir:

### Frontend

- Crie sua primeira web page | HTML, CSS
- Página de login responsiva | HTML, CSS (utilizando o conceito de mobile first)
- Página de login responsiva com validações em javascript

### Backend

- Orientação a objeto com C# (Pode ser aprendido em javascript também)
- Criação de um projeto MVC | C#
- Criação de api e aprendendo a utilizar o postman | C#

> PS: Irei ensinar orientação a objeto com C# porque ela é uma linguagem mais robusta (completa) e nela existem alguns conceitos que você não encontra em JavaScript, então se você migrar de C#  para JS não irá sentir tanta dificuldade.


Não irei ensinar C porque meu objetivo é ensinar o desenvolvimento web, então não faz sentido tu passar meses aprendendo a manipular Strings em C, aprendendo a criar listas encadeadas, etc. Sendo que tu não vai precisar de nada disso inicialmente.