Casa > Q > Quais São Os Fundamentos Que Você Deve Saber Antes De Uma Entrevista Técnica?

Quais são os fundamentos que você deve saber antes de uma entrevista técnica?

Depende realmente do tipo de entrevista. Você estará fazendo o desenvolvimento de aplicações? Desenvolvimento móvel? Desenvolvimento Web?

Em geral, se você sabe o seguinte, você deve estar muito bem (para ser honesto, ter um amplo entendimento de CS é útil):

Software Engineering / General

>ul>>li>MVC (Model-View-Controller)>li>Como é o ciclo de vida do software (algo parecido: [Universo do Discurso] -> Formulação do Problema -> [Especificação do Problema] -> Engenharia de Requisitos -> [Especificação dos Requisitos] -> Arquitetura -> [Especificação da Arquitetura] -> Projeto -> [Especificação do Projeto] -> Programação -> [Componentes de Software] -> Integração -> [Sistema de Software] -> Entrega/Desdobramento -Como usar a recursividadeli>li>li> Os prós e os contras dos algoritmos recursivosli>li> Como escrever um algoritmo recursivo como um algoritmo iterativoli>li>SOLID (objeto-oriented design)Debugging

Complexity

  • How to read code and determine its Big-O complexity
  • How to compare the performance of algorithms that have the same Big-O complexity

Low Level

  • Bit manipulation (And, Or, Not, Shifts, etc.)
  • Bit masking
  • Big-endian versus little-endian
  • Caches and how they work

Data Structures
(Know how to use, the Big-O complexities of various operations, how to implement, etc.)

  • Hash Tables
  • Singly- & Doubly- Linked Lists
  • Arrays
  • Binary Trees / Trees in General
  • B-Trees (just have a very basic understanding of these)
  • Heaps
  • Stacks
  • Queues
  • Tries

Algorithms / Techniques

  • Shortest Path
  • Breadth-first search
  • Depth-first search
  • In-order/Pre-order/Post-order traversal
  • Binary Search
  • Merge Sort
  • Quick Sort
  • Insertion Sort
  • Bubble Sort
  • Divide and Conquer
  • Dynamic Programming

OOP

  • Interfaces
  • Abstract classes
  • Polymorphism
  • Inheritance
  • Encapsulation
  • Overriding
  • Overloading

Concurrency

  • What is multithreading
  • What to watch out for with multithreading
  • Mutexes/semaphores

Problem Solving / White Board Coding

  • How to speak everything you are thinking
  • How to verify that your code works (and check that it handles unexpected inputs correctly)
  • How to break a problem into parts
  • How to determine whether to use an iterative solution or a recursive solution
  • How to relate a problem to other problems you'Como testar um problema contra várias estruturas de dados para ver se ele pode ser resolvido de forma mais inteligente>li> Como fazer o escopo de um problema (defini-lo, identificar/questionar suposições), determinar entradas e saídas)>li> Como escrever uma solução de força bruta>li> Como melhorar a eficiência de uma solução>li>li> Como externalizar seus pensamentosli>li> Como comentar o código de uma maneira útil e organizadali>li> Como rastrear através do código para verificar se ele funciona para a amostra de entradasli>li> Como identificar onde no seu código você cometeu um erro se você está't obtendo a saída esperada
  • li>Como testar partes individuais separadamente>li>li> Como identificar padrões em problemas passando pelas entradas da amostra e considerando as saídas esperadas
p> Esta lista é't all-inclusive. Você'vai precisar saber muito mais para entrevistas mais específicas de domínio, mas isto deve começar.

De Tuneberg Duszynski

Qual é o nome do novo telefone Android da Nokia? :: Justanswer.com é legal?