| Linha 78: | Linha 78: | ||
= É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> | ||
* | <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> | ||
Edição das 00h42min de 9 de outubro de 2018
Evolução na profissão
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.
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.
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
Descrição da atividade atual
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.
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.
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.
Requisitos mínimos para exercer a profissão
- Domínio de sistemas operacionais Linux e/ou baseados em Unix, incluindo SOs
(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.
Ferramentas usadas no dia-a-dia
É indiscutível que algumas ferramentas que facilitam e que são indispensáveis para um desenvolvedor Backend no seu dia a dia.
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.
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.
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.
Tecnologias envolvidas
- Conhecimento técnico e científico aplicado na atividade profissional utilizando ferramentas, processos e recursos físicos.
Neste caso, escolher uma tecnologia e aprofundar a ponto de poder discutir em sala de aula
- Exemplos:
- SO, Banco de Dados, Linguagens, Metodologia ágil para o Engenheiro de Software
- Redes de Computadores, Roteamento, sistemas de comunicação e comutação para o Analista de Redes
- Criptografia, Certificação Digital, Banco de Dados, Ambiente Web para Analistas de Segurança
- Banco de Dados, Normalização, Tuning, redundância para o DBA
- E assim por diante ....
Ética profissional
É 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.
Perante os motivos aos quais se deve a implementação desse código de ética, se encontram os seguintes pontos.
- 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.
Dessa forma, é necessário que os programadores sejam éticos, já que eles têm acesso a informações importantes das pessoas.
Exemplo de resultado tangível
- O programador Luiz Gustavo, participa de um projeto que para a abertura de contas bancárias onlines.
Upload da apresentação
- Colocar aqui o link ou o arquivo da apresentação
Dúvidas
- 01. Como é que o trabalho desenvolvido pelo Dev Back-end se "encaixa" no trabalho a ser desenvolvido pelo Dev Front-End?
- 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.
- 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.
- 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.
- 04.O que é um framework? Dê alguns exemplos e a utilização de cada um?
- 05. Escalabilidade e Disaster Recovery: O que são estas grandes preocupações no mundo Dev Back-End?. Dar exemplos.
- 06. Qual a diferença entre Teste unitário e Teste Integrado? Utiliza alguma ferramenta nestes casos?
- 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
- 07. Como funciona o JSON? Dê alguns exemplos
- 08. Para que serve o Scrum? Utiliza alguma cerimônia? Qual e como?
- 09. De que forma o trabalho do Dev Back-End se integra com o DBA?
- 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
- 10. Cite algum caso de idoneidade (ou falta) que tenha conhecimento de um profissional ligado a Back-end.