분석 : 기술 인터뷰 문제에 접근하는 방법

문제를보다 관리하기 쉽게 만드는 방법을 알아볼 수있는 안전한 방법입니다.

1. 질문을받을 때 (한 줄의 코드를 작성하기 전에)

질문을 이해하는 가장 쉬운 방법은 테스트 사례를 살펴 보는 것입니다.

면접관에게 설명해야 할 사항 :
예상되는 입력은 무엇입니까? 예상되는 결과는 무엇입니까?
특정 테스트 사례에 대한 가정

테스트 사례를 살펴본 후에는 추적해야 할 변수와이 문제에 가장 적합한 데이터 구조 유형을 기록해 두십시오.

항상 문제를 해결할 수있는 방법을 생각하십시오. 작고 쉬운 하위 문제가 있습니까? 그렇다면 그 솔루션은 어떻게 생겼습니까?

2. 코드 작성 (정지 된 경우 수행 할 작업)

알고리즘을 파악하고 논리를 설명한 후에 다음으로해야 할 일은 아이디어를 코드로 변환하는 것입니다.

이 시점에서 무차별 대입은 완전히 괜찮습니다. 런타임 및 공간 효율성이 완벽하지 않더라도 작업 솔루션을 만드는 것이 코드를 조기에 최적화하려는 것보다 훨씬 낫습니다.

코드를 작성할 때 다음을 기억하십시오.

  1. 현재 작업중인 코드와 솔루션에 코드를 추가하는 이유에 대해 명확하게 말하십시오.
  2. 명백한 변수 이름을 사용하고 코드를 읽기 편하게 만드십시오.
  3. 사고 과정을 통해 면접관과 대화하고 솔루션에 어떤 장단점이 있는지 이야기하십시오.
  4. 가능하면 코드를 모듈화하십시오 (도움말 기능은 친구입니다!)

갇히거나 생각할 시간이 필요한 경우 어색한 침묵을 다루는 방법

그것은 우리 모두에게 발생하며, 인터뷰 중에이 문제가 발생하는 것은 완전히 정상입니다. 내 경험에 의하면, 거의 모든 기술 인터뷰에서 나 자신을 생각해야하고 인터뷰 자와 대화 할 수없는 순간이왔다. 이런 일이 발생하면 보통 다음과 같이 말합니다.

내 솔루션을 생각하고 그것이 합리적인지 확인하려면 잠시 시간이 필요합니다.
이것이 올바른 접근인지 확실하지 않습니다. 내 작업을 다시 확인하겠습니다.
어쩌면 (제안 된 솔루션의 일부를 삽입하십시오) 실제로 (일부 사례를 삽입하십시오) 작동하지 않을 수도 있습니다 ... 나는 그것을 해결하는 방법에 대해 생각하고 있습니다.

면접관은 대개 당신 편에 있고 당신이 성공하기를 원합니다. 단지 그 사람이 당신에게 힌트를 주 었는지, 기억하지 마십시오!

3. 솔루션 검토 및 최적화 추가

코드 작성을 마치면 테스트 사례를 통해 코드를 추적하여 프로그램이 예상 한대로 작동하는지 확인하십시오.

이 시점에서 다음을 고려하는 것이 좋습니다.

  1. 당신이 놓쳤을지도 모르는 가장자리 사건
  2. 하나의 오류로 인한 모든 오류 (특히 색인 생성 또는 루프 사용시)
  3. 코드에서 정리할 수있는 반복성이 있습니까?

최적화하려고 할 때 물어볼 질문 :

  1. 현재 런타임 및 공간 복잡성은 무엇입니까?
  2. 다른 데이터 구조를 사용하거나 접근 방식을 약간 수정 한 경우 개선의 여지가 있습니까?

코드를 검토 할 때 의도하지 않은 오류가 발생했을 가능성이 있다는 사실을 기억하십시오. 처음 보는 다른 사람의 작업 인 것처럼 프로그램을 추적하십시오!

다 싸서

인터뷰는 기술이며 다른 기술과 마찬가지로 연습으로 향상시킬 수 있습니다! 기술 문제를 통해 작업하고, 선택한 언어 및 데이터 구조에 익숙해지면서 인터뷰 중에 성능이 향상 될 수있는 기회를 미리 확보 할 수 있습니다.

질문, 데이터 구조 및 검토 할 리소스 목록을 보려면 여기를 참조하십시오. 4 주차 기술 인터뷰 계획

각 인터뷰는 학습 경험이며 이전에는 없었던 귀중한 통찰력을 얻었으므로 결과에 관계없이 진행됩니다. 긍정적 인 태도를 유지하고 피드백을 통해 배우는 것은 지속적으로 개선하는 좋은 방법입니다! 행운을 빕니다!

이 안내서가 어떤 식 으로든 당신을 도울 수 있다면 박수를 보내거나 두 번 이상 보내주십시오.