1. 程式人生 > >谷歌推薦的電腦科學學習路線

谷歌推薦的電腦科學學習路線

gg

要成為一名成功的軟體工程師,你必須具備紮實的電腦科學基礎。本自學指南適用於想要學習程式設計的大學生們,分為專業方向和非專業方向兩個系列。你可以藉助這個指南進行自學,但請首先修夠你的專業學分,以保證順利畢業。

本課程表中的課程不能代替大學課程,但它們能夠幫助你進一步學習電腦科學,或者對這個領域建立初步理解。

關於如何使用本學習指南的4點建議:

請考慮自己的實際情況進行學習。
如果你還想學習《指南》之外的其他課程,儘管上吧!
本指南僅供參考,即使學完這上面的所有課程,也不能保證你一定能進入谷歌工作。
本指南不定期更新。你可以在Google +上關注 Google for Students

+Page,隨時獲取更多資訊。

【計算機專業方向的課程】

電腦科學導論課程

你可以選擇提供線上程式設計工具的計算機導論課程。

課程推薦:

學習至少一種面向物件程式語言,如C++,Java 或Python

入門課程:

中級課程:

學習其他的程式語言

To learn list:Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme.
相關線上學習資源:

測試和提高自己的程式設計能力

例如:排查故障,建立測試,破解軟體

相關課程:

學習邏輯推理和離散數學

相關課程:

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

學習基本的資料型別,如堆疊、佇列和資料包;

瞭解排序演演算法,如快速排序,二路歸併排序和堆排序;

瞭解資料結構,如二叉搜尋樹,紅黑樹和雜湊表。

相關課程:

深入瞭解作業系統

人工智慧相關課程

Stanford University:

如何開發一個編譯器

密碼學

並行程式設計

相關課程:Coursera - Heterogeneous Parallel Programming 【伊利諾伊大學香檳分校:異構並行程式設計】
https://www.coursera.org/course/hetero

【如果你側重應用方向】

專案開發相關課程

這方面的內容包括建立和維護一個網站,建立自己的伺服器,或開發一個機器人。

相關課程:

Apache List of Projects(注:這是apache.org提供的教程)
http://projects.apache.org/

如果你想了解一個大型系統的一部分(如程式碼庫),閱讀和理解程式碼,或跟蹤文件和排查故障,那麼你可以到Github上圍觀和學習別人的程式碼,並嘗試開發自己的專案。相關資源:Github, Kiln

如果你想通過學習提高與程式設計師合作的能力,那麼你可以先嚐試和程式設計師們共同完成一個專案。

如果你想補充演算法知識,練習程式設計技巧,可以參加CodeJam、ACM舉辦的國際程式設計大賽等活動。相關資源:CodeJamACM ICPC

如果你通過教學加深自己對計算機的理解,獲得軟體工程等相關領域的實習經驗,那麼你可以申請擔任相關課程的助教。注意要在實習期開始前提前申請喲!

在美國,學生通常在五月到九月參加實習,一般需要提前幾個月進行申請。