2015년 5월 7일 목요일

구글 엔지니어에 필요한 11가지 기술에 대한 칼럼을 읽고

구글 엔지니어에 필요한 11가지 기술에 대한 칼럼을 읽었는데, 유용한 정보인것 같아서 블로그에 남겨놓는다.

  1. 컴퓨터 과학 기초분야 습득
  2. 하나 이상의 객체지향 프로그래밍 언어: C++, 자바, 파이썬
  3. 다른 프로그래밍 언어: 자바스크립트, CSS, 루비, HTML
  4. 자신의 코드를 테스트
  5. 이론수학
  6. 자료구조 및 알고리즘 이해: 큐, 스택, 그래프정렬, 퀵정렬, 머지정렬, 힙정렬 등
  7. 운영체제에 대한 이해
  8. AI 에 대한 이해
  9. 컴파일러에 대한 이해
  10. 암호화
  11. 병렬 프로그래밍

이중에서 단 몇가지라도 갖춰놓아야 하겠지만 항상 생각 만으로 끝나는 것 같다. 

그리고, 이렇게 나열해보니 내자신이 개발자라고 하기엔 너무나도 많이 부족하다는 생각이 든다. 또한, 지금 개발자로서의 기본적인 소양도 갖춰지지 않은 상태에서 기획까지 손대고 있다. 그러면서 필연적으로 찾아오는 개발/기획에 대한 정체성도 흔들리면서 무엇 하나 제대로 못한다는 자괴감마저 들고 장기적인 슬럼프에 빠져있다.

어제 임백준님의 칼럼에서 본 내용중에 폴리그랏 프로그래머에 대한 내용이 나왔는데, 본인이 잘하는 그리고 사용하는 한가지 언어만 깊게 파고드는게 아니라 여러가지 언어를 골고루 사용할줄 아는게 요즘 프로그래머 트렌드라고 한다. 

“앞으로 프로그래머는 어느 하나의 언어에 안주할 수 없다. 패러다임을 달리 하는 여러 개의 언어를 자유롭게 구사하지 않으면 살아남을 수 없는 폴리글랏 프로그래밍의 시대가 되었기 때문이다. 자신의 포트폴리오를 어떤 언어로 구성하는지는 각자의 몫이다. 하지만 앞으로는 프로그래머가 어떤 언어에 대해서 얼마나 많이 알고 있는가 하는 것이 아니라 어떤 언어를 얼마나 빠르게 학습할 수 있는가 하는 것이 더 중요하다는 점을 기억하기 바란다.” 

또한 요즘 통섭형 인재(인간중심의 기술이 중요해지는 트렌드에 맞춰 인문학적 소양과 기술에 대한 이해를 동시에 갖춘 인재)라는 말이 많이 나오는데 개발자에게 있어서 통섭의 다른 이름은 폴리그랏이다. 서로 다른것들이 합쳐지면서 새로운 활로를 개척하는 것이 통섭이다.

폴리그랏, 통섭형 인재, 그리고 위에서 언급한 11가지 필요기술

현재 내가 추구해야 할 커리어패스에 가장 부합해 보인다.
그리고 그중에서 가장 중요하고 필요한 실행력

출처: http://techholic.co.kr/archives/30399?utm_source=twitterfeed&utm_medium=facebook


officesnapshots_google_150123_1
구글 엔지니어에 필요한 11가지 기술
구글은 공짜 음식과 24시간 사용 가능한 체육관, 무료 세탁 같은 복리 후생을 지원하는 꿈의 직장이다. 이를 증명하듯 해외 취업 정보 사이트인 글래스도어(Glassdoor)가 급여와 복리 후생이 뛰어난 기업 TOP25 가운데 최고 평점을 받기도 했다.
구글은 엔지니어 의견을 존중하는 건 물론 평균 연수입도 12만 달러(한화 1억 3,000만원대)인 것으로 알려져 있다. 이런 구글 엔지니어가 되려면 필요한 11가지 기술에는 어떤 게 있을까.
먼저 기초 습득. 유다시티(udacity)와 코세라(coursera) 등을 통해 컴퓨터 과학 기초 분야를 확실하게 습득해둘 필요가 있다는 것. 다음은 적어도 하나 이상 객체지향 프로그래밍 언어를 배워야 한다는 것이다. C++이나 자바, 파이썬 같은 객체지향 프로그래밍 언어를 적어도 하나 이상은 습득하라는 것이다.
다음은 다른 프로그래밍 언어다. 자바 스크립트나 CSS, 루비, HTML 등 프로그래밍 언어를 배우는 것이다. 이를 위해 W3스쿨스(W3Schools)나 코드아카데미(Codecademy) 같은 곳에서 배우는 걸 추천한다고 한다.
google_office_140325_1
다음은 자신의 코드를 테스트하는 것. 구글은 버그를 발견하기 위해 테스트를 진행하고 자신의 코드를 깰 수 있는 인재를 요구한다고 한다. 다음은 이론 수학. 예비 지식으로 이론 수학에 대한 지식은 컴퓨터 과학 분야와 비슷하게 습득해두면 도움이 될 것이다. 또 알고리즘과 데이터 구조에 대한 이해 능력도 필요하다. 구글은 기본적인 데이터 유행 학습이나 정렬 알고리즘에 대한 기초 지식을 요구한다.
운영체제에 대한 지식도 필요하다. PC를 활용하는 직업인 만큼 운영체제에 대한 지식도 필요하다. 또 인공지능에 정통하면 유리하다.
다음으로 컴파일러 생성 능력 습득. 구글은 프로그래밍 언어에 대한 지식 뿐 아니라 프로그램 소스 코드를 원하는 코드로 바꾸는 컴파일러 작성 기술도 요구한다. 암호화 방법도 필요하다. 인터넷에서 결정적인 건 보안 요소다. 암호화 방법에 관한 지식도 필요한 요소인 것. 마지막은 병행 프로그래밍이다. 대량 계산을 동시에 처리 가능해야 하는 만큼 병행 프로그래밍에 관한 지식도 중요하게 됐다.

구글은 첫 인턴 기간에 7만 달러에서 9만 달러 사이 월급을 지급하며 일반 소프트웨어 엔지니어가 되면 연간 11만 8,000달러, 고급 소프트웨어 엔지니어는 15만 2,985달러까지 올라간다고 한다. 구글에 취업을 원하는 사람의 수는 연간 250만 명이 넘는다고 한다. 하지만 실제로 구글이 1년간 채용하는 인원은 4,000명 정도다. 구글은 이들을 채용할 때 기술 숙련도를 보는 게 아니라 개개인의 자질까지 종합적으로 판단, 인재를 판단하고 있다고 한다. 관련 내용은 이곳에서 확인할 수 있다.

댓글 없음:

댓글 쓰기