티스토리 뷰
프로그래머라면 구글에서 일하는 꿈을 한번씩은 꿔 볼 것이다. 평균 연봉이 12만 달러를 넘는 구글의 엔지니어가 되기 위해서 필요한 11가지 스킬을 정리한 글이 있어서 정리를 해봤다. (링크 : 11 skills you need to master to land a $100,000 engineering job at Google - Business Insider India)
1. Mastering the foundation (기초 습득)
우선 컴퓨터 사이언스 관련 기초 지식을 확실하게 습득해야한다. 운영체제와 컴퓨터 구조 같은 정보는 실무에 쓸 모 없을 것 같아보이지만 새로운 지식을 얻을 때 두고두고 도움이 된다. 최근에는 각 대학들이 오픈 코스웍으로 강의 정보를 공개하고 있고, Undacity나 Coursera 같은 인터넷 사이트에 다양한 강좌들이 공개되어 있다.
2. Learn to code in at least one object-oriented programming language (객체 지향 프로그래밍 언어를 최소한 한 가지는 알아 둘 것)
Java, C++, Python 같은 널리 사용되는 객체 지향 프로그래밍 언어를 적어도 한가지는 자유자재로 사용할 줄 알아야한다. ( MIT의 자바 강좌, Udacity의 파이썬 강좌 등을 통해서 객체 지향 언어의 기본을 배울 수 있다.)
3. Learn other programming languages (그 밖에 프로그래밍 언어를 공부하라)
자바스크립트(Javascript), 타입스크립트(Typescript) 혹은 CSS, 루비, HTML 같은 다양한 언어에 대해서 공부하라. ( W3school이나 CodeAcademy 등을 통해서 배울 수 있다.)
4. Test your code (자신의 코드를 테스트 하라)
구글은 엔지니어에게 버그를 잡을 수 있고, 테스트를 만들 수 있으며 자신의 소프트웨어를 스스로 파괴할 수 있는 능력을 원한다. Udacity에 소프트웨어 테스트와 관련된 강좌가 있으니 도움이 될 수 있다.
5. Have some background in abstract math (수학을 멀리하지 마라)
컴퓨터 과학의 뿌리는 결국 수학이다. 수학적 사고 능력을 갖추고 있으면 다양한 문제 해결에 도움을 얻을 수 있다. 논리와 관련된 수학 지식을 습득하면 도움이 많이 된다. (MIT의 오픈 코스웍이 도움이 될 수 있다.)
6. Understand algorithms and data structures (알고리즘과 자료구조를 이해하라)
데이터를 처리하고 문제를 해결하는데 꼭 필요한 기본 지식인 알고리즘과 자료구조에 대해서 잘 이해하고 있어야 한다. 스택, 큐 같은 기본적인 자료구조와 '퀵 정렬'이나 '병합 정렬', '힙 정렬' 등의 정렬 알고리즘에 대한 이해를 필요로 한다.알고리즘과 자료구조에 대한 정보는 MIT 오픈 코스웍이나 "The Algorithm Design Manual" 등의 책을 참조하면 좋다.
7. Get to know operating systems (운영체제에 대한 지식을 습득하라)
운영체제의 동작 원리에 대해서 자세한 지식을 습득하면 좋다.
8. Become familiar with artificial intelligence (인공지능과 친해져라)
세상은 이제 인공지능을 중심으로 돌아간다. 구글은 검색 엔진을 만드는 회사가 아닌 인공지능 회사라고 할 수 있다. 우리가 이용하는 다양한 서비스들에 인공지능 기술이 적용되고 있으므로 인공지능 기술과 친해지면 여러모로 도움이 된다.
9. Learn how to build compilers (컴파일러 작성 기법)
인간에게 친화적인 고레벨 프로그래밍 언어를 기계에게 친화적인 저레벨 프로그래밍 언어로 변환하기 위한 컴파일러 작성 기술도 배워두면 좋다.
10. Learn cryptography (암호화를 배워라)
보안과 관련된 이슈를 이제 피해갈 수 없다. 보안과 관련된 내용, 암호화 알고리즘에 대한 지식을 알고 있으면 프로그래밍의 다양한 분야에서 써먹을 수 있다.
11. Learn parallel programming (병렬 프로그래밍)
수 많은 데이터를 효율적으로 처리하기 위해서는 병렬처리에 대한 방법을 잘 알고 있어야한다.
컴파일러 작성 기법과 암호화에 대한 이야기는 꼭 필요한지에 대해서 논란이 될 수도 있겠다. 하지만 나머지 부분들에 대해서는 배워두면 좋을 것 같다.
- Total
- Today
- Yesterday
- GitHub
- Jekyll
- MacOS
- 파이참
- linux
- Python
- 리눅스
- 자바
- 베란타 텃밭
- okhttp
- 도커
- 하둡
- nf_conntrack
- 지킬
- hadoop
- 상추 재배기
- 상추
- java
- 베란다 텃밭
- docker
- monitoring
- pycharm
- 화분 버리기
- 고추
- 파이썬
- InterlliJ
- 청양고추
- 텃밭
- 화분
- 깃허브
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |