谷歌推荐的大学生技术学习指南

简介: 有一个扎实的计算机科学的基础,是成为成功的软件工程师的重要条件。这是一个引导大学生自学技术和非技术技能的建议。你可以通过这个指南决定选修的课程,但是请确保这个课程符合你专业要求,以保证顺利毕业。本指南提供的网上资源并不是要取代大学提供的课程。它们可能会给你所学的内容进行补充或提供一个主题的介绍。

有一个扎实的计算机科学的基础,是成为成功的软件工程师的重要条件。这是一个引导大学生自学技术和非技术技能的建议。你可以通过这个指南决定选修的课程,但是请确保这个课程符合你专业要求,以保证顺利毕业。本指南提供的网上资源并不是要取代大学提供的课程。它们可能会给你所学的内容进行补充或提供一个主题的介绍。


阅读须知:

  • 请谨慎使用本指南
  • 可能还有其他你想学习的东西不在本指南里,请不要局限于此,大胆去做。
  • 完成了这些项目并不能保证能得到谷歌的工作机会
  • 本指南有可能更新或改变,请关注更新

欢迎关注 Google for Students +Page 获取更多小贴士和认识更多学生开发者。

学术化的建议


CS课程介绍

提供基础编程知识的计算机科学课程

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


至少学习一种面向对象的编程语言: 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,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


深入理解算法和数据结构

注释: 学习基本的数据类型(栈,队列,和包),排序算法(快速排序,归并排序,堆排序),数据结构(二进制搜索树,红黑树,哈希表),和Big O。

在线资源: MIT Introduction to Algorithms, Coursera Introduction to Algorithms Part 1& Part 2, List ofAlgorithms, List of Data Structures, Book:The Algorithm Design Manual


扎实的的操作系统知识

在线资源: UC Berkeley Computer Science 162


了解用户体验设计

在线资源: 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


成为一个教学助理

帮助教其他学生将有助于提高你的专业知识。


软件工程实习经验

注释: 在实习期前一段时间就要寻找实习机会。 在美国,实习在夏季和九月。 公司通常是提前几个月开始接收实习生申请。

相关文章
|
Arthas 监控 Java
|
存储 算法 开发工具
OpenCV 安卓编程示例:1~6 全
OpenCV 安卓编程示例:1~6 全
524 0
|
开发者
静态方法和实例方法的区别是什么?
静态方法和实例方法在面向对象编程中各自扮演着重要的角色,开发者需要根据具体的业务需求和设计原则来合理地使用它们,以实现高效、可读和易于维护的代码结构。
630 68
|
10月前
|
传感器 机器学习/深度学习 人工智能
AI种田有多猛?看它如何“统治”自动化农业!
AI种田有多猛?看它如何“统治”自动化农业!
397 8
|
Oracle Java 关系型数据库
04. 【Java教程】在 Linux 上安装 Java
04. 【Java教程】在 Linux 上安装 Java
1067 0
|
机器学习/深度学习 存储 编解码
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(4)
TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11(4)
469 0
|
IDE 测试技术 开发工具
Digispark(ATTINY85) 微型开发板驱动与开发环境安装教程
本教程是基于Arduino IDE中进行编译调试,如果你不想用Arduino IDE可以尝试从官方教程中找到其他方案。官方的教程:http://digistump.
2574 0
|
存储 缓存 Dart
如何处理直播实时在线人数显示并且最小化性能和资源消耗?
直播技术成为一种极为流行的交流方式。而直播平台的核心指标之一就是实时在线人数,准确地显示该指标对于用户和运营商来说都具有重要意义。然而,直播实时在线人数的显示也面临着性能和资源消耗的挑战。本文将介绍如何利用Flutter和Dart开发技术栈来优化直播实时在线人数的显示,以达到最小化性能和资源消耗的目标。 作者:狗头大军之江苏分军 链接:https://juejin.cn/spost/7255473856234913852 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如何处理直播实时在线人数显示并且最小化性能和资源消耗?
|
SQL JSON 运维
如何使用下探分析定位多维指标异常根因
在系统运维过程中,关键指标的异常变化往往意味着服务异常、系统故障等等。因此我们往往会对一些关键指标进行自动巡检,例如异常检测和时序预测等等,及时感知指标的异常变化,了解系统的健康状况。对于复杂系统来说,感知到异常后直接在系统层面根因定位可能是十分困难的。因此我们需要一些手段缩小问题的排查范围或者直接定位问题,如使用 trace 根因分析等等。阿里云日志服务上线了下探分析功能,用于多维指标异常根因定位。我们将介绍该功能的使用场景和使用案例。
1471 0
如何使用下探分析定位多维指标异常根因
|
JSON 缓存 小程序
支付宝小程序 API
本章我们将讲述支付宝小程序比较常用的几个 JSAPI,带你走进 JSAPI 的奇妙世界。
支付宝小程序 API

热门文章

最新文章