Olá! Meu nome é Djalma Antony Lemos Rodrigues. Sou um homem de pele parda, com cabelo preto, olhos castanhos, uso óculos e estou vestindo uma camisa preta. Atualmente, sou especialista em front-end no Luizalabs, que faz parte do grupo Magalu. Além desse papel na indústria, também tenho um lado acadêmico, pois estou finalizando uma pós-graduação e iniciando um mestrado.
Audiodescrição: Djalma Antony é um homem de pele parda, com cabelo preto, olhos castanhos e usa óculos. Ele veste uma camisa preta.
Estou aqui para dar as boas-vindas ao curso de React: tomando decisões estratégicas em projetos. Já nos perguntamos, em algum momento do nosso desenvolvimento, qual ferramenta utilizar para resolver determinado problema. Qual conjunto de tecnologias disponível podemos usar para solucionar uma questão específica?
Vamos explorar ainda mais. Quando fazemos parte de um time, há sempre uma pessoa desenvolvedora que é referência e toma decisões. Nos perguntamos como essa pessoa chegou a essas decisões, qual foi o processo que ela seguiu, o que precisou aprender e entender para alcançar esse estágio na carreira.
É exatamente isso que vamos abordar neste curso. O objetivo é moldar o pensamento de uma pessoa desenvolvedora sênior, desde a concepção da ideia até os meios ferramental e teórico, para que possamos estruturar uma linha de raciocínio que nos ajude a tomar decisões.
O curso será baseado em evidências e na experiência que acumulamos, considerando nosso time, papel e histórico. O foco será desmistificar muitos aspectos relacionados à pessoa desenvolvedora sênior. Vamos discutir alguns pilares sobre o que significa ser uma pessoa desenvolvedora sênior e o que muda em relação a outros papéis quando adquirimos essa senioridade.
Também exploraremos o conceito do "grande depende", frequentemente mencionado, e entenderemos a importância de aplicar o contexto em nossas aplicações. Vamos analisar o que é esse contexto e por que ele é tão relevante para o desenvolvimento, para o negócio e para o resultado final que esperamos.
Para acompanhar este curso de forma tranquila, é necessário que já tenhamos uma base sólida no ecossistema React. Precisamos compreender o que são componentes, o que é o JSX, entender o núcleo do React, como ele funciona e para que é utilizado. Também é importante ter algum conhecimento sobre arquitetura e testes, que são parte do nivelamento da formação anterior. Isso será crucial para que possamos focar nas novidades que serão apresentadas.
Dentro desta formação, vamos aprofundar na parte teórica e entender a teoria por trás da prática. Na prática, vamos observar com novos olhares as ferramentas que já utilizamos no dia a dia e que já aprendemos. Isso é fundamental para que possamos dialogar no mesmo nível.
Nos vemos no curso!
Júnior, pleno e sênior são três termos que conhecemos bem ao ingressar na área de desenvolvimento. Já podemos ter compreendido como ocorre a transição de júnior para pleno, considerando a carga técnica envolvida. No entanto, surge a pergunta: o que muda do pleno para o sênior? Existe uma mudança real na atuação técnica? O que significa ir além do código? Vamos explorar isso juntos.
A primeira coisa que precisamos entender é recapitular nosso processo enquanto pessoas desenvolvedoras. As transições de posição e cargos podem ser marcadas por alguns pilares, tópicos e pontos que nos ajudam a identificar quando ocorre essa mudança. É importante compreender todo esse processo para que possamos nos posicionar e realizar uma autocrítica. Precisamos entender em que posição estamos, em que cenário nos encontramos e no que podemos melhorar para alcançar outros cenários, cargos e posições.
Vamos entender a jornada do desenvolvedor, desde o início até o caminho para se tornar um sênior. O início de tudo é quando somos juniores, no início de carreira, marcando nosso primeiro emprego em uma empresa bacana e começando a nos desenvolver. Nesse início, precisamos atingir alguns pilares, como o entendimento dos conceitos com os quais estamos atuando, seja front-end, back-end ou mobile, e as tecnologias utilizadas. É fundamental entender suas bases e fundamentos, além de ganhar autonomia. Não depender de terceiros para desenvolver uma atividade ou finalizar uma tarefa é essencial para ganhar espaço dentro do time, caracterizando-nos como pessoas desenvolvedoras juniores.
À medida que aumentamos nossa autonomia, começamos a entregar mais coisas de ponta a ponta, escrevendo testes, pensando na interface e na lógica. Assim, começamos a nos encaixar no perfil mais técnico e somos considerados plenos. O que seria uma entrega de ponta a ponta que um desenvolvedor pleno consegue realizar? Quando alguém é considerado pleno, está em transição. É importante entender que as pessoas passam por transições, mesmo dentro de um cargo. Por exemplo, ao nos tornarmos sêniores, não somos imediatamente a maior referência naquilo; estamos aprendendo. É importante vivenciar esse processo de aprendizado em cada etapa.
Uma entrega de ponta a ponta para um pleno pode ser, por exemplo, desenvolver um site para rastrear encomendas. Recebemos o Figma, o modelo arquitetural, as necessidades do projeto, o que precisa e o que não precisa, e todos os endpoints de uma API. Com isso, conseguimos desenvolver de ponta a ponta, escrevendo testes e trazendo algumas automatizações. É uma entrega completa.
Precisamos refletir sobre essa demanda que recebemos. Recebemos um Figma, o que indica a presença de um designer; recebemos requisitos, o que indica a presença de uma pessoa de produto. Mas quem define a arquitetura, as boas práticas e traz mais qualidade ao desenvolvimento? Essa pessoa é o sênior, conhecido por muitos como o "Depend". Nas redes sociais, é comum ver brincadeiras sobre como se tornar sênior: basta dizer "Depend". Isso tem uma motivação por trás.
O sênior equilibra a qualidade técnica adquirida pela experiência, pois já foi pleno e adquiriu a bagagem de entrega de ponta a ponta. Agora, adiciona um certo tempero: a aplicação de contextos. O "Depend" está carregado de decisões técnicas, experiência e necessidades do cliente. É importante lembrar que não desenvolvemos software ou aplicações para nós mesmos, mas para o outro, dentro do mercado de trabalho.
Podemos desenvolver nossa própria abordagem, mas é essencial respeitar nossas necessidades. Assim, também somos clientes, avaliando nosso processo e projeto. Devemos estar preparados para ir além do código e das bibliotecas, considerando o que nosso cliente precisa ou não, e como podemos entregar isso com qualidade e precisão. É importante negociar questões de tempo e recursos com o time e outras áreas, como produto e design. O papel de uma pessoa desenvolvedora sênior é fazer essa ponte.
Precisamos estar preparados e realizar uma autocrítica ou autoreflexão. Devemos nos perguntar se estamos prontos ou se precisamos reforçar alguns pontos. Isso é crucial, pois o ego humano pode ser inflado, especialmente em posições de liderança. Não podemos deixar o ego se sobrepor ao profissionalismo. Uma pessoa desenvolvedora sênior deve trabalhar com conceitos de colaboração e ter empatia para entender as necessidades e capacidades do time. Muitas vezes, ela será a referência do time, podendo estar sozinha ou com outros sêniors. É necessário criar unidade e avaliar se estamos prontos para esse passo ou se precisamos de mais preparo.
Vamos entender como evoluir para afirmar com confiança que podemos ocupar a posição de sênior. Antes disso, discutiremos o mito do desenvolvedor sênior, uma posição carismática e reconhecida. Um dos mitos é que o sênior é tecnicamente superior a um pleno. Será que isso é verdade? Ao nos tornarmos sêniors, o que muda nas habilidades técnicas em relação ao pleno? Muitas vezes, nada muda. Essa ideia é enganosa, pois podemos ter sêniors e plenos com a mesma habilidade técnica. A diferença está no contexto que o sênior carrega, permitindo entender qual ferramenta aplicar em determinado cenário. Isso faz diferença na entrega, para o cliente e no desenvolvimento, pois compreendemos como as peças se encaixam e funcionam.
O sênior também entrega valor e impacto. Por exemplo, enquanto uma pessoa desenvolvedora plena entrega oito cards por semana, o sênior entrega três. Isso não significa que ele não deveria estar na posição. O sênior pode estar colaborando com times de plataforma, trazendo documentações, padronizações, definindo arquitetura e melhores práticas, além de entregar com qualidade. As entregas são certeiras, sem retrabalho, e com muito afinco. Ele pode não entregar muitos cards, mas entrega muito valor, especialmente para quem está aprendendo com ele.
A função do sênior é também promover a evolução dos pares. É importante repassar conhecimento, pois assim também aprendemos. Devemos lembrar que o mundo do desenvolvimento é colaborativo. Sem colaboração, enfrentaríamos muitos problemas e limitações.
Se questionamos nossa prontidão para ser sênior, devemos nos perguntar sobre arquitetura: estamos pensando em alto nível? Como nossa aplicação funcionará? Onde e por que ela rodará? E quanto à colaboração com o time? O time está confortável, tem conhecimento e acesso às informações necessárias? Isso é crucial quando estamos em uma posição de sênior, sendo referência para o time. Vamos explorar como melhorar esse processo e torná-lo mais natural em nosso aprendizado.
Agora, vamos entender um pouco sobre o que muda na atuação técnica de uma pessoa desenvolvedora sênior em comparação com outras posições que já discutimos e vivenciamos no nosso dia a dia. A pessoa desenvolvedora sênior está ali para entregar valor e impacto. Embora outras posições também tenham esse objetivo, a pessoa sênior precisa concretizar isso de forma mais evidente em sua atuação. Basicamente, a mudança é do "como fazer" para o "por que fazer".
Dentro das nossas vivências e construção profissional, especialmente como desenvolvedores, pensamos muito em como fazemos determinadas coisas. Refletimos sobre a tecnologia e como a utilizamos, mas também começamos a pensar no porquê de sua criação. Por exemplo, sabemos por que o .NET foi criado e o que ele resolve. Não se trata apenas do que ele resolve, mas do escopo do "como" que entendemos para poder utilizá-lo. Precisamos considerar por que tomamos determinadas decisões técnicas, não apenas relacionadas à tecnologia, mas também ao que estamos desenvolvendo, ao contexto e ao projeto. Por que a tecnologia X pode ser mais benéfica do que a tecnologia Y nesse cenário?
Vamos pensar em um exemplo. Suponha que um time sênior seja responsável por criar uma aplicação front-end, e talvez exista a possibilidade de desenvolver uma aplicação móvel no futuro. Neste momento, é importante fazer uma pausa para refletir sobre isso.
Voltando ao que temos, precisamos pensar no desenvolvimento de uma aplicação front-end. Isso já é um fato. No entanto, existe a possibilidade de precisarmos criar uma aplicação para dispositivos móveis, um aplicativo móvel atrelado. O que precisamos fazer e entender antes de simplesmente escolher a tecnologia X ou Y?
Primeiro, precisamos entender quem é o nosso time. Quantas pessoas o compõem? Qual é a base tecnológica e teórica que possuem? Qual é o perfil técnico de cada integrante? Mesmo sendo um front-end sênior, é importante entender se o back-end, ou o BFF (Backend for Frontend), ficará com o time próprio de back-end ou se nós, enquanto front-end, precisaremos atuar nisso. Isso é muito importante e acontece com frequência.
Também há a possibilidade de reaproveitar outra aplicação dentro desse mesmo contexto. Muitas vezes, precisamos criar uma aplicação, mas será que precisamos criar uma nova ou apenas um novo cenário dentro de uma aplicação já existente? Por isso, é fundamental entender o contexto dessa aplicação: o que ela resolve, onde precisa ser utilizada e por quem. Isso nos ajuda a reduzir custos, pois é muito diferente criar uma aplicação do zero e reaproveitar uma já existente, aproveitando sua estrutura.
Variáveis, configurações, padrões, boas práticas e a própria tecnologia já possuem fundamentos estabelecidos. Portanto, não precisamos solicitar a criação de um ambiente, por exemplo. Muito provavelmente, ele já está em produção e foi implementado, permitindo um fluxo mais automatizado. Espera-se que possamos aproveitar todo esse fluxo, o que é muito importante.
Outra questão é elencar os requisitos da aplicação. Precisamos entender se nossa aplicação faz parte de um contexto maior e se podemos aproveitar outra aplicação existente. No entanto, devido a requisitos específicos, pode ser necessário criar uma nova aplicação. Precisamos ter um entendimento claro do que nossa aplicação resolve, do que o usuário necessita e do que temos à disposição.
Vamos considerar um cenário. No primeiro cenário, nosso time está repleto de pessoas desenvolvedoras incríveis focadas em React. Já temos em mente que esse problema será resolvido desenvolvendo a aplicação front-end em React. Caso haja necessidade de criar uma aplicação para dispositivos móveis, podemos utilizar React Native e reaproveitar o ecossistema, tornando o processo mais prático e simples.
Agora, vamos pensar em um cenário um pouco menos ideal ou mais realista. Este é um exemplo particular que já aconteceu comigo em um time de desenvolvimento. O front-end precisava ser criado, e tínhamos pessoas desenvolvedoras focadas em React e em todo o ecossistema React, o que facilitou o processo. No entanto, havia outras duas pessoas mais atreladas ao Angular. Por decisões técnicas e de plataforma, todas as aplicações estavam sendo integradas ao contexto React, e todos estavam migrando para essa tecnologia. Fazia sentido que nós também migrássemos.
Porém, já existia um aplicativo móvel, e mesmo que eu, Djalma Antony Lemos Rodrigues, seja um grande entusiasta do React Native, o time tinha mais experiência com desenvolvimento nativo. Eu tinha duas opções: poderia pedir ao time para estudar React Native e aprender a criar a aplicação com essa tecnologia, ou, com a maturidade necessária para se tornar um profissional sênior, deixar o ego de lado e pensar de forma colaborativa, como uma comunidade. Decidi seguir com o desenvolvimento nativo e me aperfeiçoar nesse conhecimento técnico para acompanhar o time.
Essa decisão gerou um clima muito diferente dentro do time e é algo bastante realista. Havia cerca de cinco pessoas com habilidade em desenvolvimento nativo, enquanto eu tinha um conhecimento elevado em React Native. Não fazia sentido forçar a mudança, seria mais fácil aproveitar meu conhecimento em desenvolvimento nativo e ajudar o time, já que eles estariam mais ativos no projeto do que eu, devido a outros projetos existentes.
Se isso não fez sentido, é importante parar, refletir e entender melhor o processo. Anotar bastante ajuda a clarear e expandir nosso entendimento ao longo do tempo.
O curso React: tomando decisões estratégicas em projetos possui 160 minutos de vídeos, em um total de 40 atividades. Gostou? Conheça nossos outros cursos de React em Front-end, ou leia nossos artigos de Front-end.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
2 anos de Alura
Matricule-se no plano PLUS 24 e garanta:
Jornada de estudos progressiva que te guia desde os fundamentos até a atuação prática. Você acompanha sua evolução, entende os próximos passos e se aprofunda nos conteúdos com quem é referência no mercado.
Programação, Data Science, Front-end, DevOps, Mobile, Inovação & Gestão, UX & Design, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
2 anos de Alura
Todos os benefícios do PLUS 24 e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Para estudantes ultra comprometidos atingirem seu objetivo mais rápido.
2 anos de Alura
Todos os benefícios do PRO 24 e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Conecte-se ao mercado com mentoria individual personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.