경험 없이 러시아 졸업장을 가지고 Google에 취업하는 방법 Google에서 취업하는 방법과 그만한 가치가 있습니까? Google에서 일하기

Google이 문자 그대로 세상을 변화시키는 제품을 생산하는 회사 중 하나라고 해도 지나친 가식은 아닐 것입니다. 10년 전에는 Google 지도가 있었고, 그보다 조금 더 일찍은 검색 엔진이었으며, 오늘날에는 무엇보다도 증강 현실 안경과 무인 자동차가 개발되고 있습니다.

대중적인 믿음과는 달리 Google에 입사하기 위해 프로그래머가 될 필요는 없습니다.

그러나 자세히 살펴 보겠습니다.

봄에는 Google의 대학원 교육 프로그램에 참여했습니다. 문맥 광고 서비스인 Google AdWords를 사용하여 작업할 때의 미묘한 차이에 대해 이야기했습니다. 아래에서는 이 프로그램에 대해 좀 더 자세히 설명하겠습니다.

여기 내 인증서가 있습니다. 명예에도 불구하고 밝혀졌습니다.

프로젝트가 끝난 후 주최자는 Google 사무실 중 하나가 위치한 아름다운 폴란드 도시 브로츠와프를 방문하도록 모든 사람을 초대했습니다. 물론, 나는 즉시 배낭을 움켜쥐었다!

우리는 사무실, 회의실, 체육관, 휴게실, 식당, 여러 주방, 어린이 방 등을 통해 실제 투어를 받았습니다.

안타깝게도 대부분의 방 사진은 인터넷에 게시할 수 없지만 장점이 있습니다. 구두 설명을 연습하고 상상력을 발휘할 수 있다는 것입니다.

우선, 회사 입사와 근무일 정리와 관련된 문제에 관심이있었습니다.

우리는 열린 공간 원리에 따라 만들어진 방 중 하나로 들어갑니다. 패셔너블한 디자인 사무소의 느낌은 결코 나를 떠나지 않았고 심지어 나조차도 즉시 컴퓨터로 가서... 일하고 싶었습니다! 칠판에 완벽하게 배치된 기업 공지 사항, 방의 여러 위치에 있는 많은 합리적인 인용문, A4에서 A0까지의 형식, 직원을 위한 다양한 벽 신문, 부서가 대표하는 국가의 국기... 거의 모든 직장은 걸작 그 자체. 그리고 방에는 꽤 많은 사람과 온갖 물건이 있지만 더 많은 공간이 있고 모든 것이 유기적으로 보이며 아무도 서로 방해하지 않습니다. 그러나 일부 일자리는 여전히 비어 있습니다. “그건 그들이 다른 곳에서 일하고 있다는 뜻이죠.” Google 직원이 나에게 설명합니다.

실제로 컴퓨터를 들고 편하게 앉을 수 있는 곳은 많습니다. 무릎에 노트북을 올려놓고 빈백 의자에서 휴식을 취할 수 있고, 상대적으로 작고 아늑한 간이 주방에 앉아 테라스에서 작업할 수 있으며 회의실(30~60분 동안 예약 가능), 넓은 로비에서 작업할 수 있습니다. .. 여기저기서 별도의 모서리가 디자인되었으며 다양한 디자인과 안락 의자가 있습니다. 직원들은 업무용 노트북을 받게 되므로 향후 몇 시간 동안 작업 공간을 이동하는 데 문제가 없습니다.

Google에서는 근무 시간이 어떻게 구성되어 있나요?

그럴 것 같습니다. 그런 환경에서 어떻게 여기서 일할 수 있습니까? 체육관은 덤벨로 손짓하고, 주방은 무료 쿠키로 매력적으로 빛나고, 컴퓨터 없이만 입장할 수 있는 특별한 휴게실도 있습니다.

“사실 우리는 9시부터 18시까지 표준 8시간 ​​근무를 합니다.”라고 그들은 말합니다. — 우리는 업무가 무엇인지에 따라 일합니다. 그러나 단순화하기 위해 약 절반은 반드시 현장에 있어야 하고 예를 들어 사용자 질문에 답변해야 하는 고정된 시간입니다. 정확히 언제 이 고정 시간을 갖게 될지는 팀 자체에 의해 결정됩니다. 두 번째 부분에서는 다양한 장기 프로젝트를 진행하고 있습니다. 작업은 팀으로 수행되고 모두가 결과 지향적이며 이것이 상호 동기 부여가 발생하는 방식입니다. 다른 프로젝트를 하고 싶다면 이유를 설명하세요. 그러면 시간의 일부를 해당 프로젝트에 투자할 수 있을 것입니다.

하루 8시간 내내 일하면서 여행하는 방법은 무엇입니까?

여기 저기 회사 직원들로부터 한 달 동안 인도로, 홍콩으로, 아니면 다른 곳으로 간다는 이야기를 듣습니다. 9시부터 18시까지 일한다면 어떤가요? 전 세계 Google 사무실에서 일할 수 있는 기회가 있는 것으로 나타났습니다. 일부 직원의 경우 이는 경력 성장입니다. 현재 위치에서 성공을 거둔 후 욕구와 기회가 일치하면 다른 사무실로 이동하거나 원칙적으로 다른 국가로 이동할 수 있습니다. 회사는 이사와 관련된 비용을 지불합니다.

일부 근로자는 이 옵션을 업무를 중단하지 않고 이동할 수 있는 기회로 사용합니다. 예, 다른 나라에서는 여전히 하루 8시간 근무가 유지되지만, 새로운 지역을 탐험하는 데 전념할 수 있는 저녁과 주말도 있습니다. 그리고 임시로 새 사무실에서 일하고 새로운 사람들을 만난다는 사실 자체가 이미 고무적입니다.

Google에 취업하려면 어떻게 해야 하나요?

회사에는 수많은 부서가 있습니다. 일부는 비즈니스 분석을 담당하고 다른 일부는 신제품 생성, 고객 지원, 프로그래밍, 테스트, 기술 유지 관리 등을 담당합니다.

구글에서 음식을 먹어야만 일자리를 구할 수 있다는 별로 미안하지 않은 농담이 인터넷에 돌아다니고 있습니다. 물론, 좋은 호텔에서 좋은 뷔페를 상상해 보세요. 이것이 그들이 매일 이곳에서 제공하는 것입니다. 때로는 특별한 요리사를 초대하여 특정 요리에 대한 테마의 날을 준비하기도 합니다. 우리는 인도 사람에게 도착했습니다. 당연히 직원에게는 모든 것이 무료입니다.

도시가 내려다보이는 이 테라스에 자리를 잡고 신선한 베리로 점심을 마친 우리는 취업에 대한 이야기를 계속합니다.

— 구글에 들어가려면 무엇이 필요한가요?

- 기본적으로 인턴십과 실제 취업이라는 두 가지 옵션이 있습니다. 학생이라면 인턴십이 이상적인 선택입니다. 필요한 경우 인턴십 장소로의 여행 비용과 마찬가지로 비용도 지불됩니다. 인턴십은 여름에 진행되며, 수료 후 직원이 될 수 있습니다. 응용다음 여름 지원서는 10월에 접수됩니다.

업무에 관해서는 언제든지 현재 공석 및 채용 정보가 포함된 페이지로 이동할 수 있습니다. 이력서를 보내주세요. 이력서는 회사의 주요 언어이기 때문에 영어로 작성해야 한다는 점을 기억하는 것이 중요합니다.

사실, 영어에 대한 좋은 지식은 기본이며, 이것이 없으면 Google에서 일할 수 없을 것 같습니다. 러시아어권 시장에 더 진출하더라도 인터뷰는 여전히 영어로 진행됩니다.

(이 말을 마치고 실망하여 페이지를 닫고 싶은 분들을 위해: 마침내 찾아내다, 영어를 배우고 정기적으로 말하기를 연습할 수 있는 일반적인 방법입니다. 귀하의 도시에서 카우치서퍼 미팅을 찾아보세요 - 웹사이트 Couchsurfing.com - 미팅 섹션!)

Google에 입사하기 위한 생활 꿀팁

조금 후에 Google에 들어갈 가능성을 약간 높일 수 있는 중요한 생활 꿀팁에 대해 조금씩 배우겠습니다.

그러나 공석 경쟁은 심각합니다. 구글 인사담당 책임자는 구글이 매년 300만 건 이상의 구직 지원서를 받는 반면, 매년 평균 채용하는 인원은 7,000명에 불과하다고 밝혔습니다. 한 자리를 놓고 경쟁하는 후보자는 약 428명인 것으로 밝혀졌습니다.

하지만 당황하지 마세요. 우리는 세계의 평균적인 상황에 대해 이야기하고 있습니다. 확실히 미국에서 제출되는 이력서의 수는 체코, 폴란드, 슬로바키아와 몇 배나 다릅니다.

그러나 그러한 선택은 Google에서 일하는 사람들의 수준을 나타내는 특정 지표입니다. 여행하는 동안 나는 비공식성, 친근함, 단순함, 목적성 및 박식함의 조합에 계속해서 놀랐습니다. 그리고 이 모든 것은 단지 그런 것이 아닙니다. 회사 내에는 특별한 용어도 있다는 것이 밝혀졌습니다. 정확성을 보장할 수는 없지만 "googlattraction"- "Google + 매력"과 같이 들립니다. 편한 것은 팀으로 일하는 사람과 가까워지는 것입니다.

구글 튜토리얼

결론적으로 Google의 여러 교육 프로그램에 대해 이야기하고 싶습니다. 이들의 공통점은 매우 똑똑하고 자유롭다는 것입니다. 누구나 참여할 수 있으며 사전 등록, 컴퓨터 및 인터넷만 있으면 됩니다.

앞서 쓴 것처럼 저는 The Graduate from Google에서 공부했습니다. 문맥 광고 서비스인 Google AdWords를 사용하여 작업할 때의 미묘한 차이에 대해 이야기했습니다. 이 프로그램은 주로 카자흐스탄과 벨로루시의 신흥 시장을 대상으로 했습니다. 웨비나 형식으로 진행되었으나 이에 국한되지는 않았습니다. 우리는 팀으로 프로젝트를 하도록 요청받았고, 참가자들을 알아가고, 제안서를 작성하는 등의 작업을 했습니다. — 일반적으로 네트워킹은 매우 생산적인 것으로 나타났습니다. 또한, AdWords 계정 작업을 위한 $250 쿠폰과 검토용 $60 쿠폰을 추가로 받으실 수 있습니다.

프로그램을 성공적으로 완료하기 위한 요구 사항 중 하나는 문맥 광고 테스트를 통과하는 것이었습니다. 2시간 안에 다양한 난이도의 질문에 80%의 정답을 맞춰야 하며 그 후에는 인증된 Google 파트너가 됩니다.

이것도 축하해주세요 😉

다음 출시 졸업생은 1월~2월에 예정되어 있습니다. 공지 사항을 계속 지켜봐 주시기 바랍니다.! 앞으로 문맥 광고에 참여할 계획이라면 이것이 좋은 시작을 위한 이상적인 선택입니다.

조금 늦게 알게 된 또 다른 프로그램이지만 녹화된 웨비나를 모두 시청할 프로그램은 Women in Digital입니다. 이 강좌는 주로 벨로루시나 카자흐스탄에서 사업체를 소유하거나 관리하는 여성을 대상으로 하며 인터넷을 통해 제공되는 다양한 사업 홍보 기회에 대해 더 잘 알고 싶어합니다. 모든 것이 여기에 있습니다 정보.

