Inscreva-se no The Softtek Blog
*Artigo traduzido do espanhol por Marua Salemi. Clique aqui para acessar o original.
As empresas exigem um desenvolvedor de Full Stack quando procuram uma pessoa técnica, que conhece todos os aspectos do front-end, back-end, e os diferentes sistemas operacionais e componentes entre eles.
Atualmente, a demanda por desenvolvedores dessas características está aumentando, uma vez que elas devem ser capazes de assumir diferentes tarefas.
De fato, empresas como Facebook, Instagram, Twitter, Decolar.com, Google, Mercado Livre, entre outras, só contratam desenvolvedores com esse tipo de perfil.
O desenvolvedor Full Stack é o desenvolvedor generalista, com muito conhecimento técnico e não deve ser confundido com o desenvolvedor Sênior.
Em suma, ele é um desenvolvedor que pode criar aplicativos complexos a partir do zero. Para fazer isso, é preciso ser uma pessoa que entenda com profundidade como as diferentes camadas de um aplicativo interagem.
Estes são os 9 principais aspectos que um desenvolvedor Full Stack deve saber:
1. Desenvolvimento Web Lamp
O Kit mais básico para ser um desenvolvedor Full Stack é conhecer o desenvolvimento de aplicações WEB + LAMP, isto é, Linux, Apache, MySQL e PHP. Agora muitas dessas tecnologias são intercambiáveis com outras similares, NginX ao invés de Apache, PostgreSQL ao invés de MySQL ou Ruby on Rails ao invés de PHP.
Claro que existe um equivalente na Microsoft que seria o Windows + Microsoft IIS + .NET + Sql Server.
2. Desenvolvimento Web Mean
O próximo kit de uma pilha completa é chamado de MEAN, que consiste em MongoDB, Express, Angular e NodeJS.
Ao contrário do conjunto anterior, este stack procura entregar a maior quantidade de carga ao lado do cliente, mas requer uma maneira muito diferente de pensar sobre as coisas.
3. Modelagem
Não perca de vista o design do modelo e a análise dos requisitos, essas duas habilidades são obrigatórias. Obviamente, estes não são apenas conhecimentos teóricos, mas você precisa conhecer e gerenciar vários tipos de diagrama de dados, um gerenciamento minimamente bom da UML.
4. Controle de versão
Além disso, um desenvolvedor de Full Stack deve saber como usar ferramentas de controle de versão, como GIT, (SVN “já saiu de moda” e é desprezado na comunidade), por isso você precisa saber como vincular o GIT a ferramentas de teste e implantação. Jenkins, heroku, bizagi, Go Cd, etc.
5. PaaS e Soluções Cloud
Um bom desenvolvedor Full Stack deve entender o manuseio do PaaS (Platform as a Service) como Heroku e Amazon. Não apenas como usá-los, mas também para entender seus custos e como eles são dimensionados e quando essas soluções devem ser usadas e quando não.
6. Métricas
Você deve entender como extrair dados de sistemas métricos, como o Google Analytics. Tenha em mente que o desenvolvedor do Full Stack não é apenas um desenvolvedor, ele também é um analista.
7. Aplicativos móveis
O Full Stack Developer deve ser 100% atualizado, portanto, você deve saber como criar aplicativos móveis, híbridos e nativos. Somando-se aos requisitos de conhecer frameworks web-mobile como PhoneGap e Titanium, Frameworks Mobile como Ionic e Ratchet e obviamente você deve conhecer o Objective C (e Swift) e Java.
8. SEO (Search Engine Optimization) e SEM (Search Engine Marketing)
Nos blogs subsequentes, explicarei a diferença, mas um Full Stack deve ter em mente que não basta apenas saber como criar aplicativos, você precisa saber como publicá-los.
Publicar em appstores não é novidade, e ser o primeiro no Google é um desafio, e isso se torna muito mais difícil ainda quando a internet está cheia de más práticas.
9. Segurança
Um desenvolvedor que não sabe como executar injeções de consultas via SQL é o mesmo desenvolvedor que exporá todo o banco de dados de sua aplicação. É importante que um Full Stack conheça a segurança do computador.
Desenvolvedor Full Stack no mundo do trabalho
É normal que as empresas queiram obter os melhores funcionários, com o mínimo de dinheiro possível, mas tenha em mente que esse tipo de conhecimento não é trivial. Embora seja entendido que o desenvolvedor Full Stack tem mais conhecimento do que especialização neles, devemos entender que a aquisição de conhecimento em todos esses problemas exige muitos anos de prática. Portanto, não existe o Full Stack Developer Junior.
Hoje em dia os alunos deixam suas carreiras de ciência da computação ou engenharia de computação sem conhecimento desses tópicos, então uma empresa pede que eles digam que esse aluno deve ter 4 anos de estudos universitários e pelo menos 5 a 10 de prática.
Um "desenvolvedor full stack" é um desenvolvedor com um perfil técnico muito completo que conhece os aspectos de back-end e front-end e entende de sistemas. Este é um perfil cada vez mais solicitado e bem pago.
Conte-nos sua opinião nos comentários.