투잡뛰는 개발 노동자

[Não-Graduado em Computação, Sobrevivendo como Desenvolvedor] 14. Resumo de Perguntas Frequentes em Entrevistas Técnicas para Desenvolvedores Iniciantes

  • Idioma de escrita: Coreana
  • País de referência: Todos os paísescountry-flag
  • TI

Criado: 2024-04-03

Criado: 2024-04-03 20:38

Não sendo da área, sobrevivendo como desenvolvedor


#14. Conteúdo frequente em entrevistas técnicas para desenvolvedores iniciantes


[Áreas da memória principal]

  • Área de código: área onde o código-fonte do programa é armazenado, e a CPU busca as instruções (fonte, função, instruções de controle) armazenadas na área de código para processá-las. Por exemplo, quando um programa escrito em C é executado, o código-fonte desse programa é armazenado na área de código.
  • Área de dados: área onde as variáveis globais e estáticas são armazenadas, alocadas com o início do programa e permanecendo até sua finalização. Por exemplo, quando um programa escrito em C é executado, as variáveis globais ou estáticas declaradas nesse programa são armazenadas na área de dados.
  • Área de pilha: área de memória temporária usada pelo programa, onde as variáveis locais e parâmetros relacionados à chamada de função são armazenados. É alocada com a chamada da função e liberada quando a função é finalizada. Por exemplo, quando uma função escrita em C é chamada, as variáveis locais ou parâmetros usados nessa função são alocados na área de pilha.
  • Área de heap: área onde o usuário aloca e libera dinamicamente o espaço de memória. Por exemplo, quando a memória é alocada dinamicamente usando a função malloc() em C, a área de memória alocada é armazenada na área de heap.

[Estrutura de dados]

  • Pilha: estrutura de dados do tipo LIFO (Last-In, First-Out). Por exemplo, o botão 'Voltar' em um computador é semelhante a uma pilha. As páginas visitadas anteriormente são armazenadas na pilha e, quando o botão 'Voltar' é pressionado, a página mais recentemente armazenada é recuperada e exibida.
  • Fila: estrutura de dados do tipo FIFO (First-In, First-Out). Por exemplo, receber um número de atendimento em um banco e entrar na fila de espera é semelhante a uma fila. A pessoa que chegou primeiro é atendida primeiro, e a pessoa que chegou por último é atendida por último.
  • Árvore: estrutura de dados que representa dados em uma estrutura hierárquica. Por exemplo, a DOM (Document Object Model) do HTML é semelhante a uma árvore. A estrutura de uma página HTML é representada por uma árvore, começando com o nó raiz, a tag html, e os nós filhos sendo representados sequencialmente.
  • Heap: uma das estruturas de árvore binária, dividida em heap máximo e heap mínimo. Por exemplo, em uma fila de prioridade, os dados com a maior prioridade são colocados no nó raiz do heap e os dados com a prioridade subsequente são colocados nos nós filhos, sendo esse um exemplo de heap máximo.

[RDBMS e NoSQL]

  • RDBMS: banco de dados que define e gerencia dados de forma estruturada com um esquema rígido. Os dados podem ser armazenados de forma distribuída e são fáceis de modificar. Por exemplo, MySQL, Oracle e MS-SQL são exemplos típicos de RDBMS.
  • NoSQL: banco de dados que armazena e gerencia dados com um esquema flexível. É adequado para o processamento e armazenamento de grandes volumes de dados e também possui alta escalabilidade. Por exemplo, MongoDB, Cassandra e HBase são exemplos típicos de NoSQL.

[Orientação a procedimentos e orientação a objetos]

  • Programação orientada a procedimentos: técnica de programação onde o processamento sequencial é priorizado. Linguagens como C e Pascal são linguagens orientadas a procedimentos.
  • Programação orientada a objetos: método que trata dados e procedimentos vinculados logicamente como um conceito chamado objeto (Object). Java, C++ e Python são exemplos de linguagens orientadas a objetos. Por exemplo, em um programa de simulação de carro, o carro pode ser representado como um objeto, e as propriedades do carro (cor, aceleração, etc.) como dados e as funções executadas pelo carro (dirigir, parar, etc.) como métodos.

[Sobrescrita e Sobrecarga]

  • Sobrescrita (Overriding): redefinir e usar um método que uma classe pai possui em uma classe filha. Quando um método da classe pai é chamado na classe filha, o método redefinido na classe filha é executado em vez do método da classe pai. Por exemplo, o método toString() em Java é um exemplo de sobrescrita.
  • Sobrecarga (Overloading): definir vários métodos com o mesmo nome, mas com tipos e números de parâmetros diferentes para responder a vários tipos de chamadas. Vários métodos com o mesmo nome, mas parâmetros diferentes, são executados. Por exemplo, o método print() em Java é um exemplo de sobrecarga.

[Algoritmo de substituição de página]

  • FIFO (First-In, First-Out): substitui a página que está na memória física há mais tempo. Em um computador, 'fechar na barra de tarefas' também é semelhante ao algoritmo FIFO. O programa que foi iniciado primeiro é exibido por último e fechado, assim como no FIFO.
  • LRU (Least Recently Used): substitui a página que não é usada há mais tempo. Um 'aplicativo para fechar aplicativos' que fecha aplicativos antigos e não usados com frequência também é semelhante ao algoritmo LRU.
  • LFU (Least Frequently Used): substitui a página com o menor número de referências. Por exemplo, a função 'Fechar guia' que fecha a guia menos usada entre as guias abertas no navegador também é semelhante ao algoritmo LFU.
  • MFU (Most Frequently Used): substitui a página com o maior número de referências. O algoritmo MFU não é frequentemente usado.

[Processo e Thread]

  • Processo: unidade de trabalho alocada pelo sistema operacional, que significa programa. Quando vários processos são executados simultaneamente, cada processo recebe uma área de memória e CPU independentes.
  • Thread: unidade de execução que opera dentro de um processo, compartilhando os recursos alocados para o processo. Por exemplo, cada guia em um navegador da web não é um processo, mas uma thread.

[OSI 7 camadas]

  • Camada de aplicação: camada que conecta o usuário à rede, incluindo protocolos como HTTP, FTP e SMTP.
  • Camada de apresentação: camada que define o método de representação de dados, incluindo protocolos como JPEG, MPEG e SSL.
  • Camada de sessão: camada que gerencia a sessão entre dois sistemas de comunicação.
  • Camada de transporte: camada responsável pela transmissão de dados, incluindo protocolos como TCP e UDP.
  • Camada de rede: camada que define o caminho para a transmissão de dados, incluindo protocolos como IP e ICMP.
  • Camada de enlace de dados: camada que transmite dados por meio de endereços físicos (endereço MAC), incluindo protocolos como Ethernet e Token Ring.
  • Camada física: camada responsável pela comunicação de meios de transmissão e conexões físicas.

[TCP e UDP]

  • TCP: serviço orientado à conexão que transmite dados de forma confiável. Ele estabelece ou encerra conexões usando o método de aperto de mão de 3 vias e o método de aperto de mão de 4 vias. Por exemplo, quando você faz login em um site ou transfere um arquivo, o TCP é usado.
  • UDP: serviço não orientado à conexão que não passa por um procedimento de sinalização para transmissão de dados, com baixa confiabilidade, mas alta velocidade de processamento. Por exemplo, streaming de vídeo e jogos online usam UDP porque a velocidade de transmissão é importante.

Comentários0