(37 revisões intermediárias por 5 usuários não estão sendo mostradas)
Linha 1: Linha 1:
= Evolução na profissão =
= Evolução na profissão =
<p>O desenvolvedor back-end precisa ser bom em raciocínio lógico e ter conhecimento das ferramentas que utilizará. Raciocínio lógico é estimulado, para tal fim as maratonas de programações ajudam muito, pois é preciso solucionar problemas, para isso, é exigido que o programador pense, teste o código, analisa onde errou e tente arrumar o problema, assim, contribui para a formação do back-end, pois antes de começar um projeto, você deve pensar em como irá realizar, durante o projeto, no meio dos testes, se surgirem problemas, é necessário corrigi-los, e nesse momento, ser humilde para aceitar ajuda de outras pessoas.</p>
Começou sua interação com a programação no curso de Sistema de Informação no Centro Universitário de Patos de Minas. Após o termino do curso, começou um estágio na Quick Mobile Brasil, e em 2016 foi para a Zup, onde está atualmente.
<br>
<p>Além disso, a maioria das faculdades se preocupam mais com o ensino do raciocínio, pois é algo fundamental dentro de uma empresa. Quanto ao ensino das ferramentas e linguagens de programação, é melhor abordado em cursos técnicos e nos estágios, pois como para cada paradigma existem várias linguagens de programação, fica a critério do consumidor escolher qual será usada no projeto.</p>
<br>
<p>Quanto ao programador back-end, Luiz Gustavo, participou de várias maratonas, participou do projeto Ciência sem fronteira, tendo mais contato com o back-end, fez estágio e agora trabalha na ZUP. Toda essa carreira possibilitou que ele aumentasse seu conhecimento tanto no raciocínio logico quanto nas ferramentas que ele utiliza, e sempre ele está estudando, pois a cada momento surgem ferramentas e linguagens de programação novas, com o intuito de facilitar determinados trabalhos, podendo ser crucial no desenvolvimento de um projeto</p>
 
<br>
<br>


= Descrição da atividade atual =  
= Descrição da atividade atual =  
<p>Normalmente os desenvolvedores realizam uma daily, que é uma reunião em que cada programador do projeto deve falar se tem alguma dificuldade e o seu progresso, deixando todos os envolvidos fiquem informados do andamento do projeto e, se necessário, possam auxiliar os demais. Após essa reunião, o desenvolvedor precisa ver o que ele precisa desenvolver, para isso, normalmente, é utilizado softwares para essa distribuição, como o Jira, que permite que o desenvolvedor organize as tarefas já feitas, em andamento e para fazer. Após decidir qual tarefa ele irá realizar primeiro, pensar como irá realizar, o dev começa a, de fato, programar, e conforme programando, ele realiza os testes unitários para ver se está tudo OK.</p>
<br>
<p>
Após tudo pronto, testado, o dev realiza o teste integrado, que é para analisar se a aplicação como um todo está funcionando como desejado, se necessário, após esse teste, caso exista erros, o programador precisa solucioná-los, e depois de solucionados, o projeto passa pelo teste novamente.</p>
<br>
<p>
Ao entregar o projeto final ao comprador, ainda tem o prazo de manutenção, que é quando o programa é liberado para ser usado, e se ocorrer algum problema ao fazer o uso o dev back-end é constatado e o mesmo precisa procurar uma solução.</p>


Sua atividade atual é baseada em trabalhos com equipes formadas por desenvolvedores não só de back-end, mas também de front-end, no qual o objetivo é fazer aplicativos, sistemas, programas, entre outros.
<br>
<br>


= Requisitos mínimos para exercer a profissão =
= Requisitos mínimos para exercer a profissão =
* Domínio de sistemas operacionais Linux e/ou baseados em Unix, incluindo SOs
A pessoa precisa ser muito boa em lógica, pois isso é utilizado diáriamente, até nos problemas mais simples. Além disso é preciso que a pessoa seja autodidata, pois como a programacao e a computacao estão em constante evolução, é preciso que o mesmo atualize-se sempre.
(Sistemas Operacionais) específicos para servidores;
* Um bom conhecimento das IDE onde ele irá desenvolver os projetos;
*Conhecimento em linguagens usadas para ambiente web, como Python, PHP,
Javascript, entre outras;
*Integração com APIs (Application Programming Interface ou Interface de
Programação de Aplicativos) e ambientes em nuvem;
*Criação de banco de dados bem como o gerenciamento e integração com outras
aplicações;
*Ficar atento às mudanças das linguagens e o surgimentos de novas ferramentas e
se adaptá-las devidamente;
*Conseguir utilizar de uma forma eficaz a POO (Programação Orientada a
Objetos);
*E por fim, um bom currículo ajuda, porém os contratantes observam se o
profissional é bom e se interessa em solucionar problemas.
<br>


= Ferramentas usadas no dia-a-dia =
= Ferramentas usadas no dia-a-dia =
<p>É indiscutível que algumas ferramentas que facilitam e que são indispensáveis
-  Git, Java, C#, Jenkins.
para um desenvolvedor Backend no seu dia a dia.</p>
<br>
<p>Entre as importantes ferramentas utilizadas uma das principais é a IDE
(Integrated Development Environment ou Ambiente Integrado de Desenvolvimento),
seu uso é inevitável já que é onde o profissional desenvolve o seu código, além disso,
geralmente ela facilita bastante o trabalho do programador, agilizando o
desenvolvimento executando funções como dar sugestões de código, indentação
automática e entre outros. O profissional apresentado faz uso do Netbeans que é um
software livre multiplataforma frequentemente utilizado para projetos em Java. Outra
IDE bem eficiente e comum no mercado de trabalho, porém paga, utilizada por ele é o
Intellij.</p>
<br>
<p>Ademais, entre as ferramentas usadas está o software livre Hibernate que é o
Framework Java mais utilizado no mercado e faz o mapeamento das classes Java para
as tabelas de banco de dados; sua principal função é fazer esse mapeamento,
economizando esforço e preocupações a tal tarefa. Outros softwares manipulados por
ele nesse campo de banco de dados são o Oracle e o Mysql onde ambos são sistemas de
gerenciamento em banco de dados.</p>
<br>
<p>E por fim, uma ferramenta bastante comum utilizada por ele e todos os níveis de
desenvolvedores é o Github que é um site onde eles podem hospedar os seus projetos
,que ficam armazenados na nuvem, em que também é possível interagir com outros
programadores e seus projetos além de poder pegar e modificar os seus códigos. </p>
<br>


= Tecnologias envolvidas =
= Tecnologias envolvidas =


