>  기사  >  백엔드 개발  >  프로그래머 인터뷰: 상위 42개 전화 인터뷰 질문 및 답변(2부)

프로그래머 인터뷰: 상위 42개 전화 인터뷰 질문 및 답변(2부)

WBOY
WBOY원래의
2016-08-08 09:27:25925검색

올해는 2015입니다. 최근 몇 년 동안은 대면(전화 면접)이 후보자를 선별하는 방식으로 가장 인기가 많았습니다. 프로그래머 위치를 위해. 고용주와 고용주 모두가 쉽게 알아갈 수 있습니다. 지원자는 미래 고용주의 위치로 갈 필요가 없으며 면접관은 추가 준비를 할 필요가 없습니다. 이것은 프로그래머 인터뷰 질문을 다루는 내 기사의 두 번째 부분입니다. 첫 번째 섹션이 코딩 문제에 너무 집중했다는 피드백을 받았고, 많은 프로그래머들이 전기 문제에 대해서도 비슷한 목록을 만들길 원했습니다. 성공적으로 면접을 통과하고 다음 라운드로 진출하기 위해서는 직무 요구사항과 관련된 모든 질문에 충분히 답변해야 합니다. 대부분의 JavaC++ 개발자 인터뷰에서는 해당 프로그래밍 언어에 대한 문제뿐만 아니라 SQL, XML, UNIX 등의 기타 기술, 일반 프로그래밍, 객체 지향 프로그래밍, 데이터 구조 및 알고리즘, 네트워킹, 코딩 및 기타 업무 측면. 프로그래머의 취업 면접은 다양하기 때문에 면접관이 기대하는 방식으로 자신을 표현하려면 특별한 기술이 필요합니다.

중요한 점은 면접 질문에 답할 때 핵심 사항을 일찍 꺼내고 항상 Crucial 답변을 하라는 것입니다. 면접관들의 질문은 폭넓은 주제를 다루는 경향이 있기 때문에 "알았어, 알아"와 같은 공허한 말보다는 비판적인 답변을 선호합니다. 대면 인터뷰를 통해 문제를 더 깊이 설명할 수 있는 기회를 갖게 됩니다. 그건 그렇고, 이것은 어렵고 빠른 규칙이 아니며 면접관이 귀하의 답변에 어떻게 반응하는지에 따라 그가 어떤 종류의 응답을 기대하는지 아이디어를 얻을 수 있습니다. 그가 질문을 계속하고 당신이 더 말해주기를 기대한다면, 당신은 더 말해야 합니다. 하지만 그가 즉시 다음 질문으로 넘어가면 명확하고 간결하게 대답해야 합니다. 이 글에서는 전자공학에 적용되는 몇 가지 일반적이고 흥미로운 프로그래밍 문제를 여러분과 공유하겠습니다. 대부분은 Barclays, Citi, Nomura , Infosys, TCS, CTS 등의 은행, Tech MahindraHCL과 같은 회사에서 서비스를 제공하고 있습니다. 아까도 말했듯이 면접 질문은 무작위로 뽑혔는데, 면접관이 면접 때 테스트하고 싶었던 부분이 바로 기초지식에 기초한 질문이 대부분이었습니다. 이러한 질문의 대부분은 주니어 개발자(2 ~ 5년)를 대상으로 하지만, 시니어 및 베테랑 프로그래머도 여전히 사용할 수 있습니다. 자신의 인터뷰를 위한 질문으로 사용하세요. 면접관인 경우 이러한 질문을 사용하여 개발 직책에 대한 후보자를 신속하게 선별할 수 있습니다. 여기서는 긴 답변에 대한 링크와 함께 짧은 답변을 제공하겠습니다.

다음은 거의 42개의 프로그래머 면접 질문 목록입니다. 이러한 질문은 프로그래밍의 기초를 기반으로 하기 때문에 프로그래머, 개발자, 소프트웨어 엔지니어, 테스트 및 운영 엔지니어를 테스트하는 데 사용할 수 있습니다. 그러나 프로그래머와 개발자에게 가장 적합합니다. 그런데 Java 개발자이고 Java 전자 면접 질문을 찾고 있다면 해당 목록을 확인해 보세요. 이 목록은 보다 일반적이며 Python, Ruby, Perl을 포함한 모든 프로그래머에게 적용됩니다. C# 개발자.

22. 세 가지로 설명할 수 있나요? 앱을 출시하기 전에 테스트해 보시겠어요?

단위 테스트, 통합 테스트, 스모크 테스트. 단위 테스트는 독립된 단위가 예상대로 작동하는지 테스트하는 데 사용되며, 통합 테스트는 테스트된 독립된 단위가 함께 작동할 수 있는지 테스트하는 데 사용됩니다. 항공기 주문 과정에서 항공권 예약, 항공편 취소 또는 변경이 가능해야 합니다.

