Como é trabalhar como Full-Stack Developer e Analista de Negócios, por Loiane Groner

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

Olá, eu sou a Loiane, bacharel em Ciência da Computação, trabalho como full-stack developer (leia-se dev que faz um pouco de tudo — rs) e Analista de Negócios no Citi, tenho 7 livros publicados mundialmente em inglês pela editora PacktPub (1 deles foi lançado em abril desse ano em português pela Novatec: link) e nas horas vagas mantenho um portal de treinamentos que indexa os vídeos sobre Java, Sencha, Cordova/Ionic e Angular que publico gratuitamente no YouTube, no meu canal. Trabalho há 10 anos com desenvolvimento de software, iniciei minha carreira como desenvolvedora Java (front e back-end) e 3 anos depois (há 7 anos) comecei a trabalhar com JavaScript/HTML no front-end também (mas mantendo o Java como back-end).

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

Meu primeiro contato com algoritmos foi na faculdade. Na verdade minha história de escolha de carreira não é nada interessante. Durante a adolescência sempre quis fazer direito pra me tornar uma juíza, mas chegou o vestibular e achava muito chato ter que estudar muita história (gosto muito de história, mas não no sentido de ser obrigada a saber de todos os detalhes, gosto mais pelo fluxo da história e como o que aconteceu antes ajudou a moldar a sociedade que vivemos nos dias de hoje). Como tinha afinidade também com matemática de física, resolvi mudar a escolha do curso faltando 3 meses pro vestibular. E escolhi fazer ciência da computação pelo simples fato de gostar de ficar no computador!

O primeiro semestre na faculdade foi um choque, porque eu não fazia ideia do que iria aprender (não tinha YouTube e toda a informação que temos disponível nos dias de hoje). Tive dificuldades no início para aprender lógica de programação, mas decidi me dedicar e treinar muito em casa até que peguei as manhas e acabei gostando de escrever código.

Antes de entrar no estágio, formamos um grupo de estudos de Java na faculdade para poder aprender a linguagem. A escolha do Java foi por conta de ser uma linguagem que estava em alta na época, vários eventos na cidade eram sobre esse assunto. Demorei 6 meses pra conseguir entender a tal da Orientação a Objetos. Senti muita dificuldade pra entender encapsulamento e herança, mas com muito treino e resolvendo exercícios consegui melhorar o entendimento. Como forma de concluir o grupo de estudos, fizemos um projeto (jogo da forca). Aplicando o conhecimento na prática ajudou muito a entender melhor os conceitos.

Mesmo depois de aprender o básico da programação, também não fazia ideia com o que iria trabalhar. Só sabia que era desenvolvimento sistemas (mas isso é bem abstrato pra quem está entrando na faculdade ou iniciando na área). Foi no segundo ano da faculdade que iniciei meu estágio e comecei a desenvolver sistemas com Java.

No segundo emprego comecei a usar Struts e JSF, foi aí que comecei a entrar no mundo da web, mas ainda full-stack com Java. Fazia bem o básico mesmo, somente requests get e post. Nessa época já tinha internet de “alta velocidade” na cidade onde morava (Vitória-ES), e trabalhando conseguia pagar R$ 100 reais pra ter internet de 300kbps (era alta velocidade na época). Conseguia estudar e aprender pelos poucos tutoriais que encontrava em blogs e também nas revistas Mundo Java e Java Magazine (da DevMedia) — essas revistas eram vendidas em banca de jornais.

Somente no terceiro emprego é que tive um contato mais profundo com JavaScript e HTML. Nessa época já existiam frameworks de front-end (jQuery estava no seu ápice) e passei a não usar mais Java no front, somente HTML com JS puro e frameworks (jQuery e Sencha). Tive um pouco de choque, pois no Java usava as taglibs (JSTL) para estruturar e programar no front (o uso de JavaScript era mínimo), e ter que usar somente HTML com JavaScript foi uma mudanças grande pra mim. Nessa fase tinha me mudado pra SP, e a internet já era de 10Mb. Aprendi muito com blogs (foi quando comecei a ser mais ativa na comunidade, por conta disso também), e toda semana criava um projeto de exemplo em casa pra estudar mais sobre um assunto (grid, forms, forms com upload de documento, fazer menus, etc).

Por que você escolheu ser desenvolvedora?

Depois que terminei a faculdade, já estava curtindo muito trabalhar com desenvolvimento. O que gosto da profissão são os desafios. Mesmo que o problema seja simples, sempre vai ter algo que você não sabe e vai precisar estudar. Até hoje mesmo quando sinto que não estou aprendendo nada novo no dia a dia invento de fazer algo que nunca fiz só pra ter o desafio e poder estudar até conseguir resolver.

Sobre ser full-stack developer, na verdade não escolhi ser, foi o que acabou acontecendo (faculdade e depois oportunidades de emprego). As empresas foram me dando oportunidade de trabalhar com as tecnologias, e fui aprendendo. Sempre fui contratada como desenvolvedora Java, e acabei entrando no mundo do front-end também, pois de certa forma, no meu ponto de vista, acaba fazendo parte também se for olhar o projeto como um todo.

Mesmo que o problema seja simples, sempre vai ter algo que você não sabe e vai precisar estudar

Como foi o seu primeiro trampo?

Meu primeiro trampo foi um estágio como desenvolvedora Java numa empresa em Vitória-ES. Estava no segundo ano da faculdade e fiquei 2 anos trabalhando lá. Aprendi muuuuito! Foi meu primeiro contato com projetos reais, trabalhando em equipe.

Quando entrei só sabia o básico de Java com Orientação à Objetos. Meu primeiro projeto foi um programa que lia um XML e salvava as informações no banco de dados. Eu nem sabia o que era XML e muito menos sabia fazer um select simples numa tabela de um banco relacional. Tive 2 mentores maravilhosos que tiveram paciência e me ensinaram muito, mas muito mesmo, sou muito grata a eles! Depois trabalhei com uma ferramenta de BPM e em alguns relatórios para um portal (aqui foi meu primeiro contato com páginas web). Até criação e manutenção de Stored Procedures eu fiz — pra quem não sabia fazer um select, foi um grande passo — com isso aprendi muita coisa sobre banco de dados também. Aprendi sobre repositórios e controle de versão (CVS) — nem sabia que isso existia, pois controle de versão pra mim era renomear o arquivo com um número ou a data! Rs

Depois participei de um projeto que era web. O back-end era Java, tinha Stored Procedures do banco de dados também, mas o que fiquei maravilhada foi o primeiro contato com requests Ajax. Nessa época um pouco antes foi quando começou-se a falar sobre a web 2.0, Gmail estava sendo lançado e aparecer uma imagem de “carregando” e não ter que recarregar a página para buscar informações novas no servidor era a revolução (e realmente foi). Nesse projeto foi meu primeiro contato com javascript, mas ainda não sabia muito bem o que era direito, só sabia que a sintaxe básica era bem parecida com Java e não tive muitas dificuldades para fazer códigos básicos. Trabalhei também com JSON e achei o máximo, tudo era novidade. Mas só fui entender bem os conceitos (pra ficha cair e entender realmente o poder do JS) no meu terceiro emprego quando tive um contato mais profundo com o front-end. Depois participei de um projeto com Java desktop (Swing), e até projeto em C#.

Foi uma época complicada, pois estudava à noite e trabalhava por 8 horas (depois consegui diminuir para 6 horas). Se você faz isso hoje, saiba que é um herói/heroína, pois realmente não é fácil. Você tem que dar conta de estudar, as matérias da faculdade vão saindo do básico e ainda tem que dar conta de trabalhar (e tem pessoas que ainda tem família também).

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

Skills técnicos diria conhecer bem tanto a tecnologia de back-end quanto de front-end.

A parte de back-end hoje vejo sendo mais “tranquila”, pois as linguagens já estão bem estáveis e as mudanças geralmente são feitas para acompanhar o mercado, então a manutenção no aprendizado é menor depois que você já sabe bem a tecnologia/linguagem/framework.

O front-end ainda está evoluindo, então muita coisa nova aparece toda hora.

Como desenvolvedores, nós utilizamos algoritmos para criar as soluções. Então o conselho que dou é aprenda conceitos, aprenda a base. Sei que muitas vezes queremos ir direto na parte de construir um projeto de exemplo quando a gente aprender um framework novo, mas tire tempo e aprenda os conceitos. Assim você vai conseguir construir qualquer coisa, não apenas uma parte que você aprende somente para conseguir completar um projeto. Invista nos diferentes paradigmas, padrões de projetos também.

Aprenda a debugar/depurar. Por experiência, são poucas as chances que temos na carreira de iniciar um projeto do zero. Debugar um projeto ou pedaço de código é muito mais que usar a ferramenta pra achar um bug. Pode ser usado como ferramenta para aprender a fundo o que cada pedaço do projeto faz.

Ser desenvolvedor full-stack, não é apenas saber desenvolver o front e o back-end. Tem que saber sobre Banco de Dados, um pouco sobre Servidores, Cloud, DevOps, arquitetura; tem que ter noção da figura completa. Mesmo se você for somente back-end ou front-end tem que ter noção da figura completa também. E tem que saber se virar caso seja necessário.

No front, aprenda bem JavaScript/ECMAScript, HTML5/CSS e Web Components. Quase todos os frameworks que são hype no momento usam esses conceitos/padrões.

Quando você sabe bem a base, trocar de uma linguagem, ferramenta ou framework frontend é bem mais simples e a curva de aprendizado é bem menor.

Aprenda também sobre o negócio. A parte técnica te ajuda muito no início da carreira, depois não será a parte técnica que será apenas avaliada. Pode parecer simples adicionar um campo de CPF ou CNPJ na tela, que vai ser um campo string com máscara, tamanho X e vai ser salvo na base na tabela A na coluna B. A parte técnica é bem simples. Mas qual é o valor que este campo está agregando ao negócio sendo adicionado na tela? Pode parecer pouco, mas isso agrega muito valor a você como profissional.

Bem, essa foi a parte técnica. Mas pra quem trabalha como desenvolvedor ter a parte técnica, é, digamos, o mínimo esperado. Agora, o que vai te diferenciar na empresa e no mercado são as soft skills. São as soft skills que vão te permitir subir na carreira. Invista em soft skills, aprenda a investir em você mesmo(a), não apenas na parte técnica. Comunicação, saber lidar com pessoas diferentes (todo mundo é diferente, aprende num ritmo diferente, entrega a tela X num ritmo diferente, tem prioridades e necessidades diferentes) e mindset.

Quais são os principais desafios da área?

Como mencionei antes, ficar atualizado com as tecnologias que estão saindo no mercado. Mas se você souber os conceitos básicos, aprender uma linguagem ou frameworks novo é questão de sintaxe e algumas funcionalidades detalhadas.

Tempo também é um desafio. Você trabalha, precisa dar atenção à família, estudar coisas novas, e no meu caso, também gosto de compartilhar um pouco do que aprendo. O importante é ter foco em completar as tarefas que tem mais prioridade para você.

Saber lidar com estresse, pressão, prazos curtos, horas extras, dependendo vai ter que virar noite, trabalhar no fim de semana. E no meio desse caos, encontrar um pouco de qualidade de vida.

E no meio desse caos, encontrar um pouco de qualidade de vida

Quais são as principais recompensas da área?

Aprender sempre. Vejo isso como uma recompensa. Ter contato com coisas novas, desafios novos. Eu curto muito isso.

Nossa área também permite trabalhar com pessoas de várias partes do mundo. E conseguimos trabalhar remoto também. Eu faço home office já alguns anos, e esse foi o ponto que me permitiu encontrar um pouco da qualidade de vida que mencionei no item anterior. Você acaba trabalhando até mais no home office, mas o tempo que você economiza no trânsito (ainda mais numa cidade como São Paulo), já é bônus.

TI não é uma área que vai te deixar rico — ah não ser que você tenha uma idéia mirabolante, mas isso acontece com apenas meia dúzia de pessoas. Início de carreira também não é uma coisa fácil em termos de salário, mas com o tempo vai melhorando se você se dedicar em se tornar um profissional melhor.

Minha carreira hoje me permite ter independência financeira também. Pra mim isso é muito importante, tanto como profissional, tanto como mulher.

Uma outra coisa que gosto muito também são das comunidades. Aprendi muito participando de grupos de usuários, e aprendo muito até hoje participando de eventos. Isso permite que você crie um networking na área, que é um outro ponto que acho super importante.

E em relação ao full-stack, pelo fato de você ter o conhecimento, você consegue trabalhar tanto como desenvolvedor(a) backend tanto somente com frontend. Isso também é uma coisa legal pra manter seu leque de opções.

Você pensa em mudar de área?

No momento me sinto feliz trabalhando como desenvolvedora. Mas a gente nunca sabe o dia de amanhã, então sempre gosto de manter as opções em aberto.

Por que alguém deveria se tornar um(a) Full-tack developer?

Se você estiver no início de carreira, faça uma avaliação das tecnologias que estão disponíveis no mercado, mas foque naquilo que você realmente quer aprender. Se você curte trabalhar na solução por completo e não em apenas uma parte dela, a carreira de full-stack pode ser uma opção. Mas particularmente, não acho que pessoas escolhem ser full-stack. Pra mim se tornar um full-stack faz parte de um processo natural. É uma caminhada longa, já que você vai precisar saber tanto de backend e frontend (e mais as noções das outras áreas que citei anteriormente).

Pra entrar na área de desenvolvimento em geral, as únicas perguntas a serem respondidas são: você gosta ou gostaria de ser um desenvolvedor? Seria uma coisa que vai te fazer feliz profissionalmente? Gosta de desafios? Gosta de estudar? Pois você vai ter que estudar sempre.

Se você trabalha com o que ama, isso transparece e com certeza é uma coisa que ajuda a você também evoluir na carreira naturalmente.


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, Líder Técnico, por Elton Minetto outro sobre Full-Stack Developer, por Ana Eliza, Front-End Developer, por Clara Battesini 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.