<p>O desenvolvedor back-end atua em uma fronte lógica e específica da criação do software. Sendo assim, utiliza diversas tecnologias para de forma mais eficiente criar programas que atendam ao usuário e a empresa. Banco de dados, linguagens de programação e criptografia por exemplo são tecnologias das quais ele utiliza. Não são as únicas já que a cada dia que passa surgem novas tecnologias, por conseguinte, uma outra "tecnologia" do profissional é sempre estudar e estar atualizado. </p>
Uma tecnologia utilizada, é o Docker., que é uma ferramenta que fornece uma camada adicional de abstração e automação de virtualização de nível de sistema no Windows e no Linux.
<br>
<br/>
<p>Devido a necessidade de armazenar informações em forma de dados, os bancos de dados foram criados, e quem os aplica são os Dev. Backends. São divididos em dois tipos: </p>
<br>
*Bancos de dados Relacionais (SQL):
<p>Previamente seu tamanho já é definido pelo programador, tem um esquema de tabelas para armazenar os dados e isso trás mais consistência nos dados. Logo, pontos fortes dos BDR's são sua confiabilidade e maturidade. </p>
<br>
*Bancos de dados Não-relacionais(NoSQL):
<p>Não precisam ser previamente projetados, devido a isso esses modelos tem uma exacerbada escalabilidade. Outro ponto a ser citado é sua flexibilidade de estruturação, que facilita a inserção e acesso aos dados, além da possibilidade de manipulação dos dados por API's. No entanto, o NoSQL não e maduro e confiável a nível do SQL. </p>
<br>
<p>Logo, quando se precisa de confiabilidade na aplicação se usa o SQR, e quando se quer eficiência mas perdendo um pouco de segurança se opta pelo NoSQL. </p>
<br>
<p>Outras tecnologias também utilizadas pelos Dev.Back-Ends são as linguagens de programação e criptografias. </p>
<br>
<p>Go,Cloujure,C#,PHP,Java,Python,Ruby são exemplos das linguagens mais usadas. Desde paradigmas funcionais, até linguagens multi paradigmas como ruby. O domínio de algumas delas são essenciais para esse profissional. </p>
<br>
<p>Devido a existência de informações sigilosas também foram criadas formas de fazer criptografia para os dados armazenados no computador. O conhecimento de algumas formas pode ser um diferencial para o programador, entender como uma chave funciona e a quantidade de possíveis chaves daquele tamanho remetem a necessidade de optar por mais segurança ou não no desenvolvimento. </p>
<br>
<p>Exemplos de algumas criptografias que deparamos no dia-a-dia: </p>
<br>
*Ponta-a-ponta, usada no whatsApp, gera chaves para cada conversa e apenas as pessoas presentes na conversa tem acesso a essas informações.
*O protocolo https também funciona com criptografia para o acesso seguro de dados entre o servidor e o usuário via internet.
<br>
<p>Portando, fica evidente, que o profissional de Desenvolvimento Back-End deve estar sempre muito bem atualizado e armado com um arsenal de tecnologias as quais o levem a desenvolver softwares de qualidade, seguros e eficientes. </p>
 
<br>


= Ética profissional =
= Ética profissional =
<p>É evidente que a tecnologia cresce muito, e além de afetar diversas outras áreas, a sua responsabilidade perante a desastres que podem vir a ocorrer aumenta drasticamente. Logo, deve se observar que a ética na profissão de TI começa a tomar expressiva importância, tendo como ideia de que qualquer tecnologia pode ser usada para o mal. Sendo assim, como um código de ética para o desenvolvimento de software é inexistente, sua implementação se torna necessária, assim como ocorreu em outras profissões como a medicina.</p>
 
<br>
A situação na qual o entrevistado disse ter utilizado ética, se aplica no acontecimento no qual ele e mais um grupo de pessoas não sabiam se a licença do programa utilizado por eles contemplava todo o pessoal envolvido no projeto. Diante disso eles tiveram que entrar em contato com o administrativo e pedir para verificar com a empresa contrata a quantidade de sessões permitidas.
<p>Perante os motivos aos quais se deve a implementação desse código de ética, se encontram os seguintes pontos.</p>
<br>
* Desenvolver programas para uma determinada instituição, que, fere os princípios da lei em função de trazer benefícios à mesma.
Ex: Um programa que faz a "soma errada" e faça com que a empresa sonegue os impostos.
*Existem muitos outros pontos, como roubo de informações, cópias ilegais, pois os desenvolvedores back-end têm acesso aos cadastros dos usuários, podendo conter dado de cartões bancários.
<br>
<p>Dessa forma, é necessário que os programadores sejam éticos, já que eles têm acesso a informações importantes das pessoas.</p>


<br>
<br>


= Exemplo de resultado tangível =
= Exemplo de resultado tangível =
* O programador Luiz Gustavo, participa de um projeto que para a abertura de contas bancárias onlines.
 
Não foi citado um exemplo de resultado tangível, apenas foi citado que o Docker é ocasionalmente utilizado para concluir os trabalhos que são de responsabilidade dele e de sua equipe.
<br>
<br>


