Palestrante: Jean Fabricio

Email: jeanufu21@gmail.com

Telefone: (34) 9277-4040

Evolução na profissão

O profissional Jean conheceu programação cerca de um mês antes de entrar para a Faculdade de Sistemas de Informação na UFU. A primeira linguagem de programação que aprendeu foi Java. Ele entrou na Empresa Júnior Techmob logo em seu primeiro semestre e ficou durante 4 anos. Foi presidente, gestor de projetos, analista de requisitos, supervisor. Adquiriu conhecimento em programação Web (php) , banco de dados, gestão de projetos, e desenvolveu diversos sistemas ao longo de sua graduação. Atualmente trabalha na empresa TQI - Empresa de software em Uberlândia e participa de projetos de Front-End e Back-End, utilizando a linguagem java como principal tecnologia.

Descrição da atividade atual

Informar sobre a atividade real do profissional, seja técnica ou administrativa. Apontar situações que envolvem alto nível de responsabilidade e seus possíveis impactos sobre o negócio ou pessoas. Se possível, demonstrar ao vivo e a cores, alguma atividade diária.


Requisitos mínimos para exercer a profissão

Um Full Stack tem que estar sempre curioso, não pode ser um profissional acomodado, deve estar sempre interessado em aprender mais com os outros a sua volta. Por ser múltiplo, não pode direcionar toda a sua atenção a um determinado assunto, tem que saber a hora de parar uma determinada especialização e partir pra outra, então requer paciência e bom controle de foco. É importante certificar seu conhecimento, pois serve para reconhecer e dar mais credibilidade, além de que muitas empresas exigem no mercado de trabalho. Algumas certificações são: Java(OCA, OPL, OCE), Certificação Oracle Database, Spring Certificate. Além disso, é fundamental que o profissional conhecer técnicas que aprimoram o trabalho em equipe, sabendo lidar com gerência de projetos e utilizar ou conhecer as práticas de desenvolvimento Ágil.



Ferramentas usadas no dia-a-dia

A profissão exige conhecimento considerável tanto no
Front-End quanto no Back-End. Desse modo, a quantidade de ferramentas é grande.
Podemos citar: Eclipse, Netbeans, Intelli J, Sublime Text 3, Notepadd++, Atom.
Frameworks Bootstrap(Front End), Spring MVC (Java). O automatizador de deploys
Jenkins, o qual é útil para agilizar o desenvolvimento dos projetos. Pode-se
utilizar o Maven (ferramenta desenvolvida pela Apache para gerenciar as
dependências e automatizar tarefas). 

Tecnologias envolvidas

 O profissional deve conhecer tecnologias que envolvam o Front-End e o Back-End. Podemos citar: HTML5, CSS3(less, sass), Javascript
(Jquery, Node.js, Ajax, Angular.js), Java, php7, .NET, Ruby. Deve conhecer bancos de dados relacionais
(SQL Server, MySQL, Oracle, PostgreSQL) e não relacionais (Redis, MongoDB). Não é necessário dominar todas as tecnologias, mas deve
conhecer e saber aplicar boa parte delas, de acordo com as especificações da empresa.

Ética profissional


Em uma ocasião, Jean trabalhava para um banco, desenvolvendo e dando suporte a um sistema para o mesmo. Logicamente, para poder
efetuar seu trabalho, o profissional tinha acesso a dados bancários, servidores restritos, entre outras informações confidenciais. 
A questão é que a ética nesse momento é de extrema importância para que o profissional não cometa nenhum tipo de atitude comprometedora, já que qualquer ação deste nível poderia trazer danos inimagináveis à empresa e aos clientes da mesma. 

Exemplo de resultado tangível

  • Citar produtos, processos ou serviços nos quais o profissional participou e que hoje estão "rodando" em produção. Explicar rapidamenteo o objetivo de cada um.


Upload da apresentação


