干货!谷歌推荐的技术能力提升指南
2016-04-18 10:28
831 查看
译者注:本文是翻译自 Google Career 的一篇职业规划指南,需阅读原文的请自备墙梯。以下是译文:
打好扎实的计算机科学基础对于成为一个成功的软件工程师是非常重要的。本指南主要关于如何提升自己的技术能力,非常适合学生用于制定教学课程,当然这里提供的网络资源,并不意味着就可以完全取代现有的课程,正式的课程安排还是要学的(除非你不想拿到毕业证书)。
![](http://static.codeceo.com/images/2015/05/google-guide-for-technical-development.jpg)
在线资源:Udacity – intro to CS course, Coursera – Computer Science 101
社区源码案例分享:http://www.jinhusns.com/Products/Download/?type=xcj
中级在线资源: Udacity’s Design of Computer Programs, Coursera – Learn to Program: Crafting Quality Code, Coursera – Programming Languages, Brown University – Introduction to Programming Languages
在线资源: w3school.com – HTML Tutorial, Codecademy, Udacity – Mobile Web Development, Udacity – HTML5 Game Development
在线资源: Udacity – Software Testing Methods, Udacity – Software Debugging
在线资源: MIT Introduction to Algorithms, Coursera Introduction to Algorithms Part 1 & Part 2, List of Algorithms, List of Data Structures, 书籍: The Algorithm Design Manual
在线资源: Apache List of Projects, Google Summer of Code, Google Developer Group
在线资源:GitHub, Kiln
在线资源:CodeJam, ACM ICPC
打好扎实的计算机科学基础对于成为一个成功的软件工程师是非常重要的。本指南主要关于如何提升自己的技术能力,非常适合学生用于制定教学课程,当然这里提供的网络资源,并不意味着就可以完全取代现有的课程,正式的课程安排还是要学的(除非你不想拿到毕业证书)。
![](http://static.codeceo.com/images/2015/05/google-guide-for-technical-development.jpg)
学术学习的推荐
CS课程入门
计算机科学课程导论,介绍编码的基本知识。在线资源:Udacity – intro to CS course, Coursera – Computer Science 101
社区源码案例分享:http://www.jinhusns.com/Products/Download/?type=xcj
至少要会一种面向对象的编程语言: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上阅读他人的代码,研究他们的项目。在线资源:GitHub, Kiln
与其他程序员一起开发项目
注:这能有助于你提高团队合作能力,同时还可以取长补短。实践算法知识和编码技能
注:通过类似于CodeJam和ACM国际大学生程序设计竞赛的方式来实践自己的算法知识。在线资源:CodeJam, ACM ICPC
成为助教
这有利于增强和巩固自我的学科知识。实习
注:提前申请实习。比如说美国的实习期是在夏天的5至9月,那么你应该提前几个月就开始申请。相关文章推荐
- Windows XP系统安装MySQL5.5.28图解教程
- jQuery实现鼠标划过展示大图的方法
- 安卓微信开放平台分享功能
- Python获取linux主机ip的简单实现方法
- Adam学习11之Adam2.10-0.19搭建问题解决
- 计算机顶级会议Rankings
- CI框架分页类
- 一、选择排序
- UGUI(七)界面拖动和焦点界面
- opencv 通过指针访问图像像素值,输出为空的问题
- Ubuntu常用软件简单整理
- USB2.0描述符小结
- js 验证码 倒计时60秒
- VBA删除表格最后一行
- AJAX中文乱码总结
- 王高利:CentOS6.5下redis安装部署配置指南、常用命令、主从同步集群、redis-php学习资料整合详解
- iOS Xcode Server持续集成(一)
- 百度面试题:malloc/free 与 new/delete 的区别
- jQuery EasyUI使用教程之创建具有主数据网格的子网格
- java远程通讯技术及简单实现