대학에서 몇 년간 프로그래밍을 공부 한 사람과 실제로 알고있는 사람 사이에 큰 차이가있는 것 같습니다.
인터뷰에서 지나치게 복잡한 질문을하는 것 같은 느낌이 들지 않습니다. 내 일반적인 질문 중 일부는 다음과 같습니다
참조 유형과 값 유형의 차이점은 무엇입니까?
인터뷰 대상자가 자신의 답변을 실제로 이해하지 못하는 것 같거나 사용중인 용어를 모르는 경우 int i = 0을 쓸 때 어떤 일이 발생하는지 설명하도록 요청하여 더 자세한 정보를 얻습니다. 메소드에서 객체 o = 0, 객체 o = new MyClass () 등은 어떻습니까?
기본적으로, 나는 인터뷰 대상자가 콜 스택, 힙 등에 대해 알려주도록 속일 수 있으며 언어에 구애받지 않는 개념을 유지하려고 노력합니다. 인터뷰 대상자가 많은 C 또는 C ++ 또는 C #을 수행했다고 말하면 특정 언어와 구현 세부 사항에 대해 자세히 알아 봅니다.
필요한 경우, 인터뷰 대상에게 콜 스택이 무엇인지, 또는 자신이 선택한 명령형 언어로 함수에 전달 된 인수가 저장되는 위치를 묻습니다.
대부분의 인터뷰 대상자는 권투 고려 사항은 물론 콜 스택이 무엇인지 전혀 모릅니다.
추상 클래스와 인터페이스의 차이점은 무엇입니까? 어떤 경우에 다른 것을 사용해야합니까?
일반적으로 상속과 추상 팩토리를 사용하는 유스 케이스가있는 작은 라이브러리의 디자인을 상상해 보라고 요청합니다.
인터뷰 대상자 대부분은 상속의 실제 목적이 무엇인지 전혀 모릅니다. 그들은 일반적으로 일부 키워드 (가상, 재정의 등)를 알고 있지만 가상 테이블이 무엇인지 설명하지 않고 키워드를 언제 사용 해야할지 실제로 알지 못합니다.
CV를 사전에 검사하더라도 복잡한 아키텍처와 관련된 실제 프로젝트에서 5 년의 경험이있는 사람이라도 모든 인터뷰 대상자의 25 % 미만이이 두 가지 질문에 올바르게 대답 할 수 있다고 말합니다. 그리고 내가 올바르게 말할 때, 나는 '심층적'을 의미하는 것이 아닙니다. 단지 개념이 무엇인지에 대한 대략적인 아이디어를 갖는 것입니다.
후배들에 관해서는, 시간을 잘 정리하는 방법을 모르는 사람이나 예를 들어 산업 건축 과정에 익숙하지 않은 사람을 고용하는 것이 좋습니다.하지만 " 컴퓨터 과학을 공부 한 몇 년 후, 그는 멍청하거나 동기가 없거나 대학을 매우 현명하게 선택했습니다.
내가 여기서 극단 주의자라고 생각합니까? 대학을 마치고 나면 이러한 기본 개념을 배우는 것이 일반적입니까? 당신은 이것에 익숙하지 않은 사람들을 알고 있으며 몇 년 후에 아주 훌륭한 소프트웨어 엔지니어가되었습니다. 저의 회사가 재능있는 인재를 유치하는 데 문제가 있거나 자신의 채용 과정에서 같은 종류의 문제를 경험하고 있다고 생각하십니까?
편집하다. "즉시 유형"에 관해서는, 우리가 보통 프랑스어로 면담을하는 것처럼 프랑스어에서 영어로의 문자 그대로의 번역 일뿐입니다. 나는 내 질문에 그것을 고쳤다. 그러나 여전히, 나는 당신이 내가 의미하는 바를 완벽하게 이해한다고 생각합니다.