23. 반복과 재귀의 차이점은 무엇인가요? (상세 답변)

Iteration은 루프를 통해 같은 단계를 반복적으로 수행하고, Recursion은 함수 자체를 호출하여 반복 작업을 수행합니다. 재귀는 종종 하노이 타워, 연결된 목록 반전 또는 문자열 반전과 같은 복잡한 문제에 대한 명확하고 간결한 솔루션입니다. 재귀의 한 가지 단점은 깊이입니다. 재귀는 중간 결과를 스택에 저장하므로 특정 깊이까지만 재귀를 수행할 수 있으며 그 이후에는 StackOverFlowError로 인해 프로그램이 중단됩니다. 이것이 프로덕션 코드에서 재귀보다 반복이 선호되는 이유입니다.

24. &&& 연산자 차이점? (자세한 답변)

&은 비트 연산자이고, &&은 논리 연산자입니다. &&&의 한 가지 차이점은 비트 연산자(&)가 가능하다는 것입니다. 정수 및 부울 유형에 사용할 수 있습니다. 논리 연산자(&&)는 부울 유형 변수에만 사용할 수 있습니다. a & b라고 쓰면 두 정수의 각 비트가 AND로 연결됩니다. a && b라고 쓰면 두 번째 매개변수가 평가될 수도 있고 평가되지 않을 수도 있기 때문에 적어도 에서는 이를 단락 연산자라고 부릅니다. Java의 경우입니다. 저는 이 질문을 좋아해서 후배 개발자나 졸업생들에게 자주 물어봅니다.

25. 1 XOR 1의 결과는 무엇입니까?

답은 0입니다. 두 피연산자(비트 단위)의 XOR1 동시에 동일한 경우 0을 반환합니다. 예를 들어 0 XOR 0은 여전히 ​​0이지만 0 XOR 11 🎜>의 결과 1입니다.

26.

정수의 마지막 숫자를 구하는 방법은 무엇인가요? (답변)모듈로 연산자를 사용하여 숫자

% 10은 숫자의 마지막 숫자를 반환합니다. 예를 들어 2345 % 105을 반환하고, 567 % 107을 반환합니다. 마찬가지로 나누기 연산자를 사용하여 숫자의 마지막 숫자를 제거할 수 있습니다. 예를 들어 2345 / 10의 결과는 234,567/10의 결과는 56입니다. 이것은 알아야 할 중요한 기술이며 회문 및 반전과 같은 문제를 해결하는 데 사용할 수 있습니다.

27.

테스트 주도 개발이란 무엇인가요?

테스트 중심은 기능 코드보다 먼저 테스트 코드를 작성하는 일반적인 개발 접근 방식입니다. 테스트는 프로그램의 구조를 결정합니다. 테스트 중심 순수주의자는 애플리케이션에 대한 테스트를 작성하기 전에 애플리케이션 코드 한 줄도 작성하지 않습니다. 이는 코드 품질을 크게 향상시킬 수 있으며 종종 슈퍼스타 개발자의 품질로 간주됩니다.

28.

리스코프 대체원리

(리스코프 대체원리, LSP)인가요? (답변)리히터 대체 원리는 밥 삼촌이 SOLID

라고 부르는 5가지 디자인 원칙 중 하나입니다. 조각. Liskov 대체 원칙은 모든 하위 클래스가 상위 클래스 (proxy)의 프록시로 작동할 수 있다고 규정합니다. 예를 들어 메서드에 입력으로 부모 클래스 개체가 필요한 경우 자식 클래스 개체를 제공하면 제대로 작동합니다. 상위 클래스를 대체할 수 없는 클래스는 Liskov 대체 원칙을 위반합니다. 사실 대답하기 어려운 질문이지만, 잘 대답한다면 면접관에게 좋은 인상을 줄 것입니다.

29. 개폐란 무엇인가

(개방 폐쇄) 디자인 원칙? (답변)개폐의 원리는 SOLID

의 또 다른 중요한 원칙으로, 확장을 위해 열려 있지만 수정을 위해 닫혀 있습니다. 이는 안정적인 시스템에 새로운 기능을 추가하려는 경우 테스트된 기존 코드를 건드릴 필요 없이 새 클래스를 추가하기만 하면 새 기능을 구현할 수 있다는 의미입니다.

30. 이진 트리와 이진 검색 트리의 차이점은 무엇인가요?

