| Linha 29: | Linha 29: | ||
= Descrição da atividade atual = | = Descrição da atividade atual = | ||
* O que efetivamente faz o profissional na sua condição? | * O que efetivamente faz o profissional na sua condição? | ||
Um desenvolvedor back-end lida com a parte server-side de uma aplicação, ou seja, com a regra de negócios, segurança, conexão com o banco de dados e integração de webservices. | |||
* O que entrega como resultado? | * O que entrega como resultado? | ||
Ele entrega como resultado melhorias no código, novas funcionalidades para aplicação, performance e segurança para o usuário. | |||
<br> | <br> | ||
Edição das 01h05min de 26 de abril de 2021
Pesquisa Tecnológica
NodeJS
Definição: Node.js é um ambiente de execução server-side open source que utiliza a linguagem JavaScript e é capaz de rodar em diversas plataformas, como Windows, Linux, Mac OS, etc., sem depender de um browser (navegador) para a execução.
O JavaScript foi criado em 1995 e se tornou a linguagem padrão dos browsers e, consequentemente da WEB para desenvolvimento client-side, ou seja, a interface que o usuário final interage.
Em 2009, Ryan Dahl apresentou o Node.js, capaz de rodar aplicações server-side escritas em JavaScript.
Dahl criticava as possibilidades limitadas do servidor web mais popular da época, o Apache HTTP Server, para lidar com conexões concorrentes e a maneira mais comum de criar códigos - programação sequencial, pois no caso de conexões simultâneas, ou o processo inteiro era bloqueado até terminar a execução do bloco de código ou eram necessárias múltiplas pilhas de execução.
O Node.js, diferentemente de outras tecnologias, como Java e PHP, é executado em apenas uma thread. Em linguagens tradicionais a cada nova requisição recebida cria-se uma nova thread, a qual necessita de recursos computacionais para sua criação. Tendo em vista que tais recursos são limitados, ao atingir tal limite, novas requisições serão tratadas somente após a liberação dos recursos anteriormente demandados. Já no Node.js, isso não acontece. Todas as requisições são tratadas de maneira assíncrona em apenas uma thread, chamada Event Loop, que fica em execução esperando novas requisições.
Devido a isso, o Node.js é uma ótima ferramenta para construção de aplicações para internet rápidas e escaláveis, capaz de lidar com uma grande quantidade de conexões simultâneas com altas taxas de transferência.
Evolução na profissão
- Como foi a evolução (acadêmica e profissional) até chegar na sua posição atual?
Danilo iniciou a graduação em Engenharia de Computação pela USP no ano de 2009. Em 2013, mesmo ano que se formou, começou a trabalhar como estagiário na área de infraestrutura e hardware - esse período durou cerca de 3 anos. Logo após, teve seu primeiro trabalho como desenvolvedor, em uma startup.
- Quais foram as principais formações (certificação, especialização, curso, etc) extra-curriculares?
Nenhuma.
Descrição da atividade atual
- O que efetivamente faz o profissional na sua condição?
Um desenvolvedor back-end lida com a parte server-side de uma aplicação, ou seja, com a regra de negócios, segurança, conexão com o banco de dados e integração de webservices.
- O que entrega como resultado?
Ele entrega como resultado melhorias no código, novas funcionalidades para aplicação, performance e segurança para o usuário.
Requisitos mínimos para exercer a profissão
- Cite alguns soft skills necessários para quem tem intenção de seguir essa carreira?
- Sugira alguns hard skills.
Ferramentas usadas no dia-a-dia
- Cite algumas ferramentas, tecnologias ou metodologias das quais depende para sucesso nas atividades.
Tecnologias envolvidas
- Sugira alguma tecnologia que possa ser pesquisada por esta equipe e que possa servir de base para futura aplicação nessa profissão.
Node.js
Ética profissional
- Pode dar algum exemplo já vivido por você ou por alguma outra pessoa sobre aspectos éticos na profissão, seja positivo ou negativo?
Upload da apresentação
Dúvidas
1. O que mais te interessa no desenvolvimento back-end? — Poder lidar com a logica central do seu sistema sem ter que pensar em detalhes visuais
2. O que acha melhor em seu desenvolvimento? — Eu não entendi a pergunta muito bem, mas eu me sinto mais confiante quando estou utilizando uma linguagem que já estou mais confortável
3. Você utiliza somente node.js no backend ou tem que utilizar outras tecnologia para situações específicas? — Depende muito do lugar que você trabalha e do problema que você quer resolver. Tem lugar que define uma linguagem como padrão, e ai você acaba só usando ela. Tem lugar que deixa mais livre, aí o time acaba escolhendo com base no conhecimento que a galera tem. Para a maioria dos sistemas, qualquer linguagem vai resolver o problema. Existem coisas especificas, como por exemplo se você quer usar machine learning, normalmente python é mais indicado
4. Por quais materiais ele estudou para ser um desenvolvedor? — Não peguei nenhuma matéria especifica na faculdade para desenvolvimento. Tive as básicas de algoritmos, estrutura de dados, orientação a objetos. Tive uma matéria de desenvolvimento web apenas mas que não ajudou muito. Meu maior conhecimento veio por meio das experiencias profissionais que tive.
5. Trabalhar em startups pode ser mais vantajoso do que trabalhar em empresas grandes? — Eu acredito que sim, mas depende muito também da carreira que você quer seguir. Em uma startup você acaba tendo que se virar mais, acaba tendo mais acesso aos sistemas, então você aprende mais pq não fica focado em resolver só um problema especifico. Em empresas grandes você acaba tendo acesso muito restrito e seu nível de atuação acaba sendo menor, por conta disso as coisas se tornam um pouco mais lentos. Como desenvolvedor eu só trabalhei em startup e não me arrependo. Mas tenho que destacar que eu nunca trabalhei em startup que acabou de ser criada. Sempre trabalhei com um time de pelo menos 5 desenvolvedores. Trabalhar em uma startup bem no começo tb pode ser bem complicado (mas também você pode ganhar muito com isso)
6. Qual disciplina ou qual conhecimento que você adquiriu na Graduação você acha mais importante/usa mais atualmente nessa área? — Acho que o mais básico mesmo: algoritmo e logica de programação
7. Qual a maior dificuldade que o Danilo já enfrentou? — Lidar com um chefe recém chegado na empresa que sai atropelando os processos existentes e falando que ta tudo errado