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.