이진 검색 트리는 모든 노드(예: 루트 노드)의 왼쪽 하위 트리 노드 값이 해당 노드 값보다 작거나 같습니다. 이며, 오른쪽 하위 트리 노드의 값은 해당 노드의 값보다 크거나 같습니다. 정렬된 데이터를 표현하는 데 사용할 수 있는 중요한 데이터 구조입니다.

31. 재귀 알고리즘의 실제 예를 들어주실 수 있나요?

(예)재귀 알고리즘은 이진 트리, 연결 목록 관련 알고리즘 등 다양한 곳에 적용될 수 있습니다. 재귀 알고리즘을 사용하는 몇 가지 예에는 문자열 반전 및 피보나치 수열 계산이 포함됩니다. 다른 예로는 역방향 연결 목록, 트리 순회, 빠른 정렬 등이 있습니다.

31. 알고리즘의 시간복잡도는 얼마인가요?

시간 복잡도는 입력량에 대한 실행 시간의 비율을 나타냅니다. 알고리즘이 특정 양의 입력을 처리하는 데 걸리는 시간을 나타냅니다. 이는 추정치이지만 입력 수가 천만에서 천만으로 증가함에 따라 알고리즘이 어떻게 작동하는지를 보여주는 좋은 지표입니다.

33. 연결된 목록과 배열의 중요한 차이점은 무엇인가요?

(자세한 답변)

연결된 목록과 배열은 모두 프로그래밍 세계에서 중요한 데이터 구조입니다. 이들 사이의 가장 분명한 차이점은 배열은 요소를 연속된 주소에 저장하는 반면 연결된 목록은 메모리의 모든 위치에 데이터를 저장한다는 것입니다. 이는 메모리가 항상 분산되어 있기 때문에 연결된 목록 자체를 확장할 수 있는 엄청난 유연성을 제공합니다. 이런 상황은 항상 가능합니다. 백만 개의 정수를 저장하기 위해 배열을 만들 수는 없지만 연결 목록을 사용하여 저장할 수 있습니다. 공간이 있지만 연속적이지 않기 때문입니다. 다른 모든 차이점은 이 사실에서 발생합니다. 예를 들어 배열에서는 첨자를 알면 O(1) 시간 안에 요소를 가져올 수 있지만 연결 목록에서는 시간이 걸립니다. O(n)시간. 자세한 차이점은 자세한 답변을 참조하세요.

33. 해시 테이블 충돌 처리 방법은 무엇인가요?

선형 프로빙(선형 프로빙), 2차 해싱(이중 해싱) 및 연결(체인 연결). 선형 프로빙에서 버킷이 이미 사용된 경우 함수는 빈 슬롯을 찾을 때까지 다음 버킷을 선형적으로 확인합니다. 체인에서는 여러 요소를 동일한 버킷에 저장할 수 있습니다.

34. 정규표현식의 뜻은 무엇인가요? (답변)

정규 표현식은 텍스트 데이터에 대한 패턴 일치 방법입니다. 책에서 특정 단어를 검색하는 것과 같이 긴 문자열에서 특정 문자를 검색하는 강력한 방법입니다. 모든 주요 프로그래밍 언어는 정규식을 지원하지만 Perl은 정규식 기능으로 유명합니다. Javajava.util.regex 패키지는 Perl과 유사한 정규식도 지원합니다. 🎜> 표현. 정규식을 사용하여 이메일 주소가 유효한지, 전화번호가 유효한지, 우편번호가 유효한지, 주민등록번호도 (SSN) 유효한가요? 정규식의 가장 간단한 예 중 하나는 문자열이 숫자인지 확인하는 것입니다.

35.

무국적이란 무엇인가

(무국적)

체계? 상태 비저장 시스템은 내부 상태를 유지하지 않는 시스템입니다. 이러한 시스템은 언제든지 동일한 입력에 대해 동일한 출력을 제공합니다. 무상태 시스템을 작성하고 최적화하는 것이 항상 더 쉽기 때문에 가능하다면 항상 무상태 시스템 작성에 우선순위를 두어야 합니다.

36.

SQL

쿼리를 작성합니다. 직원 테이블에서 두 번째로 높은 급여를 찾습니다. (해결책)이것은 SQL

아주 오래되었음에도 불구하고 고전적인 면접 질문 중 하나입니다. 그것은 여전히 ​​​​재미 있고 후보자의 지식 깊이를 테스트하기 위해 많은 질문을 할 수 있습니다. 상관되거나 관련되지 않은 하위 쿼리를 사용하여 두 번째로 높은 급여를 찾을 수 있습니다.

