Aureom (discussão | contribs)
Yuri TxM (discussão | contribs)
 
(8 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 22: Linha 22:
= Evolução na profissão =
= Evolução na profissão =
* Como foi a evolução (acadêmica e profissional) até chegar na sua posição atual?
* 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?
* Quais foram as principais formações (certificação, especialização, curso, etc) extra-curriculares?
Nenhuma.
<br>
<br>


= 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>


= Requisitos mínimos para exercer a profissão =
= Requisitos mínimos para exercer a profissão =
* Cite alguns soft skills necessários para quem tem intenção de seguir essa carreira?
* Cite alguns soft skills necessários para quem tem intenção de seguir essa carreira?
O Back-end Developer deve apresentar, como em muitas outras carreiras, um bom trabalho de comunicação com a equipe.
É interessante que ele seja autodidata, pois as tecnologias evoluem muito rápido e para ser um bom profissional é preciso acompanhar essa evolução.
* Sugira alguns hard skills.
* Sugira alguns hard skills.
Um desenvolvedor back-end precisa conhecer ao menos uma linguagem de programação utilizada nessa área, como C#, PHP, Node.js, Java, Python, Ruby on Rails etc.
Ele também precisa conhecer o funcionamento dos servidores e dominar o conhecimento sobre os bancos de dados - ter conhecimento sobre a linguagem SQL e pelo menos uma database, como MongoDB, PostgreSQL, Oracle etc.
<br>
<br>


= Ferramentas usadas no dia-a-dia =
= Ferramentas usadas no dia-a-dia =
* Cite algumas ferramentas, tecnologias ou metodologias das quais depende para sucesso nas atividades.
* Cite algumas ferramentas, tecnologias ou metodologias das quais depende para sucesso nas atividades.
Além das tecnologias citadas anteriormente, é interessante que o Desenvolvedor Back-End esteja familiarizados com as metodologias ágeis e com uma ferramenta de versionamento, como o Git, que são essenciais na organização e desenvolvimento de um projeto.
<br>
<br>


= Tecnologias envolvidas =
= 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.
* 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
<br>
<br>


Linha 53: Linha 63:
= Dúvidas =
= Dúvidas =
   
   
# O que mais te interessa no desenvolvimento back-end?  
1. O que mais te interessa no desenvolvimento back-end?  
# O que acha melhor em seu desenvolvimento?
— Poder lidar com a lógica central do seu sistema sem ter que pensar em detalhes visuais
# Você utiliza somente node.js no backend ou tem que utilizar outras tecnologia para situações específicas? Sim. Ele falou que não estudou por meio de cursos.  
 
# Por quais materiais ele estudou para ser um desenvolvedor?
2. O que acha melhor em seu desenvolvimento?
# Trabalhar em startups pode ser mais vantajoso do que trabalhar em empresas grandes?
— 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
# Qual disciplina ou qual conhecimento que você adquiriu na Graduação você acha mais importante/usa mais atualmente nessa área?
 
# Qual a maior dificuldade que o Danilo já enfrentou?
3. Você utiliza somente node.js no backend ou tem que utilizar outras tecnologias 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 porque 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 lentas. 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 também pode ser bem complicado (por outro lado, você pode ganhar muito com isso)
 
6. Qual disciplina ou 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 tá tudo errado.

Edição atual tal como às 19h34min de 6 de maio 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?

O Back-end Developer deve apresentar, como em muitas outras carreiras, um bom trabalho de comunicação com a equipe. É interessante que ele seja autodidata, pois as tecnologias evoluem muito rápido e para ser um bom profissional é preciso acompanhar essa evolução.

  • Sugira alguns hard skills.

Um desenvolvedor back-end precisa conhecer ao menos uma linguagem de programação utilizada nessa área, como C#, PHP, Node.js, Java, Python, Ruby on Rails etc. Ele também precisa conhecer o funcionamento dos servidores e dominar o conhecimento sobre os bancos de dados - ter conhecimento sobre a linguagem SQL e pelo menos uma database, como MongoDB, PostgreSQL, Oracle etc.

Ferramentas usadas no dia-a-dia

  • Cite algumas ferramentas, tecnologias ou metodologias das quais depende para sucesso nas atividades.

Além das tecnologias citadas anteriormente, é interessante que o Desenvolvedor Back-End esteja familiarizados com as metodologias ágeis e com uma ferramenta de versionamento, como o Git, que são essenciais na organização e desenvolvimento de um projeto.

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

Apresentação back-end

Dúvidas

1. O que mais te interessa no desenvolvimento back-end? — Poder lidar com a lógica 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 tecnologias 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 porque 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 lentas. 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 também pode ser bem complicado (por outro lado, você pode ganhar muito com isso)

6. Qual disciplina ou 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 tá tudo errado.