Dúvidas


  • 01. Pode explicar melhor seu desafio de implementar um motor de busca? O que fez? Qual era o desafio?


  • 02. Na sua visão, porque não compensa fazer certificação?
    • A certificação é algo que pode ou não compensar, quando se fala de como a pessoa irá utilizar. Tendo em vista que novas versões e atualizações são lançadas constantemente, uma certificação pode não ser útil depois de um tempo. Dessa forma, a certificação não traria tanto benefício, além de ter um custo elevado.


  • 03. Qual a diferença entre OCA x OCP x OCE?
    • A OCA – Oracle Certified Asoociate – é o primeiro nível de certificação da Oracle, e isso independe da sua decisão de carreira. Seja para ser Desenvolvedor, seja para ser DBA, esta é uma certificação obrigatória caso você queira se especializar em outras certificações.Essa é uma prova destinada a profissionais de perfil Jr. a Pleno.
    • A OCP – Oracle Certified Professional – é uma certificação bem mais técnica que a OCA, sendo a certificação mais requisitada no mercado e geralmente exigida em licitações de órgãos públicos, além de empresas privadas.
    • A OCE – Oracle Certified Expert – é uma nova categoria de certificação da Oracle. Com menos de 5 anos de existência, a certificação é voltada para profissionais que são especialistas em ferramentas, implementações ou linguagens como o SQL.


  • 04. O que é um framework? O que é um servlet?
    • Framework é uma biblioteca que reúne diversas funcionalidades ja testadas e implementadas, as quais servem para facilitar a vida do programador no desenvolvimento. Geralmente o framework encapsula um conjunto de códigos , devolvendo uma interface mais amigável.
    • Servilet pode ser definido como um componente semelhante um servidor, que gera dados HTML e XML para a camada de apresentação de uma aplicação Web. Ele processa dinamicamente requisições e respostas


  • 05. Pode esclarecer o que é Arquitetura de Software?
    • Arquitetura de software é uma descrição abstrata de diferentes visões do sistema.É o resultado das decisões de design sobre a estrutura e o comportamento do software como um todo. A estrutura deve atender os requisitor funcionais e não funcionais do projeto.


  • 06. O que é o padrão MVC? Porque é usado?
    • MVC é um padrão de arquitetura de software que contem três estruturas básicas: Model, View e Controller. Ele separa essas estruturas para facilitar e padronizar o desenvolvimento, melhorando a visibilidade e reuso dos códigos através dessa separação de conceitos.


  • 07. JSF x JSP x Batch: Qual a relação entre eles? Para que são usados?
    • JSP: É uma tecnologia para criação de páginas web. Com Java Server Pages podemos criar aplicações web para vários servidores web, já que Java é uma linguagem multi-plataforma. JSF: É um framework que permite a elaboração de interfaces de usuário web colocando componentes em um formulário e ligando-os a objetos Java permitindo a separação entre lógica e regras de negócio, navegação, conexões com serviços externos e gerenciamento de configurações.
    • Um processamento em Batch é a execução de uma série de jobs ou tarefas sendo adequado para ambientes que não precisem de interatividade, e que possua tarefas de longa execução. 


  • 08. Quais os 3 ambientes normalmente utilizados num processo de desenvolvimento e para que é usado cada um?


  • 09. Qual a função do Analista de Requsitos? Cite um exemplo que ilustre essa atividade,
    • O Analista de Requisitos é a peça fundamental na criação do produto que se transformará no software. Transmite para a equipe de desenvolvimento o que foi relatado pela parte que encomendou o software e outros detalhes que o analista de requisitos conseguiu mapear por observações e entrevistas. O analista, portanto, é o profissional que conversa com o cliente e faz as perguntas para descobrir as funcionalidades e particularidades do sistema.


  • 10. Qual a função do Maven, Spring e Docker?
    • Maven é ferramenta desenvolvida pela Apache para gerenciar as dependências e automatizar tarefas, principalmente para a linguagem Java.
    • Spring é um framework, portanto, é um conjunto de soluções prontas para serem implementadas na sua aplicação, de forma que padronize muitas funções no projeto, facilitando, muitas vezes, a leitura e a implementação.
    • O Docker possibilita o empacotamento de uma aplicação ou ambiente inteiro dentro de um container, e a partir desse momento o ambiente inteiro torna-se portável para qualquer outro Host que contenha o Docker instalado.Isso reduz drasticamente o tempo de deploy de alguma infraestrutura ou até mesmo aplicação, pois não há necessidade de ajustes de ambiente para o correto funcionamento do serviço, o ambiente é sempre o mesmo, configure-o uma vez e replique-o quantas vezes quiser.