乾貨!谷歌推薦的技術能力提高指南

譯者注:本文是翻譯自 Google Career 的一篇職業規劃指南,需閱讀原文的請自備牆梯。如下是譯文:java

打好紮實的計算機科學基礎對於成爲一個成功的軟件工程師是很是重要的。本指南主要關於如何提高本身的技術能力,很是適合學生用於制定教學課程,固然這裏提供的網絡資源,並不意味着就能夠徹底取代現有的課程,正式的課程安排仍是要學的(除非你不想拿到畢業證書)。python

學術學習的推薦

CS課程入門

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

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

社區源碼案例分享:http://www.jinhusns.com/Products/Download/?type=xcjgithub

至少要會一種面向對象的編程語言: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 LanguagesBrown University – Introduction to Programming Languagesspring

瞭解其餘的編程語言

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

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

測試代碼

注:學習如何捕捉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月,那麼你應該提早幾個月就開始申請。

相關文章
相關標籤/搜索