程序員養成指南

        堅實的計算機科學基礎是成爲一名成功軟件工程師的重要條件,該指南爲那些想進入學術研究和非學術研究領域的學生們提供了編程知識學習路徑。你可能會使用該指南來選擇課程,但爲了能圓滿畢業,請保證你對專業課程的學習。該指南中提供的在線資源並不能取代你在大學中的課程...java

        指南使用須知:python

        1.請根據本身的具體狀況使用該指南。git

        2.在指南以外,可能仍有不少其餘須要學習的內容。程序員

        3.學完本指南的內容並不能保證你能得到谷歌的某項工做。github

        4.該指南會依狀況更新或者更改。算法

        你能夠在Google +上關注「Google Students」學習額外的技巧、資源或者其餘學生感興趣的開發內容。spring

        學術研究方向課程推薦apache

        CS Course入門編程

        在線資源:Udacity - intro to CS course 和 Coursera - Computer Science 101.服務器

        至少使用一門面向對象編程語言編碼:C++, Java, or Python

        初級在線資源: Coursera - 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

        不只要會測試代碼,還要會測試本身開發的應用的漏洞,學會利用工具http://t.cn/8F3RM1V

        學習邏輯推理和離散數學內容

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

        學習邏輯算法和數據結構

        學習基礎數據類型(堆棧、隊列和包)、排序算法(快速排序、歸併排序以及堆排序)、數據結構(二叉搜索樹、紅黑樹以及哈希表)以及Big O問題。

        在線資源:MIT Introduction to Algorithms , Coursera Introduction to Algorithms Part 1 & Part 2, List of Algorithms,List of Data Structures

Book: The Algorithm Design Manual

        學習操做系統知識

        在線資源: UC Berkeley Computer Science 162

        人工智能

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

        學習如何構建編譯器

        在線資源: Coursera - Compilers

        加密

        在線資源: Coursera - CryptographyUdacity - Applied Cryptographyhttp://t.cn/zQ6JvmN

        學習並行編程

        在線資源: Coursera - Heterogeneous Parallel Programming


        非學術方向課程推薦

        課堂以外的項目工做

        創建並維護網站、搭建本身的服務器以及構建機器人。

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

        操做大型系統中的一小部分

        好比代碼庫,閱讀和理解現有的代碼,跟蹤文檔以及進行調試。Github是一個閱讀學習其餘人代碼或者提交項目的好地方。

        在線資源: GithubKiln

        和其餘程序員合做項目

        可幫你提高團隊工做中的溝通合做能力,並從其餘團隊成員身上學到本身不具有的東西。

         練習算法知識和編程技巧

         經過編程競賽來聯繫你的算法知識,好比CodeJam或者ACM的International Collegiate Programming Contest.

         在線資源: CodeJamACM ICPC

         學會10大編碼原則:http://t.cn/RzSNLMo

        成爲助教

        經過教授學生來鞏固本身的知識。

        軟件工程實習經歷

        要在實習開始前就申請實習。在美國,學生的實習時間是夏季的5-9月,但會提早幾個月開放申請。

        在線資源: google.com/jobs

相關文章
相關標籤/搜索