Upgrade to Pro — share decks privately, control downloads, hide ads and more …

시니어 SW엔지니어의 이직 고군분투기 (2)

시니어 SW엔지니어의 이직 고군분투기 (2)

나는 코딩 인터뷰를 어떻게 대비했는가, Google Japan, Tranferwise, IBM iX Japan과의 면접 후기

Sa-ryong Kang

February 14, 2019
Tweet

More Decks by Sa-ryong Kang

Other Decks in Programming

Transcript

  1. 시니어 SW
    엔지니어의
    이직 고군분투기 (2)
    강사룡 (IBM iX Japan)

    View Slide

  2. Who is this guy?
    “Both side of the table”
    • As a job seeker:
    넥슨 등 가고 싶은 곳을, 좋은 조건
    으로 들어간 경험 다수
    • As an employer:
    스타트업을 운영하면서 50명 이상
    의 엔지니어를 직접 뽑음
    + 알파: HR 서비스를 창업한 경험도..

    View Slide

  3. 주의사항
    n 성급한 일반화의 오류 주의
    • 어디까지나 개인적인 경험과 의견입니다
    • 누군가에게 옳았던 전략이라도 나에게는 맞지 않을 수 있습니다
    슬라이드 링크: https://bit.ly/2tti1w1

    View Slide

  4. 목차
    1. 나는 왜 이직을 결심했는가?
    • 끔찍한 경험 그리고 따뜻한 경험
    2. 나는 어떻게 이직을 준비했는가?
    • 목표 설정
    • 이력서
    • 코딩 테스트
    3. 면접 후기: 내가 만난 회사들
    • Google Japan
    • Transferwise Singapore
    • IBM Japan

    View Slide

  5. Chapter I.
    Brief (& Biased) History of Coding Interview
    in Silicon Valley

    View Slide

  6. 2000
    n The Guerrilla Guide to Interviewing - by Joel Spolsky
    • MS Excel PM, Trello 공동 창업자 , StackOverflow CEO
    • “코딩을 하는 사람을 뽑으면서 코드 테스트도 안 보고 뽑는 게 말이 돼?”
    • 간단한 문제를 C 언어로 화이트보드에 풀도록 하고,
    여러 각도에서 코드의 헛점을 지적하며 어떻게 대처하는가를 봄
    • Reverse String
    • atoi
    • itoa
    • Reverse queue

    View Slide

  7. 2006
    n The Guerrilla Guide to Interviewing 3.0
    • 1.0의 코드 문제를 다 잘 푼다고 꼭 좋은 엔지니어는 아니더라..
    à 보다 쉬운 문제를 기반으로 테스트
    • Write a function that determines if a string starts with an upper-case
    letter A-Z
    • Write a function that determines the area of a circle given the radius
    • Add up all the values in an array

    View Slide

  8. Nowadays
    n 2006년의 과정은 Stage 2/6에 불과
    • Inside the 6 Stages of Stack Overflow's Technical Interview Process
    http://www.greenhouse.io/blog/inside-the-6-stages-of-stack-overflows-
    technical-interview-process
    • Stage 3 smart interview – algorithm & problem solving test
    • Stage 4 “get things done” interview – design test
    • Stage 5 PM interview
    • Stage 6 VPE interview

    View Slide

  9. Nowadays
    n Higher Bar
    • 이전과는 비교도 되지 않을 정도로 어려워 짐. 학부에서 배웠으나 다
    까먹었을 알고리즘 문제도 흔히 출제됨
    • 이건 다 구글 탓? No!
    • 여전히 수요-공급 불균형이 있지만 SW 엔지니어의 연봉 급상승으로
    공급 증가(인도, 동유럽 등) à 선택의 폭이 늘어남과 동시에 서류
    전형으로 판단이 어려워 짐
    • Deep learning, Full-stack engineering의 강조로 폭넓은 능력과 동시에
    더욱 깊은 특정 domain 지식을 같이 요구하는 추세

    View Slide

  10. Eg. Lyft Android Engineer
    • 1차 initial phone screening – 원래는 간단한 퀴즈만 냈었으나 요즘은
    결코 쉽지 않음
    • 2차 code test 1 (on Web) - 미리 대비하지 않았다면 풀기 어려운 수준의
    문제들을, 90분 내로 풀어야 함
    • 3차 code test 2 – homework!
    • 4차 onsite interview - cs/java, UI, infrastructure, design, experience

    View Slide

  11. Implication:
    So What?
    • 그럼 난 코딩 테스트 안 보면서 봉급도
    높은 곳으로 찾아봐야지?
    • SW 엔지니어의 봉급과 난이도의 동반
    상승은 세계적 추세
    • 우리나라도 최근 1~2년의 짧은 기간에
    SV 스타일로 순식간에 바뀌고 있음

    View Slide

  12. 일본은?
    • 현재는 상대적으로 낮은 연봉 + 낮은
    인터뷰 난이도
    • IT


    • https://www.nikkei.com/article/DGXM
    ZO41027710X00C19A2QM8000/?n_ci
    d=NMAIL007
    • 구인난에도 불구하고 일본도 곧 세계적
    조류에 동참하게 될 것
    à 반대 급부로 높은 임금 수준에 맞는
    까다로운 입사 전형이 요구될 것

    View Slide

  13. Chapter II.
    나는 어떻게 코딩 인터뷰를 준비했는가?

    View Slide

  14. My Journey
    n 이직 결정: 7/15
    n 구직 활동 개시: 8/14
    n 최종 합격 통지: 10/11

    View Slide

  15. 테스트 준비
    n 기본 테스트 준비 - 항상
    n 이직 결정: 7/15
    n 7/16~ 알고리즘 연습 및 Github repo update
    n 구직 활동 개시: 8/14
    n 최종 합격 통지: 10/11

    View Slide

  16. 1. 코드 테스트
    n “평소 실력”만으로는 쉽지 않음
    • 60~120분 정도의 짧은 제한 시간
    • 품질도 어느 정도 보장되어야 함
    • 이거 다 거짓말인거 아시죠?
    • “예외처리 등 아주 구체적인
    부분은 보지 않으니 괜찮습니다”
    • “코드에 다소 문제가 있어도
    됩니다”

    View Slide

  17. 1. 코드 테스트 대비 전략
    • Cracking Coding Interview
    • 전직 Googler가 쓴 공전의 히트작
    • 코드 테스트에 대비할 수 있는 다양한 문제를 제공
    • 해답이 바로 나오지 않고, 3단계의 힌트 그 후
    정답 제시 형태
    • 알고리즘 문제, 개발 언어 문제, DB, 객체지향 설계,
    아키텍처 문제 등 다양한 주제의 문제가 있기 때문
    에 이직을 준비하지 않더라도 실력 향상에 큰 도움
    이 됨.
    • 주의: 일어도 한국어도 번역 품질에 문제가
    있다는 평이 있음

    View Slide

  18. 1. 코드 테스트 대비 전략
    • Element of Programming Interview
    • 요즘 Silicon Valley에선 이게 대세
    • Java 뿐 아니라 Python 버전도 있음

    View Slide

  19. 1. 코드 테스트, 이렇게 대비했습니다
    n 1일 1문
    • 하루에 한 문제씩 풀고 푼 내용과 소요 시간을 기록
    • 대략 9개월이면 다 풀 수 있음 (평일 기준)
    • 회사 업무에도 의외로 도움이 됨. “강 상은 뭘 짜도 순식간에 짜더라..“
    • 나중엔 마음이 맞는 직장동료 2명과 함께 (비밀히) 스터디
    • 매주 화요일 2시간 동안 Scala와 Ruby로 문제 풀이 후 각자 비교

    View Slide

  20. 2. 샘플
    프로젝트
    n 일종의 open-book test
    • 유형 1) Homework
    • 유형 2) Github
    • Hackathon이 정말 하루밤새에
    된다고 믿나요?
    • 어느 유형도 사전 준비 없이
    고득점을 얻기가 쉽지 않음.
    (예외는 있지만..)

    View Slide

  21. 2. 샘플 프로젝트, 이렇게 준비했습니다
    n 자기만의 코드 셋 만들기
    • 효과적인 homework를 위해서, 그리고 심층 기술 면접 대비를 위해서 자
    기 만의 code template을 미리 구비해 놓는 것이 좋음
    • 팁: 회사에서 만든 코드를 6개월 정도 뒤에 다른 형태로 재구현해보면?
    • 자주 하는 실수: 필요는 없지만 최신 기술이라는 이유로 회사 프로젝트
    에 억지로 적용하는 경우..
    • 참 잘했어요: 회사의 이익에 가장 부합되는 기술을 적용하되 항상 기술
    의 원리, 철학, 기반 소스를 집요하게 파기

    View Slide

  22. 3. 최종 준비
    본격 테스트 전 4 ~ 6 주 정도
    중상 정도의 난이도를 20분 이내에 풀 수
    있도록 집중 연습
    à 여유를 갖고 코드 완성도를 높일 수 있음
    일본 회사라면 가벼운 느낌으로..
    글로벌 회사라면, 정석을 다시 펼치는 느낌으로..
    적어도 merge sort, LRU, common ancestor등은 숙지

    View Slide

  23. Chapter III.
    면접 후기 (feedback을 받은 회사만)

    View Slide

  24. 1. Google Japan
    n 매우 독특한 입사 전형 경험
    • Disclaimer again: 어디까지나 개인적인 의견입니다.
    • 의문1: “난장이가 되서, 60초 후에 작동하는 믹서기에 빠졌다. 어떻게 탈
    출할래?”
    • 요즘은 그렇게 짖궂은 질문까지는 안 한다지만.. 그것보다.. 애초에
    그런 류의 질문을 하는 목적이 뭘까?
    • 의문2: 매우 독특한 면접 과정
    • 힌트1: 내가 아는 G러들의 공통점
    • 힌트2: 기자들말고, 직접 접해봤다는 사람들의 증언
    • 패인: 언어의 효과에 대한 과대 평가

    View Slide

  25. 2. Transferwise Singapore
    n 전형적인 잘 나가는 유럽/미국회사의 입사전형
    • 1차 Screening.. 인사 담당자가 아니라 개발자가 면접관으로..-_-;
    • 2차 코드 테스트: Hacker Rank - 상당히 난이도가 높음
    • 3차 코드 테스트 2: 1주일 동안 샘플 프로젝트. 근데 요건이..
    • 4차 기술 면접: 90분
    • 최종 면접: 역시 90분
    • 이렇게까지 해야겠니? @[email protected]

    View Slide

  26. 3. IBM Japan
    n 일본식과 미국식의 적절한 중간점
    • 서류 심사가 의외로 어려움
    • 이후 입사 전형의 세부 내용은 전적으로 매니저의 재량에 달림
    • Github 소스 중심
    • 추천 가산점이 매우 높음
    • 컨설팅 중심의 조직
    • 개발 능력뿐 아니라 과거 경험, 문제 해결력을 매우 중시

    View Slide



  27. 모바일 엔지니어 대모집 중!
    Sa-ryong KANG
    [email protected]
    슬라이드 링크: https://bit.ly/2tti1w1

    View Slide