...아마도 우리 모두는 어렸을 때부터 창조하는 것을 좋아했을 것입니다. 일부는 높은 탑을 쌓았고 일부는 인형 옷을 디자인했습니다. 우리는 야망이 있었고 우주비행사, 훌륭한 배우, 뛰어난 외과의사가 되는 꿈을 꾸었습니다. 우리는 한계 없는 꿈을 꾸었고, 세상을 신뢰했으며, 새로운 것을 배우려는 호기심과 열망이 자연스러웠습니다.

Google 사무실을 방문하면서 어쩐지 바로 이 상태가 생각나더군요. 열정이 있고, 노력하고 싶은 마음이 있고, 결과를 기뻐할 때.

이 기사가 당신에게 도움이 되었다면 기쁘겠습니다.

좋은 하루 보내시고 목표 달성에 집중하세요!

어떤 언어를 배우는 것이 더 좋으며 어떤 지식과 기술이 필요합니까? 인터뷰를 준비하고 그 동안 행동하는 방법은 무엇입니까? Google 직원 Sergei Berezin은 GeekBrains 포털에 대한 이러한 질문에 답변했습니다.

Sergey는 1995년부터 미국에 거주했으며 2014년 1월부터 Google Chrome 부서에서 근무하고 있습니다. Chrome 개발자에게 IT 지원을 제공합니다.

- 안녕하세요, 세르게이! 어떻게 미국에 오게 됐는지 말해주세요.

1995년 8월이었습니다. 저는 노보시비르스크 주립대학교를 졸업하고 카네기멜론대학교에서 공부를 계속하기 위해 미국으로 갔습니다. 원격으로 미국 대학에 등록할 수 있습니다(현재 러시아에서도 동일한 시스템이 운영되고 있습니다). 표준화된 시험을 치르고 지원서를 작성한 후 한 번에 12개 대학에 보내면 어느 대학에서 합격할 것입니다. 지원자를 위한 이 프로그램은 오늘날에도 여전히 운영됩니다. 또한 문서 제출을 위해 상대적으로 적은 금액을 지불해야 합니다(1995년에는 약 $50였습니다). 그리고 남은 것은 결과를 기다리는 것뿐입니다. 합격하면 준비하고 공부하러 가세요. 일부 대학에서는 수업료를 지불해야 하며 이는 일도 해야 함을 의미합니다. 다른 사람들은 스스로 장학금을 제공합니다. 예를 들어 카네기 멜론(Carnegie Mellon)이 그랬습니다.

- 미국에서는 IT회사에 취업하기가 어렵나요? 러시아 지원자에게는 어떤 장애물이 있을 수 있나요?

졸업 후 Google에 합류하기 전에는 여러 회사에서 근무했습니다. 기업에는 끊임없이 인재가 필요합니다. 프로그래머 및 기타 우수한 자격을 갖춘 전문가가 현재 특히 수요가 많습니다. 그리고 회사, 특히 대규모 회사의 신규 직원 채용은 멈추지 않습니다.

일반적으로 전문가가 어디에서 왔는지는 중요하지 않습니다. 그들은 러시아어와 중국어를 모두 받아들일 수 있습니다. 국적이나 국가는 그다지 중요하지 않습니다. 미국인을 고용하는 것이 더 쉽지만, 회사에 도움이 되는 해외 전문가가 있다면 그를 초대할 수도 있습니다. 이를 위해 고용주는 자비로 취업 비자를 발급할 준비도 되어 있습니다.

미국은 외국인 고용을 매우 중요하게 생각합니다. 기업이 외국인을 고용하려면 두 가지 조건을 충족해야 한다. 첫째, 비슷한 지식, 기술, 능력을 가진 미국인을 찾는 것이 불가능하거나 불가능하다는 것을 증명하기 위해서입니다. 취업을 희망하는 외국인은 반드시 필요합니다. 이는 법적 요구 사항입니다.

둘째, 취업 비자를 포함하여 많은 문서를 처리하는 데 많은 돈을 소비하십시오. 사람들이 미국에서 일하러 갈 때, 회사는 영주권이라고 불리는 거주 허가를 후원해 줄 것이라고 기대할 수 있습니다. 이를 위해서는 고용주에게 수천 달러의 비용이 소요되며 등록과 관련된 많은 절차가 필요합니다. 하지만 그 사람이 경쟁사에 가지 않고, 더 나쁜 경우에는 팀의 작업을 다른 나라로 가져가지 않고 그대로 머무르는 것이 회사에 유익합니다.

회사의 도움 없이 스스로 영주권을 취득할 수 있습니다. 저는 시도해 보았습니다. 그러나 그것을 얻는 것은 시민권보다 더 어렵습니다. 외국인을 평가하는 기준은 다양합니다. 주정부는 개인이 자신의 분야에서 탁월한 능력을 발휘할 경우 거주권을 부여할 수 있습니다. 하지만 자신이 어떤 영역에서 없어서는 안될 존재인지 명확하게 정의하는 것이 중요합니다. 이 영역이 더 좁을수록, 당신이 그 안에 더 중요할수록, 기회는 더 높아집니다. 추측하지 않으면 아무 일도 일어나지 않을 것입니다.

따라서 고용회사가 영주권을 발급하는 것이 더 유리합니다. 그녀 자신은 이 특정 외국인이 미국인으로 대체될 수 없다는 것을 관리들에게 증명할 것입니다. 고용주는 교활함에 의지합니다. 그들은 후보자에 대한 요구 사항 목록을 작성하고 그러한 언어를 구사하고 그러한 기술을 알고 있는 전문가가 필요합니다... 키와 머리 색깔을 나타내지 않는 한. 결과적으로 이 특정 전문가 외에는 다른 사람을 고용하는 것이 불가능합니다. 이는 그가 꼭 필요한 사람이고 영주권을 받아야 함을 의미합니다.

이민 할당량도 있습니다. 이것은 이미 국가 시스템으로 매우 복잡하고 엄격합니다. 연간 취업 비자로 입국할 수 있는 사람의 수는 제한되어 있습니다. 할당량에 도달하면 회사가 귀하를 고용하고 비자 비용 등 모든 비용을 지불하더라도 미국에서 일할 수 없습니다.

고용주는 서류 작업과 비행기표 외에 무엇을 지불할 수 있나요? 무엇을 기대할 수 있나요?

회사가 지원자를 인터뷰에 초대하면 최소한 여행 비용의 일부를 지불합니다. 호텔이나 렌터카 비용을 지불할 수 있습니다. 외국인의 경우 일반적으로 비용이 상당히 높기 때문에 회사가 모든 비용을 부담할 것이라고 기대해서는 안 됩니다.

귀하가 고용된 경우 이사 비용을 부분적으로 지불할 수도 있습니다. 정말 열심히 노력하면 처음 며칠 동안은 주거 문제를 도와줄 수도 있습니다. 그러나 고용되는 순간부터 그들은 이미 급여를 지불하게 될 것입니다. 따라서 이러한 비용은 이미 직원 자신에게 있습니다.

- 직원 기숙사는 없나요?

구글에는 그런 기숙사가 없습니다.

- 구글에는 외국인이 많이 근무하나요?

꽤 많은 수. 직접적으로 말하기는 어렵지만 10% 이상, 확실히 절반 미만입니다. 저에게는 비자를 받고 영주권을 취득한 친구들이 많이 있습니다.

- 현재 IT기업에서 가장 수요가 많은 전문분야는 무엇인가?

나는 시장의 현재 상황을 연구하지 않았지만 내가 본 바에 따르면 오늘날 낮은 수준의 전문가에 대한 수요가 가장 높습니다. 컴퓨터와 프로그래밍에 정통한 젊은이들은 똑똑하지만 업무 경험이 많지 않습니다. 그런 분들을 위한 곳이 많습니다.

어느 회사에서나 많은 코드를 작성하고 시스템 운영을 유지 관리해야 하는 지능적이지 않고 일상적인 작업이 많이 있습니다. 이를 위해서는 높은 자격, 깊은 지식 또는 경험이 필요하지 않습니다. 그러나 직원은 자신이 정확히 무엇을 하고 있는지, 왜, 자신의 업무 영역에서 무슨 일이 일어나고 있는지 이해해야 합니다. 그는 깨진 코드를 고치거나 완성하는 방법을 빨리 배워야 합니다. 그리고 가장 중요한 것은 이 모든 것을 효율적으로 수행할 수 있고 노력하는 것입니다. 그러한 전문가가 많이 필요합니다. 채용된 직원 수 측면에서 가장 인기 있는 틈새 시장입니다.

그 뒤에 많은 경험이 있는 사람을 고용하면 그에게 새로운 것을 가르치는 것이 더 어려울 위험이 있습니다. 그는 평소처럼 일하려고 노력할 것입니다. 아니면 그는 이렇게 말할 수도 있습니다. "당신은 여기서 모든 일을 잘못하고 있습니다. 제가 당신을 위해 바로잡도록 해주세요... 그리고 제게 두 배의 월급을 주세요." 따라서 회사는 아마도 최소한의 경험을 가진 사람을 고용하는 것이 더 나을 것입니다.

전문화에 대해 이야기하면 대부분의 IT 회사에는 프로그래머가 필요하며 프런트엔드, 백엔드, 시스템 안정성 지원 등 모든 분야의 전문가가 필요합니다. 일반적으로 이 모든 것은 소프트웨어 엔지니어, 즉 "소프트웨어 엔지니어"라는 용어로 설명됩니다. 그런 사람이 회사에 들어가면 자리를 찾아준다. 때때로 그는 회사의 현재 필요에 따라 다양한 업무가 주어지면서 한 프로젝트에서 다른 프로젝트로 이동하게 됩니다. 따라서 새로운 것을 빨리 배울수록 좋습니다.

회사에 중요한 것은 신입사원이 갖고 있는 지식의 양이 아니라 그 질입니다. 그리고 그 사람 자신이 어떤 사람인지, 그 사람의 개인적 특성이 어떤지 말이죠.

- 컴퓨터 하드웨어 전문가가 수요가 있나요?

Intel, Nvidia, Broadcomm 및 기타 유명 제조업체와 같은 개별 회사에 이러한 장소가 있을 수 있습니다. 나는 한때 그들과 많은 일을 했습니다. 그러나 그들은 일반적으로 소프트웨어 거대 기업만큼 크지 않습니다. 인텔에는 10만 명이 넘는 직원이 있지만 나머지는 그보다 더 적습니다. 그래서 거기에는 새로운 직원이 많이 필요하지 않습니다. 내가 아는 한, 그곳의 시스템은 Google과 거의 동일합니다. 사람이 똑똑하고 일하는 방법을 안다면 그곳에 갈 기회가 있습니다.

소프트웨어와 관련된 IT 회사가 훨씬 더 많습니다. 이것은 이해할 수 있습니다. 하나의 하드웨어에서 원하는 만큼 많은 프로그램을 만들 수 있습니다. 따라서 이 분야에는 더 많은 프로그래머가 필요합니다.

- IT 전문가가 사용할 수 있는 다른 활동 영역은 무엇입니까?

