Como se tornar um desenvolvedor full-stack: parte 2

Publicados: 2017-12-02

Este é o segundo de uma série de posts sobre como aprender programação e desenvolvimento full-stack. Se você ainda não conferiu a primeira parte, sobre como aprender Fundamentos de CS, Algoritmos, Princípios de Design e Desenvolvimento Front-end, você pode fazê-lo aqui.

Motivação

Agora você sabe como criar sites estáticos usando HTML, CSS e Javascript. Embora a Internet tenha sido originalmente projetada para compartilhar páginas da Web estáticas, os recursos (e expectativas) de um aplicativo da Web moderno aumentaram enormemente. Quase todos os aplicativos exigem que você autentique usuários, responda a eles e replique cenários do mundo real o mais próximo possível.
Para fazer o mencionado acima, você precisa obter dados de um usuário (ou uma API), processá-los e produzir uma saída. Você também precisa salvar esses dados e ter um mecanismo para identificar o usuário na próxima vez que ele voltar a usar seu aplicativo. Para realizar essas funções, nossa pilha atual não é suficiente.
Entrevista com Ankit Tomar, Co-Fundador e CTO, Bizongo

Os servidores são necessários para processar dados do usuário, armazenar arquivos, convertê-los em HTML/CSS/JS. Em seguida, esses servidores o atendem ao navegador em um formulário que pode ser apresentado ao usuário. Um banco de dados é necessário para armazenar dados importantes para seu aplicativo. Para programar o servidor, exigimos uma linguagem de script do lado do servidor e, para o banco de dados, exigimos um banco de dados (duh) e uma linguagem para se comunicar com ele. É exatamente isso que vamos fazer nas próximas etapas. Para os primeiros sete, consulte o post anterior!

Índice

Etapa 8: linguagens de script do lado do servidor

Como mencionado anteriormente, para programar e se comunicar com seu servidor, você precisará conhecer um idioma que ele entenda. Ao contrário do front-end, onde o Javascript é a única opção, há uma infinidade de opções disponíveis para você programar no back-end. Os mais populares são Java, PHP, Python, JavaScript e Ruby.
PHP tem suas deficiências, mas tem a curva de aprendizado mais suave de todas as linguagens e frameworks que usei até agora. E PHP é sobre codificar soluções rápidas (e sujas). Portanto, em um período de tempo extremamente curto, você pode criar um aplicativo da Web para se orgulhar.
Como se tornar um desenvolvedor de software web full stack UpGrad Blog front-end back-end
Java é uma linguagem de programação de uso geral e provavelmente a linguagem mais popular de todos os tempos. É extremamente popular para a criação de aplicativos móveis (na plataforma Android) e amplamente utilizado na maioria das grandes empresas de tecnologia. Head First Java é um excelente lugar para aprender essa linguagem onipresente.
Para aprender Python, recomendo fortemente o livro Learn Python the Hard Way, de Zed Shaw e Automate the Boring Stuff with Python, de Albert Sweigart. Se você decidiu usar o PHP, você pode aprender o básico da linguagem na Codecademy.
Você já conhece a sintaxe JavaScript suficiente para sujar as mãos com os frameworks Node e JS de back-end (como o Express). Falarei sobre Ruby mais tarde em conjunto com Rails, pois raramente é usado como uma linguagem autônoma.

Etapa 9: aprender SQL

Para a próxima etapa, você provavelmente deve pegar um pouco de SQL (Structured Query Language). É a linguagem com a qual os bancos de dados se comunicam. E embora você não possa usá-lo diretamente ao mudar para o uso de estruturas, ainda ajuda saber como se comunicar diretamente com seu banco de dados. A boa notícia é que o SQL é incrivelmente fácil de aprender. Você deve ser capaz de obter uma boa compreensão disso em questão de horas. Head First SQL é um ótimo recurso para essa finalidade.
Como se tornar um desenvolvedor Full Stack: Parte 1

Etapa 10: Aprenda uma estrutura da Web de pilha completa 'convencional'

Agora é um bom momento para experimentar estruturas da Web que podem fazer a maior parte do trabalho de nível inferior para você.
Não faltam grandes frameworks que possam atender a todos os propósitos imagináveis. Rails (escrito em Ruby), Spring (escrito em Java) e Django (escrito em Python) estão entre os frameworks mais usados ​​atualmente. Você pode dar uma olhada no Tutorial The Rails de Michael Hartl – disponível gratuitamente.
No que diz respeito ao Django, o tutorial no site oficial é um bom lugar para começar. Uma vez que você se sinta confortável com o básico do framework, dê uma lida em Two Scoops of Django . É um dos melhores livros de tecnologia de todos os tempos.
Se você decidiu seguir a rota da primavera, sugiro fortemente que você se inscreva no programa de desenvolvimento de software do UpGrad & IIIT-B. O programa oferece uma visão geral muito holística da estrutura e ajuda a criar um back-end robusto e escalável.

Etapa 11: Estruturas de pilha completa Javascript e pilha MEAN

Não muito tempo atrás, o desenvolvimento de back-end costumava ser baseado no conceito do ciclo de solicitação-resposta. Por exemplo, o navegador enviou uma solicitação e o servidor respondeu cuspindo uma página da Web em HTML. No entanto, desde o início de 2010, mais e mais aplicativos se tornaram em tempo real.
A estrutura de uma página inteira da web muda sem atualização e se comporta dinamicamente com base na entrada e interação do usuário (pensar no bate-papo, curtir, comentar, vídeos ao vivo e reações, etc.).
Como se tornar um desenvolvedor de software web full-stack Back-end UpGrad Blog
Nesse cenário, um simples ciclo de solicitação-resposta simplesmente não é suficiente. Portanto, houve um recente aumento de interesse em programação assíncrona e em tornar as solicitações AJAX a norma. Frameworks Javascript tendem a se destacar nisso. Portanto, faz sentido conhecer um dos principais frameworks JS disponíveis no mercado. Os dois mais populares são o MEAN Stack e o MeteorJS.
Entrevista com Farooq Adam, cofundador, Fynd

Aprender MEAN é um pouco mais complicado devido à sua natureza assíncrona e ao inferno de callback que o Node geralmente tende a desencadear. Mas agora que você é um desenvolvedor experiente, está maduro o suficiente para lidar com suas idiossincrasias.
Meteor é um framework JS full-stack que estou experimentando atualmente. O conceito do Meteor é absolutamente delicioso – um framework em uma linguagem que cuida de todos os componentes de um aplicativo (front-end, back-end e banco de dados). No entanto, isso vem ao custo da liberdade de personalização. Depois de criar algo no Meteor, é praticamente impossível alterar o banco de dados ou a estrutura de back-end se você optar por fazê-lo. No entanto, eu ainda acho que esta é uma tecnologia que vale a pena aprender. Meteor é conhecido por ser extremamente poderoso. É capaz de fazer coisas em centenas de linhas de código onde outras estruturas convencionais exigiriam mil.

Conclusão

Este é o fim da parte 2. Neste post, abordamos os recursos relacionados ao desenvolvimento de back-end e as várias tecnologias de pilha completa disponíveis. Agora você pode se chamar orgulhosamente de desenvolvedor full-stack. Parabéns!
Mas a história do desenvolvimento web full-stack não termina aqui. Com a introdução do iPhone, houve uma revolução dos smartphones em todo o mundo. Mais e mais pessoas estão mudando para usar smartphones no lugar de desktops. Nesse cenário, é imperativo que você aprenda a criar aplicativos para duas das plataformas mais populares: Android e iOS. Estaremos cobrindo isso na próxima e última parte desta série. Além disso, também veremos frameworks que nos permitem construir aplicativos nativos usando Javascript (Ionic, React Native, etc.).
Até lá, é adeus.
Seus comentários e sugestões são bem vindos!

Torne-se um Desenvolvedor Full Stack

Diploma PG UpGrad e IIIT-Bangalore em Desenvolvimento de Software
Saber mais