程序员人生 网站导航

程序员养成指南

栏目:综合技术时间:2014-12-19 08:58:36

        坚实的计算机科学基础是成为1名成功软件工程师的重要条件,该指南为那些想进入学术研究和非学术研究领域的学生们提供了编程知识学习路径。你可能会使用该指南来选择课程,但为了能美满毕业,请保证你对专业课程的学习。该指南中提供的在线资源其实不能取代你在大学中的课程...

        指南使用须知:

        1.请根据自己的具体情况使用该指南。

        2.在指南以外,可能仍有很多其他需要学习的内容。

        3.学完本指南的内容其实不能保证你能取得谷歌的某项工作。

        4.该指南会依情况更新或更改。

        你可以在Google +上关注Google Students”学习额外的技能、资源或其他学生感兴趣的开发内容。

        学术研究方向课程推荐

        CS Course入门

        在线资源:Udacity - intro to CS course  Coursera - Computer Science 101.

        最少使用1门面向对象编程语言编码:C++, Java, or 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

        学习其他编程语言

        比如:Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme.

        在线资源w3school.com - HTML Tutorial, CodeAcademy.com

        测试代码

        学习如何捕捉bug,创建测试和破解你的软件。

        在线资源Udacity - Software Testing Methods, Udacity - 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

        学习逻辑算法和数据结构

        学习基础数据类型(堆栈、队列和包)、排序算法(快速排序、归并排序和堆排序)、数据结构(2叉搜索树、红黑树和哈希表)和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 Robotics, Natural Language Processing, Machine Learning

        学习如何构建编译器

        在线资源Coursera - Compilers

        加密

        在线资源Coursera - Cryptography, Udacity - Applied Cryptography, http://t.cn/zQ6JvmN

        学习并行编程

        在线资源Coursera - Heterogeneous Parallel Programming


        非学术方向课程推荐

        课堂以外的项目工作

        建立并保护网站、搭建自己的服务器和构建机器人。

        在线资源Apache List of Projects, Google Summer of Code, Google Developer Group

        操作大型系统中的1小部份

        比如代码库,浏览和理解现有的代码,跟踪文档和进行调试。Github是1个浏览学习其他人代码或提交项目的好地方。

        在线资源Github, Kiln

        和其他程序员合作项目

        可帮你提升团队工作中的沟通合作能力,并从其他团队成员身上学到自己不具有的东西。

         练习算法知识和编程技能

         通过编程比赛来联系你的算法知识,比如CodeJamACMInternational Collegiate Programming Contest.

         在线资源CodeJam, ACM ICPC

         学会10大编码原则http://t.cn/RzSNLMo

        成为助教

        通过教授学生来巩固自己的知识。

        软件工程实习经历

        要在实习开始前就申请实习。在美国,学生的实习时间是夏季的5⑼月,但会提早几个月开放申请。

        在线资源google.com/jobs

 

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