堅(jiān)實(shí)的計(jì)算機(jī)科學(xué)基礎(chǔ)是成為1名成功軟件工程師的重要條件,該指南為那些想進(jìn)入學(xué)術(shù)研究和非學(xué)術(shù)研究領(lǐng)域的學(xué)生們提供了編程知識(shí)學(xué)習(xí)路徑。你可能會(huì)使用該指南來(lái)選擇課程,但為了能美滿畢業(yè),請(qǐng)保證你對(duì)專業(yè)課程的學(xué)習(xí)。該指南中提供的在線資源其實(shí)不能取代你在大學(xué)中的課程...
指南使用須知:
1.請(qǐng)根據(jù)自己的具體情況使用該指南。
2.在指南以外,可能仍有很多其他需要學(xué)習(xí)的內(nèi)容。
3.學(xué)完本指南的內(nèi)容其實(shí)不能保證你能取得谷歌的某項(xiàng)工作。
4.該指南會(huì)依情況更新或更改。
你可以在Google +上關(guān)注“Google Students”學(xué)習(xí)額外的技能、資源或其他學(xué)生感興趣的開發(fā)內(nèi)容。
學(xué)術(shù)研究方向課程推薦
CS Course入門
在線資源:Udacity - intro to CS course 和 Coursera - Computer Science 101.
最少使用1門面向?qū)ο缶幊陶Z(yǔ)言編碼:C++, Java, or Python
低級(jí)在線資源: Coursera - Learn to Program: The Fundamentals, MIT Intro to Programming in Java, Google's Python Class, Coursera - Introduction to Python, Python Open Source E-Book
中級(jí)在線資源: Udacity's Design of Computer Programs, Coursera - Learn to Program: Crafting Quality Code, Coursera - Programming Languages, Brown University - Introduction to Programming Languages
學(xué)習(xí)其他編程語(yǔ)言
比如:Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme.
在線資源: w3school.com - HTML Tutorial, CodeAcademy.com
測(cè)試代碼
學(xué)習(xí)如何捕捉bug,創(chuàng)建測(cè)試和破解你的軟件。
在線資源: Udacity - Software Testing Methods, Udacity - Software Debugging
不但要會(huì)測(cè)試代碼,還要會(huì)測(cè)試自己開發(fā)的利用的漏洞,學(xué)會(huì)利用工具h(yuǎn)ttp://t.cn/8F3RM1V
學(xué)習(xí)邏輯推理和離散數(shù)學(xué)內(nèi)容
在線資源:MIT Mathematics for Computer Science, Coursera - Introduction to Logic, Coursera - Linear and Discrete Optimization, Coursera - Probabilistic Graphical Models, Coursera - Game Theory
學(xué)習(xí)邏輯算法和數(shù)據(jù)結(jié)構(gòu)
學(xué)習(xí)基礎(chǔ)數(shù)據(jù)類型(堆棧、隊(duì)列和包)、排序算法(快速排序、歸并排序和堆排序)、數(shù)據(jù)結(jié)構(gòu)(2叉搜索樹、紅黑樹和哈希表)和Big O問(wèn)題。
在線資源:MIT Introduction to Algorithms , Coursera Introduction to Algorithms Part 1 & Part 2, List of Algorithms,List of Data Structures,
Book: The Algorithm Design Manual
學(xué)習(xí)操作系統(tǒng)知識(shí)
在線資源:?UC Berkeley Computer Science 162
人工智能
在線資源:Stanford University - Introduction to Robotics, Natural Language Processing, Machine Learning
學(xué)習(xí)如何構(gòu)建編譯器
在線資源: Coursera - Compilers
加密
在線資源: Coursera - Cryptography, Udacity - Applied Cryptography, http://t.cn/zQ6JvmN
學(xué)習(xí)并行編程
在線資源: Coursera - Heterogeneous Parallel Programming
非學(xué)術(shù)方向課程推薦
課堂以外的項(xiàng)目工作
建立并保護(hù)網(wǎng)站、搭建自己的服務(wù)器和構(gòu)建機(jī)器人。
在線資源: Apache List of Projects, Google Summer of Code, Google Developer Group
操作大型系統(tǒng)中的1小部份
比如代碼庫(kù),瀏覽和理解現(xiàn)有的代碼,跟蹤文檔和進(jìn)行調(diào)試。Github是1個(gè)瀏覽學(xué)習(xí)其他人代碼或提交項(xiàng)目的好地方。
在線資源: Github, Kiln
和其他程序員合作項(xiàng)目
可幫你提升團(tuán)隊(duì)工作中的溝通合作能力,并從其他團(tuán)隊(duì)成員身上學(xué)到自己不具有的東西。
練習(xí)算法知識(shí)和編程技能
通過(guò)編程比賽來(lái)聯(lián)系你的算法知識(shí),比如CodeJam或ACM的International Collegiate Programming Contest.
在線資源: CodeJam, ACM ICPC
學(xué)會(huì)10大編碼原則:http://t.cn/RzSNLMo
成為助教
通過(guò)教授學(xué)生來(lái)鞏固自己的知識(shí)。
軟件工程實(shí)習(xí)經(jīng)歷
要在實(shí)習(xí)開始前就申請(qǐng)實(shí)習(xí)。在美國(guó),學(xué)生的實(shí)習(xí)時(shí)間是夏季的5⑼月,但會(huì)提早幾個(gè)月開放申請(qǐng)。
在線資源: google.com/jobs