좋은 질문입니다.NET 개발자는 대답할 수 있어야 합니까?
우리 회사는 채용을 앞두고 있습니다.NET 개발자.우리는 다양한 작업을 합니다.NET 플랫폼: ASP.NET, Compact Framework, 윈도우즈 양식, 웹 서비스.지원자들이 경험이 있는지 확인하기 위한 일종의 최소 기준인 좋은 질문 목록/목록을 작성하고 싶습니다.그래서, 제 질문은:
어떤 질문이 좋다고 생각하십니까?NET 프로그래머가 응답할 수 있습니까?
저는 또한 제 자신의 결점이 어디에 있는지 확인하기 위해 그것을 체크리스트로 봅니다. (많은...
*UPDATE: NAT은 에 대해서만 테스트하는 것이 아닙니다.NET 지식, 그리고 그 문제 해결 능력과 일반적인 프로그래밍 기술은 우리에게 훨씬 더 중요합니다.
기본 질문은 다음과 같습니다.
- 추상 클래스와 인터페이스의 차이점은 무엇입니까?언제 사용하시겠습니까?
- 왼쪽 조인과 안쪽 조인의 차이점은 무엇입니까?
- 뷰 상태와 세션 상태의 차이점은 무엇입니까?
- 메서드를 재정의하는 것과 오버로드하는 것의 차이점은 무엇입니까?두 가지 작업이 모두 수행되는 방법을 설명합니다.
- 보호되는 것과 내부적인 것의 차이점은 무엇입니까?"보호된 내부"는 어떻습니까?
- 단락된 연산자는 어떻게 작동합니까?
- StringBuilder 클래스가 무엇인지 설명하고 사용하려는 이유는 무엇입니까?
- 정적 방법과 비정적 방법의 차이점은 무엇입니까?
- C#의 "휘발성" 키워드는 무엇을 의미합니까?
- "ref" 또는 "out" 매개 변수를 메소드에 전달하면 어떻게 되는지 설명합니다.이 두 키워드의 차이점은 무엇입니까?
- 약한 언급이 뭐죠?언제 사용하시겠습니까?
- 데이터 테이블과 데이터 리더의 차이점은 무엇입니까?
- 값 유형과 참조 유형의 차이점은 무엇입니까?
- C#의 "읽기 전용" 키워드는 무엇을 의미합니까?
일반적으로 지원자에게 다음과 같은 간단한 코딩 연습을 완료하도록 요청하는 것이 도움이 된다고 생각합니다.
- 기본 제공 클래스를 사용하지 않고 연결된 목록 클래스를 작성합니다.
- 기본 제공 클래스를 사용하지 않고 직접 해시 테이블 클래스를 작성합니다.
- 이진 트리를 나타내는 클래스를 작성합니다.트리의 모든 노드를 통과하는 메서드를 작성합니다.
- 내장 메서드를 사용하지 않고 어레이에서 이진 검색을 수행하는 메서드를 작성합니다.
- 블로그의 데이터베이스 스키마를 그립니다.각 사용자는 블로그를 하나만 가지고 있으며, 각 블로그에는 많은 카테고리가 있으며, 각 카테고리에는 많은 게시물이 있으며, 각 게시물은 둘 이상의 카테고리에 속할 수 있습니다.지원자에게 특정 정보를 추출하기 위해 질문을 작성하도록 요청합니다.
다음으로 구체적인 기술 노하우를 찾아보십시오.
- (이벤트 핸들러) 사용자 지정 이벤트 핸들러로 클래스를 만들고, 사용자 지정 이벤트 핸들러에 연결할 다른 클래스를 만듭니다.
- (XML) XML 문서를 로드하고 x, y 및 z 속성을 가진 모든 노드를 선택합니다.
- (Functional Programming) 다른 함수를 매개변수로 받아들이는 함수를 만듭니다.지도나 접기 기능은 이것에 매우 효과적입니다.
- (Reflection) 클래스에 특정 속성이 있는지 여부를 결정하는 함수를 작성합니다.
- (Regex) HTML 블록에서 모든 태그를 제거하는 정규식을 작성합니다.
이 질문들 중 어느 것도 숙련된 C# 프로그래머가 대답하기에 특별히 어려운 질문은 아니며, 지원자들의 특별한 강점에 대한 좋은 아이디어를 제공할 것입니다.또한 특정 설계 패턴을 사용하는 몇 가지 질문/코드 샘플에서 작업할 수도 있습니다.
[설명을 위해 편집]:
많은 사람들이 제가 왜 이런 질문을 하는지 이해하지 못하는 것 같습니다.몇 가지 사람들의 의견을 언급하겠습니다(직접 인용하는 것이 아니라, 대신 다른 말로 표현합니다).
Q: 휘발성 물질이나 약한 언급을 마지막으로 사용한 사람은 언제입니까?
A: 기술 인터뷰를 할 때, 저는 한 사람이 의 높은 수준과 낮은 수준의 특징을 이해하고 있는지 확인합니다.NET. 휘발성 및 약한 참조는 에서 제공하는 두 가지 낮은 수준의 기능입니다.NET -- 이러한 기능이 실제로 자주 사용되지 않더라도 이러한 질문에 대한 대답은 매우 명확합니다.
휘발성을 잘 이해하면 컴파일러 최적화가 코드의 정확성을 어떻게 변화시키는지, 스레드가 언제든 동기화되지 않을 수 있는 공유 상태의 로컬 복사본을 어떻게 유지하는지 이해하고 멀티스레드 코드의 일부 복잡성을 최소화할 수 있음을 보여줍니다.
약한 참조를 잘 이해하는 것은 사람이 쓰레기 수집기의 친밀한 세부 사항과 언제 기억을 해제할지 결정하는 방법에 대해 알고 있다는 것을 보여줍니다.물론, 당신은 후보자들에게 "쓰레기 수거기가 어떻게 작동하는지" 물어볼 수 있지만, 약한 언급에 대해 묻는 것은 훨씬 더 좋고 사려 깊은 대답을 얻을 수 있습니다.
.NET은 상당히 추상적인 언어이지만 스타 개발자들은 거의 항상 CLR과 의 낮은 수준의 세부사항을 깊이 이해합니다.NET의 런타임.
Q: 자신의 해시 테이블이나 링크된 목록을 구현해야 하는 이유는 무엇입니까?
A: 저는 사전 수업이 열등하거나 사람들이 자신의 해시 테이블을 굴려야 한다는 것을 암시하는 것이 아닙니다.이것은 개인이 데이터 구조에 대한 최소한의 이해를 가지고 있는지 테스트하는 기본적인 질문입니다.그것이 이 질문들이 테스트하는 것입니다: 최소한의 이해.
이러한 해시 테이블 및 링크된 목록에 대해서는 Data Structures 101의 첫날에 학습합니다.만약 누군가가 해시 테이블이나 링크된 목록을 처음부터 작성할 수 없다면, 그들은 그들의 기술적 지식에 큰 차이가 있습니다.
Q: 왜 이런 질문들이 그렇게 진부한 것입니까?
A: 이 스레드의 제목이 "모든 선에 대한 질문"이기 때문입니다.NET 개발자는 알아야 합니다."모든.NET 개발자는 거친 애플리케이션을 쓰기 시작하며, 사람들이 생계를 위해 하는 모든 애플리케이션 개발의 90%는 LOB(Line of Business) 애플리케이션)와 관련이 있습니다.
저는 개인의 업무용 앱에 대한 지식을 테스트하는 질문이 대부분의 경우 적합하다고 생각합니다. 컴파일러 개발, 게임 엔진 개발, 정리 증명, 이미지 처리 등과 같은 매우 구체적인 분야의 개발자를 찾는 경우가 아니라면 말입니다.
Scott Hanselman의 블로그에서 다음 목록을 찾았습니다.
제가 생각하는 이 게시물들의 가장 중요한 질문들은 카테고리별로 나누어져 있습니다.저는 그것들을 편집하고 다시 배열했습니다.다행히도 이러한 질문의 대부분에 대해 스택 오버플로에 대한 좋은 답변이 이미 있습니다.링크를 따라가면 됩니다(빠른 시일 내에 모두 업데이트하겠습니다).
플랫폼 독립.NET 질문
- 스레드와 프로세스의 차이점은 무엇입니까?
- EXE와 DLL의 차이점은 무엇입니까?
- 강한 타입과 약한 타입은 무엇입니까?
- 와의 차이점은 무엇입니까?
- 복싱이란 무엇입니까?
- 문자열이 값 유형입니까, 아니면 참조 유형입니까?
- GAC(Global Assembly Cache)란 무엇입니까? 그것은 어떤 문제를 해결합니까?
- 인터페이스란 무엇이며 클래스와 어떻게 다릅니까?
- 리플렉션이란 무엇입니까?
- 개념적으로 얼리 바인딩과 레이트 바인딩의 차이점은 무엇입니까?
- 언제를 사용하는 것이 적절합니까?
- 어셈블리의 정규화된 이름이란?파일 이름인가요?어떻게 다른데요?
- 강하게 명명된 어셈블리와 강하게 명명되지 않은 어셈블리는 어떻게 다릅니까?
- 이게 무슨 일이죠? sn -t foo.dll
- 에서 세대 가비지 수집기를 사용하는 방법.NET CLR에서 개체 수명을 관리비결정론적 최종화란 무엇입니까?
- 와의 차이점은 무엇입니까? (외부 기사)
- in-proc와 out-of-proc의 차이점은 무엇입니까?에서 작업 외 통신을 가능하게 하는 기술은 무엇입니까?NET?
- FullTrust란 무엇입니까?GAC의 어셈블리에 FullTrust가 있습니까?
- 와의 차이점은 무엇입니까?각각은 언제 사용해야 합니까?
- 디버그 빌드와 릴리스 빌드의 차이점은 무엇입니까?속도 차이가 많이 나나요?왜 그런가요? 혹은 왜 그렇지 않은가요?
- 와 캐치의 차이점은 무엇입니까?
- 와의 차이점은 무엇입니까?
- XML 네임스페이스의 목적은 무엇입니까?
- XML "Fragment"와 XML "Document"의 차이점은 무엇입니까? (XML Basics)
- 를 사용하여 XML을 검증하는 방법은 무엇입니까?NET?
ASP.NET
- 포스트백이란 무엇입니까?
- ViewState란 무엇입니까?어떻게 암호화됩니까?암호화되어 있습니까?ViewState를 사용하는 사용자왜 그것이 유용하거나 사악한 것일까요?
- ASP에서 사용할 수 있는 세션 상태 공급자는 무엇입니까?NET? 각각의 장단점은 무엇입니까?
- ASPX 페이지와 파일 뒤에 있는 해당 CS/VB 코드 사이의 OO 관계는 무엇입니까?
- ASP를 어떻게 구현할 것입니까?NET HTML 출력 캐싱, 모든 값을 통해 생성된 페이지의 나가는 버전 캐싱
q=
특별한 경우를q=5
(의 경우와 같이)http://localhost/page.aspx?q=5
)? - HttpHandlers란 무엇입니까?
- HttpModules란 무엇입니까?
- ASP에서 사용할 새 확장을 구성하는 데 필요한 항목.NET? 예를 들어, 시스템에서 확장자 *.jsp로 ASPX 파일을 제공하도록 하려면 어떻게 해야 합니까?
- 쿠키는 어떻게 작동합니까?쿠키 남용의 예는 무엇입니까?
- HTTP 헤더를 통해 전달되는 데이터의 종류는 무엇입니까?
- IIS는 런타임에 ASP와 어떻게 통신합니까?NET? ASP는 어디에 있습니까?다른 버전의 IIS(5~7)에서 런타임에 NET?
이것은 여러분이 듣고 싶은 것이 아닐 수도 있지만, 저는 좁은 기술에 초점을 맞추지 말고 일반적인 프로그래밍과 문제 해결 능력에 초점을 맞추는 것을 추천합니다.탄탄한 개발자는 원하는 모든 것을 빠르게 배울 수 있습니다.
예를 들어, 저는 컴팩트 프레임워크 사람이 아니기 때문에 당신이 그 방향으로 가면 면접에서 떨어질 수도 있습니다.하지만 제가 그것을 사용할 필요가 있다면, 저는 조사를 하고 바로 뛰어들 수 있습니다.
Joel의 책 "Smart and Gets Things Done"은 개발자를 고용하기 위한 훌륭한 조언을 제공하며 질문의 종류에 대한 풍부한 섹션이 있습니다.강력 추천합니다.
LINQ 경험이 있는 사람과 인터뷰를 한다면 LINQ에 대해 설명해 달라고 할 것 같습니다.만약 그들이 지연된 실행, 스트리밍, IEnumber/를 설명할 수 있다면,각 반복기 블록, 식 트리(어쨌든 보너스 포인트의 경우)에 대한 IE 수치 인터페이스는 나머지에 대처할 수 있을 것입니다. (인정하건대 그들은 아직 LINQ를 "얻을" 수 없고 개발자일 수 있습니다. - 저는 그들이 그것을 공정한 질문으로 만들기에 충분한 LINQ를 알고 있다고 주장한 사례를 정말로 생각합니다.)
이전에는 이미 나열된 몇 가지 질문과 몇 가지 질문을 했습니다.
- 기준 유형과 값 유형 간의 차이
- 기준 전달 vs 값 전달
- ID 일회용 및 최종 사용자
- 문자열, 불변성, 문자 인코딩
- 부동 소수점
- 대표자
- 제네릭
- null 가능한 유형
저는 문제 해결 능력을 찾고 있는 사람들과 함께하고 있습니다. 101 탑에서 찾고 암기할 수 있는 그런 종류의 것보다는요.NET 인터뷰 Qs와 As".
예를 들어, 저는 제가 매일 사용해야 할 것들을 '알고' 있습니다.저는 거의 사용하지 않는 것들을 잊어버리는 경향이 있습니다.
당신이 인터뷰에서 나를 함정에 빠뜨리고 싶다면, 그것은 매우 쉬울 것입니다.
그럼에도 불구하고 WinForms 및 ASP에 동일한 비즈니스 객체 및 데이터 계층을 사용하는 시스템을 위한 인프라의 대부분을 설계하고 코딩했습니다.NET은 강력하고 재사용 가능한 코드베이스로 20개 이상의 웹 사이트 구성 버전과 증가하는 WinForms 애플리케이션을 지원하고 개발할 수 있습니다.
2명으로 구성된 개발팀과 함께.
저는 기술 리드로서 팀에서 일했고, 제 직업은 꽤 많은 채용과 면접을 포함했습니다.저의 가장 큰 실수는 우리가 사용하고 있는 기술에 대해 저를 포함한 나머지 모든 사람들을 합친 것보다 더 잘 아는 사람을 고용한 것이었습니다. 그리고 저는 저 자신을 전문가라고 생각했습니다.그는 모든 것을 알고 있었습니다...
요구 사항을 충족하거나 자신을 제외한 모든 사람이 이해할 수 있는 코드를 작성하는 방법을 제외합니다.제가 결국 그의 계약을 갱신하지 말라고 수상을 설득했을 때, 그가 쓴 모든 것이 다시 쓰여져야 했습니다.
면접을 현명하게 구성하세요...
존 스키트는 누구입니까?
제가 질문받은 좋은 질문은
- 당신은 무엇이 좋다고 생각합니까?NET?
- 무엇이 나쁘다고 생각하십니까?NET?
후보자가 무엇을 생각해 낼지 보는 것은 흥미로울 것이고 여러분은 그/그녀가 어떻게 그 틀을 사용하는지에 대해 꽤 많은 것을 알게 될 것입니다.
저는 항상 제 자신이 소프트 스킬을 찾곤 했습니다 - 말장난 의도는 없었습니다.따라서 우수한 OOO 설계, 테스트 기반 개발, 우수한 다중(프로그래밍) 언어 배경 및 전반적인 스마트함(그리고 작업 완료!).
지능형 개발자는 WCF/콤팩트 프레임워크 등과 관련된 특정 질문에 대해 너무 걱정하지 않도록 이전에 한 번도 본 적이 없는 개별 기술을 배우는 데 어려움이 없어야 합니다.
저는 그들이 알고 있는 것과 그들이 어떻게 작동하는지 알아내는 가장 좋은 방법인 코드를 쓰도록 할 것입니다.누구나 '기준 유형과 값 유형의 차이는 무엇입니까?'라는 답을 외울 수 있습니다.
진짜로?
"무엇이.NET?"
그들이 당신에게 무엇에 대한 명확한 대답을 줄 수 있다면요.NET은 무엇인지, 무엇이 아닌지, 어떻게 사용되는지, 어떤 요소로 구성되어 있는지 등등...만약 그들이 당신에게 그것이 무엇인지 안다고 설득할 수 있다면, 그들은 그것을 꽤 잘 알고 있을 가능성이 있습니다.
사실, 많은 사람들이 실제로 무엇을 알지 못합니다.NET은. NET 프로그램을 쓰는 분들도.
없어요, 진짜로.아마도 세상에서 가장 똑똑한 사람들이 답을 모르는 매우 간단한 질문들이 있을 것입니다.그들이 어려워서가 아니라 단지 그들이 그것을 접하지 못했기 때문입니다.당신은 그들이 임의적인 질문에 대답할 수 있는지 여부가 아니라 전체 패키지와 개발자의 기술을 보아야 합니다.
질문이 한두 문장으로 대답할 수 있을 정도로 쉽다면, 모르는 사람에게 그냥 말하는 것은 충분히 쉽습니다.여러분은 그들이 "매번" 질문에 대답할 수 있는 능력이 아니라 개념에 대한 이해와 추론 능력을 찾아야 합니다.NET 개발자는 답변할 수 있어야 합니다."
기준 유형과 값 유형 간의 차이를 파악합니다.
이벤트는 하드 참조로 저장됩니다. 즉, 이벤트 등록을 취소해야 합니다. 그렇지 않으면 애플리케이션에서 메모리가 누출됩니다.
문자열은 불변입니다.
Martin Fowler는 플랫폼 지식보다 디자인 기술을 선호합니다.반면에 당신은 디자인 패턴에 대한 지식을 보여줄 질문을 할 수 있습니다.다음과 같은 NET 플랫폼:
- 사용자가 알고 있는 설계 패턴 및 원칙과 이들이 에서 어떻게 사용되는지 설명합니다.NET Framework?
저는 그들이 정기적으로 읽는 블로그와 그들이 작업한 개인 프로그래밍 프로젝트에 대해 문의하는 것이 학습 의지와 프로그래밍에 대한 열정을 보여줄 것을 제안합니다.
다음은 C# 프로그래머로 지원하는 프로그래머를 필터링하는 데 사용한 몇 가지입니다.
참조 유형과 값 유형의 차이점은 무엇입니까?
ID 일회용 인터페이스, C# 언어 구조에 필요한 인터페이스 및 구현 방법을 설명합니다.
해당 매개 변수에 대한 null을 허용하지 않는 계약이 있는 메서드에 null을 인수로 전달하면 어떤 예외를 발생시키겠습니까?
"운영 시 사용할 수 있는 제어 장치와 그 이유는 무엇입니까?"
이를 통해 대상자가 실제로 데이터 그리드 및 링크 버튼에 화상을 입을 정도로 오랜 시간 동안 대규모 프로젝트를 구축하고 유지한 적이 있는지, 아니면 드래그/드롭 "21일 이내에 스스로 학습" 단계에 있는지 여부를 빠르게 알 수 있습니다.
(정답은 asp:리피터, asp:자리 표시자, asp:리터럴 및 asp:내용)
실이란 무엇입니까?
GC는 무엇입니까?
이것은 약간 가변적인 질문이며, 실제로는 지금 완전히 대답할 수 있어야 하는 질문이 아니라, 적절한 경우에 대답할 수 있어야 하는 질문입니다.
"무엇을 하는 거지.NET 프레임워크에서 X번 작업을 수행할 수 있습니까?"
또는 더 구체적으로:
"합니다.NET 프레임워크에는 X가 가능한 객체가 포함되어 있습니다."
예를 들어, 저는 최근에 Boolean 배열을 저장하고 이에 대해 작동하도록 최적화된 객체를 개발하는데 몇 시간을 보냈습니다. 예를 들어, 수집 방식으로 NOT, OR, XOR, AND, 모든 값 설정 등을 수행합니다.유닛 테스트를 모두 작성하고 최상의 성능을 위해 조정한 후에야 "BoolArray" 개체가 에 이미 존재한다는 것을 깨달았습니다."BitArray"라는 이름의 NET 프레임워크.
대부분의 경우 사용할 개체/도우미에 대한 최선의 대답은 사용자가 잘 모르거나 완전히 이해하지 못하는 것이기 때문에 이 질문에 대답하기가 어려울 수 있습니다.얼마나 멋진가요.성능을 크게 향상시킬 수 있는 기본 툴인 StringBuilder에 대해 모든 사람이 실제로 알고 있다면 NET world가 될 것입니다.
나는 몇 가지 질문들을 닷넷과 같은 것을 사용하여 프로그래밍 개념의 이해에 초점을 맞춘 것을 제안할 것입니다.
관리되는 환경과 관리되지 않는 환경의 차이점은 무엇입니까?GC의 장단점 JIT의 장점과 단점 만약 우리가 X 애플리케이션을 개발해야 한다면 우리는 닷넷을 사용할 수 있습니까?왜죠? (이것은 그가 어떻게 닷넷을 보는지를 식별할 것입니다)
나는 또한 작은 메소드를 작성할 것을 제안하고 그에게 더 나은 닷넷 클래스나 표준적인 방법을 사용하여 더 나은 성능으로 다시 작성할 것을 요청합니다.또한 논리적인 방법이나 다른 방법으로 정확한 방법을 쓰고 그에게 수정을 요청합니다.
저는 이미 언급된 몇 가지 질문 외에도 다음의 팬입니다.
- 대리인이 뭐죠?
- 앱 도메인이 무엇입니까?
- lock 키워드를 언제 사용하시겠습니까?
- 표준 라이브러리 제네릭 컬렉션 클래스는 스레드 안전합니까?
- 연장 방법이 무엇입니까?
- XmlDocument와 XmlReader의 차이점은 무엇입니까?
- 애플리케이션 구성 파일에서 구성 설정을 읽는 방법은 무엇입니까?
이것은 흥미롭고, 저는 귀머거리로 태어났기 때문에 제 의견을 말하는 것에 대해 이것이 부결될 위험이 있습니다. 제 생각을 개인적으로 전달하는 데 더 많은 노력이 필요할 것입니다.
솔직히 말해서, 저는 전형적인 질문들을 너무 많이 읽지 않을 것입니다. 왜냐하면 기본 패러다임은 '당신의 생각과 이해를 얼마나 잘 말할 수 있는가?'이기 때문입니다. 그것이 면접관이 정말로 찾고 있는 것입니다.의사소통은 항상 저의 가장 큰 약점이며 쉽게 좌절할 수 있습니다.
지식을 가지고 모든 것을 아는 타입이 되는 것이 이상적일 것입니다. 하지만 안타깝게도 제가 모르는 것도 있지만, 만약 여러분이 실제로 답을 알지 못하고 그것을 통해 허풍을 떨기보다는 인정한다면 두려워하지 않을 것입니다.만약 인터뷰 진행자가 위와 같은 질문을 했다면, 제가 그 질문을 확신할 수 없거나 잘못 이해하거나 잘못 해석했을 것입니다. 저는 개인적으로 당황스러울 수 있지만, 그것을 다루는 법을 배웠습니다.
여러분은 얼마나 많은 사람들이 실제로 그것을 비틀거리며 허세를 부리며 하루의 끝에 은유적으로 말하면 그들의 '바지를 내려' 들킨다는 것에 놀랄 것입니다.
제 2센트입니다, 잘 부탁드립니다, 톰.
몇 가지 더:
- 부분 수업.그리고 그것의 한계는?
- 봉인된 클래스
- 에서 현지화를 수행할 수 있는 방법.NET?
- 데이터베이스 연결
- 다양한 구성 파일
- 딜러 대 이벤트
- 관리되지 않는 dll 액세스
- 반사
- 일반 클래스
- 에서 가장 핫한.NET 3.5
- 사용한 유닛 테스트 프레임워크입니다.
저는 "교과서에서 무엇인가를 알고 있다"는 질문을 하지 않고, 다음과 같은 까다로운 질문을 합니다.
- 플레인 C#에서 각 루프는 무엇을 합니까? (그가 반복기 루프를 작성할 것으로 예상합니다.)
- 싱글톤이 뭐죠?
- 그/그녀가 String to Datetime을 구문 분석하도록 합니다(그/그녀가 Try/catch 대신 TryParse를 사용할 것으로 예상).
- 싱글톤, 전략 및 명령 패턴 구현
- 테스트를 위해 코드를 리팩터하도록 합니다.테스트 대상 장치에서 외부 서비스를 추출하고 자체 테스트 더블 서비스를 구현할 것으로 예상(모의 프레임워크 제공 안 함)
이것들이 100% 확실한 것은 아닙니다. 제가 그들에게 물어볼 수 있는 사람에 따라 다릅니다.
- null 입력으로부터 메서드를 보호하도록 합니다(네스팅을 줄이기 위해 여러 반환을 사용하도록 함).
- 객체 이니셜라이저의 작동 방식(스레드 세이프 할당을 작성할 것으로 예상)
또 어떻게 자신의 글을 익혔는지, 무엇을 읽고 있는지(어떤 블로그, 책을 읽는지)도 묻고 싶습니다.
몇 가지 더:
쓰레기 수거의 한계는 무엇입니까?
피니셔와 ID 일회용에 대해 알아봅니다.
스레드 풀과 사용 시기를 숙지합니다.
GUI 응용 프로그램을 사용하는 경우 Windows GUI는 싱글 스레드입니다.
각 용도로 사용(MoveNext 등을 수행하는 많은 사람이 보입니다.
질문만 해서는 안 된다고 생각합니다. 인터뷰를 할 때는 훌륭하지만 일단 현실에 도달하면 너무 완벽주의자라고 말할 수 있습니다.
저는 한 번 인터뷰를 받은 적이 있는데, 첫 번째 고용주가 30분 안에 작성할 기술 설문지를 저에게 주는 접근 방식이 마음에 들었습니다.한 명이 성공하면 성격 판단 및 성격 찾기 질문과 기술적인 농담을 다루는 1시간 인터뷰를 요청할 것입니다.
그럼 6시간 안에 3페이지짜리 웹 애플리케이션을 개발해 달라는 요청을 받았습니다.애플리케이션에 부과되는 제약 조건은 작은 ERD, Layerd Design, UI Consistency와 같은 애플리케이션 개발의 주요 측면을 스마트하게 커버하고 GridView의 Radio 버튼을 사용하고 웹 페이지에 DB의 이미지 유형을 가져오는 것과 같은 특정 문제를 제어하며, 하나의 알고리즘 개발, 보안, 암호화, 해싱,데이터 표현 및 조작.
다음 날에는 성능 병목 현상 영역과 설계 및 사용된 알고리즘의 개선 사항을 다루는 개발된 애플리케이션에 대한 30분간의 토론이 이어졌습니다.그리고 이전 단계에서 개발한 알고리즘을 특정 조건으로 개선하기 위한 1시간 선택 테스트.
따라서 상당한 시간이 걸렸지만, 이 방법을 사용하면 고용하는 사람이 적어도 좋은 개발자가 되기 위해 필수적인 개념들을 확실히 알 수 있습니다.
저는 그에게 문제를 주고 당신이 알고 있는 .net의 기능을 사용하여 문제를 해결하도록 요청하는 것을 선호하며 왜 그것이 최선의 해결책이라고 생각하십니까?
이것은 문제를 해결하기 위한 접근법뿐만 아니라 기술, 분석 및 문제 해결 능력 측면에서 지원자의 거의 모든 능력에 균열을 줄 것입니다.
언급URL : https://stackoverflow.com/questions/365489/questions-every-good-net-developer-should-be-able-to-answer
'programing' 카테고리의 다른 글
작업이 시간 초과와 함께 완료될 때까지 비동기적으로 대기 (0) | 2023.05.10 |
---|---|
.NET - 프로토콜, 호스트 및 포트 가져오기 (0) | 2023.05.10 |
SSIS Excel 가져오기 강제 적용 잘못된 열 유형 (0) | 2023.05.10 |
git reset --hard origin/master의 의미는 무엇입니까? (0) | 2023.05.10 |
글로벌 Git 구성을 표시하려면 어떻게 해야 합니까? (0) | 2023.05.10 |