2009-06-19 2 views
4

누구나 장래성있는 Mac OS X 데스크탑 응용 프로그램 개발자를위한 몇 가지 기본 전화 화면 인터뷰 질문을 제안 할 수 있습니까?Mac OS X 개발자 위치에 전화 화면 질문이 있으십니까?

일부 유행어를 알고 자신의 길을 가짜 인터뷰로 가려고하는 사람과는 달리 후보자가 실제로 Mac에서 실제로 개발을했는지 확인하는 데 도움이되는 무엇인가.

TIA.

+1

보고 오류에 관해 사용자에게 다시 물어보십시오. 10 개 이상의 다른 언어로 된 오류 상자를 팝업하는 대신 문제에 대한 세부 정보를 제공한다면 ... Mac 용으로 개발되지 않았습니다. –

+0

@ Justin : 또는 그들이 가지고 있다면, 그것은 결코 빛의 날을 보지 못했습니다 ... –

+0

"Do you read/use Stack Overflow?". 좋은 사람? :-) –

답변

5

수석 개발자는 레이더에 대한 정보를 요청하십시오. 어떤 선임 개발자도 결국 코코아 버그를 만나야하고 좋은 사람은 레이더를 제출해야합니다.

메모리 관리 관련 질문에 동의합니다. 모든 진지한 Mac 개발자는 three magic words을 포함하여 추위의 메모리 관리 규칙을 알아야합니다. "나는 가비지 콜렉션 만 사용합니다"라고 말한 사람은 레오파드에서만 제공 되었기 때문에 매우 오래 개발되지 않았으며 아이폰에서는 사용할 수 없습니다.

수석 개발자는 Core Foundation 메모리 관리 규칙을 알아야하며 "무료 브리지"가 무엇인지 설명 할 수 있어야합니다. (진정한 CocoaHead는 얼마나 환상적이고 우아한 개념의 무료 수신 브리지인가에 대해 시적을 불러 일으킬 것입니다.)

수석 개발자는 코코아 외부에서 여러 프레임 워크의 이름을 지정할 수 있어야합니다. 특히 그들은 기본적으로 연결되지 않고 프로젝트에 추가해야하는 최소한 하나의 프레임 워크에 익숙해야합니다 (모든 심각한 개발자는이 문제를 겪었을 것입니다).

모든 Mac 개발자는 EXC_BAD_ACCESS의 원인을 쉽게 설명 할 수 있어야합니다.

모든 Mac 개발자는 메시지를 nil로 보내면 어떻게되는지 알아야합니다.

수석 개발자는 최소한 NSInvocation을 사용하는 수준까지 NSInvocation을 설명 할 수 있어야합니다.

선임 개발자는 방법론의 사용을 적어도 광범위한 측면에서 설명 할 수 있어야합니다.

모든 Mac 개발자는 MVC 패러다임을 설명하고 간단한 문제를 모델, 뷰 및 컨트롤러로 분해하는 방법을 설명 할 수 있어야합니다.

+0

자동 풀 풀을 설명하고, 세터와 게터 방법에 관해 질문한다. 객체 필드에 대한 getter 및 setter 메서드를 코딩하도록 요청합니다. 키/값 코딩은 재미있는 일입니다. 그리고 메서드 Swizzling 악이 아닌가요? 프레임 워크에 대한 소스 코드가 없습니다. 그래서 네가 뭘 망가 뜨리고 있는지 어떻게 알아? Win32 세계에서 우리는 그것을 "후킹 (hooking)"이라고 부릅니다. 그리고 그것은 조금 다르게 끝났습니다. 그리고 그것은 나를위한 엄청난 고통의 근원이었습니다. 거의 모든 대안을 찾아 낮은 수준의 해킹을 만지기 전에 사용해야합니다. (분명히 objective-C 런타임의 각 버전마다 다른 해킹이 필요합니다) –

+0

접근 자에 동의하고, 특히 접근자를 코딩하는 방법을 설명합니다. KVC도 좋습니다. 메서드 swizzling은 KVO의 기초이므로 수석 개발자는이를 이해해야하며 ObjC의 구현 세부 사항에 대한 이해를 보여줍니다. 개발자. 질문을하는 또 다른 방법은 "KVO 관찰 객체에서 setter를 호출하면 willChangeValueForKey :가 setter 코드에 없더라도 자동으로 호출됩니다. 어떻게이 작업을 수행 할 수 있습니까?" 중간 개발자는이 놀라운 행동에 적어도 괴롭혀 야합니다. 개발자는 대략 어떻게 완료했는지 알아야합니다. –

+0

아, 그리고 메소드 swizzling은 (로깅 코드를 쉽게 삽입 할 수있게하여) 프레임 워크 메소드가 호출되는시기를 알고 싶을 때 디버깅 및 성능 분석에 매우 유용합니다. 그러나 아니요, 광범위하게 사용해서는 안됩니다 (그리고 내가 보아온 코드에있는 경우는 거의 없습니다). 매우 혼란 스럽습니다. –

0

"언어 X (Objective-C 2.0)를 변경할 수 있다면 어떤 기능을 추가 (또는 제거)하겠습니까?"라고 묻고 싶습니다.

대개 후보자의 언어 파악을 보여줍니다. 면접 시험에서 나는 항상 종이에 아주 작은 프로그램을 작문하도록 요청합니다.

0

Objective-C의 기본 메모리 관리 기능을 설명하십시오. 유지, 릴리스, 자동 해제, GC, 자동 보유 등의 속성을 이해할 수 있습니다.

정적 및 동적 바인딩에 대한 ObjC 지원을 설명하십시오. 각각의 대조적 인 사용법을 비교하십시오.

ObjC에서 뭔가 프로그램을 만드십시오. 간단하지만 전화로 읽어야합니다. 신경 쓰면 C가 아닌 뭔가가 필요합니다.

+0

누군가 내가 전화로 그들에게 프로그램을 읽으라고하면 나는 웃고 귀에 걸었다. –

+0

미안하지만, 프로그래머가 아닌 사람이 일자리를 구하려고 애 쓰고 있습니다. 나는 그들이 들어가기 전에 FizzBuzz와 같은 것을 암송하게한다. –