Dúvidas
Engenheiro de Software
- 01. O que vem a ser a sigla B2B e B2C?
- Significa Business-To-Business e Business-To-Consumer. No contexto de TIC, denota que as soluções poderão ser criadas e entregues para dois públicos distintos: B - empresas e portanto com um porte e requisitos adequados ou C - consumer, para pessoas individuais.
- Exemplo: Facebook
- Versão tradicional, onde o usuário individual se cadastra e tem acesso com seu usuário ou email
- Versão corporativa: A empresa paga para ter uma versão parecida com o Face normal mas para usar na sua intranet.
- 02. Como é a sequência normal na carreira de um profissional na sua linha de trabalho?
- Normalmente começa como Trainée, se demonstrar vontade e tiver boa performance, pode ser contratado como Analista ou Engenheiro Jr. Depois que começa a participar de projetos se demonstrar competência pode ser promovido para Pleno. A partir dai, mostrando resultados expressivos deve evoluir naturalmente para Senior, tanto pela experiência adquirida quanto pela importância dentro de um equipe e ou de um projeto.
- 03. Em toda a empresa, existe essa segmentação clara nas responsabilidade de cada um?
- Não, nem sempre! Em algumas empresas o programador faz o papel do Analista e de Engenheiro de Software. Em outras, o Analista não faz nem o que deveria fazer, ou seja, muitas vezes, um profissional assume responsabilidades de outras funções e alguns não conseguem entregar (produzir) o que deveriam.
- 04. É interessante atuar como free-lancer? Cite uma forma de ser descoberto?
- Em alguns casos sim, o free-lancer permita que você compare suas habilidades frente a desafios de qualquer lugar do mundo e ainda complemente sua renda financeira. Importante sempre cumprir os compromissos assumidos em questões de tempo e qualidade.
- Atualizando sempre o GitHub.
- 05. O que é uma aceleradora? Qual a diferença de uma incubadora?
- Incubadora apoiam micro e pequenas empresas de acordo com alguma diretiva governamental ou regional. Para isso, a empresa deve apresentar um Plano de Negócios que será avaliado pela Incubadora que tem uma série de critérios formais para incubar um projeto.
- Aceleradora é focada não em uma necessidade prévia, mas sim em empresas que tenham o potencial para crescerem muito rápido e seu modelo de trabalho é buscar startups escaláveis (e não somente uma pequena empresa promissora). Interessante que a empresa tenha um Plano de Negócio mas a Aceleradora busca principalmente uma boa ideia.
- 06. O que significa Viablidade de projeto?
- Significa que o profissional pode assumir o desafio de avaliar técnica, econômica e operacionalmente um detereminado desenvolvimento.
- Para isso tem que fazer uma análise dos riscos do projeto, exigir um pré-projeto delimitando tempo e custo. Neste contexto, tem que conhecer muito bem as habiliidades da equipe. No final, decidir se uma projeto vai ou não em frente. Imaginar a frustração da empresa ou das pessoas envolvidas se ele chegar a conclusão que não e a responsabilidade dele se disser que sim.
- 07. É importante avaliar as Boas Práticas de uma determinada atividade? Cite uma consequência drástica que pode acontevcer?
- É essencial! Entender as Boas Práticas mostra que estaremos avaliando a experiência de outros profissionais para tentarmos fazer o melhor projeto possível. Entendam que se errarmos na escolha de uma plataforma, de uma linguagem, de um banco ou de um sistema qualquer talvez não tenhamos como voltar atrás e se tivermos que "remendar", o custo, prazo e qualidade certamente serão afetados.
- Escalabilidade,ou seja, quando o sistema crescer, aumentar nro de usuários, de transações, etc poderá degradar a performance, gerar bugs ou até ficar inviável seu uso.
- Retrabalho: Outro fator crítico que pode onerar um sistema, pelo simples fato de ter que refazer algo que poderia ter sido feito de uma maneira melhor. Como comparação, imaginem o esforço e custo para trocar toda a fiação de um prédio depois de ter moradores pelo fato de que a bitola dos fios não suportam a carga elétrica atual.
- 08. O que é Scrum e porque usá-lo?
- Scrum é uma metodologia usada em desenvolvimento ágil que permite gestionar e planejar projetos de software. No Scrum. Para isso, o desenvolvimento é segmentado em Sprints (ciclos de desenvolvimento) onde um conjunto de atividades é executado.
- Porque permite algumas condições, como:
- Transparência: Todos podem estar cientes da evolução. Para isso existe um quadro de tarefas (Kanban) e um gráfico Burndown que compartilham informações
- Feedback contínuo: a frequência com que se obtém informações sobre o projeto faz muita diferença. Reuniões diárias e revisões dos Sprints ajudam muito a saber se as ações estã dando resultado
- Melhoria contínua: A cada etapa entregue existem ações para refinar o Backlog do produto (lista de requisitos a serem desenvolvidos)
- Entrega contínua de valor: Disponibilizar para o "cliente", gradativamente partes do desenvolvimento. É como se numa casa, eu construísse primeiro o quarto e mostrasse ao cliente, depois a sala e mais uma entrega, depois a cozinha e assim por diante.
- Alta velocidade: O Scrum permite que times multifuncionais atinjam o seu pleno potencial e alta velocidade conseguindo reduzir o tempo de desenvolvimento e aumentando a eficiência.
Developer Front-End
- 01. O que faz o PO? E o SM? Qual a diferença básica na atuação deles?
- 02. Java Script é importante na vida do Dev Front-End? Por quê?
- 03. Poderia explicar o que é UX e UI? Por que é importante que o Dev Front-End seja especialista nestes assuntos?
- 04. O que são tecnologias híbridas? Cite exemplos?
- 05. Para que serve o MVP na saga de um empreendedor?
- 06. Por que é interessante usar o StackOverFlow?
- 07. Que metodologia usa para interagir com o cliente?
- 08. O que é TDD? Para que é usado?
- 09. O que é site responsivo?
- 10. É importante que Devs Front-Ends dominem a técnica de Cross-browser? Por quê?
Developer Games
- 01. O que é um Indie?
- a palavra Indie vem da abreviação da palavra Independente referindo se a industria cultural independente que não possuem contrato de publicação e distribuição com grandes empresas assim colocando no ramo do desenvolvimento de jogos, os jogos indie são criados por grupos independentes ou seja desenvolvedores indie
- 02. O que é Sprite?
- Sprite vem da palavra latim spiritus , é um objeto gráfico bi ou trídimencional que foi utilizado como um método rápido de animação de varias imagens agrupadas ou seja levando para o ramo do desenvolvimento de jogos por exemplo um personagem eh tem vários sprites que ao combinamos podemos da a impressão de movimento do personagem imprimindo na tela varios sprites diferentes desse personagem por segundos
- 03. Como é organizado um GameJam? O que é preciso para participar de um?
- 04. O que é processar off-line um game? Como isso funciona e por quê?
- 05. Cite e explique as diferenças entre algumas modalidaes de Games? Ex. RPG
Developer Back-End
- 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?
- Ele executa diversas funções que podem ser usadas pelo desenvolvedor. Um framework é uma plataforma que disponibiliza um conjunto de bibliotecas com elementos base e código disponível para serem integrados num projeto. Existem diversos tipos dele, como: Phalcon que é considerado um dos frameworks PHP mais rápidos da atualidade, já que consegue processar de forma mais rápida as solicitações PHP e que tem extensão escrita em C, CakePHP que foca em simplificar o processo de desenvolvimento em PHP para programadores de qualquer nível, Codelgniter que tem como destaque a sua simplicidade já que não é necessário utilizar linhas de código.
- 05. Escalabilidade e Disaster Recovery: O que são estas grandes preocupações no mundo Dev Back-End?. Dar exemplos.
- Disaster Recovery são conjuntos de ações com o intuito de que caso algo aconteça, prejudicando a aplicação, existe uma forma de recuperar a versão anterior, ela pode ser feita pelo GitHub (controle de versões) e pode ser feito por meio de backups, Escalabilidade é de fundamental importância, pois uma aplicação deve ser capaz de suportar uma quantidade de usuários, caso esse número passe, o sistema já reorganiza, permitindo que mais pessoas acessem a aplicação, o banco de dados auxilia na escalabilidade do servidor.
- 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
- O conceito de JSON "Javascript Object Notation " é um formato mais leve para transferência e intercâmbio de dados, similar ao XML, porém, superior, já que é mais leve. Curiosamente ele pode ser usado em qualquer linguagem, já que ele vem substituindo o método XML. Sua maior utilidade é retornar os dados vindos de um servidor utilizando requisições AJAX para atualizar em tempo real.
- 08. Para que serve o Scrum? Utiliza alguma cerimônia? Qual e como?
- Scrum é uma metodologia para o planejamento de um processo de software. Essa metodologia funciona primeiramente montando- se pequenos times, posto isso o trabalho é dividido em ciclos chamados sprints. As funções a serem realizadas são armazenadas numa lista chamada Product Backlog; em cada planejamento de uma sprint é necessário uma pessoa que conheça as regras do mercado e que possa priorizar os itens do Product Backlog, sendo assim a equipe seleciona as atividades que ela será capaz de implementar durante o sprint se inicia. Com isso, por meio de reuniões diárias as tarefas são revisadas e alinhadas.
- 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.
- Existem diversos casos no qual a idoneidade pode ser citada. Por exemplo, dizem que na época da inflação alta um banco “se esquecia” de pagar os juros de “overnight” uma vez por mês. Ou que uma construtora de prédios residenciais escolhia todo o mês o índice de correção mais caro dentre os vários disponíveis (IGPM, INCC, IPC etc.) e o aplicava a todos os contratos, independentemente de que índice estava estipulado no contrato. Ou que certos softwares de emissão de notas fiscais faziam a “soma errada” de forma a sonegar impostos. Todas essas ações que estão na responsabilidade do back-end de desenvolver ou dar manutenção, logo, por vontade da empresa a ética desse profissional pode ser corrompida em função de um lucro maior para a mesma.
Analista de Segurança
- 01. O que é um ramsoware? Explique seus possíveis impactos.
- 02. Para que serve o Wireshark? Mostre sucintamente o que ele pode fornecer de interessante.
- 03. Por quê profissionais de segurança em algum momento, snifam portas?
- 04. O que é um pain test? Em que momento pode ou deve ser usado?
- 05. Qual a diferença na atuação de um Analista de Segurança x Analista de Redes x Analista da Informação?
- 06. Qual a diferença entre fazer o CCNE e o CCNA?
- 07. Para que serve o TCP/IP? Cite algum exemplo de aplicação que o usa?
- 08. O que é EDR? Como isso pode ajudar a segurança da informação?
- 09. O que é DPO ou CISO? Quais as tarefas executadas por eles?
- 10. Fortgate, Fortnet, são tecnologias? Para que servem?
Analista de Sistemas
- 01. Por quê é interessante (ou necessário) usar Banco de Dados em Memória RAM?
- 02. SAP, ERP, o que quer dizer isso e para que são usados?
- 03. Qual a diferença de utilização do JavaScript com o Jquery?
- 04. Por quê não é obrigatório que o Analista de Sistemas saiba programar?
- 05. Com relação à regulamentação da profissão de Cientista da Computação, quais o malefícios e benefícios dela?
- 06. MongoDB x MySql, em que situação devo usar um ou outro?
- 07. Por quê o Analista deve se preocupar com a escalabilidade do sistema?