이제는 사람들이 기꺼이 고용되고 많은 돈을 받는 "인기 지역"이 있습니다. 기본적으로 데이터 처리입니다. 이러한 전문 분야에 대한 인기 있는 용어는 데이터 과학자입니다. 이는 인공지능 및 관련 기술의 전문가를 의미하는 경우가 많습니다. 이들은 빅 데이터로 작업하고 복잡한 데이터 처리 파이프라인을 작성하는 방법을 아는 사람들이며 비즈니스 인텔리전스에 참여하고 있습니다. 이는 비즈니스에서 빅데이터를 활용하는 것입니다. 여기에는 비즈니스 최적화, 고객 데이터 처리, 어떤 제품이 인기 있는지에 대한 정보 수집이 포함됩니다. 이러한 작업에는 엄청난 양의 데이터 분석이 필요합니다. 이러한 정보의 바다에서 데이터를 연구하고 패턴을 포착합니다.

이 클래스의 전문가는 아직 거의 없으며 모든 곳에서 필요합니다. 그러한 기술을 갖춘 사람이라면 러시아든 방글라데시든 세계 어디에 있든 고용될 것입니다.

누구도 이 직업이 계속해서 수요가 있을 것이라고 보장할 수 없습니다. 하지만 "지금 여기"라고 하면 이것이 미국에서 취업하는 좋은 방법입니다.

A.B: 미국에서 데이터 과학자의 평균 연봉은 연간 90,000달러입니다. 최고 수준의 전문가는 최대 $1,000,000까지 벌 수 있습니다.

프로그래머의 작업에 대해 이야기합시다. 미국 IT 회사에 지원할 때 가장 수요가 많은 언어는 무엇입니까?

회사마다 선호하는 것이 있습니다. 활동 분야와 개발하고 사용하는 소프트웨어에 따라 다릅니다.

가장 널리 사용되는 것은 Java, C++, Python, Ruby, JavaScript, 특히 node.js입니다. 덜한 정도 - PHP. 내 생각엔 그는 이미 천천히 떠나고 있는 것 같다. 이것들은 가장 인기 있는 것들입니다.

- 스위프트는 어때요?

내가 아는 한 Swift는 Apple에서만 사용됩니다. 개발자가 iPhone이나 Macintosh용 프로그램을 만들려고 한다면 이 언어가 그에게 유용할 것입니다. 다른 회사에서도 유용할지는 말하기 어렵습니다. 아마도 이 지식은 그곳에서 큰 수요가 없을 것입니다.

일반적으로 Apple은 Objective-C를 사용하다가 더 빠르고 프로그래밍하기 쉬운 최신 Swift를 개발했습니다.

Google은 처음에 iOS용 Chrome을 개발할 때 Objective-C를 사용했습니다. 이것이 역사적으로 일어난 일입니다. 프로젝트가 시작되었을 때 Swift는 아직 존재하지 않았습니다. 그리고 그들은 그것을 다시 실행하지 않았습니다. 프로그램이 Apple처럼 보이도록 쉘과 인터페이스 부분만 Objective-C로 작성했습니다. 그리고 대부분의 "채우기"는 C++로 이루어지며 iPhone에서도 잘 작동합니다.

- 아마도 문제는 이 언어 목록에만 국한되지 않을까요?

우리는 유용할 수 있는 많은 언어를 생각할 수 있습니다. 동일한 Google Go. 때로는 Golang이라고도 합니다. 이 키워드를 사용하면 인터넷에서 더 쉽게 찾을 수 있습니다. Go는 인기가 최고조에 달하고 있습니다. Google이 많이 작성하지만 다른 IT 회사에서도 사용됩니다. Docker는 Go로 작성되었습니다. 컨테이너를 관리하는데 사용되는 시스템입니다. 컨테이너는 일종의 가상 머신이며 매우 가볍습니다. 몇 초 안에 시작되고 여러 컴퓨터에서 동시에 실행될 수 있으며 모든 컴퓨터에서 동일한 환경을 보장합니다. Docker는 이를 "수행"합니다. 즉, 실행, 관리 및 제어합니다. 모두 Go로 작성되었습니다.

다른 언어도 있습니다. 구체적인 선택은 항상 해결해야 할 목표와 작업에 따라 달라집니다. 일반적으로 나는 이 문제에 그다지 관심을 기울이지 않을 것입니다. 결국, 훌륭한 개발자는 거의 모든 언어를 며칠 내에 매우 빠르게 마스터할 수 있습니다. 개발의 기반이 되는 알고리즘, 아키텍처 및 적절한 프로그래밍의 원리를 이해하는 것이 훨씬 더 중요합니다. 시스템을 구성하고 안정적으로 만드는 방법을 이해하고 상태를 모니터링할 수 있어야 합니다. 정말 중요한 것은 3일 만에 배울 수 있는 것이 아닙니다. 이를 위해서는 몇 달, 때로는 몇 년의 연구가 필요합니다.

따라서 "확실히 얻을 수 있는" 특정 언어를 배우지 않는 것이 더 중요합니다. 그것은 작동 방식이 아닙니다. 기본 원칙, 기본을 이해해야합니다. 그리고 새로운 것에 적응할 수 있습니다.

- 대형 IT기업 채용은 어떻게 진행되나요?

나는 이 질문에 대해 어느 정도 자세히 대답할 수 있습니다. 적어도 Google에 관한 한. 저는 사람들과 인터뷰를 많이 해서 이 시스템을 양면에서 보았습니다.

먼저 회사의 문턱을 넘어야합니다. 이것은 가장 어려운 단계 중 하나입니다. 다른 대형 IT 기업과 마찬가지로 Google은 매년 구직자로부터 수백만 건의 지원서를 받습니다.

주로 자동으로 분석됩니다. 그건 그렇고, 이것은 데이터 과학자가 해결하는 문제의 예입니다. 이러한 작업을 수동으로 수행하는 것은 불가능합니다. 이 필터를 통과한 지원서는 HR로 전송됩니다.

주목을 받는 가장 좋은 방법은 회사 내에서 추천을 받는 것입니다. 이때 직원이 귀하에 대해 다음과 같이 말할 수 있습니다. “나에게는 친구가 한 명 있습니다. 그 사람이 얼마나 뛰어난 프로그래머인지는 모르겠지만, 그는 똑똑한 말을 하고 전반적으로 똑똑한 사람의 인상을 줍니다. 그를 좀 더 자세히 살펴보아야 해요!”

여기서 포인트는 '클랜'을 맺고 '지인을 통해' 취업하는 것이 아니다. 어떤 사람이 Google이나 유사한 회사에서 오랫동안 성공적으로 일해 왔다면 그 사람은 똑똑할 가능성이 높습니다. 그리고 자신의 종족과 어울립니다. 이것은 세상만큼이나 오래된 관찰이며 여기에서 적극적으로 사용됩니다. '친구' 직원이 자신에게 회사에 도움이 될 수 있는 친구가 있다고 언급한다면, 그러한 추천은 지원자의 기회를 크게 높여줍니다. 이것이 취업을 보장하지는 않습니다. 인터뷰를 얻는 것이 더 쉬울 것입니다.

자, 지원자의 지원서가 확인됐다고 가정해 보겠습니다. HR 관리자인 Eichar는 그에게 전화를 걸어 그가 어떤 사람인지 알아보기 위해 전화할 것입니다.

인상이 좋으면 한 번 더 전화 인터뷰를 하기도 하고 때로는 2번을 하기도 합니다. 목표는 지식 수준을 파악하고 회사에 전혀 적합하지 않은 사람들을 제거하는 것입니다. 여기서 그들은 간단한 문제를 해결하도록 제안할 수 있습니다.

이번 인터뷰가 잘 진행됐다면, 사무실에서 진행되는 진지한 인터뷰가 기다리고 있다. 후보자는 회사에 초대되어 하루 종일 그와 긴밀하게 협력하게 됩니다.

이 모든 것은 단지 첫 번째 단계일 뿐입니다. 그리고 대다수는 그것에 대해 "실패"합니다.

- 지식의 수준과 질 또는 개인적 자질 중 무엇을 먼저 봅니까?

그들은 모든 것을 봅니다. 먼저 기술적인 부분이 있을 것입니다. 소프트웨어 엔지니어로 취업하게 되면 과제를 완료하고 이를 해결하기 위한 프로그램을 작성하라는 요청을 받습니다. 또는 더 복잡한 작업 - 문제를 해결할 수 있는 시스템 아키텍처를 개발하는 것입니다.

회사에서는 후보자가 고용될 때 효과적인지 여부를 이해하는 것이 중요합니다. 그러나 사람이 일하기 전까지는 그가 무엇을 할 수 있는지 알아내기가 어렵습니다. 이러한 작업은 수준을 결정하기 위한 근사치 시도입니다.

작업이 "올림피아드" 수준이었던 시기가 있었습니다. 지원자는 영리하고 우아한 해결책을 찾기 위해 사소하지 않은 것을 생각해야 했으며, 그렇지 않으면 결과가 불가능했습니다. 그러나 그러한 작업은 전문가에 대해 거의 알려주지 않으며 예측도 좋지 않습니다. 결국, 직원은 정말 매일 그런 수수께끼를 처리할 필요가 없을까요? 그가 일상적인 업무에 어떻게 대처하는지 알아내는 것이 훨씬 더 중요합니다. 따라서 이제 다른 시스템이 사용됩니다. 4~5명이 지원자에게 더 간단한 작업을 제공하지만 다양한 작업을 제공합니다. 이를 해결하려면 상식과 일정 수준의 지식이면 충분합니다.

그들은 또한 사람이 어떻게 행동하는지, 다른 사람과 의사소통하고 자신의 위치를 ​​잡는 방법, 그리고 이러한 작업을 수행하는 데 관심이 있는지 여부를 살펴봅니다.

인터뷰를 시작하면 그 사람에 대해 전혀 모릅니다. 나는 그가 똑똑하다고 생각하지만 그의 수준을 즉시 확인하고 싶습니다. 우선, 나는 그에게 매우 간단하고 완전히 부끄러운 문제를 제시합니다. 그리고 나는 그가 잠시 후에 그 문제를 해결하기를 바랍니다. 누군가 분개하기 시작합니다. “이게 무슨 말도 안되는 소리입니까? 이걸 왜 나한테 주는 거야? 나는 1학년인가? 이 모든 것은 즉시 지울 수 있습니다. 그는 일이 아니라 자신의 명성에 대해 더 관심을 갖고 "자신의 권리를 행사"하고 특별한 대우를 요구하지만 잘 작동하지 않을 것입니다. 이것은 경험에서 나온 관찰입니다. 나는 다른 회사에서도 비슷한 사람들과 일했습니다. 원칙적으로는 구글에 들어오지 않지만 가끔 인터뷰를 통해 만날 수 있습니다.

여기서의 교훈은 간단합니다. 인터뷰 중에 터프한 전문가인 척하려고 하지 마세요. 과제가 주어지면 해결하세요. 실제 작업에서는 이것이 바로 그렇게 될 것입니다. 대부분의 작업은 어리 석고 지루하지만 완료해야합니다. 당신이 "더러운 일"을 두려워하지 않고 어떤 문제라도 받아들일 준비가 되어 있음을 보여주세요.

그러면 난이도가 높아집니다. 작업이 간단해 보일 수 있고 그 사람은 행복해 합니다. 이제 잠시 후에 문제를 해결하겠습니다! 나는 결정했다. 그리고 지금도 똑같지만 경우가 다릅니다. 또는 빠르게 작동하도록 만들거나 실행 속도를 최적화하는 것이 때로는 어렵습니다.

그러한 것들은 연습과 경험을 통해서만 배울 수 있습니다. 인터뷰 전에 사람을 신속하게 "훈련"하는 것은 불가능합니다. 여기에서는 컴파일러 이론, 복잡성, 알고리즘, 데이터 구조의 기본에 대한 지식과 어깨에 머리가 필요합니다. 이러한 개념은 대학에서 가르치는 표준적인 내용이며, 어떤 언어로 프로그래밍하든 이러한 개념은 매우 중요합니다.

한 청년이 대학에서 강좌를 수강하고 시험에 합격하고 모든 것을 행복하게 잊어버렸다고 가정해 보겠습니다. 그런 다음 그는 프로그래밍을 시작합니다. 나는 알고리즘을 작성하고 실행했습니다. 작업이 끝날 때까지 예상되는 시간은 1억 년입니다. 그는 기억하기 시작합니다. 교수님이 우리에게 이런 말을 하셨고 속도를 높일 수있는 방법, 일종의 수학적 트릭이있었습니다. 나는 그것을 생각하고 기억하고 끝냈습니다. 그리고 모든 것이 순식간에 결정되기 시작했습니다. 이것이 좋은 프로그래머의 특징이다.

제가 아는 수학자 한 분이 계산 프로그램을 만들고 싶어 했습니다. 그는 프로그래머는 아니지만 여전히 뭔가를 썼습니다. 출시되었습니다. 프로그램이 "멈추고" 아무것도 하지 않는 것 같습니다. 그는 나에게 무슨 일인지 보라고 요청했습니다.

프로그램이 올바르게 구성되어 문제가 해결된 것으로 나타났습니다. 계산 수준은 13개뿐이며 각 수준에는 다음 수준, 즉 13의 56승에 대한 옵션이 56개 있습니다. 완료하는 데 엄청난 시간이 걸렸습니다. 좋은 프로그래머는 그러한 것들을 즉시 알아차리고 최적화할 수 있습니다. 이는 프로그래밍을 통해서만 얻을 수 있는 이론 지식과 경험입니다. 예를 들어, 학습 과정 중에.

- 지원자가 모든 업무를 완료하면 취업이 되나요?

이것이 유일한 결정 요인은 아닙니다. 그들은 어떤 면접에 합격했는지, 얼마나 성공적이었는지 살펴보고 다양한 지원자를 비교합니다. 그들은 그가 얼마나 자신있게 업무에 대처했는지, 얼마나 많은 시간을 소비했는지, 어떻게 행동했는지 분석합니다.

면접에 초대받았다고 모두가 채용되는 것은 아닙니다. 개수는 퍼센트 단위입니다. 정확한 수치는 밝히지 않겠습니다. 하지만 Google에서는 관례입니다. 어떤 사람에 대해 약간의 의심이 든다면 즉시 거부하는 것이 좋습니다. 그리고 이는 회사뿐만 아니라 지원자에게도 이익이 됩니다. 그는 다른 곳으로 갈 것이고 그들은 Google이 지원자를 얼마나 잘 필터링하는지 잘 알고 있습니다. 지원자가 구글 면접에 참석했다는 사실 자체가 채용 시 큰 장점이 된다. 그들은 그를 자세히 살펴볼 것입니다.

미국 회사에 취업할 때 구글에서 면접을 봤는데 안 받아줬다는 얘기가 나올 수도 있어요. 물론 실제로 인터뷰가 이루어졌다면 확인할 수도 있다. 어떤 사람이 Google에 성명서를 썼는데 답변조차 하지 않았다면 이야기할 가치가 없습니다. 그러나 회사가 지원자와 소통하기 위해 비행기 표를 지불했다면 이는 이미 자랑할만한 이유입니다.

- 구글에서는 어떤 일을 하시나요?

저는 Google Chrome 부서, 더 구체적으로는 Chrome 운영 부서에서 일하고 있습니다. Chrome 개발자를 위한 IT 지원입니다.

Chrome은 PC, Mac, 스마트폰 등 다양한 시스템을 실행하는 다양한 기기에서 실행됩니다. 각 아키텍처 유형에 대해 여러 가지 테스트를 실행해야 합니다. 모든 테스트는 클라우드에서 수행됩니다. 많은 양의 테스트 소프트웨어와 많은 가상 머신이 사용됩니다. 이것이 우리가 작동 순서대로 유지 관리하는 시스템입니다.

이제 우리는 백 명이 넘는 대규모 부서를 갖게 되었습니다. 그러나 Chrome은 일반적으로 대규모 프로젝트입니다. 최근에 얼마나 많은 사람들이 코드를 변경했는지에 대한 통계를 보면 1000명 이상을 셀 수 있습니다. 이는 바로 개발자들입니다!

- 이러한 대규모 프로젝트의 개발은 원격으로 진행되나요? 러시아를 떠나지 않고도 일할 수 있나요?

Chrome은 상당히 분산된 팀으로 전 세계 여러 지역에서 일하고 있습니다. 일부는 유럽에 있고 일부는 인도에도 있습니다. 하지만 우리 부서인 Chrome 운영은 주로 Mountain View에 있습니다. (마운틴뷰는 구글 본사가 위치한 도시입니다 - A.B.)

불행히도 러시아에는 더 이상 개발이 수행되지 않는 Google 엔지니어가 없습니다. 영업 전담 사무실은 있지만 더 이상 소프트웨어 엔지니어가 없습니다.

Google에는 어떤 다른 부서가 있나요? 취업을 하려면 전문분야를 알아야 하나요?

고객에게는 문제와 과제가 있으며 모든 IT 회사는 이에 대한 솔루션을 제공합니다. Google 내부에서는 이러한 솔루션의 클래스, 프로젝트별로 작업이 구성됩니다.

하지만 구글에 취업하고 싶은 사람이 이를 생각하기에는 아직 이르다. 가장 중요한 것은 "내부"로 들어가는 것입니다. 그러면 전문가가 그를 어떤 사건에 배정할지 알아낼 것입니다.

나는 특정 직업에 대해 전혀 선호하지 않았습니다. 그들은 방금 나에게 전화해서 “Google에서 일하고 싶나요?”라고 물었습니다. 나는 "왜 안돼? "라고 생각했습니다.

채용 담당자는 나에게 어느 부서에 일자리를 제안하는지조차 알려주지 않았습니다. 그래서 저는 실제로 Google에 일자리를 얻었습니다. 그런 다음에만 다양한 프로젝트를 진행하는 팀이 귀하의 포트폴리오를 살펴보고 누가 귀하를 가장 필요로 하는지 결정합니다. 그들은 당신을 위해 싸웁니다. 아니요, 문자 그대로는 아닙니다. 비유적인 의미입니다.

- 그렇다면 Google에 일자리를 구한 것은 당신이 아니라 Google에서 당신에게 일자리를 제안했다는 겁니까? 이런 일도 일어나나요?

그런 일이 일어납니다. 누군가 Google 내부에서 나를 '팔았습니다'. 이는 대기업의 일반적인 관행입니다. 그곳에 도착하자마자 HR 관리자가 다가와 자신이 알고 있는 훌륭한 IT 전문가의 연락처를 부드럽게 끌어냅니다.

사실, 경쟁회사에서 이직했다면 약 1년 동안은 그 회사에서 누군가를 추천할 권리가 없습니다. 사람들을 유인하는 것은 나쁜 형태입니다. 그리고 1년 안에 그것은 이미 가능합니다.

알고 보니 제가 다니던 회사에서 몇몇 사람이 구글로 떠났습니다. 그리고 불과 1년이 조금 지나서 그들은 그곳에서 제게 전화를 걸어 제의를 했습니다. 누가 나를 비난했는지 의심되지만 기분이 상하지는 않습니다.

지원자가 일자리를 얻었다고 가정해 보겠습니다. 다음 논리적 단계는 시민권입니다. 고용주가 이에 대해 도움을 줄 수 있습니까?

시스템에 대해 간략하게 설명하려고 합니다. 먼저 취업비자를 받아야 합니다. 유효기간은 최대 6년이다. 이 기간을 마치고 다른 체류 사유를 받지 못한 경우, 해당 국가를 떠나야 하며 1년 후에야 새 비자를 받을 수 있습니다.

회사에서는 1년 동안 직원을 잃는 것이 불편합니다. 그래서 외국인을 고용할 때 스스로 영주권을 신청하기 시작하는 경우가 많다. 그 과정은 저렴하지 않기 때문에 그러한 직원은 미국인보다 회사에 더 많은 비용을 지불합니다. 그러나 영주권을 가지고 있다면 더 이상 미국에서 거주하고 일하는 데 비자가 필요하지 않습니다. 평균적으로 완료하는 데 약 3년이 걸립니다.

거주 허가를 받은 후 5년이 지나면 시민권을 신청할 수 있습니다. 회사는 이에 대한 지원을 제공하지 않을 것입니다. 사실상 무제한 기간 동안 영주권을 가지고 해당 국가에 거주할 수 있기 때문에 이렇게 할 필요가 없습니다.

- 시민권 취득 가능성은 직업이나 근무지에 따라 달라지나요?

여기에는 많은 의존성이 없을 것 같습니다. 그러나 시민권 취득에 영향을 미치는 요소가 있습니다.

이미 거주 허가가 있는 경우 시민권은 거의 자동으로 부여될 수 있습니다. 그러나 여기서도 모든 것을 망칠 수 있습니다. 예를 들어 사람이 영어를 전혀 말하지 않는 경우입니다. 예를 들어, 그는 중국인이고 중국 회사에서 항상 일했습니다. 하지만 IT 분야에서는 이런 일이 전혀 일어날 가능성이 없습니다.

시민권 시험을 통과해야 합니다. 이것은 주로 미국 역사에 관한 100개의 질문입니다. 당신은 그들을 알아야합니다. 그다지 어렵지 않습니다.

가장 중요한 것은 개인 파일에 범죄가 없다는 것입니다. 우리는 심각한 범죄에 대해 이야기하고 있습니다. 도서관 카드를 연체했거나 어느 날 잘못 주차한 경우에도 영향을 받지 않습니다. 그리고 부주의한 운전으로 체포되면 문제가 발생할 수 있습니다. 형사 기소나 FBI 수색은 말할 것도 없습니다.

일반적으로 당신이 정직한 일꾼이고 인간처럼 행동한다면 모든 것이 잘 될 것입니다.

세르게이님, 자세한 이야기 ​​감사드립니다! 러시아에서 공부하고 미국에서 일하고 싶어하는 젊은 직장인들에게 어떤 작별 인사를 해줄 수 있나요?

당신이 좋아하는 일을 배우고 실패를 즐겨보세요. 실수는 대개 최고의 선생님입니다!

좋은 판단은 경험에서 나오고, 경험은 나쁜 판단에서 나온다는 영어 속담이 있습니다. :)

귀하의 취업 경험에 대해

