Prévia do material em texto
FO R M A Ç Ã O TECH RECRUITER Recrutamento e Seleção para a área de TI Bem Vindos! QUEM SOMOS Fundadora da Feel Tech RH, Coach, Gestora de Recursos Humanos, Especialista em Psicologia Organizacional, Especialista Comportamental, atuante por mais de 10 anos na área de Recursos Humanos em empresas de grande porte. Franciele Alves Gestora de Recursos Humanos, Coach, Especialista em Psicologia Organizacional e Análise Comportamental, atuante por mais de 14 anos na área de Recursos Humanos em empresas de grande porte, atualmente Founder na Feel Tech e Feel Academy. Helena Zandoná Psicóloga, Especialista em Talent Acquisition, com Especialização na área de Gestão de Pessoas com ênfase em Liderança Organizacional, atuante por mais de 15 anos na área de Gestão de Pessoas, sendo seus últimos cargos focados em atração, seleção e retenção de talentos Tech. Atua como parceira da Feel Academy há 3 anos Apresentação dos participantes “Chat e Linkedin no grupo do Whatspp” Conteúdo Parte I O mercado de TI e o papel do RH na seleção de profissionais de TI ● Mercado de TI e suas particularidades ● Novidades no mercado tech ● Soft Skills para profissionais de RH Tech ● Tempo de seleção em TI ● Postura do profissional de RH no Recrutamento e Seleção de TI ● Indicadores importantes para tecnologia Atração de Candidatos ● Onde e como buscar pessoas candidatas ● Canais de divulgação interessantes para tech (sites e plataformas relevantes) Conteúdo Parte II ● Curso superior em tecnologia ● Infraestrutura de TI ● Cargos e funções em: - Desenvolvimento - Arquitetura - Qualidade - Gestão - Produto - Dados - Infraestrutura ● Fases do projeto ● Funcionamento de equipe ágeis ● Princípios de agilidade ● Metodologia Waterfall ● Principais stacks em tecnologia: - Web/desktop – Back-end (JAVA, C#, Phyton, PHP e etc) - Web – Front -end ( React, Angular, javascript e etc) - Mobile (Nativos ou híbridos) ● Frameworks ● Bibliotecas ● Banco de dados ● Plataformas de desenvolvimento ● Tipos de sistemas Tecnologias e principais funções Conteúdo Parte III Seleção de profissionais de TI • Linkedin e o Perfil do tech recruiter Busca ativa (Hunting) • Estilo de abordagem • Modelos de entrevista • Testes técnicos – como e onde aplicar • Soft Skills e Hard Skills • Sentido e Propósito – Expectativas x Realidade Métodos Ágeis no RH • Conceito e Manifesto • Aplicabilidade na realidade do RH Sobre o modelo de MERCADO - TI • Ágil • Inquieto • Urgente • Ansioso Onde percebemos o MERCADO de TI • Software house ( fábrica de software, consultorias/ outsourcing e etc); • Software próprio; • Em todos os negócios; • Em nossa casa, carro, recursos de uso pessoal ( relógio, celular, televisão e etc) . www.feelacademy.com.br Necessidade de transformação digital 2019 Transformação digital urgente 2020 Investimentos altos em tecnologias - Ventures e startups crescendo. Mercado aquecido, salários de ouro 2021 Retomada ao presencial. salários altos e disparidade com o resto do mercado de trabalho. Início dos Layoffs 2022 Alguns layoffs, reorganização do mercado. Aumento de trabalho para IA - novas tecnologias. 2023 Destaques para o momento do MERCADO de TI • Processos mais criteriosos; • Mais profissionais disponíveis; • Remunerações menos elevadas; • Gestão mais criteriosa Destaques para o Recrutador de TI • Agilidade; conhecer mais pessoas que puder e escolher tão logo; • Capacidade de análise técnica e comportamental mais acurada; • Conhecimento do negócio e cultura para o famoso fit cultural. 7 Tendências no R&S TECH INTELIGÊNCIA ARTIFICIAL Inteligência Artificial (IA) e Machine Learning: A IA e o Machine Learning estão sendo amplamente utilizados para automatizar várias etapas do processo de recrutamento, como triagem de currículos, análise de habilidades técnicas, identificação de candidatos qualificados e previsão de desempenho. Algoritmos de IA podem analisar grandes volumes de dados para identificar padrões e tomar decisões mais precisas. ChatGPT Chat Generative Pre-trained Transformer • Desenvolvido pela OpenAI e baseado na arquitetura GPT-3.5; • Treinamento e inferência; • Treinamento: alimentado com uma enorme quantidade de texto proveniente de várias fontes, como livros, artigos, sites da web e muito mais; • Inferência: capacidade de responder a perguntas e gerar texto coerente com base nas entradas que recebe. O processo de inferência envolve a apresentação de uma entrada, como uma pergunta ou uma frase inicial, e o modelo gera uma resposta ou uma continuação adequada ao contexto; • Modelo de linguagem pré-treinado; • Data de corte: Setembro de 2021 ChatGPT E aí, como pode me ajudar? 💡 Entrevistas Virtuais Eficientes: Utilize o ChatGPT para conduzir entrevistas virtuais com pessoas candidatas de forma rápida e precisa. Ele pode fazer perguntas técnicas específicas, avaliar a experiência dos candidatos e fornecer respostas imediatas; 💡 Análise de Currículos: O ChatGPT pode processar e analisar grandes volumes de currículos, identificando habilidades-chave e critérios de seleção. Isso economiza tempo valioso e ajuda a identificar as pessoas candidatas mais promissores; 💡 Triagem Automatizada: Automatize a triagem inicial das pessoas candidatas usando o ChatGPT. Ele pode realizar uma análise preliminar com base em critérios pré-definidos, como experiência, habilidades técnicas e conhecimentos específicos. ChatGPT E aí, como pode me ajudar? 💡 Testes de Habilidades Técnicas: O ChatGPT pode criar e administrar testes de habilidades técnicas para avaliar o conhecimento das pessoas candidatas. Isso permite uma avaliação mais objetiva e eficiente, garantindo que você esteja selecionando profissionais altamente qualificados; 💡 Redução de Viéses: O ChatGPT ajuda a reduzir viéses inconscientes no processo de recrutamento. Ele analisa as pessoas candidatas com base em critérios objetivos, eliminando possíveis influências subjetivas e promovendo uma seleção mais justa e diversa; 💡 Personalização da Experiência: O ChatGPT pode adaptar-se às necessidades e critérios específicos da sua empresa. Ele pode ser treinado para compreender a cultura organizacional, os valores e as competências desejadas, garantindo que os candidatos certos sejam identificados. Analytics e Big Data Analytics e Big Data: A análise de dados será cada vez mais relevante no recrutamento e seleção de TI. As empresas poderão coletar e analisar grandes volumes de dados sobre pessoas candidatas, como resultados de testes técnicos, desempenho em projetos anteriores e feedback de empregadores anteriores. Essas análises permitirão tomar decisões mais embasadas e identificar padrões de sucesso em contratações. Chatbots e Assistência Virtual Chatbots e Assistência Virtual: Chatbots e assistentes virtuais estão sendo usados para automatizar a comunicação com os candidatos, responder a perguntas frequentes, agendar entrevistas e fornecer informações sobre o processo seletivo. Eles podem ajudar a reduzir o tempo de resposta, melhorar a experiência do candidato e liberar tempo dos recrutadores para tarefas mais estratégicas. Realidade Virtual e Realidade Aumentada Realidade Virtual e Realidade Aumentada: A utilização de tecnologias de Realidade Virtual (VR) e Realidade Aumentada (AR) permitirá que os recrutadores criem experiências imersivas para os candidatos. Por exemplo, os candidatos poderão participar de entrevistas virtuais em ambientes simulados de trabalho, fornecendo uma visão mais precisa das demandas da posição. Além disso, a VR e a AR também poderão ser usadas para aprimorar a formação e capacitação dos candidatos selecionados. Inteligência Emocional e Soft Skills Inteligência Emocional e Soft Skills: Além das habilidades técnicas,as empresas estão dando cada vez mais importância à inteligência emocional e às soft skills das pessoas candidatas. Ferramentas baseadas em IA estão sendo desenvolvidas para avaliar essas habilidades, através da análise de expressões faciais, tom de voz e outras características comportamentais. Recrutamento em Redes Sociais e Plataformas Profissionais Recrutamento em Redes Sociais e Plataformas Profissionais: As redes sociais e plataformas profissionais continuarão a desempenhar um papel fundamental no recrutamento de TI. Recrutadores utilizam algoritmos e ferramentas avançadas de pesquisa nessas plataformas para identificar pessoas candidatas talentosas e construir relacionamentos com eles. Avaliação das habilidades Técnicas Avaliação de Habilidades Técnicas: À medida que as empresas buscam pessoas candidatas com habilidades práticas específicas em TI, as ferramentas de avaliação de habilidades se tornarão mais sofisticadas. Plataformas online oferecerão ambientes virtuais para que as pessoas candidatas demonstrem suas habilidades práticas por meio de projetos ou desafios técnicos. Essas avaliações ajudarão a identificar os talentos mais adequados para cada posição. ASPECTOS IMPORTANTES DO RECRUTAMENTO E SELEÇÃO EM TI • Assertividade • Complexidade • Agilidade • Qualidade Sobre o perfil do TECH RECRUITER Soft skills TECH RECRUITER • Empatia • Simpatia • Curiosidade • Ownership (senso de dono) • Organização • Proatividade ( para aprender, para entrar em contato e etc ); • Agilidade • Visão sistêmica • Sentido de urgência • Saber lidar sob pressão • Flexibilidade www.feelacademy.com.br Soft skills TECH RECRUITER • Capacidade crítica para ler e interpretar novos cenários; • Mindset Digital • Comunicação • Negociação • Resiliência • Inteligência Emocional • Transparência • Objetividade; • Humildade ( estar disposto sempre a aprender ); www.feelacademy.com.br Perfil do RECRUTADOR ❑ Conhecimento de áreas multidisciplinares de negócio: ❑ Conhecimento técnico > mergulhar na área; ❑ Networking: estar inserido em comunidade de TI (eventos, associações, etc). ❑ Habilidade para medir soft / hard skills e fit cultural. www.feeltechrh.com.br Como atrair MELHORES CANDIDATOS? • Conheça as tecnologias que a vaga requer e procure buscar mais informações sobre elas; Ex: diferença de back end, front end, quais tecnologias mais atuais, quais metodologias utilizadas, o que é banco de dados etc; • Fortaleça o seu perfil como Recrutador; www.feeltechrh.com.br ATRAÇÃO DO PROFISSIONAL DE TI ❑ Postura do profissional de RH frente ao candidato de TI; ❑ Estilo de abordagem; ❑ Estabelecer uma relação de confiança, este é o seu banco pessoal de talentos, não só de sua empresa. www.feeltechrh.com.br Onde encontrar os MELHORES CANDIDATOS? • Linkedin; • Grupos de WhatsApp e Telegram; • Meetups • Universidades; • Indicação premiada; • GitHub; • Plataformas/sites como: apinfo, baguete, revelo, GeekHunter • Consultorias especializadas em mapear e recrutar profissionais TECH; www.feeltechrh.com.br DESAFIO: BANCO DE TALENTOS Ferramentas de auxílio no R&S www.feeltechrh.com.br Atividade Prática em GRUPO (10 min) www.feeltechrh.com.br • Considerando os desafios apresentados para a área de tecnologia até agora, construa Key results para a conclusão deste treinamento, inclusive eles poderão servir como ações para o seu plano de desenvolvimento individual. - Exemplo: Saber sobre desenvolvimento de software e conseguir tocar vagas JR. Conteúdo Parte II Tecnologias e principais funções ● Curso superior em tecnologia ● Infraestrutura de TI ● Cargos e funções em: - Desenvolvimento - Arquitetura - Qualidade - Gestão - Produto - Dados - Infraestrutura ● Fases do projeto ● Funcionamento de equipe ágeis ● Princípios de agilidade ● Metodologia Waterfall ● Principais stacks em tecnologia: - Web/desktop – Back-end (JAVA, C#, Phyton, PHP e etc) - Web – Front -end ( React, Angular, javascript e etc) - Mobile (Nativos ou híbridos) ● Frameworks ● Bibliotecas ● Banco de dados ● Plataformas de desenvolvimento ● Tipos de sistemas Funções/Cargos em TI Mas antes... 5 principais cursos SUPERIORES EM TI • Engenharia da computação: Foco em hardwares e demais dispositivos tecnológicos, bem como tudo que envolve seu projeto de desenvolvimento. Programação baixo nível e mais contato com hardwares. • Ciência da computação: Foco na programação, programação clássica e desenvolvimento, básico de linguagens de programação (c, java. Etc) Banco de dados, arquitetura e hardware, além de robótica e IA. • Sistema da informação: tópicos de administração e gestão de TI, menos hardware e programação de baixo nível. • ADS: programação, banco, sistemas empresariais (ERP, CRM) além de gestão e adm. • Gestão em TI: Gestão de recursos e possibilidades da área de TI, conteúdo sobre sistema, modelos de negócio , gestão estratégia , banco de dados e linguagem. Pouco hands on. www.feeltechrh.com.br Geralmente, não descartamos profissionais de TI por ausência de ensino superior completo; EXCETO: • Oportunidades para área pública, que por edital/licitação é requerido a obrigatoriedade do ensino superior bem como certificações; • Posições de referência que pode ser exigido pela contratante; IMPORTANTE INFRAESTRUTURA DE TI • Consiste nos componentes e serviços que fornecem a base para sustentar todos os sistemas de informação de uma organização. • Os componentes (também conhecidos como plataforma) são divididos em hardware, software e tecnologias de comunicação e providenciam a base de todo o sistema. O profissional de TI usa estes componentes para gerar serviços, que incluem gerenciamento de dados, desenvolvimento de sistemas e novos métodos de segurança. www.feeltechrh.com.br • Hardware: Consiste na tecnologia para processamento computacional, armazenamento, entrada e saída de dados. Inclui, também, equipamentos para reunir e registrar dados, meios físicos para armazená-los e os dispositivos de saída da informação processada. • Software: É dividido em softwares de sistema e de aplicativos. Os de sistema administram os recursos e as atividades do computador. Os de aplicativos direcionam o computador a uma tarefa específica solicitada pelo usuário. • Rede: Proporciona conectividade de dados entre funcionários, clientes e fornecedores. Isso inclui a tecnologia para operar as redes internas da organização, os serviços prestados por companhias telefônicas ou de telecomunicações e a tecnologia para operar sites e conectar-se com outros sistemas computacionais por meio da internet. www.feeltechrh.com.br ERP: Enterprise Resource Planning – é um conjunto de atividades executadas por meio de software modular. Atua com processos internos. A estrutura de um sistema ERP, por ser composta de módulos de Finanças, Contabilidade, Vendas, Planejamento e controle da produção, RH, Custos e outros que facilitam e otimizam os processos internos e externos de empresas que tem a cadeia logística apresentada, a fim de oferecer um atendimento qualificado referente aos acessos imediatos, como estoques, dados dos produtos, histórico de crédito dos clientes e informações anteriores ao pedido. Para ter sucesso na implantação desse sistema é necessário um planejamento das organizações quanto à sua implantação. Entre as várias vantagens do sistema ERP estão o melhor planejamento e alocação de recursos. www.feeltechrh.com.br TIPOS DE SISTEMAS BI: Business Intelligence - Inteligência de Negócios ou conhecimento do negócio na era das comunicações online, é um sistema organizacional que trabalha com coleta de dados. CRM: Customer Relationship Management – É um Sistema de Gestão do Relacionamento com o Cliente. Atua com processos externos. É um sistema que, utilizando da tecnologia da informação, integra os departamentos de Vendas,Marketing e Serviços, os quais estão envolvidos diretamente com os clientes, para um melhor atendimento dos mesmos. SCM: Supply Chain Management – Gestão da cadeia de suprimentos. Abrange todo o processo logístico de determinado produto ou serviço, desde seu matéria –prima até a entrega ao cliente final. ATS ( Application Tracking System ) - É um software de gestão de processos de Recrutamento e Seleção que armazena, lê e ranqueia currículos, de modo que a empresa possa contratar as pessoas certas. ESTEIRA DE DESENVOLVIMENTO • • Uma esteira tradicional que segue os conceitos da agilidade é chamada de SDLC — Software Development Life Cycle, literalmente traduzido como Ciclo de Vida de Desenvolvimento de Produto www.feeltechrh.com.br FASES • Fase de requisitos: Levanta os requisitos mínimos, estuda a viabilidade e define o modelo a ser usado; • Fase de projeto: Envolve atividades de concepção, especificação, design da interface, prototipação, design da arquitetura; • Fase de implementação: Tradução para uma linguagem de programação das funcionalidades definidas durante as fases anteriores; • Fase de testes: Realização de testes no que foi desenvolvido de acordo com os requisitos; • Fase de produção: Implantação em produção do produto final; • www.feeltechrh.com.br SPRINT • Com o objetivo de otimizar entregas, o sprint corresponde aos períodos, nos quais as tarefas têm de ser cumpridas. Em outras palavras, os sprints podem ser definidos como cada uma das fases de um projeto, estipuladas em espaços definidos de tempo. • No Scrum, por exemplo, o Sprint tem seu tempo mínimo de 1 semana até seu tempo máximo de 4 semanas (time-box). • www.feeltechrh.com.br ESTRUTURA DE EQUIPES ÁGEIS • Squad é um modelo organizacional dentro da Cultura Ágil. Ao contrário de equipes que são divididas por áreas onde todos os profissionais das equipes têm a mesma formação e conhecimento, a metodologia squad organiza a empresa em equipes multidisciplinares com objetivos específicos. • É a equipe que irá trabalhar no projeto, ou seja, são os profissionais que vão executar as entregas propostas no Backlog. •www.feeltechrh.com.br ESTRUTURA DE EQUIPES ÁGEIS • Dev Team ou Scrum Team ( Devs JR, PL e SR); • Product Owner ; • Scrum Master; • Obs: Podemos ver em demais áreas como Dados, Infra, RH e etc. •www.feeltechrh.com.br ESTRUTURA DE EQUIPES ÁGEIS • Teoricamente os cargos abaixo não fazem parte dos papéis do Scrum, entretanto cada vez mais é comum encontrá-los na composição de SQUADS em desenvolvimento de software. • UX/UI Designer • QA • www.feeltechrh.com.br METODOLOGIAS DE TRABALHO Desenvolvimento Ágil de Software (em inglês: Agile software development) ou Método ágil é uma disciplina que estuda um conjunto de comportamentos, processos, práticas e ferramentas utilizados para a criação de produtos (geralmente de, mas não limitados à, software) e sua subsequente disponibilização para os usuários finais. As metodologias e frameworks que fazem parte do conceito de desenvolvimento ágil (como o Scrum, por exemplo) providenciam uma estrutura conceitual para conduzir projetos de engenharia de software. www.feeltechrh.com.br METODOLOGIA ÁGIL MANIFESTO ÁGIL • Indivíduos e interações mais que processos e ferramentas; • Software funcional mais que documentação abrangente; • Colaboração do cliente mais que negociação de contratos; • Responder a mudanças mais que seguir um plano ❑ Garantir a satisfação do consumidor entregando rapidamente e continuamente software funcionais; ❑ Até mesmo mudanças tardias de escopo no projeto são bem-vindas para garantir a vantagem competitiva do cliente; ❑ Software funcionais são entregues frequentemente (semanas, ao invés de meses); ❑ Cooperação diária entre pessoas que entendem do 'negócio' e desenvolvedores; ❑ Projetos surgem através de indivíduos motivados, entre os quais existe relação de confiança. ❑ A maneira mais eficiente e efetiva de transmitir informações é conversar cara a cara; ❑ Software funcionais são a principal medida de progresso do projeto; ❑ Processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes para manter um ritmo constante indefinidamente. ❑ Design do software deve prezar pela excelência técnica; ❑ Simplicidade é essencial; ❑ As melhores arquiteturas, requisitos e projetos emergem de equipes auto organizadas; ❑ Em intervalos regulares, a equipe reflete sobre como para tornar-se mais eficaz, então sintoniza e ajusta seu comportamento apropriadamente. www.feeltechrh.com.br Princípios do desenvolvimento ágil: Watterfall ou Cascata ❑ Forma mais tradicional de gerenciamento de processos; ❑ Etapas sequenciais; ❑ O modelo de cascata só permite que o projeto avance quando uma fase está inteiramente completa; ❑ Cliente só visualiza o projeto na entrega formal. • www.feeltechrh.com.br Watterfall x Ágil www.feeltechrh.com.br ENTENDENDO TECNOLOGIAS: O que são, quais as diferenças e como entendê-las? PROGRAMAR Programar, na prática, é escrever um texto que será transformado em um software. Esse texto deve ser escrito em uma linguagem de programação e é chamado de código, mas não é um código lido apenas por uma máquina, é um código que pode ser lido por um ser humano O que são linguagens de programação? Linguagem de Programação é uma linguagem escrita e formal que especifica um conjunto de instruções e regras usadas para gerar programas (software). Um software pode ser desenvolvido para rodar em um computador, dispositivo móvel ou em qualquer equipamento que permita sua execução. Existem várias linguagens e elas servem para muitos propósitos. Linguagens de marcação São utilizadas para definir formatos, maneiras de exibição e padrões dentro de um documento qualquer. Normalmente, elas não possuem qualquer estrutura de controle como as linguagens de programação tradicionais (por exemplo, comandos condicionais ou de repetição) Ex HTML Programação de Alto ou baixo nível As linguagens também são classificadas em níveis (alto ou baixo). Existem aquelas em que a sintaxe se aproxima a uma linguagem humana, por isso entram na categoria das linguagens de alto nível. Por outro lado, existem as linguagens que possuem sintaxe e semântica próximas ao código de máquina, portando, classificadas como linguagens de baixo nível. www.feeltechrh.com.br CAMADAS DE PROGRAMAÇÃO Camada de apresentação • É a chamada GUI (Graphical User Interface), ou simplesmente interface. Esta camada interage diretamente com o usuário, é através dela que são feitas as requisições como consultas, por exemplo. Camada de negócio • Também chamada de lógica empresarial, regras de negócio ou funcionalidade. É nela que ficam as funções e regras de todo o negócio. Não existe uma interface para o usuário e seus dados são voláteis, ou seja, para que algum dado seja mantido deve ser utilizada a camada de dados. Camada de Dados • É composta pelo repositório das informações e as classes que as manipulam. Esta camada recebe as requisições da camada de negócios e seus métodos executam essas requisições em um banco de dados. Uma alteração no banco de dados alteraria apenas as classes da camada de dados, mas o restante da arquitetura não seria afetado por essa alteração. www.feeltechrh.com.br PARADIGMA DE PROGRAMAÇÃO Paradigma de programação é um meio de se classificar as linguagens de programação baseado em suas funcionalidades Um paradigma de programação fornece e determina a visão que o programador possui sobre a estruturação e execução do programa. www.feeltechrh.com.br Paradigma funcional está na avaliação de funções. Paradigma lógico Muito utilizado em aplicações de inteligência artificial. Esse paradigma chega no resultado esperado a partir de avaliações lógico-matemáticas. Paradigma declarativo é baseado no lógico e funcional. Linguagens declarativas descrevem o quefazem e não exatamente como suas instruções funcionam. Paradigma imperativo é focado na mudança de estados de variáveis (ao contrário dos anteriores). Paradigma orientado a eventos Toda linguagem que faz uso de interface gráfica é baseada nesse paradigma. Nele, o fluxo de execução do software é baseado na ocorrência de eventos externos, normalmente disparados pelo usuário. Paradigma Orientado a Objetos (POO) é um modelo e análise, projeto e programação de software baseado na composição e interação entre diversas unidades chamadas de objetos www.feeltechrh.com.br PARADIGMA DE PROGRAMAÇÃO PRINCIPAIS LINGUAGENS DE PROGRAMAÇÃO ❏ Sistemas legados são aqueles que, por conta do tempo, começam a se tornar obsoletos dentro das rotinas em uma organização. ❏ Um software que foi feito há mais dez anos, por exemplo. ❏ Em virtude das muitas mudanças, suas funcionalidades não mais se encaixam nas novas dinâmicas de trabalho da empresa. ❏ Tecnologias mais antigas, arquitetura monolítica. Desenvolvedores amam ou odeiam. www.feeltechrh.com.br Sistemas e Stacks LEGADO DESENVOLVIMENTO WEB/DESKTOP JAVA Back-end, Mobile, Dados e embarcado O Java é uma linguagem de programação orientada a objetos e Atualmente ela é usada para diversos fins e está presente também em sistemas operacionais, dispositivos móveis, mainframes e etc. É rápida, segura e confiável. Groovy, Full Stack : também conhecida como Apache Groovy, é compatível com a sintaxe Java, orientado a objetos e desenvolvido para a máquina virtual Java (JVM). Ele foi inspirado em outras linguagens como Python, Ruby e Smalltalk. Tais características o tornam disponível aos programadores Java, pois utilizam uma sintaxe muito parecida. Contudo, o Groovy não foi concebido para substituir a linguagem Java, mas sim complementá-la. A linguagem Groovy é usada como alternativa ao Java (ou integrada ao Java, já que tem compatibilidade). Tende a agilizar e otimizar o desenvolvimento mobile, web, desktop e de qualquer outro tipo de aplicação. www.feeltechrh.com.br C# :(lê-se “c sharp”), Back-end, embarcado: trata-se de uma linguagem de programação desenvolvida pela Microsoft e lançada em julho de 2002. A linguagem é um dos recursos da plataforma .NET (pronuncia-se “dot net”), que foi criada com o objetivo de melhorar a comunicação entre diferentes tecnologias utilizadas pela empresa. É uma linguagem orientada a objetos. A sua sintaxe orientada a objetos foi baseada no C++ mas inclui muitas influências de outras linguagens de programação, como Object Pascal e, principalmente, Java www.feeltechrh.com.br Visual Basic (VB6), Back-end: trata-se de uma linguagem de programação produzida pela empresa Microsoft, e é parte integrante do pacote Microsoft Visual Studio. Visual Basic é usado no desenvolvimento desktop, especialmente para aplicativos do Windows 10. Seu nome faz referência à facilidade na construção da interface das aplicações, em um ambiente de desenvolvimento (IDE) totalmente gráfico. Visual Basic.NET é a nova versão do Visual Basic, que é parte integrante da plataforma Microsoft.net . Essa versão não é totalmente compatível com as versões anteriores, mas existe a possibilidade de converter códigos antigos, que após uma revisão podem ser usados no Visual Basic .NET. www.feeltechrh.com.br PYTHON, Back-end, Dados, Machine Learning, embarcado: É uma linguagem de programação de alto nível, interpretada de script e orientada a objetos. Muito usado em aplicações web, soluções complexas, jogos e entre outros. Essa linguagem também é frequentemente ensinada em cursos de lógica de programação devido à simplicidade da sintaxe. Além de tudo isso, Python tem sido muito utilizado para o desenvolvimento de aplicações que se utilizam de técnicas de Inteligência Artificial e Aprendizado de Máquina. www.feeltechrh.com.br Linguagem R, Dados: É uma linguagem de programação multi-paradigma orientada a objetos, programação funcional, dinâmica, fracamente tipada, voltada à manipulação, análise e visualização de dados. Usada entre estatísticos e analistas de dados para desenvolver software de estatística e análise de dados. www.feeltechrh.com.br C, back-end/ embarcado: linguagem também é muito utilizada no desenvolvimento de interpretadores, compiladores, editores de texto, softwares de computação gráfica e tratamento de imagens, banco de dados e entre outros. C++, back-end/ embarcado: utilizada nos mais diversos tipos de aplicações, como: jogos, editores de texto, editores de imagem e entre outras tantas finalidades. www.feeltechrh.com.br JavaScript, Full Stack, Mobile, Embarcado: É uma linguagem de programação criada para navegadores, com o objetivo de proporcionar maior interatividade às páginas web. Suportada hoje por todos os navegadores, o JavaScript é padronizado pela ECMA Internacional e considerado a linguagem de programação Web mais popular do mercado. www.feeltechrh.com.br TypeScript, Full Stack e Mobile: É uma linguagem de programação de código aberto desenvolvida pela Microsoft. É um superconjunto sintático estrito de JavaScript e adiciona tipagem estática opcional à linguagem. Podemos considerar o Typescript como um potencializador da linguagem Javascript. Ele permite que grandes sistemas complexos sejam construídos com essa linguagem sem nenhum empecilho e sem que ela deixe a desejar diante de outras linguagens de back-end, como PHP ou Java. www.feeltechrh.com.br PHP, Back-end: É uma linguagem interpretada livre, usada originalmente apenas para o desenvolvimento de aplicações presentes e atuantes no lado do servidor. O objetivo da linguagem é permitir que desenvolvedores web escrevam páginas geradas dinamicamente de forma rápida. www.feeltechrh.com.br Ruby, Back-end : É uma linguagem de programação interpretada multiparadigma, de tipagem dinâmica e forte, com gerenciamento de memória automático e orientada a objetos. Uma das linguagens de programação mais populares e ainda possui altas perspectivas de crescimento. Trata-se de uma tendência! Aplicações web de grande relevância, como Twitter e GitHub utilizam a linguagem. www.feeltechrh.com.br Go ou Golang, Back-end : O foco da linguagem é a performance, buscando ótimos desempenhos tanto da compilação, quanto de processamento da aplicação. A Go é multiplataforma, com suporte para Linux, Windows, MacOS e entre outros. A alta eficiência da linguagem permite que os serviços desenvolvidos processem volumes maiores de informação. Ela foi projetada não só com equipes de desenvolvedores em mente, mas também com equipes de manutenção a longo prazo. www.feeltechrh.com.br Delphi, Back-end, Embarcado :Object Pascal é uma linguagem de programação orientada a objetos, cujo principal ambiente de desenvolvimento é o Delphi. A linguagem Pascal foi criada inicialmente em 1970 pelo suíço Niklaus Wirth. Ao longo dos anos, a linguagem evoluiu e, na década de 1990, surgiu o Object Pascal, que consiste na linguagem Pascal orientada a objetos. Já em 1995, Anders Hejlsberg, também criador da linguagem C#, lançou um ambiente para criar aplicações Windows usando a linguagem Object Pascal, chamado de Delphi. A partir do Delphi 7, a linguagem Object Pascal passou a ser conhecido como Delphi Language. www.feeltechrh.com.br SQL e PL/SQL, Banco de Dados: SQL é uma linguagem voltada para a manipulação de dados em SGBDs (Sistemas de Gerenciamento de Bancos de Dados). Ela serve para gerenciar e extrair informações de bancos de dados, por meio de comandos e tarefas em tabelas. PL/SQL: A linguagem PL/SQL (Procedural Language extensions to SQL) foi introduzida no ano de 1988 como parte do conjunto de tecnologias que compunha a versão 6.0 do SGBD Oracle. Ela possibilita o desenvolvimento de programas que são armazenados, compilados e executados dentro do servidor de banco de dados Oracle. www.feeltechrh.com.br DESENVOLVIMENTO MOBILENATIVO DESENVOLVIMENTO iOS Swift: Criada pela Apple, Swift é uma linguagem de programação destinada ao desenvolvimento de aplicativos para as plataformas da marca, como Mac OS, iOS, Apple Watch e Apple TV. www.feeltechrh.com.br Objetive- C: Trata-se de uma linguagem de programação orientada a objetos. A ideia era criar uma linguagem de programação que primasse pela reutilização de código. Hoje pertence à Apple, sendo utilizada no desenvolvimento de aplicações para o sistema iOS. www.feeltechrh.com.br Ambas são linguagens para desenvolvimento de apps para dispositivos iOS. Entretanto, o Objective C está ultrapassado e pouco usado. Hoje, a linguagem oficial é o Swift, amplamente usado no mercado. Conhecer ObjC é um diferencial, mas já não é exigência. www.feeltechrh.com.br DESENVOLVIMENTO MOBILE ANDROID Kotlin: O Kotlin é uma linguagem de programação moderna. É uma Linguagem de programação multiplataforma, orientada a objetos e funcional, concisa e estaticamente tipada, desenvolvida pela JetBrains em 2016, que compila para a Máquina virtual Java e que também pode ser traduzida para a linguagem JavaScript e compilada para código nativo. www.feeltechrh.com.br Java Linguagem mais usada por programadores no mundo inteiro, o Java é flexível e pode ser executado tanto em uma janela de navegador quanto em aparelhos sem browser. Além disso, tem capacidade multiplataforma e tecnologias como o TotalCross, que o complementa e vem ganhando espaço por facilitar o desenvolvimento mobile. www.feeltechrh.com.br DESENVOLVIMENTO MOBILE HÍBRIDO O aplicativo híbrido é construído na linguagem HTML5, CSS e Javascript, assim como o site mobile. Esse código é alocado dentro de um container, integrando as funcionalidades que o seu dispositivo oferece, oferecendo uma experiência melhor ao usuário que os web Apps www.feeltechrh.com.br FRAMEWORK MOBILE HÍBRIDOS FLUTTER: O Flutter é um framework de UI para mobile, desenvolvido pelo Google para criar interfaces nativas de alta qualidade no iOS e no Android em tempo recorde. O Flutter trabalha com código existente, é usado por desenvolvedores e organizações em todo o mundo, é gratuito e de código aberto. Para desenvolver no Flutter, é necessário ter conhecimento sobre a linguagem Dart, pois a proposta que o framework traz é justamente ser ahead of time (AOT), que significa ter o código compilado antes da execução, onde o carregamento do app e das animações do mesmo é mais fluido, devido a essa compilação do código antes da sua execução. www.feeltechrh.com.br REACT NATIVE - O React Native é um framework baseado no React, desenvolvido pela equipe do Facebook, que possibilita o desenvolvimento de aplicações mobile, tanto para Android, como para iOS, utilizando apenas Javascript. www.feeltechrh.com.br XAMARIN- O Xamarin é uma plataforma de software livre para a criação de aplicativos modernos e de alto desempenho para iOS, Android e Windows com o . NET. O Xamarin é uma camada de abstração que gerencia a comunicação de código compartilhado com o código de plataforma subjacente. www.feeltechrh.com.br FRAMEWORKS WEB FRAMEWORKS Um framework em desenvolvimento de software, é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. Um framework pode atingir uma funcionalidade específica, por configuração, durante a programação de uma aplicação www.feeltechrh.com.br .Net: Trata-se de um framework criado pela Microsoft e voltado ao desenvolvimento web, com a possibilidade de reutilização e reaproveitamento de código como uma de suas principais facilidades oferecidas. É um frame de desenvolvimento que permite a programação em C#, Visual Basic, ASP.Net. www.feeltechrh.com.br SPRING ( JAVA) - é um framework open source para a plataforma Java criado por Rod Johnson e descrito em seu livro "Expert One-on-One: JEE Design e Development". Trata-se de um framework não intrusivo, baseado nos padrões de projeto inversão de controle e injeção de dependência. DJANGO (PYTHON) - é um framework para desenvolvimento rápido para web, escrito em Python, que utiliza o padrão model-template-view. Foi criado originalmente como sistema para gerenciar um site jornalístico na cidade de Lawrence, no Kansas. Tornou-se um projeto de código aberto e foi publicado sob a licença BSD em 2005. www.feeltechrh.com.br OUTROS FRAMEWORKS WEB Laravel (PHP) - É um framework PHP livre e open-source criado por Taylor B. Otwell para o desenvolvimento de sistemas web que utilizam o padrão MVC. Podemos encontrar também outros como CodeIgniter, Zend, Symfony, CakePHP etc. Ruby on Rails (RUBY)- É um framework livre que promete aumentar velocidade e facilidade no desenvolvimento de sites orientados a banco de dados, uma vez que é possível criar aplicações com base em estruturas pré-definidas. EXPRESS.JS (JAVASCRIPT) - é um framework para aplicações web para Node.js, lançado como software livre e de código aberto sob a Licença MIT. É feito para otimizar a construção de aplicações web e API's. É um dos mais populares frameworks para servidores em Node.js. www.feeltechrh.com.br OUTROS FRAMEWORKS WEB VUE (JAVASCRIPT) - é um framework JavaScript de código-aberto, focado no desenvolvimento de interfaces de usuário e aplicativos de página única. ANGULAR (JAVASCRIPT/ TYPESCRIPT) - é um framework de código aberto usado para construir aplicativos para web baseados em uma única página dinâmica. Os desenvolvedores também usam essa ferramenta para criar menus animados para páginas de internet baseadas em HTML. O framework é um conceito de Misko Hevery e Adam Abrons, engenheiros da Google. BOOTSTRAP (JAVASCRIPT) - É um dos principais frameworks JavaScript web e open-source do mercado e é capaz de oferecer padrões para o desenvolvimento HTML, CSS e JavaScript. www.feeltechrh.com.br OUTROS FRAMEWORKS WEB ● SELENIUM- É um framework portátil para testar aplicativos web. O Selenium fornece uma ferramenta de reprodução para a criação de testes funcionais sem a necessidade de aprender uma linguagem de script de teste. ● REST ASSURED - É uma ferramenta que foi desenvolvida para facilitar a criação de testes automatizados para APIs REST. Esta oferece suporte para validar protocolo HTTP e requisições em JSON. ● TESTNG- É uma estrutura de teste para a linguagem de programação Java criada por Cédric Beust e inspirada em JUnit e NUnit. O objetivo do projeto do TestNG é abranger uma ampla variedade de categorias de teste: unidade, funcional, ponta a ponta, integração etc, com funcionalidades mais poderosas e fáceis de usar. ● JUNIT- É um framework open-source, que se assemelha ao raio de testes software java, criado por Erich Gamma e Kent Beck, com suporte à criação de testes automatizados na linguagem de programação Java. Esse framework facilita a criação e manutenção do código para a automação de testes com apresentação dos resultados. www.feeltechrh.com.br FERRAMENTAS PARA TESTES ● APPIUM - É uma ferramenta de automação de código aberto para executar scripts e testar aplicativos nativos, aplicativos da Web para dispositivos móveis e aplicativos híbridos no Android ou iOS usando um driver de web. ● SOAPUI - É um aplicativo de teste de serviço da Web de código aberto para Simple Object Access Protocol e transferências de estado representacional. Sua funcionalidade cobre inspeção de serviço da web, invocação, desenvolvimento, simulação e simulação, teste funcional, teste de carga e conformidade. ● CUCUMBER- É uma ferramenta de software que oferece suporte ao desenvolvimento orientado por comportamento. Central para a abordagem do Cucumber BDD é seu analisador de linguagem comum chamado Gherkin. ● www.feeltechrh.com.br FERRAMENTAS PARA TESTES BIBLIOTECAS WEB BIBLIOTECAS Na ciência da computação, biblioteca é uma coleção de subprogramas utilizados no desenvolvimento de software. Bibliotecas contémcódigo e dados auxiliares, que provém serviços a programas independentes, o que permite o compartilhamento e a alteração de código e dados de forma modular. www.feeltechrh.com.br BIBLIOTECAS x FRAMEWORK • Framework - É um conjunto de códigos prontos que podem ser usados no desenvolvimento de aplicativos e sites. O objetivo dessa ferramenta é aplicar funcionalidades, comandos e estruturas já prontas para garantir qualidade no desenvolvimento de um projeto. • Bibliotecas - É uma coleção de implementações de comportamentos escritos em uma linguagem e importadas no seu código. Nesse caso, há uma interface bem definida para cada comportamento invocado. São uma coleção de códigos voltados a resolver um determinado tipo de problema. www.feeltechrh.com.br BIBLIOTECAS x FRAMEWORK • Você chama uma biblioteca. É uma ferramenta. Você usa o que precisa. Uma biblioteca pode conter implementações públicas que não fazem parte da API. Usá-las pode trazer risco. • Um framework chama você. É um estilo de vida. Seu projeto se compromete com ele. Eles possuem lacunas que devem ser preenchidas pelo programador para funcionar conforme sua necessidade. Pode ser visto como um esqueleto de uma aplicação. Frequentemente são confundidos, de forma certa ou errada, como um conjunto de classes. • www.feeltechrh.com.br BIBLIOTECAS x FRAMEWORK • • www.feeltechrh.com.br REACT (JAVASCRIPT) - é uma biblioteca JavaScript de código aberto com foco em criar interfaces de usuário em páginas web. É mantido pelo Facebook, Instagram, outras empresas e uma comunidade de desenvolvedores individuais. É utilizado nos sites da Netflix, Imgur, Feedly, Airbnb, SeatGeek, HelloSign, Walmart e outros. REDUX (JAVASCRIPT) - é uma biblioteca JavaScript de código aberto para gerenciar o estado do aplicativo. É mais comumente usado com bibliotecas como React ou Angular para criar interfaces de usuário. Semelhante pela arquitetura Flux do Facebook, foi criado por Dan Abramov e Andrew Clark. JQUERY (JAVASCRIPT) - é uma biblioteca de funções JavaScript que interage com o HTML, desenvolvida para simplificar os scripts interpretados no navegador do cliente. Usada por cerca de 74.4% dos 10 mil sites mais visitados do mundo, jQuery é a mais popular das bibliotecas JavaScript. www.feeltechrh.com.br ALGUMAS BIBLIOTECAS WEB BANCOS DE DADOS Oracle O Oracle foi lançado em 1980 é um banco de dados relacional e literalmente domina o mercado. Sua linguagem de programação oficial é o PL/SQL MySQL Um banco de dados que tem o foco sistemas online. Ele também pertence a Oracle. O seu grande diferencial é ser um sistema Open Source. Ele é também um Banco de Dados relacional. SQL Server Banco de dados muito utilizado no mercado, mas devido ao fato de hoje ele suportar linguagens do pacote .NET, além a da sua linguagem principal o T-SQL www.feeltechrh.com.br PostgreSQL Por ser Open Source, assim como o MySQL, é muito utilizado para sistemas web, caso você queira se especializar em este tipo de aplicação para criação de pequenos sistemas é altamente aconselhável que você invista em PostgreSQL. MongoDB O primeiro e único banco de dados não relacional da lista do TOP Five dos Bancos de Dados. Nele é utilizado o armazenamento de arquivos para guardar informações, o conceito de NoSQL. Foi lançado em 2009 pela MongoDB e é Open Source. MariaDB: Um dos bancos de dados mais conhecidos do mundo, criado pelos mesmos desenvolvedores do MySQL, que mantiveram a estrutura de código aberto. Sua principal característica é a rapidez, escalabilidade e robustez de suas ferramentas, plugins e, claro, capacidade de armazenamento. Banco de dados Relacional: As bases de dados relacionais armazenam e fornecem acesso a pontos de dados que estão relacionados entre si, através de linhas e colunas Banco de dados NOSQL: Um banco de dados não relacional é qualquer banco de dados que não segue o modelo relacional fornecido pelos sistemas tradicionais de gerenciamento de bancos de dados relacionais Uma base de dados não relacional pode armazenar dados sem uma mecânica explícita e estruturada para vincular dados de diferentes tabelas uns aos outros. www.feeltechrh.com.br BANCO DE DADOS RELACIONAL X NÃO RELACIONAL PLATAFORMAS DE DESENVOLVIMENTO PLATAFORMAS Uma plataforma computacional é, no senso mais geral, qualquer que seja o ambiente pré-existente, um pedaço de software que é projetado para ser executado internamente, obedecendo às suas limitações e fazendo uso das suas instalações. Resumindo, a plataforma é o conjunto de software e hardware onde o sistema vai rodar. O sistema operacional, o banco de dados, o servidor web, o hardware, a rede, tudo isso faz parte da plataforma. www.feeltechrh.com.br Visual Studio.Net A principal plataforma de desenvolvimento em C-Sharp dispensa comentários é a plataforma mais usada atualmente para desenvolver na linguagem. www.feeltechrh.com.br PLATAFORMAS DE DESENVOLVIMENTO Java Enterprise Edition (JAVA EE) A Java EE, ou Java Platform, Enterprise Edition, é a plataforma que disponibiliza recursos para o desenvolvimento de aplicações corporativas voltadas para web e servidores de aplicação. Ela foi projetada para suportar sistemas de uso em larga escala, para uma quantidade significativa de usuários, possibilitando o desenvolvimento de aplicações escaláveis, robustas multicamadas JavaFX Plataforma projetada para oferecer um rico conjunto de APIs que simplificam o desenvolvimento de softwares que utilizam conteúdo de multimídia Java Standard Edition (JAVA SE) Plataforma de programação voltada para criação de applets e desenvolvimento de softwares para desktop, destinados a computadores pessoais, notebooks ou outras arquiteturas com maior capacidade de processamento e memória. Android Android é a plataforma mobile mais utilizada no mundo. A plataforma é desenvolvida baseada em Linux e sua arquitetura é dividia da seguinte forma: Linux é a base de tudo. Todos os drivers de hardware e redes (Bluetooth, câmeras, USB, GPS’s etc), sistemas de arquivos e processamento estão incluídos; Bibliotecas e Serviços Nativos. STACKS INTELIGÊNCIA ARTIFICIAL IA ● Linguagem: Python: ● Bibliotecas populares em Python: TensorFlow, Keras, PyTorch, scikit-learn e NumPy. ● Frameworks de IA: TensorFlow, PyTorch, Caffe, Theano e Microsoft Cognitive Toolkit (CNTK). ● Bibliotecas de processamento de dados: Pandas, NumPy e SciPy para processamento, manipulação e análise de dados. ● Bibliotecas de visualização de dados: Matplotlib, Seaborn e Plotly são amplamente utilizadas para criar gráficos e visualizações informativas. ● Bancos de dados: MySQL, PostgreSQL e MongoDB são comumente usados para armazenar dados de treinamento e resultados de modelos. ● Linguagens e ferramentas de processamento de linguagem natural (NLP): bibliotecas como NLTK, Spacy e Gensim são utilizadas para tarefas como tokenização, lematização, análise de sentimento e processamento de texto. ● Cloud computing: A computação em nuvem é amplamente utilizada no desenvolvimento de IA devido à necessidade de recursos computacionais escaláveis. Plataformas como Amazon Web Services (AWS), Google Cloud Platform (GCP) e Microsoft Azure fornecem serviços específicos para treinar e implantar modelos de IA em escala. www.feeltechrh.com.br Em tecnologia encontramos cargos e funções em: • Desenvolvimento; • Arquitetura; • Qualidade; • Gestão; • Produto; • Dados; • Infraestrutura. PRINCIPAIS FUNÇÕES DE TECNOLOGIA: O que cada uma faz, e porque? VAMOS LÁ? Desenvolvimento DESENVOLVEDOR Responsáveis por escrever códigos para construção de aplicações; O programador tem a função de codificar e testar sistemas, nisso aplicam-se as atividades de manutenção dos sistemas e programas já desenvolvidos, realizando correções necessárias e pontuais. Mas não apenas isso, ele também é um genitor, ele cria programas desde o projeto até a finalização erodagem do sistema, fazendo depuração e testes de programas. www.feeltechrh.com.br Curiosidade Programador é alguém que escreve o programa, através das inúmeras linguagens de programação. E o programa, para quem não sabe, são passos para alcançar um objetivo, seja ele qual for ou para atender a uma demanda, se assim achar melhor. Desenvolvedor, é alguém que entende bem de projetos, e esta ligado nas necessidade de mercado, e assim passa a desenvolver soluções. É a pessoa que vai encontrar em meio a uma necessidade uma solução, que neste caso, seria via software. Todo desenvolvedor é programador, mas nem todo programador é desenvolvedor. Mas... Isso irá depender da estrutura de cargos de cada empresa, pois as diferenças básicas entre o desenvolvedor e programador é a abrangência do trabalho e o grau de responsabilidade no projeto. Pois ambos os profissionais são especialistas em códigos de programação. www.feeltechrh.com.br DESENVOLVEDOR FRONT- END O desenvolvedor front-end é responsável por “dar vida” à interface – é tudo que roda na visão do “cliente” É importante que esse desenvolvedor também se preocupe com a experiência do usuário. Na parte de estudo, este profissional foca em HTML (linguagem de marcação), CSS (linguagem de estilo) e JavaScript (linguagem de script/programação) A Primeira comunicação é feita pelo front end para o back end. www.feeltechrh.com.br DESENVOLVEDOR FRONT-END O desenvolvedor front-end pode ser WEB e/ou MOBILE. www.feeltechrh.com.br Stacks que podem ser utilizadas • HTML • CSS • JAVASCRIPT • REACT • REACT NATIVE • ANGULAR • IONIC • JQUERY DESENVOLVEDOR BACK-END O Desenvolvedor Back end se preocupa com a regra de negócios, segurança, banco de dados e integração de webservices ou micro serviços – é tudo que roda na visão do servidor. Suas principais atividades são desenvolver e testar os projetos criados. A manutenção dos sistemas também faz parte das suas tarefas diárias. Dinamiza o site/plataforma/sw através de linguagens de programação (java, c#, php) O Desenvolvedor Back end faz um response (responde ao chamado do front end) www.feeltechrh.com.br Stacks que podem ser utilizadas • JAVA • C# • PHP • RUBY • NODEJS • PHYTON DESENVOLVEDOR FULL STACK Desenvolvedor Full Stack atua tanto em Front-end quanto em Back-end. É o profissional que consegue receber, entender e entregar um projeto completo. www.feeltechrh.com.br Stacks que podem ser utilizadas • JAVA • C# • PHP • RUBY • NODEJS • PHYTON • HTML • CSS • JAVASCRIPT • REACT • VUE • ANGULAR Engenheiro DE SISTEMAS • O engenheiro de software projeta, desenvolve e implementa soluções de software, focando em aspectos estratégicos dos negócios, buscando oferecer mais qualidade e produtividade. • Além de trabalhar com a parte de programação, ele também gerencia projetos e suas execuções, por isso trabalha tanto junto com desenvolvedores quanto aos líderes. www.feeltechrh.com.br DESENVOLVEDOR CRM SALESFORCE SALESFORCE • O Salesforce é uma empresa americana que criou uma plataforma de CRM na nuvem de mesmo nome. O Salesforce é hoje a plataforma de CRM mais utilizada no mundo APEX • Apex é a linguagem de programação do Salesforce. Através dela conseguimos customizar a plataforma e desenvolver soluções mais complexas. • O Apex para quem desenvolve em Java ou .NET possui uma curva de aprendizado insignificante. www.feeltechrh.com.br Desenvolvedor RPA O desenvolvedor RPA é um otimizador das operações e dos fluxos de trabalho de uma empresa. Para tanto, ele precisa de uma comunicação clara e transparente com os gestores e analistas de negócios. O objetivo dele é aplicar os conhecimentos de robótica na melhoria da performance da instituição. O RPA “imita” a atuação de um ser humano executando atividades em um computador. Desta forma, o software consegue repetir esses processos por conta própria, em uma alta velocidade e quantas vezes for necessário. UiPath Blue Prism Automation anywhere www.feeltechrh.com.br Qualidade QA O Analista de Qualidade de Software é o profissional que valida o processo utilizado na criação e desenvolvimento desses programas. Esse profissional garante a qualidade do software através da definição e normatização de processos de desenvolvimento. Apesar dos modelos aplicados na garantia da qualidade de software atuarem principalmente no processo, o principal objetivo é garantir um produto final que satisfaça as expectativas do cliente, dentro daquilo que foi acordado inicialmente. Analista de testes (funcional). Analista de automação de testes ( back-end, front e mobile). www.feeltechrh.com.br Stacks que podem ser utilizadas • APIs Rest ( Rest Assured) • Frameworks de testes como Junit, TestNG, Selenium, Soap etc; • Domínio da linguagem Java ou C#; • Conhecimento de SQL ( bancos de dados) • Git Flow. • Gradle e Maven; • Conhecimento em demais linguagens: JavaScript, Python, Ruby, Groovy, Kotlin; • Noção de BDD (Behaviour-Driven Development) ( CUCUMBER) • Ferramentas de Continuous Integration como Jenkins; • Conhecimento de produtos de containers como Docker; • Ferramentas de gestão de dependências, como npm ou bundler; Produto DESIGNER UX|UI O termo UX vem de User Experience, ou Experiência do usuário. Se trata, basicamente, de como uma pessoa se sente enquanto usa qualquer produto ou serviço digital que a sua empresa oferece. UX tem a ver também com a sensação dessa pessoa depois de usar o seu produto. A expressão UI vem de User Interface, que significa Interface do Usuário. A ideia do UI é guiar o usuário pela sua aplicação durante o tempo em que ele a usa. UI design guia os usuários pela navegação, e os leva a tomar tais ações de forma natural. www.feeltechrh.com.br FERRAMENTAS DE DESIGNER UX|UI • Sketch – a ferramenta mais conhecida do mundo dos UI; • InVision – ferramenta intermediária. • Adobe Xd – possui uma versão gratuita bem forte. UI’s novos devem ter essa ferramenta como base. • Axure – Ferramenta bastante conhecida do mundo dos designers • Marvel – Ferramenta bastante conhecida do mundo dos designers • Figma – ferramenta de nicho. Geralmente utilizada por usuários mais avançados ou específicos de algumas empresas. www.feeltechrh.com.br + FERRAMENTAS DE DESIGNER UX|UI • Design universal: Acessibilidade - design universal é um design voltado para todos. • Metodologia de Design Systems: É um conjunto de entregáveis que reúne princípios do produto, biblioteca de componentes e padrões de comportamento. É todo o ambiente da empresa, ou quase todo, é voltado para atender o Design a que está sendo proposto. Áreas como infra; processos e pessoas, são dedicados e alocados para atender a esse design que está em construção. Lembrando que esse design sempre deve ser desenvolvido para atender uma necessidade de usuário. www.feeltechrh.com.br PRODUCT OWNER Product Owner é normalmente o stakeholder chave do projeto. Sua responsabilidade é manter o Product Backlog priorizado por valor de negócio e assim conseguir garantir o maior ROI possível. O que é Product Backlog: É uma lista de funcionalidades desejadas de um produto, ou seja, os requisitos que um cliente espera receber ao final do projeto, descrito com sua própria linguagem. O ponto central do Scrum é a criação do Product Backlog, é nele que o projeto começa. ROI: Retorno sobre investimento www.feeltechrh.com.br Gestão/ Facilitador SCRUM MASTER O Scrum Master atua como facilitador do Daily Scrum e torna-se responsável por remover quaisquer obstáculos que sejam levantados pela equipe durante essas reuniões. O papel de Scrum Master é tipicamente exercido por um gerente de projeto ou um líder técnico, mas em princípio pode ser qualquer pessoa da equipe. www.feeltechrh.com.br AGILE COACH Agile Coach o especialista que implementa a metodologia ágil (ou agile, no original, em inglês) em empresas. Seu papel é garantir resultadose entregas bem-sucedidas, além de ajudar a corporação a navegar pelos diversos métodos existentes. Resumindo ele ajuda as organizações a implementar a metodologia ágil, facilitando a mudança de cultura organizacional necessária para o sucesso ágil sustentado www.feeltechrh.com.br AGILE COACH Os Agile coaches ajudam a treinar equipes corporativas na metodologia ágil e supervisionam o desenvolvimento de equipes ágeis para garantir resultados eficazes para a organização. Eles são responsáveis por orientar as equipes durante o processo de implementação e são incumbidos de incentivar os trabalhadores e a liderança a adotar Agile. O objetivo final do Agile coach é armar as equipes ágeis com o conhecimento, as ferramentas e o treinamento corretos para que eles possam usar Agile em todo o seu potencial. www.feeltechrh.com.br https://www.cio.com/article/3156998/agile-development/agile-project-management-a-beginners-guide.html https://www.cio.com/article/3263428/project-management/agile-project-management-16-tips-for-a-smooth-switch-to-agile.html#tk.cio_fsb GERENTE DE PROJETOS O Gerente de Projetos é o profissional responsável pela gestão dos diferentes estágios dos projetos nas empresas, podendo atuar como funcionário, gerente, contratante ou consultor independente PMBOK: Conjunto de práticas e metodologias par gestão de projetos ou resumidamente, é um conjunto de práticas na gestão de projetos organizado pelo PMI e considerado a base do conhecimento sobre gestão de projetos. PMO: estrutura organizacional – escritório de gerenciamento de projetos www.feeltechrh.com.br PMI: Project Management Institute: formular padrões profissionais de gestão de projetos; gerar conhecimento por intermédio da investigação; promover a gestão de projetos como profissão através de seus programas de certificação. PMP: Esse é certificação do PMI: o profissional deve satisfazer a determinados requisitos de educação e experiência, concordar e aderir ao Código de Conduta Profissional (Code of Professional Conduct) e passar no Exame de Certificação PMP. www.feeltechrh.com.br Arquitetura Arquiteto de Soluções O Arquiteto de Soluções é a pessoa que conhece sobre infraestrutura de redes, sistemas, segurança, etc. Sejam tradicionais ou em nuvem. Deve conhecer também de negócios e ter viés forte de relacionamento com pessoas uma vez que, na maioria das empresas onde atua, acabará apoiando a área comercial na defesa de soluções tecnológicas junto a potenciais clientes. Ele tem, a rigor, um perfil chamado de “generalista” devido ao amplo conhecimento que deve possuir para exercer bem seu papel. www.feeltechrh.com.br Arquiteto de Sistemas/Software O arquiteto de software possui responsabilidade geral pela tomada das principais decisões técnicas, expressas como a arquitetura de software. Isso inclui, normalmente, a identificação e a documentação dos aspectos significativos do ponto de vista da arquitetura do sistema, incluindo "visualizações" de requisitos, de design, de implementação e de organização do sistema. O arquiteto também é responsável pelo fornecimento de fundamentos para essas decisões, avaliando os interesses da empresa e clientes, conduzindo os riscos técnicos e assegurando que as decisões sejam comunicadas, validadas e seguidas efetivamente. www.feeltechrh.com.br Arquiteto de sistemas x Arquiteto de soluções • O Arquiteto de Sistemas tem um foco maior no desenho de software e se preocupa MENOS com as demais camadas que suportam as soluções. • O Arquiteto de Soluções é parte crucial no papel de apresentar, principalmente caso esteja atuando também no papel de pré-vendas, a melhor arquitetura possível dentro do escopo do que é prioritário para o NEGÓCIO do cliente. www.feeltechrh.com.br DevOps • É uma metodologia que descreve um conjunto de práticas para integração entre as equipes de desenvolvimento de softwares, operações (infraestrutura ou sysadmin) e de apoio envolvidas (como controle de qualidade) e a adoção de processos automatizados para produção rápida e segura de aplicações e serviços. www.feeltechrh.com.br Stacks que podem ser utilizadas • Docker; • Kubernetes; • Linux; Microsoft; • RedHat Jboss; • Jenkins; • Ansible; • Programação em linguagens como Python/Bach (básico); • Serviços de rede. Ex: Firewall, rotas de rede, tcp/udp, dns, endereçamento ip (básico); • Gerenciamento de código fonte Git; • Rest API; • Elastic Stack. • Aplicações Java (Spring Boot, Spring Cloud, Spring MVC); • Maven/Gradle; • Mensageria (Apache Kafka); • Banco de Dados Não Relacional (Redis, InfluxDB); • Banco de Dados Relacional (SQL Server); • Monitoramento e Visibilidade de aplicações (Grafana, APM, Prometheus). Dados Analista de BI • BI é uma sigla em inglês para Business Intelligence ou Inteligência de negócios • O papel do analista de BI é altamente analítico e requer um equilíbrio de habilidades de TI, comunicação e resolução de problemas. Eles transformam dados em insights que geram valor comercial. www.feeltechrh.com.br Ex de BI’S: Power BI Qlik Sense QlikView Tableau ThoughtSpot Data Science Ciência de dados é uma área interdisciplinar voltada para o estudo e a análise de dados econômicos, financeiros e sociais, estruturados e não-estruturados, que visa a extração de conhecimento, detecção de padrões e/ou obtenção de insights para possíveis tomadas de decisão. O cientista de dados é responsável por coletar, gerenciar e transformar em modelos utilizáveis uma grande quantidade de dados não-estruturados, para que seja possível extrair desse conjunto informações relevantes. É um profissional capaz de interpretar e fazer com que os dados se comuniquem entre si e façam que informações múltiplas ganhem valor agregado e possam se tornar produtos valiosos para uma empresa. Em seu trabalho, o cientista de dados lida com big data, uma grande massa de dados, na qual é preciso conhecer as técnicas de inteligência artificial e inteligência de negócios. Agrega-se a esses domínios a necessária fluência em programação, estatística e análise de texto. www.feeltechrh.com.br Data Science x Analista de BI • O Analista de BI analisa dados históricos a fim de saber o que aconteceu, enquanto o Cientista de Dados também analisa dados históricos com o objetivo de prever o que pode acontecer. www.feeltechrh.com.br Analista de Dados • O analista de dados, também conhecido como analista de big data, é responsável pela realização da análise de dados (quantitativa e qualitativa) na disciplina de big data. Sua função é apoiar uma tomada de decisão fundamentada com base em dados. www.feeltechrh.com.br Analista de Dados x Data Science • A principal diferença entre as dois reside no que diz respeito as suas responsabilidades. Já falamos que os analistas de dados extraem e analisam informações, para depois as apresentarem à empresa. As responsabilidades dos cientistas de dados se estendem em ambos os processos. www.feeltechrh.com.br Engenheiro de Dados • Responsável por criar pipelines de dados, manter e construir sistemas de armazenamento de dados que serão utilizados por outras áreas da empresa. Data Warehouses e Data Lakes são exemplos de tais estruturas que podem ser consumidas por analistas e cientistas de dados; • Oriundos áreas de programação em nível de produção, sistemas distribuídos, transformação de dados, análise de dados e pipelines de dados. As engenheiras de dados também implementam algoritmos de Machine Learning escolhidos por cientistas de dados para um ambiente de produção. • www.feeltechrh.com.br ADMINISTRADOR DBA • A sigla DBA significa Database Administrator. Ele é responsável pela totalidade da administração de um sistema de banco de dados ou uma base de dados, ou seja, cuida dos processos de instalação, atualização, otimização, integridade, consistência, segurança e confiabilidade, que demandam decisões gerenciais apropriadase ágeis. Além disso, ele efetua backups, monitora e aprimora sua performance. • O DBA tem que no mínimo saber: • Instalar e gerenciar o Banco de Dados e seus usuários, com segurança; • Efetuar e recuperar backups; • Monitorar e ajustar a performance do Banco de dados. www.feeltechrh.com.br Conteúdo Parte III Seleção de profissionais de TI • Linkedin e o Perfil do tech recruiter • Busca ativa (Hunting) • Estilo de abordagem • Modelos de entrevista • Testes técnicos – como e onde aplicar • Soft Skills e Hard Skills • Sentido e Propósito – Expectativas x Realidade Experiência do Candidato • Jornada do candidato • Feedback e Conexão Métodos Ágeis no RH • Aplicabilidade na realidade do RH LINKEDIN • Atuação proativa : Estabeleça conexão com a “persona” de candidato que mais você possui demanda de vagas; • Fortaleça a marca empregadora da sua empresa; • Fortaleça o Hunting Vamos ao LINKEDIN • Configuração – Seu Linkedin é seu cartão de visitas; • Como fazer hunting? • Qual tipo de mensagem usar? • Análise de perfil ; • Como buscar telefones e contato no LinkedIn? InMail www.feeltechrh.com.br Oiii (nome do candidato), tudo beeem? Como está seu momento de carreira hj? Aberto a novos desafios? Olá, tudo bem? Sou Franciele Alves, Coach e Headhunter na Feel Tech RH. Nós somos uma consultoria especializada na área de tecnologia, e , atuamos em nível nacional com posições TECH. Neste momento estamos com muitas oportunidades em aberto, e seu perfil me chamou bastante a atenção, neste momento você tem pensado sobre encarar novos desafios em sua carreira? Se fizer sentido me passa seus contatos ou tecnologias que possui maior experiência e afinidade, para que possa estar compartilhando maiores detalhes das posições que mais se encaixam com seus conhecimentos e objetivos profissionais. Espero que possamos avançar se não agora, no futuro. Até mais! Um abraço, Atividade Prática (Hunting) em GRUPO (15 min) www.feeltechrh.com.br A empresa está em busca de um Desenvolvedor Java Sênior para integrar sua equipe de tecnologia. O candidato selecionado terá como principais responsabilidades o desenvolvimento de soluções e sistemas em Java, implementação de funcionalidades, integração de sistemas, análise e resolução de problemas técnicos, testes unitários, dentre outras atividades relacionadas à programação. Responsabilidades: ● Desenvolvimento de sistemas e soluções em Java ● Implementação de funcionalidades e integração de sistemas ● Análise e resolução de problemas técnicos ● Testes unitários ● Participação em projetos de desenvolvimento Requisitos: ● Experiência comprovada em programação em Java ● Conhecimento em frameworks de desenvolvimento, como Spring, Hibernate, Struts, etc. ● Experiência em desenvolvimento de software orientado a objetos ● Conhecimento em bancos de dados relacionais, como MySQL, Oracle, etc. ● Experiência em desenvolvimento de APIs REST ● Conhecimento em desenvolvimento de soluções escaláveis ● Familiaridade com ferramentas de versionamento, como Git, SVN, etc. Desejável: ● Experiência com desenvolvimento em ambiente Linux ● Conhecimento em metodologias ágeis, como Scrum, Kanban, etc. ● Experiência em desenvolvimento de microserviços ● Conhecimento em Docker e Kubernetes ● Boa comunicação e habilidades interpessoais ● Trabalho em equipe e capacidade de liderança técnica SELEÇÃO DO PROFISSIONAL DE TI Etapa que se bem conduzida, trás um aproveitamento de 85% as entrevistas realizadas pelo Recruiter. O que perguntar? • Principais conhecimentos ( tecnologias e etc) ; • Pretensão salarial; • O que está buscando em um novo desafio; • Compartilhar o perfil da vaga para avaliação e feedback do candidato; • Compartilhe todas as informações que puder! www.feeltechrh.com.br Screening ❑ Estruturada ou semi estruturada; ❑ Estilo bate papo, mais fluida; ❑ Validar tecnologias solicitadas; ❑ Entender as metodologias usadas em sua última empresa e como ele vai se adaptar ao novo ambiente de trabalho; ❑ Entender o papel do candidato na composição dos times em sua última empresa e orientá-lo sobre isso. www.feeltechrh.com.br Modelos de entrevista ❑ Experiência (em anos) - Sozinha não irá predizer senioridade; ❑ Conhecimento/ domínio técnico - Nível e abrangência contribuíram para definir senioridade; ❑ Soft Skills- Capacidade muito valorizada, não é apenas ser e saber, mas fazer acontecer! www.feeltechrh.com.br Medindo senioridade - JR, PL ou SR? ❑ Motivadores ❑ Sentido/Propósito ❑ Valores ❑ Fit cultural ❑ Objetivos de Carreira (Expectativa x Realidade) ❑ Competências www.feeltechrh.com.br Aspectos principais a avaliar ENTREVISTA TÉCNICA Solicite ao gestor técnico de sua empresa. ❑ Aplicação de teste referente a tecnologia solicitada; ❑ Preferencialmente desafios técnicos para realizar um projeto – códigos com a tecnologia solicitada; ❑ Peça ajuda as referências técnicas de sua empresa; www.feeltechrh.com.br TESTE TÉCNICO www.feeltechrh.com.br Git e GitHub ❑ Git - é um sistema de controle de versão de arquivos. Através deles é possível desenvolver projetos na qual diversas pessoas podem contribuir simultaneamente no mesmo, editando e criando novos arquivos e permitindo que os mesmos possam existir sem o risco de suas alterações serem sobrescritas. ❑ Controle de versão refere-se ao processo de salvar diferentes arquivos ou ‘versões’ ao longo das várias etapas de um projeto. Isto permite aos desenvolvedores acompanhar o que foi feito e retornar a uma fase anterior se eles decidirem que querem reverter algumas das mudanças que fizeram. ❑ Git Hub é uma plataforma para gerenciar código de forma remota (na nuvem) utilizando o Git como sistema de versionamento de controle. No GitHub é armazenado projetos em repositórios, podendo ser visualizados com mais detalhes e maior facilidade as funcionalidades do Git do projeto, além de poder compartilha-lo com os demais desenvolvedores da equipe. Existem outras plataformas de gerenciamento de código por Git (ou outros sistemas), como o Gitlab. O GitHub é uma espécie de "rede social para programadores". O site tem uma fama especial nesse nicho, sendo também um serviço de publicação e compartilhamento de códigos de programação www.feeltechrh.com.br Git e GitHub ❑ GitHub é uma plataforma para gerenciar o código e criar um ambiente de colaboração entre devs, utilizando o Git como sistema de controle. www.feeltechrh.com.br Git x GitHub ❑ Coderbyte; ❑ TestDome; ❑ Hackerrank. www.feeltechrh.com.br Teste através de plataformas ENTREVISTA COM UM CLIENTE INTERNO/ EXTERNO Atividade Prática em GRUPO (15 min) www.feeltechrh.com.br ❏ Construa o funil de seleção ideal para a posição de Dev Java PL; ❏ Quais as perguntas necessárias na realização do screening para essa vaga; ❏ Quais estratégias utilizar para atrair mais talentos a posição; ❏ Quais recursos utilizar para localizar a pessoa certa ( plataformas, canais, etc); ❏ Quais argumentos utilizaria para vender a oportunidade; ❑ Funil de seleção; ❑ Engajamento do candidato; ❑ Clareza de Informações; ❑ Feedback www.feeltechrh.com.br JORNADA DO CANDIDATO Preocupe-se com: NEGOCIAÇÃO ❑ CLT ❑ CLT FLEX ❑ PJ ❑ COOPERADO www.feeltechrh.com.br FORMAS DE CONTRATAÇÃO ❑ CLT ❑ CLT FLEX ❑ PJ ❑ COOPERADO www.feeltechrh.com.br FORMAS DE CONTRATAÇÃO ❑ Tenha propriedade sobre a forma de contratação (CLT, PJ e etc); ❑ Descontos mais comuns; ❑ Pacote de benefícios; ❑ Tempo de para contratação; ❑ Equipamentos e instalações; ❑ Tecnologias e estrutura da área. www.feeltechrh.com.br NA HORA DE NEGOCIAR ATENÇÃO ❑ Apoie o profissional em seu processo de “PERDAS E GANHOS”. ❑ Não o abandone, mesmo após a negociação ter se encerrado. www.feeltechrh.com.br TORNANDO O RH ÁGIL ❑ R&S tem características em comum gestão de projetos: ❑ Praticidade e objetividade; estratégia; planejamento; processos; ferramentas,envolvimento direto e indireto de diversas pessoas; necessidade de trabalho em equipe, entre outros. ❑ Por isso é vantajoso aplicar metodologia ágil ao R&S. ❑ Ferramentas de metodologia ágil, como o Kanban, Scrum e Squads e etc, tem auxiliado no controle de prazos, etapas, entregas, entre outros. www.feeltechrh.com.br R&S ÁGIL ❑ O sucesso da adoção de uma metodologia ágil depende de como a cultura da empresa está direcionada a esse cenário (ambiente colaborativo e de constante aprendizado); ❑ O grupo participante (RH, líderes e todos os envolvidos) deve ter visão geral do projeto. www.feeltechrh.com.br R&S ÁGIL VALORES ÁGIL Indivíduos e interações mais que processos e ferramentas – Humanize suas relações Software em funcionamento mais que documentação abrangente - Algo que faça sentido, ao invés de apenas algo que ocupa espaço Colaboração com o cliente mais que negociação de contratos - Gentileza gera gentileza Responder a mudanças mais que seguir um plano - Adaptação • Adote uma metodologia; • Defina prioridades; • Conheça bem sobre a vaga e proposta de valor da empresa; • Estabeleça uma conexão com o candidato; • Aprenda a negociar! www.feeltechrh.com.br COMO TORNAR O SEU PROCESSO ÁGIL PRONTO... SEJA BEM VINDO AO MUNDO TECH