Iniciando no desenvolvimento de software
Tags: beginners, programming
Published: 2022-04-22 17:03:37

Nesse post vou responder algumas dúvidas recorrentes de quem deseja entrar na área de desenvolvimento de software, por onde começar? qual linguagem aprender? devo estudar lógica de programação, estruturas de dados e algoritmos?

Nas comunidades de programação sempre acontecem várias discussões sobre isso, e um dos problemas que eu mais vejo é que as pessoas recomendam uma linguagem pra quem  está começando sem nem saber o quê ela quer, como por exemplo python por ser simples, ou C por ser a mãe das linguagens e não ter muitas abstrações o que te obriga a fazer muitas coisas que outras linguagens trazem prontas, fazendo assim com que você tenha que entender o que está conhecendo e criar sua própria solução. E isso na minha opnião é um grande equivoco, apesar de serem ótimas linguagens de programação e realmente uma boa opção para começar, mas isso depende do seu contexto. 

Então, para responder essas dúvidas, gostaria de começar dizendo, que linguagens de programação são ferramentas, cada um tem seu objetivo, seus pontos fortes, e seus pontos fracos. antes de escolher uma linguagem devemos escolher uma área de atuação.

## escolhendo uma área de atuação

Dentro de desenvolvimento web temos varias áreas de atuação, como por exemplo:

- Web
- Mobile
- Desktop
- Ciência de dados
- Aprendizagem de Máquina
- Desenvolvimento de jogos

E além dessas existem muitas outras, o primeiro passo para entrar no mundo de desenvolvimento de software é escolher uma área para atuar e baseado nisso escolha as linguagens que são mais usadas para essa área que escolheu.
Para escolher uma área, caso ainda não tenha preferência por nenhuma, eu recomendo que você pesquise um pouco sobre elas e escolha a que mais gostar, mas caso não tenha uma preferência ou seu objetivo seja entrar no mercado de trabalho o mais rápido possível, minha recomendação é desenvolvimento Web.

## Desenvolvimento Web.

Á área de desenvolvimento web é a que possui o maior mercado atualmente, se você deseja entrar no mercado de trabalho com certeza é uma ótima opção.

A web pode ser dividida em duas partes, frontend(interface do site com que o usuário interage) e backend(parte do servidor onde ficam coisas sensíveis ao usuário), mas não vou me aprofundar nesse tópico nesse artigo.

Para iniciar na web, temos a tríade do frontend: HTML, CSS e Javascript. Depois de desenvolver bases sólidas nessas tecnologias você pode aprender uma biblioteca ou framework para construção de SPAs, atualmente o mais usado no mercado é o React.Js.

Depois de frontend você pode estudar backend, e no backend você pode continuar usando javascript com node.js, então você terá uma curva de aprendizagem menor do que se tivesse que aprender outra linguagem

Além disso existem muitas tecnologias amigáveis com desenvolvedores web, para criação de aplicativos mobile.
   
Esse é mais um motivo para eu recomendar a área de desenvolvimento web, além de um mercado muito grande ela é uma área flexível que te abre um grande leque de possibilidades.

Resumindo, as tecnologias que eu recomendo você estudar em desenvolvimento web são: HTML, CSS, Javascript, React e Node.js

## Lógica de programação, algoritmos e estruturas de dados

Essas três coisas são fundamentos essenciais de programação, um problema que vejo, é que recomendam você aprender isso antes de aprender uma linguagem de programação.

Ao invés de estudar isso separadamente, usando uma pseudo linguagem como portugol, ou uma linguagem de verdade como pascal ou c, eu acredito que depois de escolher uma área e uma linguagem você deve estudar todos esses conceitos sim, mas usando a linguagem que você escolheu para trabalhar, todos esses conceitos são aplicados diariamente quando nós programamos, dessa forma você economiza tempo, além de aprender tudo isso na pratica com sua linguagem, você não vai ter uma curva de aprendizagem pra trocar da linguagem que usou para aprender esses conceitos para a linguagem com qual vai começar a trabalhar.

mas caso você opte por começar com lógica, algoritmos e estruturas de dados pra entender melhor como programar antes ou enquanto você não decide sua área de atuação eu recomendo que aprenda esses conceitos usando a linguagem C

a linguagem C é conhecida como mãe das linguagens, grande parte das linguagens modernas que temos hoje em dia forem derivadas e até mesmo escritas em C, podemos encontrar varias semelhanças entre ela e outras linguagens. Ela também é uma que traz poucas abstrações, como citado anteriormente, ela não traz muitas coisas prontas para facilitar sua vida como em outras linguagens, o que vai te obrigar a implementar suas próprias soluções e consequentemente entender de verdade como aquilo funciona. E também vale citar C++, ela é um superset de C que traz o paradigma de orientação a objetos que é um conceito muito importante de se aprender em programação, ela também tem vários outros recursos que não citarei aqui.

Abaixo vou deixar o famoso hello world escrito na linguagem C

```C
#include <stdio.h>

int main(){
    printf("hello world\n");
    return 0;
}
```

## disclaimer

tudo que eu disse aqui é apenas o meu ponto de vista das coisas, cada pessoa aprende de uma forma diferente, e cada pessoa pode seguir um caminho diferente e nem por isso ele está errado.