Google 및 기타 Valley 회사(Microsoft, Amazon, Snapchat, Evernote, Cruise Automation, Uber 등)에서 인터뷰를 준비하면서 겪었던 모든 경험과 함정을 설명하려고 노력하겠습니다. 내 목표는 Google이나 Facebook에서 제안을 받는 것이었고, 다른 모든 회사는 "음, 거기에서 매우 흥미롭다면 할 수 있습니다"라는 범주에 속하는 것이 더 좋았습니다. 준비를 시작한 첫날부터 구글로부터 제의를 받은 순간까지 1년 5개월이 흘렀습니다. 1년 2개월의 준비 끝에 첫 제안을 받았습니다. 현장은 총 7번(회사 사무실에서 면접)이 있었고, 그 중 제안이 3번 있었습니다(Google, Evernote, Cruise Automation). 그럼 시작해 보겠습니다.

배경

저는 마운틴뷰에 있는 Google에서 1년 반 동안 공급업체로 근무했습니다. 이전에 공급업체였던 Google 직원도 여러 명 있었습니다. 물론 뇌는 그들이 나보다 "더 똑똑하고, 더 좋고, 더 멋지다"고 "다르다"고 끊임없이 나에게 말했습니다. 그리고 내 운명은 벤더가 되는 것이다. 한번은 LeetCode에서 문제를 해결하려고 시도한 적도 있습니다. 나는 다섯 번째 쉬운 문제를 마스터할 수 있었는데, 그 문제는 120줄의 코드로 밝혀졌고 결과적으로 테스트를 통과하지 못했습니다. 아름다운 캘리포니아 토요일 오후에 5시간이 걸렸습니다. 주변의 모든 사람들이 '기부'했다는 것을 마침내 깨달았지만 나는 그렇지 않았습니다.

하지만 여전히 Google 친구들과 많은 시간을 보내면서 대략적인 알고리즘, 즉 무엇을 어떻게 해야 하는지 이해했습니다. 그 말대로 딱 했고 제안을 받았어요(꽤 놀랐어요). 두 번째 뉘앙스는 제가 구글에서 프론트엔드를 했고 친구들은 모두 백엔드였는데 백엔드 준비에 대해 구체적으로 설명했다는 점이에요. 나는 생각하고 결정했습니다. “그리고 백엔드도 좋습니다 (오래 전에 .NET에 쓴 적이 있습니다). 나는 그들과 똑같이 갈 것이지만 그들보다 더 많은 일을 할 것입니다. 꼭 제안을 받을 거예요.”

동기 부여

대기업 면접 준비는 단거리 경주가 아니라 마라톤이다. 제 경험상 6개월에서 1년 반정도 걸렸습니다. 이번 마라톤은 연료가 많이 필요한데, 중간이나 끝에서 연료가 떨어지면 매우 슬플 것입니다. 그러므로 미리 자원을 준비해야 합니다.

내 말은 무슨 뜻인가요?

준비에는 많은 시간이 필요합니다. 주중 및 주말마다 약 2~3시간 정도 소요됩니다. 그것은 실제로 모든 자유 시간입니다. 나는 아내와 자녀가 없었고 한편으로는 더 간단했습니다. 아무도 지속적인 관심을 필요로하지 않습니다. 반면에 이를 지지하는 사람은 아무도 없습니다.

나는 당신이 "해안"에서 밀접하게 연결된 사람들과 협상하여 그들이 무엇을 기대해야 하는지 알고, 목표를 공유하고, 어려운 시기에 도움을 주어야 한다고 믿습니다.

또한 왜 이 일을 하는지, 무엇을 얻고 싶은지 명확하게 이해해야 합니다. 그리고 이 목표는 당신 외부, 당신보다 더 큰 것이 가장 좋습니다. 자신을 위해서만 뭔가를 하면 어려운 시기에도 점수를 얻을 수 있고, 다른 사람을 위해서라면 동기가 훨씬 높아져 멈추지 않는 데 도움이 됩니다.

실시예 1: “구글 멋있으니까 가고 싶다”, “페이스북 돈 많으니까 가고 싶다”- 이것은 당신을 위한 것입니다. 언제든지 Google이 낭비이고, 다른 회사보다 돈을 덜 주고, 지루하고, 정치가 많다는 기사를 찾을 수 있습니다. 그리고 무엇? 그리고 그게 다입니다. 동기 부여가 떨어지고 알고리즘이 포함된 책이 창 밖으로 날아갑니다.

실시예 2: “저는 가족을 미국으로 데려가고 아이들에게 좋은 교육을 제공하기 위해 구글에 합류하고 싶습니다.” “페이스북의 돈으로 이것저것 할 수 있습니다.”. 내 경우 동기는 다음과 같았다. "집에서 더 가까워지고 싶어요". 나는 런던이나 취리히로 이사하는 것을 고려하고 있었습니다. 준비를 시작했을 때 나는 스스로에게 이렇게 말했습니다. "얘야, 다음에 제안을 받으면 집으로 날아갈 때, 그래야만 해." 나는 집에 가고 싶었고 이것이 나에게 에너지를 주었다. 내 생각에 이것이 모든 사람에게나 항상 효과가 있는 것은 아니지만 나에게는 효과가 있었습니다.

두 번째 비결은 짝을 지어 준비하는 것입니다. 저는 개인적으로 사용해본 적이 없는데, 제 친구들은 이렇게 준비해서 성공했어요. 퇴근 후 사람들은 한 회의실에 함께 앉아 각자의 문제를 해결합니다. 그들은 또한 이사회에서 문제를 해결합니다. 한 사람은 면접관 역할을 하고 두 번째 사람은 면접 대상자 역할을 합니다. 이렇게 하면 피드백을 받을 수 있습니다.

일반적인 과정

전체 경로는 여러 단계로 나눌 수 있습니다.

  1. LeetCode 또는 InterviewBit을 사용하여 문제를 해결합니다.
  2. 알고리즘과 데이터 구조를 연구합니다.
  3. LeetCode에서 해결된 문제를 반복합니다.
  4. 디자인 면접을 준비하고 있습니다.
  5. 모의 인터뷰(전화 및 화이트보드).
  6. 실제 인터뷰.
  7. 제안과 알코올 망각.

문제 해결

이것은 준비 과정에서 가장 중요하고 가장 긴 부분입니다.

얼마나 많은 문제를 해결해야 합니까? 제 생각에는 200-250인데 그 중 40-50%는 쉬움, 40-50%는 중간, 10-20%는 어렵습니다. 나는 약 300, 내 친구를 120-160으로 결정했습니다.

먼저 알고리즘 강의를 듣고 문제를 해결한다면 어떨까요? 이것이 나의 첫 번째 아이디어였습니다. 친구들 덕분에 그들은 저에게 말을 걸었습니다. 쉬운 수준의 문제는 복잡한 알고리즘에 대한 지식이 필요하지 않으며, 간단한 문제는 문제를 풀면서 완성할 수 있습니다.

먼저 문제 해결이 담긴 『크래킹 코딩 인터뷰』 책을 다 읽고, 이미 만반의 준비를 갖추고 전투에 뛰어들면 어떨까요? 그럴 가치가 없어요 :) 방금 읽은 해결책은 며칠이 지난 것은 물론이고 같은 날이 끝나도 기억이 나지 않았습니다.

"크래킹 코딩 인터뷰"의 시작 부분을 읽어보실 수 있습니다. 거기에는 인터뷰 과정 자체, 의사소통 방법, 알고리즘과 데이터 구조에 대한 기본 사항, 알고리즘의 복잡성을 분석하는 방법 등이 잘 설명되어 있습니다. 예를 들어 재귀 알고리즘의 복잡성을 분석하는 방법을 배웠습니다.

특정 주제에 대한 문제 해결을 시작하기 전에 "코딩 크래킹 인터뷰"에서 유사한 문제에 대한 솔루션을 읽어볼 수 있습니다. 두 가지 이유가 있습니다:

  • 도중에 작은 갈퀴를 제거하고 사람들이 그러한 문제를 어떻게 해결하는지에 대한 일반적인 아이디어를 얻으십시오.
  • 터널 시야를 없애는 것은 수백 가지 문제를 해결했지만 실수로 고전적인 문제를 놓친 경우입니다. 그런 다음 인터뷰 중에 당신을 제외한 모든 사람이 그 존재를 알고 있는 까다로운 작업에 직면하게 됩니다(이것은 개인적인 경험에서 나온 것입니다).

일반적으로 어떤 작업이 존재하며, 어떤 주제를 다루어야 합니까?

InterviewBit에는 일반적으로 어떤 주제가 존재하는지 이해할 수 있습니다. 나는 그곳에서 문제를 해결하는 것을 별로 좋아하지 않았지만 일반적인 아이디어는 얻었습니다. 자, 그 외에 "Cracking Coding Interview"를 통해서도 보실 수 있습니다.

어떤 순서로 작업을 해결해야 하나요?

간단한 주제에서 복잡한 주제로 이동해야 합니다(InterviewBit에서 순서를 알려드립니다). 각 주제에서 조금이라도 성공할 때까지 문제를 해결하고 그 순간 즉시 다음 주제로 전환하십시오. 물론 쉬운 레벨부터 시작하세요. 저는 각 문제를 30분에서 1시간 정도 풀려고 노력했습니다. 할 수 없으면 해결책을 찾으러갔습니다. LeetCode에는 각 문제마다 사람들이 솔루션을 게시하고, 토론하고, 투표하는 포럼이 있습니다. 저는 최고의 솔루션을 선택하고 연구했고, 그렇게 배웠습니다. 이 포럼은 아마도 학습을 위한 가장 귀중한 장소일 것입니다. 모든 솔루션이 이해하기 쉬운 것은 아닙니다. "정말 대단해요!!!"라는 의견을 가진 솔루션도 있습니다.

예를 들어, 저는 문자열 문제를 해결하기 시작했습니다. 1차 - 결정하지 않고 해결책을 보러 갔습니다. 2차... 5차 - 똑같습니다. 6, 7일 - 결정했습니다. 이제 다음 주제로 넘어갈 시간입니다. 비결은 이것입니다. 가능한 한 자주 주제를 전환해야 주제를 더 잘 기억할 수 있다는 것입니다. 그러나 운동이 시작되기 전에 전환하면 몇 가지 주제 후에 완전히 의욕을 잃을 수 있습니다. 두뇌는 도움이 될 것입니다: "아무것도 결정할 수 없으니 가서 맥주를 ​​마시고 축구를 시청하세요. 그건 당신의 일이 아닙니다." 자존감과 기분이 롤러코스터와 같다는 사실에 대비해야 합니다. 효과가 있으면 서두르고, 효과가 없으면 낙담하고 넘어집니다. 첫 번째와 두 번째는 모두 임시적이라는 점만 기억하면 됩니다. 계속해야 합니다. 오랫동안 결과가 없으면 작업을 수행하기가 더 쉽습니다.

문제는 어떻게 해결됩니까?