= Upload da apresentação =
= Upload da apresentação =
* Colocar aqui o link ou o arquivo da apresentação
* https://prezi.com/view/RAyWnVsDaXdXTXxD8Wr9/
**[[Arquivo:GBC021 - Resumo Profissões - Administrador de Banco de Dados.pdf]]
<br>
<br>


Linha 118: Linha 38:
<br>
<br>


* 01. Como é que o trabalho desenvolvido pelo Dev Back-end se "encaixa" no trabalho a ser desenvolvido pelo Dev Front-End?
* 01. O curso é preparatorio para o mercado de trabalho?
**O front-end liga o back-end com o usuário, por meio da interface dos aplicativos, ele pegando os dados necessário e transfere para o desenvolvedor back, que tem como responsabilidade processar esses dados que serão retornados para o usuário por meio do front ou enviados para o banco de dados.
** R- O curso é preparatório em relação a lógica que você precisa ter para a área da programação.
<br>
 
* 02. Descreva os principais ambientes utilizados pelo Dev Back-End para desenvolver um trabalho (Pode ser relativo a um projeto específico).
** Normalmente o dev-back trabalha com 4 ambientes, esses ambientes são responsáveis por rodar a aplicação na etapa que o projeto está. As etapas são: local – para testes da própria feature, desenvolvimento – para juntar várias features e sprint, homologação – para validar e certificar as features e produção – para ser usado por clientes reais.
<br>
 
* 03. Quais são as skills de quem trabalha nesta área?
** As skills de quem trabalha nessa área é o raciocínio lógico e a facilidade para solucionar problemas, e essas skill podem ser adquiridas com maratonas de programação.
<br>
<br>


* 04.O que é um ''framework''? Dê alguns exemplos e a utilização de cada um?
* 02. Como você decidiu entrar nessa área da computação?
**  
** R- Entrei nessa área porque sempre gostei de jogos, e também foi algo que me desafiou, e ao mesmo tempo me senti realizado a sempre ir progredindo em problemas que para algumas pessoas pareciam impossíveis.
<br>
<br>


* 05. Escalabilidade e Disaster Recovery: O que são estas grandes preocupações no mundo Dev Back-End?. Dar exemplos.
* 03. Quais funções você exerce na ZUP(detalhes)?
**  
** R- Sou programador Back End, porém conheço a maioria das áreas da ZUP.
<br>
<br>


* 06. Qual a diferença entre Teste unitário e Teste Integrado? Utiliza alguma ferramenta nestes casos?
* 04. Na sua opinião, há diferença na contratação entre um profissional formado em Universidade pública e particular, na área da computação?
** Teste unitário – teste feito em uma função, num método específico. Teste integrado é um teste realizado na aplicação real, testa todas as funções juntas, normalmente utiliza-se cucumber ou postamn para esses testes
** R- Não, o que diferencia é a vontade que a pessoa tem de ir longe.
<br>
<br>


* 07. Como funciona o JSON? Dê alguns exemplos
* 05. Quais características uma pessoa precisa ter para ser programador de Back-End?
**
** R- A pessoa precisa ser muito boa em lógica, pois isso é utilizado diariamente, até nos problemas mais simples. Além disso é preciso que a pessoa seja autodidata, pois como a programação e a computação estão em constante evolução, é preciso que o mesmo atualize-se sempre.
<br>
<br>


* 08. Para que serve o Scrum? Utiliza alguma cerimônia? Qual e como?
* 06. Quais ferramentas você usa no seu dia a dia, tanto para produtividade tanto para a questão da programação/desenvolvimento de sistemas?
**
** R- Git, Java, C#, Jenkins.
<br>
<br>


* 09. De que forma o trabalho do Dev Back-End se integra com o DBA?
* 07. Você poderia citar alguma tecnologia interessante, que ajude no desenvolvimento do sistema, ou entao na produtividade?
**O back-end faz a ligação do banco de dados com o front-end, os dados que foram pegos e processados, se necessário, são armazenados no banco de dados, e o back-end tem a responsabilidade de salvar essas informações no banco de dados que foi escolhido para o projeto
** R- Docker.
 
 
<br>
<br>


