Por onde começar na programação?

Como você pode iniciar na programação tendo tantas opções de linguagens e tecnologias?
stack programação

Se você é novo no mundo da programação, muito provavelmente essa é uma de suas dúvidas mais difíceis.

Antes de você embarcar de vez neste mercado, é interessante que você tenha clareza em seus objetivos para saber por onde deve começar.

O primeiro passo é escolher um segmento e ir aprendendo as linguagens necessárias para aquele segmento, uma linguagem por vez, um segmento (ou stack) por vez. Fique bom naquele segmento, domine-o, para só assim seguir para o próximo (se assim desejar) e se tornar um desenvolvedor full-stack.

Se este é seu objetivo, como funciona cada Stack? E como você pode decidir qual linguagem aprender em cada uma dela? Vamos iniciar aprendendo sobre as principais stacks do mercado.


Conceito de Stack

Stack é um conjunto de tecnologias que usamos para desenvolver nossos softwares ou projetos. Trata-se de tudo que você irá precisar para obter determinado resultado para o usuário final. E são basicamente duas stacks que existem: o front-end e o back-end.

Para que você entenda de maneira bem grosseira, imagine tudo que se está envolvido em vender uma roupa. Para que essa ação possa ser realizada, uma pessoa ou grupo trabalhou para fabricar essa roupa e uma pessoa ou grupo trabalhou para vendê-la. Se desconsiderarmos diversos outros pormenores nesse exemplo (como logística), definiremos apenas dois grandes processos (ou stacks) para que a roupa chegue até o consumidor final: a fabricação e a venda. Se a mesma pessoa fabrica a roupa e a vende, ela domina todos os processos da venda de roupa (o que comparado no mundo da programação, seria o profissional full-stack).

Da mesma maneira, para a construção de um projeto, é normal que uma pessoa ou mais trabalhe em diferentes stacks (partes) do mesmo projeto, ou uma pessoa apenas fará todas as partes. Iremos agora destrinchar com mais detalhes o que está envolvido em cada uma delas.


Front-end

front-end

front-end é tudo que está envolvido e tudo que é pensado para uma melhor experiência com o usuário final. Está ligada a criação de uma interface agradável, as linguagens e os frameworks necessários para se cumprir tais tarefas.

Em outras palavras, quando você acessa um site ou uma aplicação web ou mobile, o que você vê na interface foi feito com a utilização de tecnologias front-end.

Para exemplificar, considere essa página web. Tudo que está nela (os textos, os links, as imagens), cada parágrafo, a fonte, tudo isso está aqui devido a uma linguagem chamada HTML (linguagem de marcação), em forma de tags.

Para proporcionar uma melhor entrega visual para o usuário final, não apenas o HTML (parte estrutural do site) é importante. É necessário que haja cores, formatações de estilos e diversas orientações de como as linhas do HTML irão se comportar e serão dispostas para formar o site. Quem concede essa identidade visual para uma página é o CSS (linguagem de folhas de estilo). Se pensarmos novamente neste site, notamos os detalhes em azul, a cor de fundo da página, o tamanho e a escolha da fonte do texto, do cabeçalho, do rodapé e dos títulos. Essa identidade visual existe graças ao CSS.

Se repararmos mais no nosso site, veremos que na página inicial há um slider, uns comportamentos diferentes de partes do site quando acessado de dispositivos de tamanhos diferentes (como o menu, por exemplo), efeitos em scroll, e muito mais. Tudo isso só é possível pelo uso do JavaScript (Linguagem de programação). O que não conseguirmos fazer em site usando HTML e CSS, recorremos ao poderoso JavaScript e suas muitas bibliotecas.

E por falar nas bibliotecas e frameworks que temos para desenvolvimento front-end, existem diversas delas! Cada uma com sua peculiaridade, seus pontos positivos e negativos. Algumas das mais famosas são jQueryAngularJSReactBootstrap, e muitas outras.

Mas antes que você desista de vez da programação, ou de se tornar um desenvolvedor Front-end ou Full-Stack, eu tenho que lhe dizer que você não vai precisar dominar e usar tudo que citamos aqui. Muitas vezes, os frameworks tem funcionalidades semelhantes, as bibliotecas são bem completas e uma ou outra linguagem você irá mais manipular do que ter que digitar linha por linha.

Com o tempo, você perceberá qual framework ou linguagem usar em quais projetos, dependendo da necessidade e algumas vezes, de seu desejo pessoal. Por hora, se concentre em ter uma visão ampla de cada stack.


Back-end

back-end

Se o front-end cuida das interfaces com o usuário, quem é que busca as informações? Isso mesmo, o back-end. O termo significa algo como trabalho dos bastidores, ou seja, quando o usuário digita um endereço, é o back-end (linguagens e tecnologias) que processa aquele endereço e envia os dados para o front-end apresentar na tela.

Como se trata de comunicações nos bastidores, existem as tecnologias back-end para projetos de natureza web (como PHP, PythonNode.js), e também linguagens focadas em comunicações com o desktop ou mobile, para criação de softwares, jogos ou aplicativos (C, C#, Java, C++).

Assim como na linguagem front-end, tudo dependerá do que seu projeto irá exigir. Existem linguagens e tecnologias que funcionam para as duas stacks (como JavaScriptNode.js). Então, antes de definir suas ferramentas de trabalho, entenda tudo que o projeto irá exigir.

Temos um artigo muito interessante que demonstra que linguagens você pode usar em cada stack. Fique a vontade pra ler clicando aqui.


Full-Stack

Agora chegamos ao que, na minha opinião, é a melhor de todas: o Full-Stack, aquele que sabe o caminho das águas das duas stacks. É capaz de ter um olhar crítico e entender o processo inteiro de um determinado projeto.

O desenvolvedor full-stack cria não apenas soluções para o usuário, mas também trata cada requisição feita por ele. Trata-se de um tipo de profissional que é capaz de atuar no front-end e no back-end dos projetos!

Tal profissão está e estará ainda mais em alta no futuro. Indicamos esse caminho simplesmente pelo fato de que nele você dificilmente ficará desempregado.

Mas calma que você não precisa ser bom em tudo (aposto um pipper de que isso nem é possível).

Como vimos, nem o front-end nem o back-end exigem que você utilize todas as linguagens e tecnologias que existem para aquelas stacks em cada projeto. Voltando ao exemplo de roupas, se você fabricar roupas é necessário mesmo que você utilize todos os tipos de tecidos em apenas uma roupa? Da mesma maneira, se você optar por vender a roupa, é irrealístico assumir que você irá em todos os locais ao mesmo tempo para vendê-la. De maneira similar, cada projeto demandará o uso de linguagens e tecnologias específicas tanto no front-end quanto no back-end. Se você souber usar em seu projeto em ambas as stacks as tecnologias necessárias (que garanto são bem menos do que você imagina), isso lhe fará um desenvolvedor full-stack!

full-stack

Eu posso te listar uma série de vantagens em se tornar um desenvolvedor full-stack: sua produtividade aumenta e muito, seu salário vai aumentar, tenderá a segurança de emprego e terá mais vagas a concorrer (oportunidades de emprego), poderá atender a mais projetos como freelancer e ganhar uma renda extra, desenvolverá um controle total do projeto que decidir participar ou tomar a iniciativa.

Caso opte por seguir esse caminho promissor, clique no banner acima e aproveite nossa super promoção e bons estudos!

Luís Nogueira

Luís Nogueira

Programador viciado em aprender coisas novas e especialista em desenvolvimento Web, apaixonado pelas tecnologias e stacks back-end, front-end e mobile, é fundador e CEO da Feature Code, com o objetivo de divulgar e agregar conhecimento a todos da área.

Comentários