Google 親傳的工程師學習流程:想進 Google 工作?那就趕快照著學吧

譯者註:本文是翻譯自 Google Career 的一篇職業規劃指南,需閱讀原文的請自備牆梯。以下是譯文:打好紮實的計算機科學基礎對於成為一個成功的軟件工程師是非常重要的。本指南主要關於如何提升自己的技術能力,非常適合學生用於製定教學課程,當然這裡提供的網絡資源,並不意味著就可以完全取代現有的課程,正式的課程安排還是要學的(除非你不想拿到畢業證書)。

  • 學術學習的推薦

CS 課程入門

計算機科學課程導論,介紹編碼的基本知識。

在線資源:Udacity – intro to CS courseCoursera – Computer Science 101

  • 至少要會一種面向對象的編程語言:C ++、Java 或 Python

初級在線資源:  Coursera – Learn to Program: The FundamentalsMIT Intro to Programming in Java , Google’s Python ClassCoursera – Introduction to PythonPython Open Source E-Book

中級在線資源:  Udacity’s Design of Computer ProgramsCoursera – Learn to Program: Crafting Quality CodeCoursera – Programming Languages ​​,  Brown University – Introduction to Programming Languages

  • 了解其他的編程語言

注:添加到你的知識庫中——JavaScript、CSS & HTML、Ruby、PHP、C、Perl、shell script、Lisp 和 Scheme

在線資源:  w3school.com – HTML TutorialCodecademyUdacity – Mobile Web DevelopmentUdacity – HTML5 Game Development

測試代碼

注:學習如何捕捉 bug,創建測試,破壞軟件

在線資源:  Udacity – Software Testing MethodsUdacity – Software Debugging

  • 培養邏輯推理和學習數學離散知識

在線資源:  MIT Mathematics for Computer Science , Coursera – Introduction to Logic, Coursera – Linear and Discrete Optimization, Coursera – Probabilistic Graphical Models, Coursera – Game Theory

深刻理解算法和數據結構

注:了解基本的數據類型(棧、隊列和包),排序算法(快速排序、歸併排序、堆排序),數據結構(二叉搜索樹、紅黑樹、哈希表),和算法的時間複雜度.

在線資源:  MIT Introduction to Algorithms , Coursera Introduction to Algorithms  Part 1  &  Part 2List of AlgorithmsList of Data Structures , 書籍:  The Algorithm Design Manual

  • 深刻理解操作系統

在線資源:UC Berkeley Computer Science 162

學習 UX 設計

在線資源:  Udacity – UX Design for Mobile Developers

學習人工智能

在線資源: Stanford University –  Introduction to RoboticsNatural Language ProcessingMachine Learning

學習如何構建編譯器

在線資源:Coursera – Compilers

了解密碼學

在線資源:Coursera – CryptographyUdacity – Applied Cryptography

了解並行編程

在線資源:  Coursera – Heterogeneous Parallel Programming

嘗試課外項目

注:可以是創建和維護網站,構建服務器,或打造機器人。

在線資源:  Apache List of ProjectsGoogle Summer of CodeGoogle Developer Group

閱讀和理解來自於一個大型系統(代碼庫)的代碼,追踪文檔並調試。

注:可以在 GitHub 上閱讀他人的代碼,研究他們的項目。

在線資源:GitHubKiln

與其他程序員一起開發項目

注:這能有助於你提高團隊合作能力,同時還可以取長補短。

實踐算法知識和編碼技能

注:通過類似於 CodeJam 和 ACM 國際大學生程序設計競賽的方式來實踐自己的​​算法知識。

在線資源:CodeJamACM ICPC

成為助教

這有利於增強和鞏固自我的學科知識。

實習

注:提前申請實習。比如說美國的實習期是在夏天的 5 至 9 月,那麼你應該提前幾個月就開始申請。

  • 延伸閱讀

怎樣 coding 才能速度快、Bug 又少?
推薦!國外工程師整理的系統管理員資源大全
你自己選吧:當工程師不需數學好,但神級工程師的數學都很好

(本文轉載自碼農網,未經許可不得轉載。圖片來源:hackNY

譯文鏈接:http://www.codeceo.com/article/google-guide-for-technical-development.html
英文原文:Guide for Technical Development
翻譯作者:碼農網  –小峰