* 10. Cite algum caso de idoneidade (ou falta) que tenha conhecimento de um profissional ligado a Back-end.
* 08. Como a ética se aplica na sua profissão?
**
** R- A ética é necessária por exemplo para reconhecer quando voce está errado, pois muitas vezes o trabalho é realizado em equipes, então a ética é de extrema importância.
<br>
<br>

Edição atual tal como às 22h33min de 2 de julho de 2019

Evolução na profissão

Começou sua interação com a programação no curso de Sistema de Informação no Centro Universitário de Patos de Minas. Após o termino do curso, começou um estágio na Quick Mobile Brasil, e em 2016 foi para a Zup, onde está atualmente.

Descrição da atividade atual

Sua atividade atual é baseada em trabalhos com equipes formadas por desenvolvedores não só de back-end, mas também de front-end, no qual o objetivo é fazer aplicativos, sistemas, programas, entre outros.

Requisitos mínimos para exercer a profissão

A pessoa precisa ser muito boa em lógica, pois isso é utilizado diáriamente, até nos problemas mais simples. Além disso é preciso que a pessoa seja autodidata, pois como a programacao e a computacao estão em constante evolução, é preciso que o mesmo atualize-se sempre.

Ferramentas usadas no dia-a-dia

- Git, Java, C#, Jenkins.

Tecnologias envolvidas

Uma tecnologia utilizada, é o Docker., que é uma ferramenta que fornece uma camada adicional de abstração e automação de virtualização de nível de sistema no Windows e no Linux.

Ética profissional

A situação na qual o entrevistado disse ter utilizado ética, se aplica no acontecimento no qual ele e mais um grupo de pessoas não sabiam se a licença do programa utilizado por eles contemplava todo o pessoal envolvido no projeto. Diante disso eles tiveram que entrar em contato com o administrativo e pedir para verificar com a empresa contrata a quantidade de sessões permitidas.


Exemplo de resultado tangível

Não foi citado um exemplo de resultado tangível, apenas foi citado que o Docker é ocasionalmente utilizado para concluir os trabalhos que são de responsabilidade dele e de sua equipe.

Upload da apresentação


Dúvidas


  • 01. O curso é preparatorio para o mercado de trabalho?
    • R- O curso é preparatório em relação a lógica que você precisa ter para a área da programação.


  • 02. Como você decidiu entrar nessa área da computação?
    • R- Entrei nessa área porque sempre gostei de jogos, e também foi algo que me desafiou, e ao mesmo tempo me senti realizado a sempre ir progredindo em problemas que para algumas pessoas pareciam impossíveis.


  • 03. Quais funções você exerce na ZUP(detalhes)?
    • R- Sou programador Back End, porém conheço a maioria das áreas da ZUP.


  • 04. Na sua opinião, há diferença na contratação entre um profissional formado em Universidade pública e particular, na área da computação?
    • R- Não, o que diferencia é a vontade que a pessoa tem de ir longe.


  • 05. Quais características uma pessoa precisa ter para ser programador de Back-End?
    • R- A pessoa precisa ser muito boa em lógica, pois isso é utilizado diariamente, até nos problemas mais simples. Além disso é preciso que a pessoa seja autodidata, pois como a programação e a computação estão em constante evolução, é preciso que o mesmo atualize-se sempre.


  • 06. Quais ferramentas você usa no seu dia a dia, tanto para produtividade tanto para a questão da programação/desenvolvimento de sistemas?
    • R- Git, Java, C#, Jenkins.


  • 07. Você poderia citar alguma tecnologia interessante, que ajude no desenvolvimento do sistema, ou entao na produtividade?
    • R- Docker.


  • 08. Como a ética se aplica na sua profissão?
    • R- A ética é necessária por exemplo para reconhecer quando voce está errado, pois muitas vezes o trabalho é realizado em equipes, então a ética é de extrema importância.