Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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