Scala 개발자 인터뷰 방법 [폐쇄]

스칼라 프로그래머는 어떻게 인터뷰를합니까? 스칼라 개발자를 인터뷰 할 때 면접관이 찾는 측면은 무엇입니까?



답변

먼저, 왜 스칼라 개발자가 필요한지 생각해보십시오. 정말 당신이 필요한 스칼라입니까? 스칼라 (IDE, 빌드 도구, 라이브러리, Java보다 복잡한 다른 계층 등)와 함께 제공되는 사항을 생각해보십시오. 질문으로 돌아 가기 이론적 이해와 실용 능력이라는 두 가지 측면으로 나뉩니다. “이론”이 당신을 속이게하지 마십시오. 실용성이 Java에서 중요하기 때문에 Scala에서 중요합니다.

이론적 인

  • 기능적 패러다임이 무엇인지 알고 있는지 확인하십시오. 그들에게 철학과 실천의 두 패러다임 (FP와 명령)을 비교해 보라고한다. 그들이 FP를 전적으로 또는 부분적으로 지원하는 언어의 예를들 수 있다면 그것은 더할 나위 없습니다.

이론과 실습

  • 이들이 실제로 올바른 방식으로 기능적 프로그래밍을 수행 할 수 있는지 확인하십시오. 목록,지도, 압축 및 재귀에 대해 문의하십시오. 그런 다음 클로저, 람다, 축소, 고차 함수 및 불변성을 제공합니다.

실용적인

  • 그것들이 명령형 코드 스 니펫을 좋은 기능의 대안으로 리팩터링 할 수 있는지 확인하십시오 (위 참조). 이 선을 따라 수학이나 무언가를 구현하는 루프를 사용해보십시오.

  • 기능적 스타일과 명령형 스타일에 대한 취향을 찾으십시오. 더 기능적인 스타일을 선택하되 개발자 쪽에서는 극한까지 도달하지 않도록주의하십시오.

  • Scala 라이브러리 (예 : 리프트, 디스패치 등) 및 도구 (예 : SBT, fsc, IDEA)에 대해 얼마나 알고 있는지 확인하십시오.

  • 이들이 Java (코드 및 도구)를 얼마나 잘 활용할 수 있는지 확인하십시오. 스칼라는보다 심각한 환경에서 특별히 Java와 밀접하게 연결되어 있습니다. 이것을 아는 것은 큰 장점입니다.

이론적 인

  • 스칼라와 자바 (PHP, C ++, Objective C 또는 기타)를 비교하고 스칼라의 문제점을 알려달라고 요청하십시오. 그들이 문제와 장점을 이해하는지 확인하십시오. 스칼라의 결점으로 인해 문제가 발생할 수있는 실제 사례를 제시하도록 요청하십시오 (예 : 새로운 Joe가 만나기가 어렵고 지원이 Java 등에 비해 매우 제한적이므로 미숙합니다)

실용적인

  • 이들이 커뮤니티에 연결되어 있는지 확인하십시오. Martin Odersky와 David Pollak에 대해 물어보십시오. 그들에게 몇몇 Scala 프로젝트의 이름을 정하고 당신에게 그것들을 설명하도록 요청하십시오 (Facebook, Twitter, FourSquare, DBPedia 및 DBPedia SpotLight). 이 프로젝트에서 스칼라가 정확히 어떻게 사용되는지 알고 있는지 확인하십시오. 기사를 읽고 동영상을 보았습니까?

  • 그들에게 책에 대해 물어보십시오 (몇 개만 있습니다). 더 많이 알수록 좋습니다.

  • 마지막으로주의해야 할 말로, 훌륭한 언어는 잘못된 사람들을 끌어들이는이 이상한 잠재력을 가지고 있다고 말할 수 있습니다. 모든 잘못된 이유로 스칼라에 오는 종류에주의하십시오. 몇 가지가 있습니다 :

    • 스칼라는 특권을 가지고 있습니다 (나는 똑똑하고 다른 조와는 다르게 느끼고, 새로운 반짝임 박사 학위를 받았으며 지연을위한 것이므로 명령이 싫어하고 자바는 피상적이며 스칼라는 너무 우아합니다. ). 이 유형은 심각한 프로젝트에서는 생산적이지 않으며 다루기가 어렵습니다.
    • 나는 스칼라의 구문을 좋아하고 코딩 할 수있는 곳이라면 어디에서나 DSL을 작성하고 싶습니다. 이 종류는 스칼라의 특성을 마지막으로 떨어 뜨리는 특성을 파괴적으로 사용하는 것을 좋아합니다. 암호를 읽을 수 없을 정도로 비밀스럽고 간결한 코드를 작성하는 것이 좋습니다. 이러한 종류의 코드는 읽을 수 없으므로 특히 위험합니다. 그들의 공짜는 운영자 과부하, 이상한 이름 및 원 라이너 작성에 대한 그들의 사랑입니다.
    • 나는 무엇이든 상관없이 스칼라를 마지막 방울에 붙입니다. 순진한 순수 주의자 유형입니다. 실제 프로젝트와 마찬가지로 하이브리드 방식이 필요한 경우에는 거래를 할 수 없으며 프로젝트는 어려움을 겪습니다.

추신 : 만약 당신이 좋은 조를 발견했다면 꼭 알려주세요.)


답변

실제 인터뷰에서 스칼라를 아는 것만으로도 승리 한 것입니다. 언어에 관계없이 좋은 프로그래머를 고용하는 것은 항상 어려운 일입니다!

스칼라 프로그래머는 이미 자바에서 게임의 최상위에 있고“다음 단계로 넘어 가기”를 원했기 때문에 언어를 사용하는 경향이 있습니다.

인터뷰 할 수있는 스칼라 개발자가 풍부하다면 운이 좋다고 생각하십시오. 그렇지 않다면 더 관련성이 높은 질문은 “스칼라를 사용하도록 훈련 할 프로그래머에서 어떤 측면을 찾아야합니까?”및 “현재 어떤 회사에서 훈련 서비스를 제공 할 수 있습니까?”일 수 있습니다.


답변

나는 이와 같은 작은 문제에 대한 해결책을보고 싶다. 두 개의 6 면체 주사위를 200 번 던지는 결과에 대한 히스토그램을 만든다.

흥미로운 답변은 다음 의견을 참조하십시오 : http://briccetti.blogspot.com/2011/01/dice-throw-simulation-in-java-and-scala.html

Daniel Sobral과 같은 솔루션 또는 Kevin Wright의 솔루션이있는 사람 : http://ideone.com/8LFs3 은 자세히 살펴볼 가치가 있습니다.

대답이 Java 코드처럼 보이면 신청자가 충분하지 않을 수 있습니다.

또한 그 사람이 스칼라 커뮤니티에 연결되어 있음을 알고 싶습니다. 책, 저자, 오픈 소스 개발자, 사용자 그룹, 흥미로운 사람들을 알고 있습니다.


답변

나는 스칼라 채용을 한 적이 없지만 암시 적 작동 방식, 유형 클래스 패턴 및 함수형 프로그래밍의 기본 사항에 대한 이해를 찾고 싶습니다.