물론, 아래에 설명할 내용에 신경 쓰지 않고 LeetCode에서 문제를 해결하고 해결할 수도 있습니다. 그러나 다음 알고리즘을 사용하면 실제 인터뷰의 단계를 완전히 반복하므로 결과가 훨씬 더 좋아질 것입니다.

  1. 우리는 문제의 상태를 읽습니다. 어떤 경우에도 상태를 끝까지 읽기 전에 해결책을 찾으려고 노력하지 않습니다. 이것은 중요합니다!!! 뇌는 비슷한 문제와 그에 대한 해결책을 찾으려고 노력하고 이를 필요한 문제로 전달합니다.
  2. 우리는 명확한 질문을 생각해 내려고 노력하고 있습니다.
    1. 예 1: 문자열을 어떻게든 변환해야 하는 작업이 있습니다. 무엇을 물어볼까? - 문자열에는 어떤 문자가 포함될 수 있습니까? ASCII 또는 유니코드? 여러 개의 공백이 나란히 있을 수 있나요? 줄의 시작이나 끝 부분에 공백이 있을 수 있나요? -,.^/ 같은 특수 문자가 있나요? 대문자와 소문자를 분석하는데 차이가 있나요? 입력 문자열은 얼마나 됩니까? 기계의 메모리에 맞나요?
    2. 예 2: Integer 배열이 있습니다. 그 배열에서 무언가를 찾아야 합니다. 질문: 반복되는 요소가 있나요? 음수가 있나요? 계산 결과가 Integer.MAX_VALUE보다 크면 어떻게 되나요?
  3. 우리는 바람직하게는 몇 가지 예를 그립니다. 하나는 클래식이고 두 번째는 코너 케이스입니다. 그런 다음 +/- 작업을 올바르게 이해했는지 확인해야 합니다.
  4. 우리는 "정면"으로 솔루션을 제시하고 그 복잡성을 평가합니다. 솔루션의 복잡성은 항상 결정되어야 합니다.
  5. 우리는 보다 최적의 솔루션을 찾아내고 그 복잡성을 평가합니다.
  6. 우리는 API 솔루션을 개발 중입니다. 어떤 방법이 있을 것인가(비공개 및 공개).
  7. 우리는 노트북에 코드를 작성합니다.
  8. 새로운 예제를 사용하여 노트북에서 코드를 디버깅합니다. 처음에 그린 예 중 하나를 선택할 필요는 없습니다. 이 경우, 우리가 가능한 모든 경우에 대한 솔루션이 아니라 이 경우에 대해 특별히 솔루션을 작성했을 확률이 매우 높습니다. 잠재적으로 솔루션을 깨뜨릴 수 있는 코너 케이스를 사용하여 새로운 예를 취하는 것이 좋습니다.
  9. 우리는 종이를 보지 않고 우리가 가장 좋아하는 IDE로 코드를 전송합니다. 따라서 솔루션을 두 번 반복합니다.
  10. IDE의 코드를 LeetCode에 복사하고 실행합니다. 완벽하게 실행되면 처음부터 올바르게 작동해야 합니다. 이것은 나에게 10%의 시간 동안 일어났습니다.

나는 이것이 "쓸모없는 일의 엄청난 양"처럼 들린다는 것을 깨달았습니다. “LeetCode로 코드를 작성하면 됩니다.” 그러나 약간의 연습을 거친 후에 이러한 모든 단계는 몇 분 또는 몇 초가 걸리며 이는 인터뷰에서 매우 중요합니다. 많은 사람들이 솔루션 작성과 디버깅을 완료할 시간이 부족하여 잠들었습니다. 그리고 나는 그들 중 하나입니다.

하지만 문제를 해결할 수 없다면 어떻게 해야 할까요?

30분, 1시간 안에 해결책을 찾을 수 없을 때(처음에는 한 문제로 반나절 동안 고생했습니다) 포럼에서 최고의 해결책을 찾아보았습니다. 솔루션을 구문 분석하는 것은 거의 항상 쉬운 작업이 아니며 시간이 걸립니다. 여러 솔루션을 검토 및 이해하고, 복잡성을 이해하고, 솔루션 작성자가 제공하는 알고리즘에 대한 링크를 끝까지 읽어야 합니다. 대부분의 알고리즘을 실제 솔루션에서 접한 후 발견하고 연구했습니다. 다음에 무엇을 해야 할까요? 그런 다음 이 문제에 대해 위에서 제시한 모든 단계를 반복해야 합니다. 그리고 다음날 또는 적어도 그 날이 끝날 때 하는 것이 훨씬 더 좋습니다.

모든 솔루션을 GitHub에 업로드했습니다. 통계는 명확하게 표시되며 언제든지 코드에 액세스할 수 있습니다. LeetCode가 모든 솔루션을 지운 후에 이 작업을 시작했습니다. 따라서 LeetCode는 솔루션을 저장하기에 가장 좋은 장소가 아닙니다.

알고리즘

나는 Coursera에 관한 Sedgwick 할아버지의 강좌(1부, 2부)에서 알고리즘을 공부했습니다. 이 과정의 비디오는 토렌트에서 찾을 수 있습니다.

이 코스의 첫 번째 숙제를 마친 후 나는 그 코스를 하지 않기로 결정했습니다. 그 이유는 숙제에서는 이러한 알고리즘을 구현하는 것보다 알고리즘이 포함된 기성 라이브러리를 사용하는 경우가 더 많기 때문입니다. 하지만 단순히 강의를 듣는 것만으로는 전혀 결과가 나오지 않습니다. 나는 듣고 전체 메모를 한 결과 전체 메모가 포함된 두 권의 노트를 얻었고 이를 4~5번 다시 읽었습니다. 인터뷰 전 마지막 며칠 동안, 많은 것을 빠르게 반복해야 할 때 정말 도움이 되었습니다.

두 번째 중요한 뉘앙스는 문제를 해결하는 과정에서 Sedgwick의 강좌에 포함되지 않은 일부 알고리즘과 트릭이 있다는 것이 분명해졌지만 이를 알아야 한다는 것입니다. 예를 들어 미로를 만드는 방법은 무엇입니까? 미로를 통과하고 탈출구를 찾는 방법은 무엇입니까? 그리고 물론 각 문제에 대한 문서도 백만 개가 넘습니다. 그러나 인터뷰 전에는 백만 개의 문서를 읽을 시간이 없습니다. 간단하고 요점을 명확하게 설명해야 합니다. 그래서 그런 것들을 하나의 도크에 모았습니다.

디자인 인터뷰

디자인 인터뷰는 '유튜브 디자인 방법'과 같은 소위 개방형 디자인 질문으로 구성됩니다. 처음에는 무엇이 필요하고 그것이 어떻게 생겼는지 전혀 이해할 수 없었습니다. 그러던 중 눈을 뜬 코스를 찾았다. 80달러의 가치가 있습니다.

예를 들어 High Scalability와 같은 실제 문제의 예를 읽는 것도 매우 유용합니다. 우리가 인터뷰하는 회사에 엔지니어링 블로그가 있다면 확실히 읽어 볼 가치가 있습니다.

행동면접

많이 써도 되지만 나한테는 잭슨이 말했어. 실제로 그러한 인터뷰는 Facebook에서만 이루어졌습니다. 면접관의 임무는 당신이 어떤 사람인지, 당신과 함께 일하는 것이 편안할지, 특정 회사에서 당신이 어떻게 행동할지를 이해하는 것입니다.

예를 들어, 페이스북 인터뷰에서 저는 다음과 같은 질문을 받았습니다. 여기 두 팀이 있습니다. 처음에는 관리자, 분석가, 작업이 작성되고 프로세스가 구축되며 누가 무엇을 해야 하는지 모두가 알고 있습니다. 두 번째는 구조화되어 있지 않고, 명확한 리더가 없으며(이 역할은 양도 가능), 수행 방법이 명확하지 않고, 결과적으로 어떤 일이 발생해야 하는지만 명확합니다(즉, 완전한 불확실성). 어떤 팀과 함께 일하는 것이 더 편한가요? 질문은 훨씬 더 복잡했습니다. 결론은 다음과 같습니다. Facebook에서는 팀이 구조화되어 있지 않습니다. 두 번째 옵션은 모든 것을 구조화하는 방법을 잘 설명합니다. 그리고 만약 당신이 이것으로 생활하는 것이 불편하다면 아마도 당신을 고용할 가치가 없을 것입니다.

모의면접

모의면접은 일반면접과 동일하지만 친구, 동료, 특수회사를 통해 진행된다는 점만 다릅니다. 그런 다음 그들은 좋은 점, 개선해야 할 점 등 피드백을 제공합니다. 이 또한 중요한 단계이므로 놓쳐서는 안 됩니다. 물론, 밸리에 있으면 이것을 하는 것이 훨씬 쉽습니다. 제 주변에는 구글 친구들이 많았어요. 저랑 모의면접을 20번 정도 해준 정말 멋진 친구들이었죠. 나는 울타리에 그림을 그리기 시작한 톰 소여(Tom Sawyer)와 같았고, 그 결과 모두가 울타리에 그림을 그렸다. 인터뷰는 물론 엄격한 시간 제한을 두고 화이트보드에 영어로 진행됐다.

나는 Interviewing.io에서 모의 ​​전화 인터뷰(그리고 실제 인터뷰)를 했습니다. 나는 이 자료를 정말 좋아했습니다. 사람들은 정말 훌륭합니다. 그러나 이제 그들은 미국에 맞춰져 있으며 미국 전역에 이 서비스를 제공합니다. Interviewing.io에서 일주일에 7~8번 정도 인터뷰를 했던 날도 있었습니다.

처음에는 무섭고 불편했어요. 그런데 10번째가 되자 익숙해지고 좋아지기 시작했어요. 나는 첫 번째 인터뷰에 실패했지만 일이 잘 풀리기 시작했습니다. 평균 전환율은 50%였습니다. 즉, 절반은 통과했고 나머지 절반은 실패했습니다. 총 30~35건의 전화인터뷰(실제 및 모의)가 이루어졌습니다.

신청 방법

가장 간단하면서도 비효율적인 방법은 회사 웹사이트에서 양식을 작성하는 것입니다. 그러나 때로는 결과를 제공합니다. 예를 들어, Snapchat 웹사이트에서 양식을 작성했는데 다음날 채용 담당자가 연락해 전화 인터뷰에 동의했습니다. Google에서는 이 양식이 하루에 수천 번 작성되기 때문에 이것이 전혀 쓸모가 없다고 생각합니다.

두 번째 방법은 Hired.com과 같은 채용 사이트입니다. 자신에 대한 모든 정보를 입력하면 귀하에게 적합한 회사에서 연락을 드립니다. 이 서비스는 미국 시장을 겨냥하고 있다. H1이나 영주권 없이는 할 수 있는 일이 없습니다.

세 번째 방법은 위에서 언급한 Interviewing.io와 이와 유사한 서비스입니다. 그들은 다음과 같이 일합니다. 먼저 플랫폼에서 모의 ​​전화 인터뷰를 진행합니다. 두 가지를 성공적으로 통과하면 해당 플랫폼에서 실제 회사와 익명으로 전화 인터뷰를 할 수 있는 기회가 제공됩니다. 예를 들어, Uber 직원과 당신이 동시에 와서 당신을 인터뷰합니다. 통과하면 온사이트입니다. 모의전화면접과 실제 전화면접은 전혀 다르지 않습니다. Interviewing.io에는 몇 가지 단점이 있습니다. 첫째, 스타트업과의 협력이 더 많다. 대기업이 거의 없다. 두 번째는 미국에 초점을 맞추고 있습니다(H1 또는 영주권이 필요함).

마지막이자 가장 효과적인 방법은 추천을 이용하는 것입니다. X 회사에 근무하는 사람이 채용 담당자에 대한 참조를 제공하는 경우입니다. 그는 당신을 어떻게 아는지, 그리고 당신이 적합하다고 생각하는 이유와 이력서를 명시해야 합니다. 이 후에 연락을 받을 확률은 매우 높습니다. 당신이 연락하지 않았다면 채용 담당자가 당신의 이력서에서 그를 경계하게 만든 내용을 보았을 가능성이 큽니다.

