干貨!谷歌推薦的技術能力提升指南
譯者注:本文是翻譯自 Google Career 的一篇職業規劃指南,需閱讀原文的請自備墻梯。以下是譯文:
打好扎實的計算機科學基礎對于成為一個成功的軟件工程師是非常重要的。本指南主要關于如何提升自己的技術能力,非常適合學生用于制定教學課程,當然這里提供的網絡資源,并不意味著就可以完全取代現有的課程,正式的課程安排還是要學的(除非你不想拿到畢業證書)。
學術學習的推薦
CS課程入門
計算機科學課程導論,介紹編碼的基本知識。
在線資源:Udacity – intro to CS course, Coursera – Computer Science 101
至少要會一種面向對象的編程語言:C ++、Java或Python
初級在線資源: 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
中級在線資源: Udacity’s Design of Computer Programs, Coursera – Learn to Program: Crafting Quality Code, Coursera – Programming Languages, Brown University – Introduction to Programming Languages
了解其他的編程語言
注:添加到你的知識庫中——JavaScript、CSS & HTML、Ruby、PHP、C、Perl、shell script、Lisp和Scheme
在線資源: w3school.com – HTML Tutorial, Codecademy, Udacity – Mobile Web Development, Udacity – HTML5 Game Development
測試代碼
注:學習如何捕捉bug,創建測試,破壞軟件
在線資源: Udacity – Software Testing Methods, Udacity – 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 2, List of Algorithms, List of Data Structures, 書籍: The Algorithm Design Manual
深刻理解操作系統
在線資源:UC Berkeley Computer Science 162
學習UX設計
在線資源: Udacity – UX Design for Mobile Developers
學習人工智能
在線資源: Stanford University - Introduction to Robotics, Natural Language Processing, Machine Learning
學習如何構建編譯器
在線資源:Coursera – Compilers
了解密碼學
在線資源:Coursera – Cryptography, Udacity – Applied Cryptography
了解并行編程
在線資源: Coursera – Heterogeneous Parallel Programming
嘗試課外項目
注:可以是創建和維護網站,構建服務器,或打造機器人。
在線資源: Apache List of Projects, Google Summer of Code, Google Developer Group
閱讀和理解來自于一個大型系統(代碼庫)的代碼,追蹤文檔并調試。
注:可以在GitHub上閱讀他人的代碼,研究他們的項目。
與其他程序員一起開發項目
注:這能有助于你提高團隊合作能力,同時還可以取長補短。
實踐算法知識和編碼技能
注:通過類似于CodeJam和ACM國際大學生程序設計競賽的方式來實踐自己的算法知識。
成為助教
這有利于增強和鞏固自我的學科知識。
實習
注:提前申請實習。比如說美國的實習期是在夏天的5至9月,那么你應該提前幾個月就開始申請。
譯文鏈接: http://www.codeceo.com/article/google-guide-for-technical-development.html英文原文: Guide for Technical Development
翻譯作者: 碼農網 – 小峰