打好扎實(shí)的計(jì)算機(jī)科學(xué)基礎(chǔ)對(duì)于成為一個(gè)成功的軟件工程師是非常重要的。本指南主要關(guān)于如何提升自己的技術(shù)能力,非常適合學(xué)生用于制定教學(xué)課程,當(dāng)然這里提供的網(wǎng)絡(luò)資源,并不意味著就可以完全取代現(xiàn)有的課程,正式的課程安排還是要學(xué)的(除非你不想拿到畢業(yè)證書)。 CS課程入門計(jì)算機(jī)科學(xué)課程導(dǎo)論,介紹編碼的基本知識(shí)。 在線資源:Udacity – intro to CS course, Coursera – Computer Science 101 至少要會(huì)一種面向?qū)ο蟮木幊陶Z言:C 、Java或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 了解其他的編程語言注:添加到你的知識(shí)庫中——JavaScript、CSS & HTML、Ruby、PHP、C、Perl、shell script、Lisp和Scheme 在線資源: w3school.com – HTML Tutorial, Codecademy, Udacity – Mobile Web Development, Udacity – HTML5 Game Development 測(cè)試代碼注:學(xué)習(xí)如何捕捉bug,創(chuàng)建測(cè)試,破壞軟件 在線資源: Udacity – Software Testing Methods, Udacity – Software Debugging 培養(yǎng)邏輯推理和學(xué)習(xí)數(shù)學(xué)離散知識(shí)在線資源: MIT Mathematics for Computer Science, Coursera – Introduction to Logic, Coursera – Linear and Discrete Optimization, Coursera – Probabilistic Graphical Models, Coursera – Game Theory 深刻理解算法和數(shù)據(jù)結(jié)構(gòu)注:了解基本的數(shù)據(jù)類型(棧、隊(duì)列和包),排序算法(快速排序、歸并排序、堆排序),數(shù)據(jù)結(jié)構(gòu)(二叉搜索樹、紅黑樹、哈希表),和算法的時(shí)間復(fù)雜度. 在線資源: 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 學(xué)習(xí)UX設(shè)計(jì)在線資源: Udacity – UX Design for Mobile Developers 學(xué)習(xí)人工智能在線資源: Stanford University - Introduction to Robotics, Natural Language Processing, Machine Learning 學(xué)習(xí)如何構(gòu)建編譯器在線資源:Coursera – Compilers 了解密碼學(xué)在線資源:Coursera – Cryptography, Udacity – Applied Cryptography 了解并行編程在線資源: Coursera – Heterogeneous Parallel Programming 嘗試課外項(xiàng)目注:可以是創(chuàng)建和維護(hù)網(wǎng)站,構(gòu)建服務(wù)器,或打造機(jī)器人。 在線資源: Apache List of Projects, Google Summer of Code, Google Developer Group 閱讀和理解來自于一個(gè)大型系統(tǒng)(代碼庫)的代碼,追蹤文檔并調(diào)試。注:可以在GitHub上閱讀他人的代碼,研究他們的項(xiàng)目。 在線資源:GitHub, Kiln 與其他程序員一起開發(fā)項(xiàng)目注:這能有助于你提高團(tuán)隊(duì)合作能力,同時(shí)還可以取長補(bǔ)短。 實(shí)踐算法知識(shí)和編碼技能注:通過類似于CodeJam和ACM國際大學(xué)生程序設(shè)計(jì)競(jìng)賽的方式來實(shí)踐自己的算法知識(shí)。 在線資源:CodeJam, ACM ICPC 成為助教這有利于增強(qiáng)和鞏固自我的學(xué)科知識(shí)。 實(shí)習(xí)注:提前申請(qǐng)實(shí)習(xí)。比如說美國的實(shí)習(xí)期是在夏天的5至9月,那么你應(yīng)該提前幾個(gè)月就開始申請(qǐng)。 譯文鏈接:http://www./article/google-guide-for-technical-development.html 英文原文:Guide for Technical Development 翻譯作者:碼農(nóng)網(wǎng) – 小峰 |
|