Skip to content

Instantly share code, notes, and snippets.

@acwoss
Last active January 14, 2022 21:46
Show Gist options
  • Save acwoss/cefbc12b22d75071979f75a66b0b6fbc to your computer and use it in GitHub Desktop.
Save acwoss/cefbc12b22d75071979f75a66b0b6fbc to your computer and use it in GitHub Desktop.
Entrevista Analista de Sistemas Pleno

Experiência Profissional

  • Quais linguagens de programação tem experiência?
  • Qual é a sua experiência com padrões de projetos?
  • Quais frameworks você tem experiência?
  • Qual foi a maior cagada que já fez em um sistema em produção?

Auto-conhecimento

  • Quais potenciais desafios você prevê nesta vaga?
  • Quais são seus maiores pontos fortes e fracos?
  • De que maneira você acredita que seus conhecimentos técnicos agregarão ao nosso time?

Comportamento

  • Como você analisa a segurança e a escabilidade do seu código?
  • Como você garante a qualidade do seu código?
  • O que você fará no seu dia-a-dia que me deixará dormir tranquilo a noite sem eu me preocupar com o seu código?
  • Você e um colega de equipe estão trabalhando no mesmo projeto. Você identifica um bug/gambiarra no código que seu colega escreveu. O que você faz?

Crescimento

  • Quanto tempo você tira para estudar por semana?
  • Quais são suas referências de estudo? Acompanha regularmente algum site?
  • Quais habilidades técnicas você tem interesse em desenvolver ou aperfeiçoar?
  • Conte-nos sobre sua experiência em compartilhar conhecimento.

Conhecimento Técnico

Análise de Requisitos

  • Se você iniciasse um projeto do zero agora e pudesse escolher todas as ferramentas que iria utilizar. Qual utilizaria? (API que retorna se a data consultada é um dia útil, já considerando feriados nacionais)

HTTP

  • No protocolo HTTP, qual é a diferença entre GET e POST?
  • Quando você utilizaria o método PATCH?
  • Para um endpoint de busca é feito uma consulta sem resultados. Qual seria a resposta HTTP apropriada?
  • É possível utilizar verbos HTTP personalizados, tais como LIST, ACTIVATE, etc?

Banco de Dados

  • Qual é a diferença entre banco de dados relacional e não-relacional?
  • O que é normalização de banco de dados?

Casos de Teste

  • Existe uma tela que você, como administrador do sistema, pode selecionar quais usuários tem permissão de acessar a aplicação. Dois administradores acessam a tela ao mesmo tempo; um seleciona o usuário A, outro seleciona o usuário B. Como você faria para que a informação não fosse sobrescrita no banco de dados?

  • Numa loja virtual, há apenas uma unidade do produto em estoque. Como trataria o processo de checkout caso mais de um cliente tentasse efetuar a compra ao mesmo tempo?

Exercícios

É solicitado que leia um arquivo linha por linha. Para cada linha do arquivo você terá que dividir o conteúdo em diversos valores com base em um separador definido. Analise os dois trechos de pseudo-código abaixo conforme o conceito de ortogonalidade.

class Split1 {
  constructor(fileName: string)
  def readLine(): ?string
  def getField(data: string, separator: string, n: integer): ?string
}
class Split2 {
  constructor(line: string, separator: string)
  def getField(n: integer): ?string
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment