10 분 기술 인터뷰 [폐쇄]


37

수십 명의 신입생들을 매우 빠르게 평가해야합니다. 나는 그들과 30 분씩 회의를합니다 (2 ~ 3 일). 비 기술적 인 측면에 대해 논의하기 위해 대부분의 시간을 사용하고 싶습니다. 기술적 인 질문에 10 분을 사용할 계획입니다. 그들 모두에게 같은 질문입니다.

그들은 모두 이미 고용 되어 있으며 (학생들입니다), 내가 알아야 할 것은 훈련을 준비하기위한 평균 수준입니다.

이상적으로 must be progressive는 각각에 대한 수준을 설정하기가 어렵습니다 . 레벨 1은 평균을 낼 것이며 각 질문에 대해서도 평균을 할 것입니다.

응시자에게 물어보아야 할 10 분 10 개의 질문 만 있다면 상위 10 점은 무엇입니까?


6
직업에 대한 더 많은 맥락? 시스템 관리자 또는 프로그래머 위치입니까, 프로그래밍 수준이 낮거나 높습니까? 상점에 특정 언어 나 기술이 있습니까? 이것들은 모두 내 질문 목록을 지시합니다.
Chris

4
어떤 종류의 훈련? 프로그램 작성? 일반적인 IT?
Adam Lear

3
나는 그것을 뒤집어 개인 물건에 10 분, 기술 물건에 20 분을 보냅니다.
Kyralessa

1
나는 그것이 대부분의 사람들이 할 것이라고 알고 있습니다. 그러나 나는 다른 접근법을 믿습니다.

3
후보 10 분이 너무 적습니다
Zzz

답변:


55

에릭 Lippert의의 대답의 말에 정성 들여 세 가지 질문에, 여기 :

질문 1:

1-10의 척도에서, 당신은 어디에서 자신을 평가합니까 (여기서 스킬 이름을 지정합니까)? 그들은 1에서 10 사이의 숫자 인 [n]으로 대답합니다.

질문 2 :

[n + 1] 레벨의 누군가에게서 무엇을 배울 수 있습니까?

질문 3 :

[n-1] 레벨의 누군가가 당신에게서 무엇을 배울 수 있습니까?

결정에있어 가장 중요한 요소는 학생이 (실제로) 자신을 어디에 배치 하는지 결정하는 것이며,이 세 가지 질문은이를 신속하게 결정하는 데 도움이됩니다. 또한 Dunning-Kruger 효과 로 인해 손상 될 수있는 사람을 식별하는 데 도움이 되지만 다른 주제입니다.

누구나이 방법에 대한 참조를 SO에서 찾을 수 있고 링크를 포함하도록이 게시물을 편집 할 수 있다면 정말 감사하겠습니다.

어쨌든, 그것은 10 분 안에 잘 떨어질 것입니다.


5
와! 매우 특이한 메트릭. 나는 그런 식으로 자신을 생각하지 않았습니다. 감사!
Andrew Андрей Листочкин

응시자는 두 번째 질문을 피하기 위해 10으로 답합니다.
rightfold December

4
@WTP 10은 거짓말이다.
Tim Post

1
이것은 훌륭합니다. 고용주가이 질문을 한 경우, 보통 1 시간의 인터뷰 기회보다 몇 분 안에 자신에 대해 더 설명 할 수있었습니다.
fearofawhackplanet

28
  1. 수업이란?
  2. 정적 방법은 무엇입니까?
  3. 상속이란 무엇입니까?
  4. 다형성이란 무엇입니까?
  5. 기본 키란 무엇입니까?
  6. 외래 키란 무엇입니까?
  7. HTTP GET과 HTTP POST의 차이점은 무엇입니까?
  8. 웹 서비스 란 무엇입니까?
  9. 일부 데이터 구조의 이름을 지정하십시오.
  10. 객체 / 관계형 매퍼의 목적은 무엇입니까?

이 목록에는 개선의 여지가 많이 있습니다.


1
정적 메소드는 C ++ 이외의 많은 언어로 제공되며 여기서는 관련이 없습니다. 실제로 많은 학생들이 이해하기 어려운 개념이라는 것을 알았습니다. 학생들이 그것을 이해하는지 또는 정의를 요구하는지 묻는 것은 그들이 있는지 아닌지를 알아내는 나쁜 방법입니다.
Kate Gregory

3
질문은 10 분 안에 10 개의 질문을 지정했음을 명심하십시오. 30 분 안에 10 개의 질문이 있었다면 난이도를 높이고 더 의미있는 개방형 질문을하고 싶습니다.
Eric Wilson

3
9 번 또는 10 번 문제를 "인터페이스가 왜 중요한지"및 / 또는 "추상적 인 클래스가 왜 중요한가"로 바꿀 수 있지만 목록에서 1-8 번 문제를 정말 좋아합니다. (순서대로)
Nicole

7
모든 OO 질문은 무엇입니까?
재귀

3
어, 이것들은 모두 언어 기능 질문입니다. 나는 그들이 이론에 더 묶인 것들에 대해 그들이 중요하다고 확신하지는 않습니다.
Andres Jaan Tack

20
  1. 포인터를 설명하십시오!
  2. 폐쇄 란 무엇입니까?
  3. 여가 시간에 어떤 언어를 사용합니까?
  4. 거래에 대해 조금 이야기하십시오!
  5. 통역사와 JIT의 차이점은 무엇입니까?
  6. 컴파일러의 기본 사항을 설명하십시오.
  7. 재귀를 수행 할 때 메모리 수준에서 발생하는 일 (및 TCO가있을 때의 차이점)
  8. OO 프로그래밍의 중요한 개념은 무엇이며 왜 중요한가?
  9. 집에서 어떤 새로운 물건을 조사하고 있는데 왜 흥미로운가요?
  10. 프로세스와 스레드의 차이점을 설명하십시오.

20
나는 이것들 대부분이 .net (또는 프로그래밍)을 완전히 처음 접하는 사람들에게는 좋은 질문이라고 생각하지 않습니다.-질문 당 1 분의 답변을 알고 있더라도 ...
FinnNk

9
나는이 질문들이 학생들을위한 "알고있는 / 알고있는"질문보다는 "어떻게 괴짜입니까"질문처럼 보인다는 데 동의합니다.
hyprsleepy

5
CS를 공부 한 적이 없거나 C를 사용한 적이 없기 때문에이 시험에서 몹시 실패 할 것입니다. 따라서 누가 수업에 관심을 보 였는지, 누가 재미를위한 프로그램을 결정하는 데 도움이 될지 모르겠지만 OP의 문맥
Eric Wilson

3
대부분의 사람들은 이러한 잘못을 대부분 얻을 것입니다.
재귀

4
좋은 질문이지만 1 분 안에 답변 할 수 없습니다.
zvrba

16

학생들에 대한 나의 경험 나는 처음부터 거의 처음부터 시작했습니다. 사람들이 대학에서 배우는 것과 유용한 것은 두 개의 분리 된 세트라는 것을 알았습니다.

그러나 당신이 그들에게 말할 기회가 있기 때문에 그것을 받아들이지 않는 것은 어리석은 일입니다.

내 가정은 배경에 공통점이 거의 없으므로 언어 ​​관련 질문을 피하고 있다는 것입니다. 내가 한 예외는 그들이 웹에서 무언가를 한 것으로 가정하지만이 질문은 전문가가 포함 된 경우 동등한 것으로 대체 될 수 있습니다.

당신은 그들에게 내가 일종의 시도한 진보적 인 것을 요구했지만 공통점이없는 것에 대한 나의 가정이 옳고 틀린 질문은 상대적으로 까다 롭고 많은 능력은 더 일반적인 답변에 대한 좋은 대답에서 나옵니다. 질문이 있습니다.

어쨌든...

1) 어떤 언어와 기술에 노출되어 있습니까? 실제로 프로그래밍하는 데 50 시간 이상을 소비 한 이들 중 몇 개 (및 어느 것) (강의, 실습 시간 등은 포함하지 않고 혼자서 코딩 한 프로젝트 및 과제 포함)

2) 지금까지 작성한 가장 복잡한 프로그램을 설명하십시오. 무엇이 복잡 해졌습니까?

3) 대학에서 프로그래밍과 관련하여 무엇을 제대로 이해하지 못했다고 가르쳤습니까? 모든 것을 이해했다고 생각한다면 (이 시점에서 성적을 확인하십시오) 코딩하는 방법과 그것에 대해 어떻게 생각할 수 있는지 알지 못하는 응용 프로그램 또는 응용 프로그램 요소에 대해 이야기하십시오.

4) 객체 지향 프로그래밍의 기본 원리는 무엇입니까?

5) 1 분 안에 가능한 한 관계형 데이터베이스에 대해 알려주십시오.

6) 웹 애플리케이션의 경우 페이지 간 사용자 정보를 유지하는 방법을 설명하십시오. 설명한 메커니즘에 어떤 장단점이 있습니다.

7) 컴퓨팅 내에서 일반적으로 사용되는 기능을 선택하고 프로그래밍 방식 (예 : 암호화, 압축)에서 작동 방식을 매우 간략하게 설명합니다. 또한 당신이 그 기능을 어떻게 사용해야했는지 설명하십시오 (여기서 어떻게 작동하는지 알 수 있지만 라이브러리를 얻는 것이 더 낫다는 사실을 찾고 있습니다).

편집 : 원래 요청 한대로보다 진보적으로 만들기 위해 몇 가지 질문을 재구성하고 추가했습니다.


6
나는이 목록이 마음에 든다. 나는 또 다른 질문을 추가 할 것이다 : 당신은 대학에서 무엇을 실제로 실제적으로 사용할 수 없다는 것을 가르쳤습니까? 그것은 그들이 어떻게 생각하는지에 대한 유용한 표시를 줄 수 있습니다.
glenatron

2
그들이 좋은 경우 다음 10 분 후입니다 질문이 :-)
숀 패트릭 플로이드

OOP의 "신조"에 대해 질문 할 때 OOP가 종교임을 암시 하시겠습니까?
compman

@compman-분명히 아닙니다. 교리는 종교에 적용될 수 있지만 그 맥락에 배타적이지 않으며 조직, 운동 또는 직업에도 적용될 수 있습니다.
Jon Hopkins

8

이것들이 학생이고 당신이 그들이 공부하고있는 곳을 측정 할 수 있기를 원한다면, 어려운 질문이나 질문을하지 않아야합니다. 저의 충고는 기본에 초점을 두는 것입니다. 반향이 여전히 객체와 상속에 속도를 낼 수 없다면 반사가 어떻게 작동하는지 설명 할 필요가 없습니다.

다음은 사용할 수있는 몇 가지 샘플 질문이며 핵심 지식 범주에서 시작하여 적응 형 테스트의 작동 방식 과 같은 질문에 대한 답변 방법을 기준으로 이동할 수 있습니다.

기초

  1. 기본적인 프로그램 흐름 제어 명령은 무엇입니까?
  2. 기본적인 논리 연산은 무엇입니까?
  3. while 루프와 for 루프의 차이점은 무엇입니까?

핵심

  1. 객체 지향 프로그래밍에 대해 간단히 설명하십시오.
  2. 상속의 개념을 간단히 설명하십시오.
  3. 데이터베이스 작동 방식을 간략하게 설명하십시오.
  4. 언제 어떤 enum키워드를 사용합니까?

많은, 진보 한, 많이 경과 한

  1. C # 제네릭 또는 C ++ 템플릿에 대해 무엇을 알려줄 수 있습니까?
  2. 운영자 과부하에 대해 무엇을 알려줄 수 있습니까?
  3. 클래스와 구조체의 차이점은 무엇입니까?
  4. .NET에서의 리플렉션에 대해 무엇을 말해 줄 수 있습니까?

6

위의 의견에 대한 답변이 없으면 일반적으로 말하게되는 것들이지만 이러한 기술을 고려할 것인지는 확실하지 않습니다.

  • 어떤 유형의 버전 관리를 사용 했습니까?
  • 애자일, 워터 폴, tdd와 같은 소프트웨어 개발 방법론에 익숙하십니까?
  • 소프트웨어 문서화의 목적은 무엇입니까?
  • 정적 및 동적 유형 언어의 차이점은 무엇입니까?

5
"스파게티 코딩 스타일이 유용한 이유는 무엇입니까?" -궁극의 것
mlvljr

하하가 그들을 속이려고하는 것입니까?
billy.bob

@ m.edmondson 이제 추상화를 깨뜨리는 것이 불가피한 경우의 예를 들어주십시오.)
mlvljr

흠 나는 그것이 불가피한 경우가 있다고 생각하지 않는다 ;-)
billy.bob

4

나는 당신이 그들이 모르는 것에 기초하여 훈련을 구축하려고 노력하고 있으며, 당신은 다른 그룹의 학생들을 위해 여러 개의 "버킷"훈련을 계획하고 있음을 알고 있습니다. 할당 된 시간이 10 분이므로 훈련에 포함시킬 생각을 나열하고 구체적인 질문을 해보십시오. 그래서 당신은 그들에게 C #을 가르 칠 계획입니다. 그들이 잘 알고 있는지 물어보십시오. 최신 기능 (LINQ, nullable type, generics 등)을 사용했는지 묻습니다. 훈련에 데이터베이스 내용이 있으면 그것에 대해 몇 가지 질문을하십시오. 결국 당신은 당신이 계획 한 주제 중 하나가 불필요하다는 것을 알 수 있습니다. 왜냐하면 그들은 모두 그것을 알고 있고, 다른 주제는 모두에게 필요하기 때문입니다. 그것은 당신이 무엇과 관련이없는 질문을 생각해내는 것보다 더 실용적입니다.


+1-이것이 내가 말하고 싶은 것입니다. 그들에게 필요한 훈련에 무엇을 포함시켜야하는지 물어보십시오.
mouviciel

4

그들에게 FizzBuzz 질문

그들은 그것을 코딩하는 방법을 알고 있었습니까? 그들은 어떤 언어를 사용 했습니까? 그들은 왜 그렇게 코드를 작성 했습니까? 그들은 재귀를 사용 했습니까? 루프? 다른 방법 / 기능? 포인터?

다른 질문의 기초로 질문을 사용할 수도 있습니다 (예 : 왜 재귀를 사용 / 사용하지 않았습니까? 포인터를 사용하여 어떻게 작성 하시겠습니까?)

모든 것을 포함하지는 않지만 코딩 기술에 대한 아이디어를 줄 수 있습니다.


1
네, 지역 사회의 누군가에게 그 질문을하겠다고 약속했습니다. 마지막 질문이 될 것이며 모든 사람들과 결과를 공유 할 것입니다.

1
@Pierre 303 : 사람들에게 우편 번호를 확인하는 기능을 작성하도록 요청했습니다. FizzBuzz만큼이나 깨달았습니다.
Scott Whitlock

1
당신은 저에게 그 질문을해서 얻은 결과를 줄 수있는 기회를주었습니다. 6 번 또는 7 번의 인터뷰에서 아무도 대답 할 수 없었습니다. 그들 대부분은 신입생이지만 8 년의 경험이 있습니다! 그래서 조금 혼란 스러워요

4

10 가지 질문 :

  1. 배열의 값을 합한 for 루프를 보여줍니다. 그런 다음 코드 조각이 무엇인지 물어보십시오. [기본 루프를 읽을 수 있습니까?]

  2. 쉼표로 구분하여 숫자 1에서 10까지 인쇄하는 for 루프를 작성하도록 요청하십시오. [ "그들이 할 수 있습니까?" 그들의 코드가 얼마나 반복적인지를 판단 할 수 있습니다.]

  3. 두 개의 참조가있는 코드를 표시 a하고 b, 정수 필드가 xsay, 7및로 설정된 두 개의 다른 객체를 가리 킵니다 5. 그런 다음 a = b;,,을 다시 할당 b.z = 9;하고 값을 요청하십시오 a.z. [그들은 참조를 이해합니까?]

  4. 일부 표현식의 값을 누적 하여 두 개의 중첩 된 for 루프 (인덱스 ij)를 표시합니다. 가장 안쪽의 루프에서,이 계산을 가지고 double x = Math.pow(2.0, i)double y = x * j. 코드를보다 효율적으로 만들도록 요청하십시오. [단순 루프 의존성에 대해 알고 있습니까?]

  5. 코드 샘플 A에서 무엇이 잘못되었는지 물어보십시오. (아래 참조) [논리적으로 생각할 수 있습니까?]

  6. 코드 샘플 B에서 무엇이 잘못되었는지 물어보십시오. (아래 참조) [논리적 사고에 대해서도]

  7. (s != null && s.Length != 0)사용하지 않고이 상태를 반전 시키라고합니다 !. [데모 간의 법칙을 알고 있습니까?]

  8. 잡지에있는 오래된 Lint 광고와 유사한 코드를 보여줍니다. 버그를 찾도록 요청하십시오. 예를 들어, 오버로드하는 equals대신 오버로드 합니다. [그들은 좋은 변호사입니까? 이런 종류의 질문은 주로 경험을 테스트합니다. 전에 본 적이 있습니까?]

  9. 정렬 된 배열을 통해 이진 검색을 수행하는 방법을 설명 할 수 있습니까?

  10. 정렬 방법을 구현하는 방법을 설명 할 수 있습니까?

이것들은 "너무 짧게"보일 수 있지만, 10 분이 매우 빡빡하다고 생각하는 학생들을 평가한다고 생각합니다. 당신은 정말로 그들이 코딩하는 것을보고 싶어합니다. (한 의견에 따라 FizzBuzz를 할 것 같습니다.)

더 강한 학생을 가정 할 수 있다면 재귀, 연결된 목록 뒤집기, XOR 목록 설명과 같은 고급 와일드 카드 또는 어떤 직관에 대한 고전과 같은 고전을 물어볼 수도 있습니다. 왜 숫자 집합을 정렬하면 분류되지 않은 것보다 압축하기가 더 쉽습니다.

코드 샘플 A :

if (m != null)
    a = m;
else
    a = null;

코드 샘플 B :

if (x != 0 || x != 1) {
    ...
}

3

분명히 당신은 이것에 대해 잘못된 길을 가고 있습니다. 각 학생을 배치 할 그룹을 식별하십시오.

예 :

No previous programming experience
Familiar with procedural constructs like variables, loops, branching
familiar with basic object orientated constructs like classes, interfaces, events, inheritance
familiar with using Generics/Templates
familiar with creating Generics/Templates

등등. 강의 자료에 따라 적절한 그룹을 찾은 후에는 어떤 질문을해야하는지 알아내는 것이 쉽지 않습니다.


3

학생들은 이미 고용되어 있으며 교육 프로그램을 설정하려고합니다. 따라서 거래의 일부는 그들이 얼마나 빨리 배울 수 있는지 (및 / 또는 그들이 알고있는 것 : 누가 신경 쓰는가)를 알아내는 것입니다. 쉬운 질문, 중간 질문 및 어려운 질문을 골라서 미리 알려주십시오. 그들이 쉽게 배울 수 있다면 왜 그들이 알지 못할 수도있는 질문에 매복합니까?

대부분의 사람들이 상상하는 것과는 달리, 많은 학생들이 문제에 대한 답을 가지고 잘하지 못할 것 입니다. 이런 방식으로 학생들, 학생들의 지식 및 학습 능력에 대해 배우게됩니다.


2

5 개의 간단한 플로우 차트 구성과 별도의 응답 목록을 작성하십시오. 그들에게 문구와 그림을 일치 시키라고한다.

다음을 그리십시오.

  1. 구성하는 경우
  2. 그렇지 않으면
  3. 반복 루프
  4. 루프까지
  5. 사례 진술 구성

그들에게 1과 2
의 차이점을 설명하도록
요청하십시오. 3과 4의 차이점을 설명하도록 요청하십시오.


1

10 분 안에 10 번의 질문 으로이 작업을 수행 할 수 있는지 확실하지 않습니다. .net에 대해 알고있는 것을 5 분 동안 알려주십시오. 그런 다음 20 개의 주제로 구성된 목록을 작성하고 언급 한 것에서 2 또는 3을 선택하고 그렇지 않은 것에서 2 또는 3을 선택하십시오.

예를 들어 다음과 같이 시작할 수 있습니다.

Visual Studio에서 간단한 C # 프로젝트를 만드는 것부터 프로젝트를 만드는 방법에 이르기까지 간단한 방법 (5 분)이 있습니다.

그런 다음에 :

좋아요, 다음에 대해 좀 더 말씀 해주세요. 답변 당 1 분 동안 빠른 속도로 진행될 것이므로 너무 자세하게 설명하지 마십시오. 익숙한 것에 대한 느낌을 원합니다.

그런 다음 다음과 같이 5 가지 질문을하십시오.

  • 수업이 무엇인지 설명하십시오.
  • 추상 클래스와 인터페이스의 차이점은 무엇입니까?
  • 가비지 수집이 .Net에서 작동하는 방법을 간단히 설명

    ....

  • 문제가있는 경우 어떻게 디버깅합니까?

  • Yadda-yadda-다른 답변에서 선택할 긴 목록을 선택할 수 있다고 확신합니다.

1

나는 "자기 평가"를 믿습니다! 예를 들어 "100+ 테이블과 500K + 레코드의 데이터베이스를 사용하여 SQL을 코딩해야합니다. 4 초 내에 실행해야합니다." 그리고 당신이 그에게 물으면 : "당신은 그것을 만들 수 있다고 생각합니까?" -정답이 나옵니다.

나는 학생들의 기대에 대해 5 가지 질문을했고 5 가지 기술적 인 부분을 더 보냈다.

  1. 이 훈련에서 무엇을 기대하십니까?
  2. 귀하의 레벨은 무엇입니까 (도메인에 따라 다름)
  3. 이 훈련 동안 무엇을보고 배우고 싶습니까 (가장 중요한 3 가지 사항을 지적하십시오)?
  4. 우리가 운동을하면 더 유용한 것이 무엇입니까? (워크샵, 객관식)?
  5. 선생님에게서 무엇을 기대하십니까?

당신은 (이 주제에 따라야합니다)와 같은 기술적 인 질문으로 갈 수있는 것보다. 예를 들어 OOP의 경우 :

  1. 캡슐화 란 무엇입니까?
  2. 인터페이스 란?
  3. 다형성?
  4. 하위 입력?
  5. 동적 바인딩?

1

저는 문제 해결, 강력한 학습 습관, 전문성 개발 및 광범위한 접근 지식을 찾고 있습니다.

  1. 포트폴리오를 볼 수 있습니까?
  2. 마지막으로 읽은 3 가지 기술 서적은 무엇입니까? 왜?
  3. 어떤 프로그래밍 텍스트가 가장 많이 생각하는 방식을 바 꾸었습니까? 왜?
  4. chicken객체로 어떻게 정의 하시겠습니까? 그것은 다른 것과 어떻게 관련이 birds있습니까? 어떻 mammalsanimals?
  5. 평신도의 용어로 (REST, 다형성, 관계형 대수, 파서 디자인, MVC) 중 하나를 설명 할 수 있습니까?
  6. 자신이 만든 가장 흥미로운 (또는 가장 좋은) 소프트웨어는 무엇입니까?
  7. 좋아하는 언어부터 가장 좋아하는 언어에 이르기까지 능숙한 언어를 설명 할 수 있습니까? 가장 좋아하지 않는 언어에 대해 불만이 있으십니까?

개발자는 다음을 기대합니다.

  • 수완이 풍부하고 빠르다
  • 기본 개념을 올바르게 파악
  • 고급 개념을 추구하다
  • 성공과 실패를 추적하십시오.
  • 끊임없이 신중하게 배우십시오
  • 복잡한 문제를 간단히 전달
  • 일반적으로 독단적 인 문제를 논의 할 때 균형과 논리를 보여라

1
나는 프로그래밍 책을 거의 읽지 않는다. 그들은 더 나은 참조 및 설명 자료를 만듭니다.
Andres Jaan Tack

당신이 옳습니다 : 당신이 커버 투 커버 (참조 자료)를 읽을 수없는 몇 가지 텍스트가 있지만, 당신의 생각을 바꿀 많은 놀라운 볼륨이 있습니다. 예 : Tufte의 시각적 설명 또는 선택의 역설 또는 프로그래밍 언어 실용 (또는 Hofstadter의 모든 것).
브루스 앨더 슨

기술 / 프로그래밍 서적에 국한되지 않는 "당신의 생각을 바꿀 많은 놀라운 책들이 있습니다." 또한, 나는 포트폴리오가 없으며 모든 직업은 안전한 시스템이었습니다.
NimChimpsky

열린 프로젝트 또는 비영리 단체에 시간을 투자하십시오. 누군가를 고용하기 전에 실제 작업을 보는 것이 중요합니다 (결국 실제 작업을 표시하게 됨). 포트폴리오는 잘 관리 된 이력서만큼 중요합니다.
Bruce Alderson

1

블룸의 분류법이 여기에 유용합니다. 썩은 암기부터 분석에 이르기까지 다양한 지식 수준에 도달하려고합니다. 이것은 당신에게 그들의 기술 수준이 어디에 있는지 알 수있는 기회를줍니다. OP가 학생들에게 물어볼 질문을 찾고 있었기 때문에 아래 목록은 3 학년 또는 4 학년 학생이 소지하는 것보다 더 많은 지식을 가정하지 않습니다.

개념

  1. 스택 언더 플로우 란 무엇입니까?
  2. 객체와 클래스의 차이점은 무엇입니까?
  3. 함수와 메소드의 차이점은 무엇입니까?
  4. Quicksort 및 Insertion Sort의 강점과 약점을 식별하십시오.
  5. 작성한 프로그램이 이진 트리에 저장된 모든 값을 어떻게 표시하는지 설명하십시오.

실용적인

  1. 버전 관리 시스템을 사용해 보셨습니까? 팀원들은 어떤 방식으로보다 효과적으로 협업 할 수 있습니까?
  2. 컴파일러에서 "식별되지 않은 기호"라고 말합니다. 그게 무슨 뜻이야?
  3. "세그먼트 위반"이란 무엇입니까?
  4. (여기에 언어 삽입) 구문 또는 표준 라이브러리에서 제공하는 일부 데이터 구조의 이름을 지정하십시오.
  5. 10,000 개 파일로 모든 이메일 주소를 어떻게 찾고 표시합니까?

1

그들은 이미 고용되었으므로 빠른 평가를 위해 (프로그래밍 질문과 함께)해야한다고 생각합니다.

  1. 작업 한 시스템 구성은 무엇입니까 (PC 하드웨어 구성).
  2. 다른 OS에서 코드 (대학에서 일한 경우 프로젝트)를 테스트 해 보셨습니까?
  3. Windows 또는 Linux에서 코딩을 선호합니까 (OS와 다른 OS에서 작업 한 경우)
  4. 코딩이 더 빠르거나 느리거나 더 나은 것은 시스템에 달려 있습니까? (높은 시스템 = 느린 시스템이 컴파일하는 데 시간이 오래 걸리므로 코딩에 좋은 요소가 됨)
  5. 또한 그들이 드라이브를 포맷하거나 OS를 설치 해야하는지 알고 IT 부서에 도움을 요청하여 충돌을 일으키거나 부팅 할 수없는 경우 OS를 설치 해야하는지 묻는다면 (일부 OS 상황을 올바르게 처리 할 수 ​​있는지 알아야합니다)

이 질문은 프로그래밍하는 동안 사용하는 시스템에 대한 인식을 찾기위한 것입니다.