SQL Server 또는 MySQL을 사용하는 경우 TOP 면접관이 허용하는 경우 LIMIT와 같은 키워드를 사용하세요. 두 번째로 높은 급여를 찾는 최단 답변은 다음과 같습니다. 이 쿼리는 먼저 가장 높은 급여를 찾은 다음 목록에서 제외하고 가장 높은 급여를 찾습니다. 분명히 두 번째 수익은 두 번째로 높은 급여와 함께 제공됩니다.

37.

상관 하위 쿼리와 상관 하위 쿼리가 무엇인지 설명할 수 있나요? (답변)

상관 하위 쿼리에서는 내부 쿼리가 외부 쿼리에 종속되며 외부 쿼리의 각 행에 대해 실행됩니다. 상관되지 않은 하위 쿼리는 외부 쿼리에 의존하지 않으며 독립적으로 실행될 수 있습니다. 따라서 전자는 느리고 후자는 빠릅니다. 그런데 상관 하위 쿼리에는 이전 단계 SQL

N

이 가장 높은 직원의 급여를 찾는 등 몇 가지 훌륭한 응용 프로그램이 있습니다. > 질문에도 언급되어 있습니다. 39.

산술 연산자 없이 숫자가 2의 거듭제곱인지 어떻게 확인하나요?

(해결책)

산술연산자를 사용할 수 없다는 제한사항을 들으면 바로 비트 연산에 관한 문제라고 가정해야 합니다. 이러한 제한이 없으면 모듈로 및 나누기 연산자를 사용하여 숫자가 2의 거듭제곱인지 쉽게 확인할 수 있습니다. 비트 연산자를 사용하여 작업을 수행하는 깔끔한 방법이 있습니다. 다음 코드를 사용하여 숫자가 2의 거듭제곱인지 확인할 수 있습니다1

2

3

public static boolean powerOfTwo(int x) {

return (x & (x - 1)) == 0;

}

x & (x-1)

은 비트를 가장 많이 결합하는 훌륭한 트릭입니다. 오른쪽의

1

0으로 설정되어 있습니다. 나는 "효과적인 프로그래밍의 비밀"이라는 책에서 이것을 배웠습니다.

40. UNIX에서 실행 중인 Java 프로세스를 찾는 방법은 무엇입니까? (명령)

psgrep UNIX 머신에서 프로세스를 찾는 명령입니다. Java 프로세스에 이름이나 일치하는 데 사용할 수 있는 텍스트가 있다고 가정하고 이 명령을 사용하세요.

ps -ef | grep "myJavaApp"

ps -e는 모든 프로세스를 나열합니다(모든 사용자 프로세스, 당신뿐만 아니라), ps -fPID를 포함한 모든 세부 정보를 표시합니다. kill 명령으로 추가 조사를 하거나 프로세스를 종료하려면 PID가 필요합니다.

41. UNIX에서 빅데이터를 찾는 방법 1GB 위의 파일 등? (명령)

find 명령을 사용하면 크기 기반 옵션을 제공하므로 대용량 파일을 쉽게 찾을 수 있습니다. 파일을 찾는 중입니다. 파일 시스템이 가득 차고 공간이 없어 Java 프로세스가 충돌하는 경우 이 명령을 사용하세요. 이 명령은 1GB보다 큰 모든 파일을 나열할 수 있습니다. 예를 들어 100MB 이상의 모든 파일을 찾으려면 +100M을 사용하면 됩니다.

find – f -size +1G -print

42.

대본은 무엇인가요?

shell

스크립트는 프로그램 요소(예: if)가 포함된 스크립트입니다. for Loop)는 일부 반복 작업을 자동으로 수행할 수 있는 shell 명령 집합입니다. 예를 들어 shell 스크립트를 작성하여 매일 로그 파일을 정리하고, 기록을 위한 백업 데이터와 기타 집안일, 버전 출시, 모니터링 등을 할 수 있습니다.

무료로 받으세요

LAMP밴드 오브 브라더스 원본 PHP튜토리얼CD/ 세부정보PHP》Essential 버전, 자세한 내용은 공식 웹사이트 고객 서비스에 문의하세요. http:// www.lampbrother.net

PHPCMS

2차 개발http://yun .itxdl.cn/online /phpcms/index.php?u=5

WeChat 개발

http: //yun.itxdl.cn/online/weixin/index.php?u=5

모바일 인터넷 서버측 개발

http: //yun.itxdl.cn/online/server/index.php?u=5

Javascript

과정http://yun.itxdl.cn/online/js/index.php?u=5

CTO

트레이닝 캠프http://yun.itxdl.cn/online/cto/index.php?u=5

위 내용은 프로그래머 인터뷰를 소개합니다. 전화 인터뷰 질문과 답변 TOP 42(2부) 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.