본문 바로가기

독서

<우린 이렇게 왔다>, 송재희 외 24인

우린 이렇게 왔다
국내도서
저자 : 송재희,조항덕,그 외 23인
출판 : 클라우드북스 2018.08.08
상세보기


  • 소프트웨어 엔지니어였던 남편이 특정 프로그래밍 언어를 배우기 이전에 프로그래밍이 무엇인지, 그 개념부터 알아야 한다고 조언해주셔서 lynda.com에서 'Foundations of Programming: Fundamentals'라는 과목을 들었다.
  • '열정'이라는 단어는 누구나 쉽게 쓸 수 있지만 '행동'이 수반되어야 비로소 원하는 것에 좀 더 다가갈 수 있다.
  • 항상 시장을 읽고, 내가 어떤 것을 더 해야 하는지, 어떻게 하면 남들 앞에서 당당해지고 뛰어날 수 있는지를 연구하고 실천해야 한다. 모르는 것이 있으면 더 아는 사람에게 정중히 물어보고, 아는 것이 있으면 모르는 사람에게 친절히 가르쳐 줄 수 있는 사람이 되고 싶다.
  • 인터뷰는 보통 30분~1시간의 제한된 시간 안에 케이스 및 인성 관련 질문들에 대답해야 하므로, 미리 훈련하고 가는 것이 중요하다. 경력과 관련된 질문이나 인성 관련 질문들에는 아무리 내가 가진 매력적인 이야깃거리가 많더라도 사전 준비나 연습 없이, 인터뷰 자리에서 단번에 매끄럽게 풀어나가기는 쉽지 않다. 그러므로 예상 질문들에 대한 본인만의 스토리를 만들고, 친구나 동기, 혹은 현지에 있는 사람과 연습을 할 것을 추천한다.
  • 포트폴리오 웹사이트에 방문을 하긴 하는지가 제일 궁금한데 제일 쉽게 알아내는 방법은 웹사이트에 구글 애널리틱스 트래킹 코드를 삽입하는 것이다. 트래킹 코드를 넣고 구글 애널리틱스 툴에 들어가면 어느 지역에서 방문했는지, 네트워크는 무엇인지,(회사 이름인 경우가 많다) 그리고 어느 페이지에 얼만큼 머물렀는지까지 분석해볼 수가 있다. 게다가 실시간 정보도 다 보이기 때문에 지금 나의 웹사이트에 들어온 사람들을 볼 수 있다.
  • 본격적인 인터뷰 준비를 위해 코딩 인터뷰 완전 분석, Effective C++, Programming Pearls 등 많이 알려진 책들을 봤다. 4~5주 정도 코딩 문제를 풀어보고, 기본적인 자료구조 개념도 다시 정리했다. 
  • 코딩 인터뷰 준비는 LeetCode와 Hackerrank가 아주 큰 도움이 되었는데, 온라인으로 문제를 풀고 알고리즘을 코딩해볼 수 있는 사이트이다. 이 사이트에서 우선 문제를 보고 나서, 시간이 조금 오래 걸려도 바로 답을 보지 않고 직접 풀어본 뒤, 어느 정도 확신이 있을 때 답을 보길 바란다. 또 코딩 인터뷰 완전 분석이라는 책도 두 번 이상 정독하였다. 
  • HR 전화 인터뷰 혹은 폰 인터뷰는 회사에서 이력서를 보고 어떤 점을 궁금해하는지 바로 톡 치면 내 소개가 나올 정도로 준비를 하였다. 인터넷으로 common interview quesitons for sw engineers를 검색하여 나온 결과와 이력서에 적힌 프로젝트들에 대한 설명, 어떤 스킬셋에 대해서 물어보면 바로 설명할 수 있도록 STAR(Situation - Task - Action - Result)테크닉을 적용하여 준비하였다.
  • 링크드인, 하이어드, 몬스터닷컴 등의 사이터에서 프로필의 현재 위치설정을 이용하여 면접 기회를 늘릴 수 있다. 나는 서울에서 미국 취직을 준비할 때 링크드인 프로필 지역 설정을 일부러 서울이 아닌 샌프란시스코 베이 에어리어로 해두었다. 이는 리쿠루터들이 쓰는 후보를 찾는 검색에서 위치로 인해 걸러지는 것을 막을 수 있고 실제로 그곳에 위치하지 않더라도 이메일 등으로 연락이 왔을 때 당신 한국에 있다는 상황 설명을 하고 이주할 용의가 충분히 있다고 설명하면 바로 면접이 원격으로 진행되는 경우가 많았다.
  • 미국 면접의 핵심은 똑똑한 사람을 뽑는 것이 아니라 나와 일하고 싶은 동료를 찾는 것이다. 물론 기대 이상의 기술적인 능력은 보여줘야 하는 것이 필수이지만, 면접 중 잘 모르는 부분에 대한 설명, 그리고 문제 풀이 중 막혔을 때 상대방의 조언이나 문제에 대한 힌트를 받아들이는 자세 등도 면접에 매우 크게 영향을 끼친다. 예를 들어, 면접관이 오답을 알려주는 경우도 종종 있는데 어떻게 그것을 바로 잡느냐에 따라서도 면접의 결과가 달라질 수 있다.
  • 인터뷰 준비
  • 구글 코드잼 행사 실제 문제 풀이
  • 코딩게임 https://www.codinggame.com
  • 동료의 신뢰는 많은 문제를 쉽게 풀어준다. 기회가 있을 때 당신과 함께 팀을 옮기고 싶어 하는 사람이 생길 것이니 오가는 기회를 놓칠 일이 줄어들어서 좋다. 난감한 실수 한두 번 정도는 너그럽게 넘어가 줄터이니, 직장생활의 긴장이 줄어들게 되어서 좋다. 그러니 입사 후 얼마 동안은 정말 치열하게 살아보는 것도 나쁘지 않을 것 같다. 나중에 충분한 보상이 되어서 돌아올 것이니까.
  • 자기 색깔이 확고한 엔지니어임을 어필하라. 대우를 잘 받는 기술을 추종하여 남들을 따라갔다면 지금과 같이 한 영역에 특화된 전문가로 성장하지 못하고 보통의 개발자로 남아 있었을 것 같다. 디자인을 동시에 할 수 있는 엔지니어는 많지 않다는 점이 확고한 나만의 색깔을 만들어준 것 같다.
  • 작은 조직이든 큰 조직이든 항상 속해있는 그룹 내에서 함께 일하고 싶어하는 사람이 되자. 그릇이 작은 조직이라 내 능력을 담을 수 없다고 생각해 무시하고 소홀히 하며 큰 물에서 성장하기만을 바라는 사람이 있다. 구글과 같은 큰 조직이든 10명도 안 되는 작은 스타트업이든 팀원으로 뽑고자 하는 사람은 다시 함께 일하고 싶은 동료이다.
  • 연봉 협상 과정에서 가장 중요한 것은 본인의 인터뷰 과정에서의 피드백이다. 인터뷰 피드백이 커트라인을 간신히 넘은 상황이라면 인사팀에서 차선책으로 생각하는 지원자로 마음을 바꿀 수도 있기 때문에 현재 본인의 피드백이 어떠한지 물어보는 것이 중요하다. 가고 싶었던 회사에서 합격 전화를 받았을 때 그 기쁨은 말로 표현할 수 없겠지만 우선 기쁜 마음은 잠시 숨겨두고 인터뷰에 대한 팀원들의 피드백을 물어보는 것이 중요하다. 본인이 인터뷰를 진행했을 때의 느낌과 인사팀 직원의 피드백을 종합해 본인의 인터뷰 결과를 짐작 해볼 수 있다. 결과가 만족스럽다고 판단되면 본인이 주도하는 연봉 협상 방법으로 들어가야 한다. 면접관이 바로 연봉에 대한 이야기를 꺼낸다면 말로 이야기하는 정보를 머릿속이 아니라 종이에 모두 적어 두는 걸 잊지 말자. 아무리 좋은 조건도 바로 승낙하지 말고 생각할 시간을 가질 수 잇게 다음 대화 약속을 잡고 끊는 것이 필요하다. 중요한 건 본인이 지금부터 대화를 주도한다는 걸 알아야 한다.
  • 협상을 할 때는 마음이 급한 사람이 항상 불리하다. 생각할 시간을 달라고 하면서 천천히 진행하는 것이 중요하다. 처음 제시한 연봉 조건이 적힌 종이를 보고 다른 비슷한 경력의 사람들과 어떤 차이가 있을지 생각해보면서 다음 통화에서 조정 조건을 찾아내야 한다. 미국 내의 테크 회사에서는 베이스라고 하는 기본 연봉과 보너스 그리고 주식 보너스를 주는 것이 일반적이다. 그래서 도어나 페이자와 같은 평균 임금에 대한 정보는 현재 오퍼가 좋은지 보통인지 가늠해 볼 지표로 사용하면 좋다. 그렇게 차이 나는 만큼에 대해 요구할 때는 이런 사이트를 보고 내가 적게 받는 거 같으니 얼만큼 올려 달라고 하는 식의 방법은 좋지 않다. 미국에선 금액에 대한 이야기를 할 때 합리적인 숫자 계산을 비교해서 이야기하면 매우 효과적이고, 그러한 요구를 긍정적으로 받아들이는 편이다. 예를 들면 주식에 대한 조건이 있는 경우 4년에 걸친 비용을 얘기하기 때문에 언뜻 제시 금액이 커서 좋은 조건으로 보인다. 하지만, 연봉 이야기를 할 때는 1년 기준으로 총액을 얼마 받게 되는지 변환해서 협상하는 것이 적은 금액으로 보여서 인상을 요구할 때 유리하다. 또한, 주식은 변수가 많기 때문에 기본 연봉과 같이 고정된 수입이 아닐 수 있어서 가려는 회사의 주식 추이를 이야기하며 추가적인 인상을 요구할 수 있다. 예를 들면, 연봉 10만 불에 주식 10만 불을 제시했다고 하면 본인의 1년 보상 금액 총액은 20만 불이 아니라 12만 5천 불이 된다. 보통, 주식은 4년에 걸쳐 매년 25% 상당을 보상해주기 때문이다. 1년 사이에 회사의 실적이 좋지 않아 주식이 떨어지면 실 보상 금액은 더 적어질 수 있다.
  • 이 때 중요한 것은 회사와 팀에 긍정적이며 팀에 관심이 많다는 걸 보여주어야 하고 대우를 맞춰주면 인사팀에서 요구하는 시간 안에 승낙할 것이라는 점을 부각한다면 인사팀에서 빠른 시간 안에 본인이 원하는 요구 조건을 맞춰줄 수 있다.
  • 짧은 인생을 살면서 선택의 갈림길에 섰을 때 내 선택은 항상 더 힘든 길이었다. 결국은 더 힘든 길이 답이더라는 게 피부로 배운 교훈이었다.
  • 코세라 알고리즘 강의 수강
  • 컴퓨터 사이언스 렉쳐 노트 스터디
  • 코딩 인터뷰 완전분석
  • 소프트웨어 회사들의 코딩 인터뷰 준비로는, 친구가 추천한 elements of programming interviews 책이 많이 도움이 되었다.
  • 모든 인터뷰의 마지막에는 인터뷰어에게 질문을 할 수 있는 시간이 있는데, 그 때 아래의 세 가지 질문을 하면 좋다. 
  • 1. Yes, i do have a few questions for you - but before i get into these, i am wondering if I've sufficiently answered all of your questions. would you like me to explain anything further or give any examples?
  • 첫 질문은 인터뷰 중에 실수했거나 놓친 부분을 다시 답하거나 인터뷰어가 다르게 이해한 부분을 다시 설명할 기회를 주는 매우 중요한 질문이다. 또한, 인터뷰어의 대답을 통해 인터뷰 결과를 어느 정도 예상할 수 있다. 
  • 2. what are the current priorities and focus areas of the team? where would i be able to add the most value?
  • 두 번째 질문은 팀에 합류한다면 어떤 점에 집중해서 노력을 해야 할지를 미리 아는 데에 필요하다.
  • 3. what do you like most about working for this company?
  • 세 번째 질문을 통해서 지원한 회사의 문화, 미션, 가치에 내가 잘 공감하는지를 확인할 수 있다.
  • 때에 따라 희망 연봉 질문을 인터뷰 초기 단계부터 하기도 하는데, 그 경우에는 당황하지 말고, i'm negotiable depending on the range you're offering. my first priority is finding the right fit이라고 말하면 된다.
  • 만일 그 이후에도 계속 물어본다면, i'm being considered ofr positions in the range of ~~. but again, i'm negotiable이라고 말하면 좋다.
  • 온사이트 인터뷰는 화이트 보드에서 직접 코딩을 하는 경우가 많기 때문에, 짬이 날 때마다 예시 문제들이 나와있는 책을 풀고, 해커 랭크, https://www.hackerrank.com 같이 코딩 문제를 온라인으로 풀 수 잇는 툴을 찾아서 연습하고 친구들이나 멘토, 그리고 주위의 개발자들을 찾아가서 모의 인터뷰를 해보았다. 모르는 분야는 과감하게 포기하고, 아는 분야에 대해서는 누가 어떤 문제를 물어도 최적의 답을 낼 수 있도록 준비하였다.