0

가장 낮은 수준의 소프트웨어 스택부터 시작하십시오.

  1. BIOS 란 무엇입니까?
  2. 운영 체제의 역할은 무엇입니까?
  3. 멀티 태스킹이란 무엇입니까? 동적 연결이란 무엇입니까?
  4. 소스 코드가 학생이 선택한 언어에 따라 작동하는 프로그램으로 변환되는 방법을 설명하십시오 (C의 예 : 전 처리기-> 컴파일러-> 많은 객체 파일-> 링커-> 실행 가능)
  5. 캐시 란 무엇입니까? L1 캐시, L2 캐시, RAM, 회전 디스크 (예 : SSD가 아님)에 대한 상대적 액세스 시간을 추정합니다.
  6. 문헌에서 세부 사항을 찾지 않고도 구현할 수있는 데이터 구조를 열거하십시오.
  7. 가장 복잡한 프로그램은 무엇입니까? 무엇이 복잡 해졌습니까?
  8. 자신이 선택한 예에서 재귀를 설명하십시오.
  9. 왜 프로그램이 충돌합니까?
  10. 중요한 섹션을 설명하고 사용할 섹션을 제시하십시오.

4
이러한 질문의 대부분은 운영 체제에 관한 책에서 나온 것으로 보이며 정직하게는 프로그래밍과 관련이 없습니다. 솔직히 말해서 MOST 프로그래밍 작업에 대해서는이 중 어느 것도 알 필요가 없습니다.
브라이언 해링턴

1
약간 과장되었지만 OS의 역할이 무엇인지 모른다면 OS 수준 또는 데이터베이스 수준에서 보안 및 액세스 권한에 대해 이야기하는 것은 의미가 없습니다. 컴파일 프로세스에 대해 모른다면 A에서 Z로 빌드 프로세스를 디버깅 할 수 없습니다. 캐시 지연에 대해 모른다면 DBMS의 모든 것을 푸시하는 코드로 끝납니다. 파일이 충분했을 것입니다. 당신이 뮤텍스에 대해 모른다면, 당신은 모른다 어떤 병렬 프로그래밍에 대한합니다. 나머지는 프로그래밍과 분명히 연결되어 있어야합니다.
zvrba

1
(그리고 BIOS가 무엇인지 모른다면, 아마도 PC 하드웨어 프로그래밍에 대해 전혀 모를 것입니다.)
zvrba

4
전기에 대한 기본적인 이해로 시작하십시오. 스크래치 : 원자 물리로 시작합니다. 그런 다음 BIOS에 따라 작업하십시오.
Dan Rosenstark

이것들은 매우 중요하고 기본적인 질문이며 모든 프로그래머가 답 을 알고 있어야하지만 PC 기술 도 알아야 할 목록의 상반기가 시간 낭비라고 생각합니다 . 고용하는 사람이 프로그래밍 에 대해 아는 것이 있는지에 대한 좋은 아이디어를 제공하지 않습니다 .
Ken Bloom

0
  1. 문자열이 변경 가능합니까?
  2. 클래스와 정적 클래스의 차이점은 무엇입니까?
  3. 포인터 란 무엇입니까?
  4. 복잡성을 설명하십시오.
  5. 배열과 연결 목록의 차이점은 무엇입니까?
  6. 병합 정렬과 빠른 정렬의 차이점은 무엇입니까?
  7. 이름, 주소, 우편 번호 및 전화 번호 열이있는 스프레드 시트에는 스프레드 시트를 정규화 된 데이터베이스로 변환하는 방법이 설명되어 있습니다.
  8. 비동기 메소드와 동기 메소드의 차이점과 처리 방법에 대해 설명하십시오.
  9. 서버 측 응용 프로그램에서 웹 응용 프로그램으로 정보를 어떻게 전달 하시겠습니까?
  10. 선호하는 언어는 무엇입니까? X보다 해당 언어를 사용하는 이유는 무엇입니까? (즉, 왜 C #보다 Java를 사용하고 싶고 근본적인 차이점은 무엇입니까?)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.