Google技術開發指南:給大學生自學的建議

Daetalus發表於2014-12-05

打下電腦科學的堅實基礎對成為成功的軟體工程師至關重要。本文這些建議來自Google,給大學生提供通過自學實踐學習以開發學術和非學術技能的路徑。


 

技術開發指南

想要成為成功的軟體工程師,必須擁有堅實的電腦科學的基礎。本指南針對大學生,給出一條自學途徑,讓學生以科班和非科班方式提高技術技能。讀者可以學習本指南中介紹的課程,但是為了能正常畢業,還是請側重於自己本身的專業。本指南中介紹的線上課程無法代替你在大學中的課程。但可以作為其補充,或者作為計算機方面的介紹。

 

使用說明:

  • 請自行決定如何使用本指南
  • 除了本指南中介紹的內容,如果你有其他想學的,盡情去學吧!
  • 即使學習了本指南中所有內容,也不能一定保證你能獲得Google的工作。
  • 本指南會隨時更新或修改,記得隨時回來看看。
  • 關注我們的Google+上的Google for Student賬號可以獲得進一步的提示、資源,並認識其他對開發感興趣的學生。

科班式建議

  • 電腦科學簡介

說明:電腦科學簡介是介紹編碼相關的基礎內容。

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

  • 至少學習一門物件導向程式語言:C++、Java或Python

初學者線上資源:Learn to Program: The FundamentalsMIT Intro to Programming in JavaGoogle’s Python ClassCoursera – Introduction to PythonPython Open Source E-Book

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

  • 學習其他程式語言:

提示:你可以選擇這些語言中的一種或多種——Java Script、CSS、HTML、Ruby、PHP、C、Perl、Shell、Lisp、 Scheme。

線上資源:w3school.com – HTML TutorialCodeAcademy.com

  • 測試你的程式碼

提示:學習如何追蹤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

  • 深入理解演算法和資料結構

提示:學習基本的資料型別(棧、佇列和揹包)、排序演算法(快速排序、歸併排序、堆排序)、資料結構(二叉搜尋樹、紅黑樹、雜湊表)、大O表示法。

線上資源:MIT Introduction to Algorithms、Coursera Introduction to Algorithms Part 1 & Part 2List of AlgorithmsList of Data StructuresBook: The Algorithm Design Manual

  • 深入瞭解作業系統相關知識

線上資源:UC Berkeley Computer Science 162

  • 學習人工智慧

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

  • 學習如何構建編譯器

線上資源:Coursera – Compilers

  • 學習密碼學

線上資源:Coursera – CryptographyUdacity – Applied Cryptography

  • 學習並行程式設計

Online Resources: Coursera – Heterogeneous Parallel Programming

線上資源:Coursera – Heterogeneous Parallel Programming

非科班的學習建議

  • 接觸課堂之外的專案

提示:建立並維護一個網站、構建自己的伺服器、或構建一個機器人。

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

  • 處理一個非常大的系統(程式碼庫)中的一小部分,閱讀並理解已有的程式碼、文件,並進行除錯。

提示:Github可以用來閱讀原始碼併為某個專案做貢獻。

線上資源:GithubKiln

  • 與其他開發者共同工作

提示:這將幫你提升團隊工作工作的能力,同時從他人那可以學到新東西。

  • 有針對性的學習演算法知識並提升編碼能力

提示:可以在CodeJam或ACM 這些程式設計競賽上練習演算法知識。

線上資源:CodeJamACM ICPC

  • 做一個教學助手,幫助他人

提示:幫助他人可以加深你對該領域的理解。

  • 軟體工程師方面的實習經驗

提示:實習申請要在實習開始前提前申請。在美國,實習期是在夏季(5月到9月),申請一般會提前幾個月。

線上資源:google.com/jobs

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

任選一種支付方式

Google技術開發指南:給大學生自學的建議 Google技術開發指南:給大學生自學的建議

相關文章