Um guia para se tornar um desenvolvedor full-stack em 2017

O desenvolvimento da Web de pilha completa, de acordo com a Pesquisa de desenvolvedores do Stack Overflow 2016 , é a ocupação de desenvolvedor mais popular atualmente. Não é de admirar, portanto, que existam dezenas de programas on-line e presenciais que ajudem as pessoas a se tornarem Full-Stack Developers e que até mesmo ajudem esses novos desenvolvedores a obter trabalhos de programação de alto salário.

Alguns programas on-line populares podem ser encontrados em Lynda , Udacity , Coursera , Thinkful , Assembléia Geral e muito mais . Além desses programas on-line, há também bootcamps de codificação presenciais que ensinam às pessoas as habilidades necessárias para se tornarem desenvolvedores da Web.

Neste artigo, não discutirei quais sites ou programas de treinamento de codificação têm os melhores programas de desenvolvimento da Web. Em vez disso, fornecerei um guia definitivo para o que acredito ser as habilidades mais importantes necessárias para se tornar um desenvolvedor Web completo e um trabalho se você nunca tiver codificado antes. Eu vou basear a lista em três coisas:

  1. Uma combinação do que a maioria dos programas em 2017 está ensinando aos alunos.
  2. Minhas próprias experiências pessoais de entrevistar em empresas para posições de desenvolvedor no passado e também entrevistar candidatos potenciais para posições atuais de Full-Stack Developer na minha empresa atual.
  3. Histórias e feedback de pessoas em Coderbyte que foram aceitas para codificar bootcamps e, em seguida, passaram a receber trabalhos de programação (veja abaixo).

O guia definitivo

Um desenvolvedor da Web de pilha inteira é alguém que pode trabalhar nas partes front-end e back-end de um aplicativo. Front-end geralmente se refere à parte de um aplicativo que o usuário verá ou interagirá, e o back-end é a parte do aplicativo que lida com a lógica, interações do banco de dados, autenticação do usuário, configuração do servidor, etc. O Stack Developer não significa que você necessariamente tenha dominado tudo o que é necessário para trabalhar com o front-end ou back-end, mas significa que você é capaz de trabalhar nos dois lados e entender o que está acontecendo ao criar um aplicativo.

Se você quiser se tornar um Desenvolvedor Web Full-Stack em 2017 e conseguir seu primeiro emprego, abaixo está um guia de referência com uma lista de coisas que você deve aprender.

1. HTML / CSS

Quase todos os programas, sejam eles on-line ou presenciais, que ensinam como ser um desenvolvedor web, começarão com HTML e CSS, pois são os blocos de construção da web. Simplificando, HTML permite que você adicione conteúdo a um site e CSS é o que permite que você estilize seu conteúdo. Os seguintes tópicos relacionados a HTML / CSS aparecem frequentemente em entrevistas e no trabalho real quando você está trabalhando:

  • HTML semântico .
  • Ser capaz de explicar o modelo de caixa CSS .
  • Benefícios dos pré-processadores de CSS (você não precisa necessariamente entender como usar um em um nível mais profundo, mas deve entender para que serve e como ele ajuda no desenvolvimento).
  • Consultas de mídia CSS para segmentar diferentes dispositivos e escrever CSS responsivo.
  • Bootstrap (um framework para ajudar a projetar e layout de conteúdo em uma página e enquanto muitos programas on-line ou escolas se concentram fortemente no ensino de Bootstrap, na realidade é mais importante ter um profundo conhecimento de CSS fundamentais do que recursos e métodos específicos de Bootstrap).

2. JavaScript

A linguagem JavaScript está se tornando mais popular a cada ano e novas bibliotecas, frameworks e ferramentas são constantemente lançadas. Com base na Pesquisa de desenvolvedores do Stack Overflow 2016 , o JavaScript é o idioma mais popular em desenvolvimento de pilha completa, front-end e back-end. É o único idioma que é executado nativamente no navegador e pode ser duplicado como uma linguagem do lado do servidor também (como você verá abaixo com o Node.js). Abaixo estão alguns tópicos que você precisa entender como um Desenvolvedor Full-Stack:

  • Entenda como trabalhar com o DOM . Também sabe o que é o JSON e como manipulá-lo.
  • Recursos importantes da linguagem , como composição funcional , herança prototypal, encerramentos, delegação de eventos, escopo, funções de ordem superior.
  • Fluxo de controle assíncrono , promessas e retornos de chamada .
  • Aprenda a estruturar corretamente seu código e modularizar partes dele, coisas como webpack , navegador ou ferramentas de construção como o gulp definitivamente será útil saber.
  • Saiba como usar pelo menos uma estrutura popular (muitos programas se concentrarão em ensinar a você uma biblioteca ou framework como React ou AngularJS , mas na realidade é muito mais importante ter uma compreensão profunda da linguagem JavaScript e não se concentrar tanto na estrutura Uma vez que você tenha uma boa compreensão do JavaScript, escolher um framework que fique no topo não será muito difícil de qualquer maneira).
  • Embora alguns possam argumentar que você deveria estar usando menos ou que está morrendo lentamente, o código jQuery ainda existe na maioria dos aplicativos e uma sólida compreensão dele será útil.
  • Algum conhecimento sobre frameworks de teste e porque eles são importantes (alguns podem até afirmar que este tópico deve ser opcional).
  • Aprenda sobre alguns novos recursos importantes do ES6 (opcional).

3. Idioma do back-end

Uma vez que você tenha percebido o HTML / CSS e o JavaScript, será necessário passar para uma linguagem de back-end que lide com operações de bancos de dados, autenticação de usuários e lógica de aplicativos. Todos os programas on-line e bootcamps geralmente se concentram em uma linguagem de back-end específica e, na realidade, não importa qual você aprende tanto, desde que você entenda o que está acontecendo e aprenda as nuances do idioma escolhido. Você receberá uma tonelada de respostas diferentes se perguntar a alguém que a linguagem de back-end é a melhor para aprender, então abaixo listamos algumas combinações populares. Uma nota importante: o que você decidir aprender, basta seguir com ela e aprender o máximo que puder sobre ela – há vagas disponíveis para todos os idiomas listados abaixo.

  • Node.js: Essa é uma ótima opção, porque o próprio Node.js é um ambiente JavaScript, o que significa que você não precisa aprender um novo idioma. Esta é uma grande razão pela qual muitos programas online e bootcamps escolhem ensinar Node.js. O framework mais popular que você provavelmente aprenderia para ajudá-lo no desenvolvimento de aplicativos da Web é o Express .
  • Ruby: Alguns frameworks populares para desenvolvimento em Ruby são Rails e Sinatra. Muitos programas ensinam Ruby como uma primeira linguagem de back-end.
  • Python: Alguns frameworks populares para desenvolvimento em Python são Django e Flask.
  • Java: A linguagem Java não é ensinada tanto nos dias de hoje quando se trata de Desenvolvimento Web Full-Stack, mas algumas empresas usam Java como seu back-end e ainda é uma linguagem muito requisitada (veja a imagem acima).
  • PHP: PHP raramente é ensinado em programas nos dias de hoje, mas assim como com Java, ainda é muito em demanda e é uma pedra angular da web hoje.

4. Bancos de Dados e Armazenamento na Web

Ao aprender a criar aplicativos da Web, em algum momento você provavelmente desejará armazenar dados em algum lugar e depois acessá-los posteriormente. Você deve ter um bom conhecimento sobre os seguintes tópicos relacionados a bancos de dados e armazenamento.

5. HTTP & REST

O HTTP é um protocolo de aplicativo sem estado na Internet – é o que permite que os clientes se comuniquem com servidores (por exemplo, seu código JavaScript pode fazer uma solicitação AJAX para algum código de backend executado em um servidor que acontecerá via HTTP). Alguns tópicos importantes que você deve aprender estão listados abaixo:

6. Arquitetura de Aplicações Web

Uma vez que você acha que tem uma noção sobre HTML / CSS, JavaScript, programação de back-end, bancos de dados e HTTP / REST, então vem a parte complicada. Neste ponto, se você quiser criar um aplicativo da Web um tanto complexo, precisará saber como estruturar seu código, como separar seus arquivos, onde hospedar seus grandes arquivos de mídia, como estruturar os dados em seu banco de dados, onde para executar determinadas tarefas computacionais (lado do cliente vs lado do servidor) e muito mais.

Há práticas recomendadas sobre as quais você pode ler on-line, mas a melhor maneira de realmente aprender sobre a arquitetura de aplicativos é trabalhando em um aplicativo grande que contém várias partes móveis – ou melhor, trabalhando em equipe e, em conjunto, desenvolvendo um pouco aplicação complexa.

É por isso que, por exemplo, alguém com mais de 7 anos de experiência pode não necessariamente conhecer CSS ou JavaScript melhor do que alguém com 2 anos de experiência, mas ao longo de todos esses anos eles já trabalharam com todos os tipos de aplicativos e sites e aprendi a arquitetar e projetar aplicações (entre outras coisas importantes ) para ser mais eficiente e poder ver o “quadro geral” quando se trata de desenvolvimento. Abaixo estão algumas coisas que você pode ler que ajudarão você a aprender como arquitetar seus aplicativos da Web de maneira eficiente:

  • Aprenda sobre plataformas comuns como um serviço , por exemplo, Heroku e AWS . O Heroku permite que você carregue facilmente seu código e tenha um aplicativo instalado e funcionando com muito pouca configuração ou manutenção de servidor, e a AWS oferece dezenas de produtos e serviços para ajudar com armazenamento, processamento de vídeo, balanceamento de carga e muito mais.
  • Otimização de desempenho para aplicativos e navegadores modernos.
  • Algumas opiniões sobre o que uma arquitetura de aplicativo da Web deve incluir.
  • Criando aplicativos da Web pela Microsoft.
  • MVC .
  • O mais importante é que você deve tentar trabalhar em projetos com pessoas, consultar bases de código de projetos populares no GitHub e aprender o máximo que puder com desenvolvedores seniores.

7. Git

O Git é um sistema de controle de versão que permite que desenvolvedores trabalhando em uma equipe acompanhem todas as alterações feitas em uma base de código. É importante conhecer algumas coisas importantes relacionadas ao Git para que você entenda como obter corretamente o código mais recente que você perdeu, atualizar partes do código, fazer correções e alterar o código de outras pessoas sem quebrar as coisas. Você deve definitivamente aprender o conceito por trás do Git e brincar com ele mesmo.

  • Aqui está uma lista de referência de alguns comandos git comuns que você provavelmente usará.
  • Aqui está um tutorial sobre como usar o Git e o GitHub para iniciantes.

8. Algoritmos Básicos e Estruturas de Dados

Este tópico é um tanto polarizador no mundo do desenvolvimento, porque há desenvolvedores que não acreditam que deveria haver um foco tão pesado em tópicos de ciência da computação, como navegação em árvore, classificação, análise de algoritmos, manipulação de matriz, etc. no desenvolvimento web. No entanto, existem empresas como o Google que são notórias por fazer esses tipos de perguntas em suas entrevistas. Como alguém disse sobre a entrevista de engenharia do Front-End no Google:

Dito isso, como Ryan McGrath menciona, espera-se que nossos engenheiros front-end (FE) tenham um sólido histórico de CS, como todos os nossos engenheiros.

Embora existam empresas que praticamente exigem que os candidatos tenham um diploma em ciência da computação ou equivalente, há muitas empresas que contratarão pessoas sem essa qualificação técnica se puderem provar que sabem como desenvolver aplicativos e mostrar um entendimento de todo o domínio. Mas parte de ser um desenvolvedor competente e não escrever código ineficiente ou usar as ferramentas erradas é um entendimento de alguns algoritmos básicos e estruturas de dados e ser capaz de analisar os trade-offs. Então, aqui estão algumas coisas que você definitivamente deveria aprender:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *