Como é trabalhar como Full-Stack Developer, por Vinicius Reis

William Oliveira
Training Center
Published in
7 min readMay 9, 2017

Esse post é parte de uma série de entrevistas para o Training Center sobre o que um profissional pode dizer sobre sua área de atuação visando mostrar para outras pessoas como é trabalhar no que fazem, esclarecendo para algumas pessoas se elas se dariam bem trabalhando na área ou mesmo só para mostrar para outras pessoas como é trabalhar com isso.

Introdução

Eu sou Vinicius Reis, sou Full-Stack Severino-Developer, tenho 25 anos, sou casado e recentemente ganhei uma filha linda. Gosto de filmes, livros, mangá, HQs, games… Ou seja, gosto de mais coisas do que tenho tempo para faze-las.
Gravo vídeos para o Codecasts e trabalho na Decision6 como Engenheiro de Aplicações (!?). Sou desenvolvedor desde 2007 e de severino desde 2006.

Como você conheceu a área de Full-Stack Development?

Me lembro de ter ouvido o termo pela primeira vez em 2012, mas não dei muita atenção… Eu ainda era muito imaturo pessoal e profissionalmente. Na época eu já havia saído do meu primeiro emprego e trabalhava em uma agência digital, fazendo back-end e front-end.

Se eu já podia ou não ser chamado de full-stack eu não sei, eu era apenas um web developer.

Foi em 2013 que comecei a participar mais de comunidades de desenvolvimento, e a amadurecer como profissional.

O trabalho em agência pode não ser fácil, porém há a possibilidade de aprender coisas novas em todos os projetos. Se você manter o foco e buscar qualidade mesmo que a empresa não ache isso importante, rapidamente se adquire muitas skills. E foi isso que aconteceu comigo.

Eu não apenas “codava” front-end e back-end. Otimizei SEO, performance, banco de dados, processos. E quando eu vi que eu poderia usar minhas skills de web developer para criar mais do que aplicações “web comum”, me senti “poderoso”.

Assumir essas tarefas sempre foi natural pra mim. Fazer o melhor para o projeto em todos os aspectos.

Por que você escolheu ser Full-Stack Developer?

Acho o termo Full-Stack muito complicado… Até mesmo errado em muitos aspectos, evito usá-lo. Por sorte conheci o termo T-Shaped, e me identifico muito mais com ele.

Sou curioso, conheço vários processo de vários níveis do desenvolvimento de software, porém não sou bom em todos.

O que mais me motiva é poder aprender tudo sobre o projeto em suas diversas áreas. Se eu me limitasse a apenas um aspecto do projeto ou produto eu não conseguiria isso.

Por sorte conheci o termo T-Shaped, e me identifico muito mais com ele.

Como foi o seu primeiro trampo?

Comecei meu primeiro emprego em meados de 2006, mas não foi como desenvolvedor e nem em uma empresa de tecnologia. Foi entregando papelzinho de empréstimo consignado na rua. Adolescente e com o rei na barriga resolvi começar a trabalhar, e obviamente isso foi tudo que eu consegui. Logo no começo viram que eu era péssimo com isso, porém não era um completo idiota, então passei a trabalhar como auxiliar de escritório/courier/faxineiro/severino.

Com o tempo a empresa cresceu e conforme a necessidade eu criei um sistema feito em Microsoft Access. Era uma bela bosta, mas funcionava e dava lucro. A empresa continuava crescendo e o sistema não conseguia acompanhar. Foi ae (não sei de onde) que tive a ideia de migrar o sistema para a web. Levei 6 meses em um protótipo, o resto é história.

Nessa época eu fazia absolutamente tudo, e sozinho. Rede, manutenção, desenvolvimento, requisitos (eu nem sabia o que era isso), folha de pagamento… Eu não sabia, mas isso tudo me ajudou muito.

Quais são as skills de quem trabalha nesta área?

Na minha carreira eu tive a oportunidade de mesmo fazendo várias coisas, conseguir me focar em algo específico, e me aprofundar e me aperfeiçoar nisso. Devido a isso tenho boas skills de front-end e back-end. Hoje eu não sei muitas linguagens, me limitei apenas no PHP e no JavaScript, que sozinhas possuem conteúdo e detalhes que poucos desenvolvedores dominam.

Apenas depois de me sentir extremamente confortável com ambas que resolvi estudar outras linguagens, pois gosto de aprender, e sei que preciso ter mais coisas no meu “cinto de utilidades”.

Saber muito sobre PHP e JavaScript valeu muito mais do que saber pouco sobre diversas linguagens. Acredito que um profissional precisa de um diferencial, algo que o destaque, e possuir conhecimento mediano de 10 linguagens não me agrada.

Alguém que almeja se “considerar” full-stack deve saber bem mais do que back-end e front-end. Gosto da ideia de um full-stack ser capaz de tirar a ideia da mente do cliente e colocar ela no papel, transformar o papel em código e o código em um produto.

Relacionamento com o cliente, regras de negócio, previsão, decisões estratégicas. Identificar decisões problemáticas e impedir que elas sejam tomadas. Saber dizer não ao cliente também faz parte do conjunto de skills necessárias.

Saber suas deficiências também é importantíssimo. Você não vai ser bom em tudo, eu por exemplo, sou usuário Linux a anos, mesmo assim estou longe de ser um “hard-user”. Isso não me impede de usar, conversar, recomendar… E sempre que tenho dúvidas, tenho pessoas a minha volta que podem me ajudar.

É preciso mais do que vontade por aprender, é preciso ter vontade de ser bom, o melhor. Não pare no conhecimento superficial ou no “suficiente”, vá além e entenda tudo que há para ser entendido. Você não precisa se tornar o Jedi daquele assunto, porém no mínimo um dominador da força.

A melhor estratégia é escolher áreas que você deseja dominar, e manter as outras coisas como “áreas de interesse”, coisas que você conhece, mas não o suficiente para dizer que domina.

Quais são os principais desafios da área?

Costumo dizer que a diferença entre mim e um profissional de “início de carreira” é que eu levei mais porrada que ele e por mais tempo. Há profissionais com mais de 10 anos de carreira que não conseguiram acumular experiências suficientes em áreas diferentes para poder se considerar um full-stack.

É tão difícil determinar o que é um profissional full-stack, que no final não se pode discutir com alguém por usar ou não esse título ou termo. Empresas anunciam vagas do gênero pois acham que um único profissional consegue fazer o mesmo trabalho que uma equipe de 3 profissionais. Elas não estão erradas, porém não esperem que esse profissional faça o mesmo trabalho na velocidade que 3 fariam, muito menos que ele receba como 1 só profissional.

Um dos maiores desafios é determinar o que realmente é um profissional full-stack. Antes saber fazer back-end e front-end eram suficientes. Depois veio o desenvolvimento mobile, desktop…

A bem da verdade, não havia muita coisa a ser feita no front-end, o foco era quase que exclusivamente no back-end, para muitas empresas ainda é. Porém se tornou evidente que o front-end passou a ocupar outros patamares. Não se trata apenas de “psd-to-html”. Softwares web agora são complexos e poderosos. As tecnologias Web nunca estiveram com tanta evidência.

Com a chegada do Node.js, muitos desenvolvedores front-end tiveram a oportunidade de criar soluções back-end. Isso foi ótimo, porém gerou e ainda gera alguns problemas.

Desenvolvimento back-end não é como o desenvolvimento front-end. A preocupações distintas pois são plataformas distintas. Ter essa mentalidade ainda é um desafio para muito desenvolvedores, seja para os que vieram do back-end ou do front-end.

JavaScript se tornou onipresente, não é mais uma opção não saber JavaScript. Muitos acreditam, que JavaScript é o suficiente para ser um “full-stack developer”, o termo “full-stack JavaScript developer” já começou a ser usado por alguns. Porém acho isso uma visão extremamente limitada.

JavaScript é muito bom, mas não é bala de prata, o desenvolvedor precisa saber identificar isso. Só que essa não é uma habilidade que se aprendem em cursos, faculdades… É necessário maturidade como profissional para tomar esse tipo de decisão.

São tantas as habilidades que obrigações que um profissional full-stack precisa ter que ele não é um profissional fácil nem barato de se obter.

Um dos maiores desafios é determinar o que realmente é um profissional full-stack.

Quais são as principais recompensas da área?

Continuo muito relutante em chamar “full-stack” de área. Porém, eu diria que se você gosta de ser constantemente desafiado, dificilmente vai se sentir desmotivado.

Acredito que a maior vantagem em ter essa posição são as inúmeras possibilidades e oportunidades. Se você faz um bom trabalho, raramente ficará sem uma boa colocação e consequentemente sem uma boa remuneração.

Você pensa em mudar de área?

Há coisas na vida que simplesmente acontecem. Meu sonho era ser biólogo marinho (nem nadar eu sei!). Hoje não me vejo em outra profissão que não seja a de desenvolvimento de software.

Por que alguém deveria se tornar um(a) Full-Stack Developer?

Não existe formação, curso, trilha, guia, ou etc… para se tornar um desenvolvedor full-stack. Então não pense ou foque seus esforços nisso.

Faça seu melhor, sempre, em todas as tarefas. Abrace cada oportunidade, não se contente em resolver o problema, elimine eles. E continue assim em cada etapa da sua carreira.

Talvez “ser” full-stack, seja uma etapa natural para quem busca sempre se aprimorar.

Desenvolvedores de modo geral não podem ser acomodados, já aqueles que ocupam posições de full-stack são os menos acomodados.

Se como desenvolvedor você sabe que não vai parar de estudar nunca, prepare-se para estudar até 3x mais. Não espeque que isso aconteça em 1, 2 ou 3 anos… É um processo contínuo.

> Se queria estudar pouco, vira-se médico.

Este foi um post sobre como é trabalhar como Full-Stack Developer, porém temos também sobre como é trabalhar como Consultor de TI, por André Baltieri, Coordenador de Sistemas, por Jhonathan Souza Soares, Quality Analyst Engineer, por Úrsula Junque, outro sobre Full-Stack Developer, por Ana Eliza, Front-End Developer, por Fernando Daciuk e muitos outros. Confere lá!

Se você gostou desse post, não esquece de dar um like e compartilhar! :D

Siga o Training Center no Twitter para se manter atualizado(a) sobre nossas novidades: trainingcentr

Entre no nosso Slack para participar das decisões desse projeto e também para ver gifs engraçados!

Conheça nossas iniciativas.

--

--

William Oliveira
Training Center

Engenheiro de software frontend, escritor do livro O Universo da Programação (http://bit.ly/universo-da-programacao), periférico e bissexual