재개하다

밸리와 우크라이나의 엔지니어 이력서는 매우 다릅니다. 간략해야 하며(두 페이지를 넘지 않는 것이 좋습니다), 실제로 무엇을 했는지(회사에 미치는 영향)를 보여주어야 합니다.

Google의 엔지니어인 Larisa는 자신의 블로그에 인터뷰, Google 및 Valley에 대한 많은 글을 쓰고 있습니다. 그녀에게는 "검토를 위한 이력서"라는 흥미로운 섹션이 있습니다. 여기에서 사람들은 이력서와 함께 Google 문서에 액세스할 수 있으며 Larisa와 다른 독자들은 이에 대해 댓글을 달고 개선하려고 노력합니다.

전화인터뷰

표준 전화 인터뷰에는 음성 말하기(전화, Skype, 행아웃 등)와 공유 Google 문서 또는 공유 온라인 IDE에 코드 작성이 포함됩니다. 1시간에서 45분 정도 소요되므로 사전에 명시해 주셔야 합니다.

처음 몇 분은 서로를 알아가는 데 소요됩니다. 면접관은 자신에 대해 조금 이야기하고 지원자는 자신이 누구이며 무엇인지 응답해야합니다. 처음에는 이게 힘들어서 2분 동안 자기소개서를 작성하고 완성한 뒤 녹음기로 리허설을 했어요. 사실 이것은 당신에 대한 첫인상이므로 망치지 않는 것이 좋습니다.

다음으로 면접관은 문제 설명과 몇 가지 예를 공유 문서에 복사합니다. 하나, 둘 또는 세 개의 작업이 있을 수 있으므로 문제를 해결하는 데 얼마나 많은 시간이 주어지는지 즉시 명확히 하는 것이 좋습니다. 종종 이는 두 가지 작업으로 구성됩니다. 하나는 시작하기 간단하고 두 번째는 더 심각합니다. 때때로 이것은 하나의 작업이지만 첫 번째 부분이 준비된 후 면접관은 추가 조건을 사용하여 원래 작업을 복잡하게 만듭니다. 모든 설명을 마친 후에는 문제 해결을 위해 제가 제시한 계획을 따라야 합니다.

매우 중요한 점은 문제에 대한 해결책을 완전히 이해할 때까지 코드 작성을 시작하지 않는 것입니다. 그렇지 않으면 프로세스에서 실수를 저지르고 후속 실패로 인해 코드가 스파게티로 변할 가능성이 매우 높습니다. 다시 한 번 말씀드리지만, 해결책을 찾을 때까지 어떤 상황에서도 코드를 작성하지 마세요. 이런 실수를 수십번도 넘게 했는데 그때마다 후회했어요.

제가 겪었던 이 실수의 가장 극적인 예는 Evernote에서의 온사이트 인터뷰에서였습니다. 작업은 다음과 같습니다. 열차 일정이 포함된 CSV 파일을 구문 분석하고 특정 조건에서 최적의 열차를 선택하는 프로그램을 작성하는 것입니다. 구글링하시면 됩니다. 나는 이전에 Java로 파일 작업을 위한 코드를 작성한 적이 없었고 당황했습니다. 이제 파일을 빠르게 정리한 다음 어떻게든 알고리즘을 구축하기로 결정했습니다. 모든 것에 소요되는 시간 - 1시간 15분. 나는 기차, 경로 및 기타 쓰레기를 설명하는 여러 엔터티인 파일 읽기에 대한 아름다운 래퍼를 만드는 데 30분을 보냈습니다. 동시에 나는 선택 알고리즘이 어떻게 작동하는지 거의 알지 못했습니다. 그러다가 나는 따라잡을 수 없다는 것을 깨달았고, 알고리즘을 구축하는 방법을 이해하지 못했고, 당황하게 되었습니다. 인터뷰가 끝나기 12분 전에 나는 그것이 어떻게 되어야 하는지 깨달았다. 15분(3분 늦음) 만에 코드를 작성했습니다(그러나 몇 가지 오류가 있음). 내 인생에서 그렇게 빨리 코드를 작성한 적이 없습니다.

온사이트 인터뷰

전화 인터뷰가 성공했다면 다음 단계는 온사이트(onsight)입니다. 회사는 당신에게 비행기 표를 사주고, 호텔 비용을 지불하고, 당신은 비행기를 타고 그 회사를 방문합니다. 그래서 저는 Snapchat 인터뷰를 위해 로스앤젤레스로 날아갔습니다.

모든 인터뷰는 같은 ​​날 점심 시간을 포함하여 차례로 진행됩니다. 채용 담당자는 시간, 면접 유형, 면접관 이름을 포함한 일정을 미리 이메일로 보냅니다. 예를 들어, Snapchat에서는 점심 식사 전에 기술적인 문제가 두 개, 점심 후에 세 개가 있었습니다. 인터뷰 사이에는 휴식 시간이 없습니다. 한 인터뷰를 지연하면 다음 인터뷰에서 시간을 빼앗길 수 있습니다. 따라서 물과 화장실이 어디에 있는지 즉시 알아 내고 필요한 경우 번개처럼 그곳으로 달려가는 것이 좋습니다.

온사이트 인터뷰에는 어떤 유형이 있으며 어떻게 준비해야 할까요?

작업에 대한 고전적인 기술 인터뷰

여기의 모든 것은 비교적 명확합니다. 전화와 동일합니다. 다음 사실을 명심해야 합니다. ⅔ 시간 내에 완료하고 예상치 못한 상황에 대비해 ⅓을 남겨 두어야 합니다. 저를 믿으세요. 그런 일이 일어날 것입니다. Google에서는 인터뷰 1회에 45분이 소요됩니다. 이는 귀하를 만난 후 25분 동안 모든 일을 처리해야 함을 의미합니다. 이 중 2~5분은 문제를 이해하고 예제를 그리는 데 소요되며, 2~5분은 해결책을 찾는 데, 15~20분은 코드 작성 및 디버깅에 소요됩니다. 물론 디버깅 중에 오류가 발생하기 마련이므로 이를 빠르고 아름답게 수정해야 합니다. 이것이 바로 그 소중한 ⅓이 필요한 이유입니다.

주의 사항 - 인터뷰에 갈 때는 항상 노트북을 들고 가야 합니다. 첫 번째 단계는 코딩할 수 있는지 물어보는 것입니다. Facebook에서 그들은 나에게 노트북이 있습니까?라고 물었습니다. 그것에 코딩하고 싶니? 대답은 물론 그렇습니다! 속도가 더 빠르고 오류 가능성이 훨씬 낮습니다. 게다가 화이트보드와 IDE에서 코드를 다시 작성하는 것은 두 가지 큰 차이점입니다. 나는 화이트보드에서 오류를 수정한 결과 코드를 완전히 읽을 수 없게 되는 상황을 반복적으로 경험했습니다(대부분 새로운 오류가 발생할 가능성이 높습니다). 이를 바라보는 면접관들은 안타까움과 눈물을 보였다.

노트북에는 선호하는 IDE와 표준 템플릿이 포함된 프로젝트가 있어야 합니다.

  • 파일 작업;
  • CSV 파일 구문 분석;
  • http를 통해 읽기;
  • 스타일이 첨부된 HTML 문서.

제가 Evernote를 사용하면서 겪었던 슬픈 경험도 기억하시나요? 그래서 다음 현장에서도 CSV를 구문 분석하라는 요청을 받았는데 3분이 걸렸습니다. 면접관은 이러한 템플릿을 사용해도 상관하지 않습니다. 시간을 절약하고 Google에서 파일 구문 분석 방법을 검색할 수 있다는 점을 이해합니다.

중요한 점은 항상 시간을 통제해야 한다는 것입니다. Google에서 한 인터뷰에서 25세 정도의 면접관이 나에게 까다로운 동적 프로그래밍 문제를 물었습니다. 나는 이 문제를 2차 시간으로 해결하는 방법을 찾았고 그는 "더 좋은 방법이 있나요?"라고 물었습니다. 그리고 나는 이것을 하는 방법을 찾기 시작했고 당황스러워졌지만 "더 나은" 해결책을 찾을 수 없었습니다. 우리의 대화는 계속됩니다:

나: 더 나은 해결책이 생각나지 않습니다. 어쩌면 우리가 내 결정을 쓰고 그 후에 그것에 대해 생각해 볼 수 있을까요?
그: 10분만 더 생각해 봅시다. 찾지 못하시면 저희가 직접 작성해 드리겠습니다.
나: 시간이 부족할 수도 있을 것 같습니다. 먼저 내 것을 쓰자.
그: 글쎄요.

나는 5분 늦게 솔루션을 완료했습니다. 만약 내가 그의 말을 들었다면 아무 글도 쓰지 않았을 것이고, 인터뷰에 100% 실패했을 것입니다. 그 이후에는 그들은 당신을 우주 비행사로 고용하지 않습니다. 문제는 그가 해결책을 철저하게 알고 있으면서 칠판에 문제를 쓰는 데 얼마나 많은 시간이 필요한지 추정하고 있었다는 것입니다.

이전 프로젝트 이야기

이 질문에 대해 미리 잘 준비하고, 무엇을 말해야 할지 생각해야 합니다. Google 프레젠테이션에서 간단한 프레젠테이션을 준비하고 화이트보드에 다이어그램을 그리면서 이야기를 나눌 수도 있습니다. 여기에서 결정의 중요성(이 모든 것이 무엇을 위한 것인지)과 솔루션의 복잡성을 보여줄 필요가 있습니다.

그런 인터뷰에서 처음 실패한 후, 재미있는 GIF가 많이 포함된 14슬라이드 프레젠테이션을 만들고(곧 옵니다, 친구들!) 집에서 거울 앞에서 완성했습니다. 그러다가 그런 인터뷰가 시작될 때 항상 프레젠테이션에 시간이 얼마나 있는지 물었고 그런 다음 모든 슬라이드를 보여주거나 핵심 슬라이드만 보여주었습니다. 물론, 슬라이드에 있는 모든 정보가 공개되어 있고 기업 비밀이 노출되지 않는지 확인해야 합니다.

디자인 인터뷰

이것은별로 무섭지는 않지만 구체적인 별개의 짐승입니다. 여기서는 "Dropbox를 구축해야 합니다"와 같은 매우 일반적인 초기 조건을 제공하고 불확실성의 가시덤불을 헤쳐나가는 모습을 지켜봅니다. 어떤 질문을 하고, 문제를 어떻게 분석합니까?

이러한 유형의 인터뷰를 통해 얻은 결론은 다음과 같습니다.

  • 첫 번째 단계는 요구 사항을 수집하는 것입니다. 시스템이 충족해야 하는 매우 명확하고 구체적인 요구 사항입니다. 물어볼 수 있는 일반적인 질문: 사용자 수, 활성 사용자, 시간대(한 명 또는 몇 명). 허용 기준 - 네트워크 대역폭(들어오는/나가는 트래픽), RAM, 스토리지, 대기 시간, 배터리 수명(모바일용) 등
  • 면접관이 시스템을 구축하는 고객(또는 사용자)이라고 상상해 보십시오. 그에게 필요한 것은 무엇입니까? 이 외에 무엇을 제공할 수 있습니까(통계 수집, 관리 패널)?
  • 이 시스템에는 어떤 종류의 사용자가 있습니까? 종종 일반 사용자와 관리자 등 여러 사람이 있습니다. 그리고 이에 대한 요구 사항은 근본적으로 다를 수 있습니다. 이를 이해하려면 모든 사용 사례를 수집해야 합니다. 하나의 사용 사례는 API의 하나의 메서드에 해당합니다.
  • UI(있는 경우), API, DB 스키마의 세 가지 핵심 요소를 정의합니다. UI를 그리다 보면 새로운 사용 사례를 발견하고 이에 대해 논의할 수 있는 경우가 많습니다.
  • 사용자 수, 초당 요청(쿼리)(QPS), 대기 시간, API 대기 시간, 필요한 디스크 공간(예: 5년 동안), 캐시 공간, 들어오고 나가는 트래픽 등 가능한 모든 것을 평가하세요.
  • 읽기-쓰기 비율을 별도로 평가하십시오. 우리 시스템이 읽기가 무거운가요, 아니면 쓰기가 무거운가요? 이에 따라 데이터를 어떻게 쓰고 읽게 될까요?
  • 데이터 저장 및 캐싱은 어떻게 구성됩니까? 비용이 많이 드는 작업을 처리하려면 대기열이 필요할까요? 복제본과 샤드는 어떻게 구성되나요?(이러한 개념의 차이점을 명확하게 이해해야 합니다.)
  • 이해를 돕기 위해 먼저 100명의 사용자를 위한 시스템을 구축해보겠습니다. 면접관이 이 디자인에 동의하면 우리는 이를 수천, 수백만 명의 사용자에게 어떻게 확장할지 생각할 수 있습니다.
  • 장단점을 찾아 논의하십시오. 예를 들어 일관성과 속도 사이의 절충안이 될 수 있습니다. 이 맥락에서 더 중요한 것은 무엇입니까? 이것을 달성하는 방법은 무엇입니까?
  • 다이어그램을 그릴 때 단일 블록이 단일 복사본이 되어서는 안 되며 항상 여러 개의 블록이 모여 있어야 합니다. 노드 하나가 중단되면 즉시 복제본으로 교체되어야 합니다. 어떤 긴급 상황이 발생할 수 있는지, 어떻게 대처할 것인지 생각해 보아야 합니다.
  • 그리고 가장 중요한 것은 면접관의 말을 주의 깊게 듣고 절대 그와 논쟁하지 않는 것입니다. 이것은 당연한 것 같지만 나를 포함한 많은 사람들이 이를 잊어버립니다.

면접관에게 질문

각 면접이 끝나면 면접관이 5분 동안 질문할 시간을 줍니다.

나쁜 질문의 예: 어떤 프로그래밍 언어로 작성하시나요? 어떤 클라우드에 인프라를 보유하고 있나요? 어떤 DBMS를 갖고 있나요? 여기서 문제는 무엇입니까? 회사는 한두 달 안에 기술적 세부 사항을 이해해야 하는 만능 군인을 고용합니다. 즉, 실제로는 중요하지 않습니다. 너무 좁습니다.

무엇을 물어보는 것이 가장 좋은가요? 가장 간단한 것은 면접관이 회사에 대해 좋아하는 것과 싫어하는 것이 무엇인지, 그가 이 회사를 선택한 이유입니다. 비즈니스에 대해 물어볼 수 있습니다. 작동 방식, 문제 및 요구 사항은 무엇입니까? 근무 조건에 대해 물어볼 수 있습니다. 사람들이 언제 출근하고 퇴근하는지, 원격 근무 여부, 집회 횟수, 종류 등을 물어볼 수 있습니다.

중요한 현장 방문 10일 전

저는 가장 중요한 두 가지 통찰력을 얻었습니다. 바로 Google과 Facebook이었습니다. 구글이 처음이라 걱정도 많이 됐습니다. 현장 방문 10일 전에 나는 매일 해야 할 일에 대한 일정을 세웠습니다. 여기에는 알고리즘 반복, 일반적인 작업, Google 인터뷰 중 접한 작업, 디자인 질문이 포함되었습니다. 면접 5일 전부터 출근하지 않고 준비에 몰두했어요.

나는 선수들이 중요한 대회 전에 어떻게 준비하는지에 관심을 갖게 되었습니다. 위기의 순간에 당황하지 않으려면 그들은 무엇을 합니까? 중요한 점 중 하나는 미래의 성과를 머릿속으로 재현하고 실제와 가까운 조건에서 훈련하는 것입니다.

저는 구글에서 TVC로 일하고 있었기 때문에 (인터뷰가 진행될 주말 전에 회의실을 배정받았습니다) 그곳에 와서 준비를 했습니다. 저는 면접 당일 도착 예정 시간에 맞춰 도착했고, 며칠 후 제가 할 곳에 차를 주차했습니다. 의자를 재배치하고 마커의 색상, 화이트보드에 쓰기에 편리한 글자 크기를 선택했습니다. 아마도 이것이 제가 인터뷰 중 하나에 실패할 뻔했던 순간에 제가 정신을 차릴 수 있게 해준 것일 수도 있습니다.

결정적인

온사이트가 있은 지 며칠 후 채용 담당자가 저에게 전화를 했습니다. 그는 나를 축하하고 내가 잘 했고 모든 일이 잘 됐다고 말했습니다. 그들은 스위스 취리히에서 나를 위한 팀을 찾았습니다. 공식 직위 - 소프트웨어 엔지니어. 나는 숨을 내쉬었다. 머리가 완전히 텅 비어서 달렸습니다. 1년 5개월 만의 레이스가 종료됐다.

구직사이트 글래스도어(Glassdoor)에 따르면 구글의 평균 연봉은 미국에서 5번째로 높다. 그러나 이러한 고임금 직위 중 하나를 얻으려면 전체 전략을 개발하고 따라야 합니다. 특히 대학을 막 졸업했고 GPA가 높지 않은 경우에는 더욱 그렇습니다. Business Insider는 Quora에 대한 토론에서 얻은 팁을 예로 들어 최고의 학업 성적이 아니더라도 군중 속에서 눈에 띄는 방법에 대해 이야기합니다.

알렉세이 젠코프

구글은 회사 선정의 모든 단계를 거치는 것이 극도로 어렵다는 사실로 유명합니다. 그러나 최근에는 취업 지원자를 선별하는 데 중요한 기준이었던 기말고사 점수와 GPA 평가를 포기했습니다.

“구글이 GPA와 기말고사 성적에 대한 정보를 요청한 건 다들 아시겠지만, 대학을 졸업한 지 최소한 몇 년이 지나면 더 이상 이런 일을 하지 않습니다. 우리는 이러한 매개변수가 유용하지 않다는 것을 깨달았습니다.”라고 전 Google HR 책임자인 Laszlo Bock이 말했습니다.

하지만 Google은 선발 과정에서 여전히 학위를 요구합니다. “학부 과정에서 이수한 과목에 대한 졸업장과 정보를 제공하라는 지시를 받았습니다. 어렵지는 않았지만 예상하지 못했습니다.” Glassdoor에 대한 한 지원자의 리뷰를 읽습니다.

최근 대학을 졸업했거나 인턴십을 지원하는 경우 GPA가 더욱 중요해집니다. 그러나 군중 속에서도 눈에 띄는 데 도움이 되는 것들이 있습니다. 다음은 이를 수행하는 12가지 방법입니다.

출처: 톰슨 로이터

1. 전문적인 경험을 쌓으세요

“귀중한 업무 경험이 있다면 대학 학위가 전혀 없을 수도 있습니다. (물론 올바른 전문 분야가 있으면 항상 더 좋습니다.)”라고 함부르크의 Google 직원인 Lutz Enke는 말합니다.

2. 프로그래밍 기술 개발(기술 직위에 지원하는 경우)

“GPA는 단지 하나의 기준일 뿐입니다. 막 시작하는 경우 중요한 것은 코드를 얼마나 잘 이해하고, 코드를 개선할 방법을 어떻게 생각할 수 있으며, 얼마나 빨리 성장할 수 있는지입니다.”라고 패널리스트 중 한 명인 개발자 Gaanesh Kap은 말합니다.

3. 회사의 일반 홈페이지를 통해 지원하지 않는 것이 가장 좋습니다. (인턴십, 대학 채용 프로그램, 추천 중심)

출처: 구글

“GPA가 가장 높지 않은 상태에서 인터뷰를 하는 가장 좋은 방법은 일반적인 인터뷰를 하는 가장 좋은 방법과 같습니다... 회사 웹사이트의 채용 섹션과 같은 외부 리소스를 통해 지원한 경우 너무 높지 않습니다.”라고 Microsoft, Amazon 및 Google의 인터뷰 전문가인 John L. Miller는 말합니다.

4. Google 채용 담당자에게 직접 문의하세요.

출처: Biaconshock

“저는 Google에서 두 번의 인터뷰를 가졌습니다(두 번 모두 처참하게 실패했습니다)… LinkedIn을 통해 Google 채용 담당자를 찾아 편지를 보낸 후 첫 번째 채용 담당자를 찾았습니다. 세 사람에게 편지를 보냈고 그 중 한 명이 응답했습니다.”라고 시스템 엔지니어 Mark Kutzmarski는 말합니다.

5. 전문 분야에서 자신을 발전시키고 Google에서 말하는 'T자형' 사람이 되세요.

Staff.com은 블로그에 "구글은 한 분야에서 매우 유능하고 때로는 최고이지만 다른 관심사도 갖고 있는 "T자형 인재"를 찾고 있습니다.

6. GPA가 낮다면 GPA에 관한 정보를 추가하지 마세요.

“엔지니어가 충분히 훌륭하다면 Google이 GPA를 검토하지 않는다는 것은 누구나 알고 있습니다. 그럼에도 불구하고 HR 전문가가 귀하의 이력서를 수천 개의 다른 이력서와 비교할 때 귀하의 장점이 아닌 것을 추가하지 않는 것이 좋습니다. 그리고 낮은 GPA는 기회를 해친다고 생각합니다.”라고 사이버 보안 전문가 Shubham Bansal은 말합니다.

7. 대학을 졸업한 후 3년 이상이 지날 때까지 기다리세요.

“졸업 후 3년 이내에 지원하는 경우 Google은 졸업장 성적에 대한 정보를 요청하며 해당 정보는 회사 채용 담당자에게 영원히 보관됩니다. 인내심을 갖고 이 정보를 구체적으로 제공하지 않는다면 아무도 이에 대해 물어봐서는 안 됩니다.”라고 MIT 컴퓨터 과학 졸업생인 Harvey Alcabez는 말했습니다.

8. 추가적인 취미와 활동으로 이력서를 작성하세요.

“가장 어려운 점은 이력서 확인을 통과하는 것입니다. GPA 정보 외에 다른 내용이 포함되어 있으면 더 좋을 것입니다. 그들은 하루에 3,000개의 이력서를 받으며 물리적으로 모든 사람을 인터뷰에 초대할 수는 없습니다.”라고 Google의 HR 엔지니어인 Bruce R. Miller는 말합니다.

9. 엔지니어링 기술을 선보이세요

Mulesoft의 분석 엔지니어인 Noam Ben-Ami는 "당신의 탁월한 엔지니어링 기술에 대한 증거가 있는지 확인하십시오."라고 조언합니다.



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: