Sona Avetyan sobre JavaScript e seus frameworks mais usados
Publicados: 2022-10-06No mundo da tecnologia, todos nós podemos encontrar respostas para nossas perguntas com um clique. No entanto, você já prestou muita atenção ao formato da fonte? Você gosta de assistir a vídeos, ler artigos, pesquisar por voz ou verificar na primeira pessoa? Por exemplo, no desenvolvimento de software e no setor de ITO, verificar entrevistas e histórias pessoais diretamente de profissionais, como desenvolvedores de software, engenheiros e CTOs, é uma das maneiras mais interativas e confiáveis de se educar. Histórias pessoais e experiências reais tornam a educação mais aplicável e memorável.
Na CodeRiders, temos uma série de entrevistas com nossos desenvolvedores de software.
No mundo da tecnologia, todos nós podemos encontrar respostas para nossas perguntas com um clique. No entanto, você já prestou muita atenção ao formato da fonte? Você gosta de assistir a vídeos, ler artigos, pesquisar por voz ou verificar na primeira pessoa? Por exemplo, no desenvolvimento de software e no setor de ITO, verificar entrevistas e histórias pessoais diretamente de profissionais, como desenvolvedores de software, engenheiros e CTOs, é uma das maneiras mais interativas e confiáveis de se educar. Histórias pessoais e experiências reais tornam a educação mais aplicável e memorável.
Na CodeRiders, temos uma série de entrevistas com nossos desenvolvedores de software.
O JavaScript também está liderando outro relatório da Statista como a linguagem de programação mais exigida pelos recrutadores em todo o mundo.
É claro que, depois desses números, é óbvio que os frameworks JavaScript também liderarão a lista dos frameworks web mais usados no mundo.
De acordo com Statista, a partir de 2022, Node.js, React.js e Vue.js estão entre os 10 frameworks mais populares entre desenvolvedores de software em todo o mundo.
Com isso em mente, vamos começar nossa conversa com a desenvolvedora de software full-stack da CodeRiders, Sona Avetyan.
Olá Sônia. Obrigado por compartilhar seu conhecimento e experiência como desenvolvedor de software. Para começar, por favor, apresente-se.
Olá. Obrigado pelo convite da entrevista. Sou Sona, desenvolvedora de software full-stack com mais de 3 anos de experiência profissional no desenvolvimento de aplicativos web e desktop usando tecnologias inovadoras. Desde a minha aceitação na empresa de desenvolvimento de software CodeRiders, tenho participado dos projetos da nossa empresa e entregue com sucesso aplicativos usando PHP, JavaScript e seus principais frameworks: Vue.js, Node.js, React.js e MySQL.
Como você foi parar na CodeRiders?
Acho que minha história de acabar na indústria de TI (especificamente na CodeRiders) é interessante e talvez motivadora para alguns. É por isso que quero compartilhá-lo com você com mais detalhes.
Sou mestre em ciências atuariais e matemática e, no início de minha carreira, me imaginava como um profissional de sucesso nessa área. No entanto, com o passar do tempo, percebi que meus interesses estavam se apagando, especialmente após a grande “explosão” da indústria de informática e tecnologia da informação na economia armênia. Durante meus anos de universidade, o campo de TI estava florescendo na Armênia. Cada vez mais jovens adultos eram obcecados por TI, e havia muitas oportunidades de crescimento e excelentes carreiras nela. Embora eu estivesse indo muito bem em meu campo, decidi começar uma nova na indústria de tecnologia da informação. Meus amigos me aconselharam a confiar na escola de desenvolvimento web CodeRiders para um começo estável, e eu segui o conselho deles.
Depois de me formar com sucesso na escola de desenvolvimento de software CodeRiders, comecei a trabalhar para uma das maiores companhias de seguros da Armênia como especialista em suporte técnico. Eventualmente, eu cresci para ser o líder da equipe. Embora gostasse do meu trabalho, sempre soube que queria muito mais do que apenas apoiar e manter o código escrito por outros desenvolvedores de software e engenheiros. A companhia de seguros foi apenas uma “preparação” para mim para uma carreira maior e mais brilhante.
Trabalhei na companhia de seguros por 6 anos e, nesse meio tempo, mantive CodeRiders em minha mente. Eu sabia que a escola de desenvolvimento de software foi transformada na empresa de terceirização de software CodeRiders e se tornou uma das empresas de tecnologia local de maior sucesso na Armênia. Eu segui a CodeRiders nas redes sociais e sempre me imaginei como parte de sua equipe amigável. Adorei a empresa e seu estilo de trabalho. Em 2019, recebi uma ligação do fundador da CodeRiders e ele me convidou para fazer parte de sua adorável equipe. Foi um dos meus telefonemas favoritos de todos os tempos. Fiquei emocionado e, claro, aceitei a oferta, e foi assim que tudo começou. Eu rapidamente me adaptei ao ambiente, pois estava familiarizado com a empresa e todos foram muito solidários, amigáveis e sempre prontos para ajudar.
Você pode falar mais sobre sua pilha de tecnologia principal e o que você considerou ao escolher essas tecnologias?
Este é o “pacote completo” de minhas habilidades técnicas a partir de agora.
- Web: HTML, CSS3, LESS, SASS, Bootstrap, JavaScript, PHP
- Servidores: Apache, WAMP
- Bancos de dados: MySQL, MSSQL
- Idiomas: PHP (versão 5.6-8.x), JavaScript, SQL
- Tecnologias/Bibliotecas: Vue.js, React.js, Node.js, Laravel, JQuery, Electron.js, APIs sociais (Google)
- Conceitos: OOP, MVC
- Ambientes: Linux (Ubuntu, CentOS 6/7), MS Windows 10, Git, SVN
Trabalhei com a linguagem de desenvolvimento de software PHP no início da minha carreira de programação. Então mudei para JavaScript. Eu amo os dois, mas JS é o meu favorito com certeza.
Meu primeiro “mini-projeto” com JS foi construir um sistema de cartão de visita online para nossa empresa. Todos os nossos colaboradores puderam inserir suas credenciais e fazer seus cartões de visita personalizados. Em seguida, eles poderiam digitalizar e imprimir esses cartões de visita, transferi-los para seus telefones celulares ou computadores e usá-los em várias ocasiões. Usei Vue.js para desenvolvimento front-end Node.js e MongoDB para desenvolvimento back-end. Este foi meu primeiro projeto totalmente baseado em tecnologias JS. Naquela época, eu tinha a opção de usar PHP para o back-end, mas estava muito interessado em JavaScript e seus frameworks. Além disso, era nosso próprio projeto, então eu tentei, e funcionou muito bem.
JavaScript é muito dinâmico se você não usa TypeScript com ele, que é exatamente o que eu gosto no JS. Eu gosto de brincar com o código. É como brincar com gesso, e você não precisa seguir certos passos fixos em muitas ocasiões. Ao contrário de linguagens estáticas como Java, em JavaScript, o interpretador atribui um tipo às variáveis em tempo de execução com base no valor das variáveis no momento. JavaScript dinâmico é um método de criação de ações em uma página da Web sem ter que carregar a página inteira no navegador. Isso, por sua vez, melhora a velocidade do site e o torna mais responsivo ao usuário. Por outro lado, você não pode imaginar o desenvolvimento web sem JS porque todo o controle do desenvolvimento front-end está nas mãos das tecnologias JS.
Portanto, em JavaScript, você pode ser muito mais flexível e pode ajudá-lo em muitos casos. No entanto, esse dinamismo às vezes irrita muitos desenvolvedores de software, especialmente se forem desenvolvedores de software de linguagens tipadas como Java ou C#. Não temos nada fixo em JavaScript, mas por outro lado, se você quiser ser um pouco “criativo” com o código, isso lhe dá uma chance. Enquanto isso, o JavaScript também tem uma solução para os desenvolvedores de software que estão acostumados a linguagens tipadas. Com sua flexibilidade, eles podem simplesmente usar o TypeScript com ele.
A diferença entre linguagens de desenvolvimento de software tipadas e dinâmicas está no seguinte. Se você der um tipo a uma determinada variável, ela será fixa e você nunca poderá alterá-la. Por exemplo, se você definir uma determinada variável como uma string, número ou outra coisa, nunca poderá voltar e alterar seu tipo. Por outro lado, em linguagens dinâmicas como JS, você pode dizer, OK, atualmente minha variável é um número, mas depois farei uma string. Em alguns casos, o “rigor” das linguagens digitadas é grande porque você evita muitos erros, mas por outro lado, o dinamismo da “flexibilidade” também ajuda em muitas outras ocasiões. Então, é difícil dizer qual é o melhor. Depende principalmente de um desenvolvedor de software específico e dos recursos característicos de um projeto específico.
Para resumir, se eu tiver a chance de escolher a pilha de tecnologia de um projeto específico, presto muita atenção à “substância” do projeto. É muito importante entender a essência do seu projeto, sua estrutura e a possibilidade de sua conveniência, pois esses são os principais fatores a serem considerados antes de escolher uma pilha de tecnologia específica para o seu projeto. Tipo, você deve usar SQL ou MongoDB para o banco de dados? Por que é melhor usar Vue.js para desenvolvimento front-end? E quanto ao Node.js ou PHP para desenvolvimento de back-end e assim por diante?
Fale sobre suas coisas favoritas sobre JavaScript e seus frameworks (Node.js, Vue.js e React.js).
- O dinamismo do JavaScript
- Trabalhar com JS e seus frameworks é como construir uma casa
Como mencionei anteriormente, o dinamismo é minha coisa favorita número um. Eu gosto mais dos frameworks front-end JS. Com estruturas front-end JavaScript, você pode brincar com sua imaginação.
Costumo comparar trabalhar com JS e seus frameworks com a construção de uma casa. Você primeiro constrói o “esqueleto” de seu prédio e já estabelece os locais de itens específicos em cada andar, por exemplo, a porta da frente, quartos, janelas e assim por diante. Em vez de reconstruir todos eles em cada andar, você apenas os remodela em cada andar. Cada pedra em sua casa é um componente, e cada escada ou elevador é uma rota. Neste edifício, por exemplo, cada andar são as páginas do seu site, as escadas e os elevadores são as rotas (quando você passa de uma página para outra) e todos os outros itens, como paredes, cadeiras e janelas, são componentes mutáveis.
Os hóspedes da casa são os usuários e os residentes são os outros desenvolvedores de software e engenheiros que trabalham com você. Os hóspedes dos moradores devem se sentir à vontade ao visitar sua casa.
Qual é o melhor framework JavaScript?
Esta é uma pergunta muito intrigante e, claro, não tem uma resposta específica. Em vez de apenas mencionar um framework JavaScript específico, vou comparar os frameworks JS mais populares e deixar para você decidir.
Vue.js e React.js são usados no desenvolvimento front-end, enquanto o Node.js é usado no desenvolvimento de software back-end.
Vue.js e React.js são muito semelhantes e, ao mesmo tempo, muito diferentes. Se você conhece React.js, é muito fácil aprender Vue.js e vice-versa. Essas duas estruturas estão se reabastecendo. Por exemplo, quando lido com entradas e mudanças, é muito mais fácil trabalhar com Vue.js do que com React.js.
No React.js, você deve escrever mais código do que no Vue.js. A estrutura de código também é melhor organizada no Vue.js, mas, novamente, também depende muito de como você escreve seu código.
Em geral, os frameworks JS são os melhores porque consistem em componentes e é muito fácil brincar com eles. Você leva em consideração o padrão “não se repita”. Se você já escreveu um componente, pode usá-lo em vários lugares em vez de reescrevê-lo.
Por exemplo, você precisa escrever um código para um “botão” e a estrutura desse botão é a mesma em todos os lugares, exceto por pequenas alterações, como a cor do botão ou a cor do foco. O desenvolvedor de software não reescreve o código do zero se quiser fazer essas pequenas alterações. Eles pegam o componente específico responsável pela cor e o alteram em várias páginas de acordo com os requisitos do cliente. Então, em cada página, você chama isso de “componente de cor”.
Eu uso Node.js em meu desenvolvimento de back-end junto com React.js e Vue.js para desenvolvimento de front-end, e a combinação dessas três tecnologias é simplesmente ideal. Eu brinco com essa combinação comparando-a com uma pessoa ideal, que é linda por dentro e por fora.
Na estrutura Node.js, gosto de trabalhar com Express.js ou Nest.js. Comecei a trabalhar com Nest.js durante o desenvolvimento do nosso novo site, que será lançado em breve.
Como você avaliaria a importância do JavaScript no setor de TI atual?
Eu não imagino desenvolvimento web sem JavaScript. Claro, hoje em dia, a indústria de TI está crescendo massiva e rapidamente, mas JS tem a mesma velocidade de crescimento. Ajusta as suas soluções de acordo com os mais recentes desenvolvimentos informáticos. Portanto, tenho certeza de que a JS permanecerá no setor de TI por décadas.
Fale sobre seus projetos de desenvolvimento de software mais “memoráveis” na CodeRiders.
Vou falar sobre meu primeiro projeto “massivo, complexo e enorme”, como gosto de chamar. Este projeto me moldou como um desenvolvedor de software experiente.
É difícil explicar resumidamente esse projeto de desenvolvimento de software personalizado. O cliente opera em vários setores: soluções de software de mídia e entretenimento com soluções de software de marketing e análise. O cliente oferece uma enorme plataforma para que os usuários cadastrem, executem e acompanhem a eficácia dos anúncios de suas empresas, definam limites de trabalho para seus funcionários e confiram os resultados.
Trabalhei neste projeto com meus colegas da CodeRiders e com alguns outros engenheiros de software remotos de outros países. Trabalhamos neste projeto no momento do bloqueio do COVID, quando todos estavam trabalhando em casa. Faz apenas alguns meses desde a minha aceitação na equipe CodeRiders. Como esse era meu primeiro grande projeto, costumava ficar até tarde, até as 2h, com meus colegas desenvolvedores de software da CodeRiders, que estavam ansiosos para me ajudar, para que eu pudesse me envolver tranquilamente nos processos de desenvolvimento. Esta foi a “introdução” ao espírito de equipe da CodeRiders para mim.
Nosso objetivo era desenvolver código livre de bugs e de alta qualidade, e não importava em qual tarefa estávamos trabalhando. Todos os meus colegas iniciariam videochamadas para revisar o código e dar conselhos. Nosso lema na CodeRiders é “Desejamos, juntos alcançamos”, e sim, essa é a verdade, e graças a essa abordagem, integrei-me à nossa equipe e ganhei experiência na área de desenvolvimento de software.
Essa abordagem também funcionou com outros desenvolvedores de software remotos. Lembro-me que sempre que tínhamos um problema, não importava quem causou o erro. Nossa primeira prioridade era corrigir o problema o mais rápido possível. Então, um de nós faria isso o mais rápido possível. Em seguida, teríamos uma chamada de emergência e discutiríamos o problema e as causas do problema para garantir que não teríamos um problema como esse no futuro.
Por favor, enumere algumas vantagens e desvantagens do JavaScript.
Vantagens
- JavaScript é fácil de entender e aprender.
- JavaScript suporta todos os navegadores modernos, o que ajuda a produzir um resultado equivalente.
- Os desenvolvedores de software têm a chance de criar interfaces ricas.
- Você pode simplesmente implementá-lo em todos os projetos porque funciona perfeitamente com outras linguagens de programação.
- Empresas globais priorizam o desenvolvimento comunitário e investem em projetos importantes. Bons exemplos são o Google, criado pelo framework Angular, e o Facebook, criado pelo React.js.
- JS joga muito bem com outras linguagens de tecnologia.
- É possível desenvolver uma aplicação completa utilizando apenas JavaScript do início ao fim, pois temos várias formas de utilizar JS através de servidores Node.js.
- E por último, mas não menos importante, é muito popular e tem uma comunidade enorme. Você pode facilmente expandir seu conhecimento de JS porque há muitos cursos disponíveis.
Desvantagens
- O código JavaScript é visível para todos. Qualquer um pode inspecionar o código.
- Vários navegadores interpretam o código JavaScript de forma diferente, o que pode resultar em dificuldades na leitura e escrita do código entre navegadores.
- Em JS, a depuração é suportada por editores HTML, que não são tão eficientes quanto outros editores como C/C+. Isso pode complicar o trabalho do desenvolvedor na detecção do problema (não é uma desvantagem crítica).
Você pode descrever um dia de trabalho típico na CodeRiders?
Meu dia típico na CodeRiders começa com uma boa xícara de café e um bate-papo matinal com meus colegas. Então cada um vai para o seu trabalho. Podemos ter várias reuniões durante o dia. Se for segunda-feira, toda a equipe se reúne para uma grande reunião no final do dia. Todos representam o que fizeram, no que estão trabalhando atualmente e o que precisa ser feito. Se alguém tiver problemas, eles os compartilham com a equipe e damos conselhos.
O que eu amo no CodeRiders é que, embora eu esteja no trabalho e seja responsável pela qualidade do meu trabalho, ainda não me sinto pressionado por isso. Além disso, a atmosfera é tão relaxante que opero melhor e de forma mais produtiva.
Sabemos que o CodeRiders oferece a flexibilidade de escolher entre trabalhar em casa ou no escritório. Qual você prefere e por quê?
Sim, temos a oportunidade de escolher entre trabalhar em casa ou no escritório, mas adoro trabalhar no escritório. De qualquer maneira é produtivo para mim, mas sinto falta dos meus colegas de equipe e do escritório em geral. Sinto muitas emoções positivas ao trabalhar no escritório.
Vamos imaginar que você tenha uma entrevista com um cliente. Seu cliente apresenta seu projeto e, neste momento, ele não possui requisitos técnicos específicos. Estão abertos a sugestões. Você pode, por favor, descrever como você vai continuar com a conversa?
Eu tive muitas entrevistas com os clientes antes de entrar oficialmente no trabalho. Isso é natural porque o cliente quer ter certeza de que o especialista que está prestes a contratar é uma boa combinação.
Nessas entrevistas, a maioria dos clientes quer entender a determinação do desenvolvedor de software, sua abordagem de trabalho e seus valores pessoais. Também recebi algumas pequenas tarefas de teste, mas isso não acontece com muita frequência, apenas quando o cliente é novo em nossa empresa.
Houve momentos em que o cliente me fez uma pergunta técnica e eu não tive uma resposta naquele momento. No entanto, a maioria dos clientes não se concentra nisso, é mais importante que eles entendam sua reação aos desafios. Houve momentos em que eu não conhecia uma tecnologia específica que o cliente precisava, mas passei na fase de entrevista de qualquer maneira. Nesses casos, os clientes provavelmente percebem minha vontade de aprender rapidamente a tecnologia necessária.
Qual é o seu projeto favorito de todos os tempos e por quê?
Meu projeto favorito de todos os tempos é o primeiro grande projeto que descrevi acima. Por quê? Porque foi aí que ganhei toda a experiência e profissionalismo que tenho agora. Trabalhei em várias funções, testei meu conhecimento de várias coisas e pratiquei várias tecnologias. Por fim, sofri muito nesses projetos: noites sem dormir e ligações longas. Eventualmente, eles se tornaram parte da minha vida.
Qual linguagem de tecnologia você acha que é o futuro da TI?
Esta é uma pergunta que não terá uma resposta definitiva. Cada tecnologia é importante à sua maneira e deve ser usada em seu lugar para funcionar corretamente. Por exemplo, para ciência de dados e IA, usamos Python e funciona. No entanto, Python não é a melhor solução para desenvolvimento web de back-end. Alguns projetos não são tão grandes e complicados, mas são escritos nas linguagens erradas, o que complica desnecessariamente o trabalho.
O que você aconselharia aos desenvolvedores de software que estão apenas começando sua carreira no setor de tecnologia da informação?
Se você acha que vai aprender apenas uma vez e usar seu conhecimento durante toda a sua carreira, esse não é o caso do desenvolvimento de software. Você deve estar pronto para aprender coisas novas e atualizar e aprimorar seus conhecimentos ao longo de todo o ciclo de sua carreira. Portanto, você deve trabalhar e aprender simultaneamente no setor de TI ou ficará para trás.
Obrigado, Sona, por dedicar um tempo para conversar conosco e compartilhar sua rica experiência.
Além disso, vamos mencionar que os desenvolvedores de software JavaScript com seus frameworks populares (React.js, Vue.js e Node.js) são muito populares atualmente. Na atual escassez global de talentos de TI, é muito mais fácil encontrar desenvolvedores de software JavaScript, Vue.js, React.js e Node.js a preços acessíveis, especialmente se você estiver em terceirização de software e estiver procurando por desenvolvedores de software remotos em centros de tecnologia respeitáveis .
Para contratar desenvolvedores JavaScript, oferecemos uma consultoria gratuita com a equipe CodeRiders. Entre em contato conosco para discutir suas necessidades de software e confira nossas taxas de desenvolvedor de software.