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

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

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


阅读须知:

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

欢迎关注 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


成为一个教学助理

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


软件工程实习经验

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

相关文章
|
2月前
|
Python
探索代码之美:从小白到专家的技术成长之旅
编程,这个曾经让我望而却步的神秘领域,如今已成为我生活的一部分。它不仅仅是一种技能,更是一种艺术,一种解决问题的思维方式。从最初的迷茫与困惑,到现在的游刃有余,我经历了一个充满挑战与收获的学习过程。在这个过程中,我逐渐理解了编程的本质,掌握了编程语言的精髓,也学会了如何将理论知识应用于实际问题。这篇文章将分享我的技术感悟,带你一起走进编程的世界,探索代码背后的奥秘。
41 3
|
3月前
|
算法 安全 小程序
编程之旅:从小白到专家的蜕变之路
【9月更文挑战第8天】本文是一篇个人技术成长历程的分享,通过作者的亲身经历,展示了一个编程新手如何逐步成长为一名技术专家。文章不仅包含了编程学习的心得体会,还探讨了持续学习、实践和社区参与对于技术提升的重要性。适合所有对编程感兴趣的读者,尤其是那些正在寻找学习路线和动力的初学者。
61 7
|
4月前
|
安全 网络协议 网络安全
网安科班精选!爱荷华大学教授的网络安全零基础入门教程!
网络就像一把双刃剑,给我们的生活、交流、工作和发展带来了便利,但同时也给信息安全以及个人隐私带来了威胁。网络和信息安全问题不仅影响了网络的普及和应用,还关系到企国家、军队、企业的信息安全和社会的经济安全,让人又爱又恨。 今天给大家分享的这份手册,主要从网络漏洞、协议和安全解决方案等方面来探讨网络安全问题。我们把网络看成是不安全和安全的源头,通过分析网络漏洞、探测、攻击和减少攻击的方法,来研究不同的网络协议。
|
4月前
|
数据采集 JavaScript 前端开发
代码之旅:从小白到专家的蜕变之路
在数字时代的浪潮中,编程技能成为了一项宝贵的资产。本文将带领读者回顾我从一位对代码一无所知的新手,逐步成长为能够独立解决问题的专家级程序员的过程。通过分享我的学习经历、遇到的挑战以及克服困难的策略,旨在为同样渴望在编程世界中留下自己足迹的朋友们提供一份实用的指南和鼓励。
41 0
|
6月前
|
程序员 测试技术 数据安全/隐私保护
客达天下项目案例
客达天下项目案例
|
JSON 运维 前端开发
分享 10 个我常逛的国外技术社区,真的受益匪浅
分享 10 个我常逛的国外技术社区,真的受益匪浅
|
Java
程序人生 - 祝贺荣获《Java领域优质创作者》称号
程序人生 - 祝贺荣获《Java领域优质创作者》称号
108 0
程序人生 - 祝贺荣获《Java领域优质创作者》称号
|
网络协议 Linux
业余实践
Linux命令、内核、多路复用器、网络编程
|
Ubuntu Linux 开发者
90 后开源老司机徐亮:从大学开始全职做开源是一种怎样的体验?
  “如果你有正确的态度,有趣的事情自然会找到你。”   Eric S. Raymond 在被奉为“开源运动独立宣言”的《大教堂与集市》一文中,总结了 19 条在开源开发中非常有用的理论,上面是其中一条。开源项目总会在不经意间升级,参与者可能最初只是做一些小打小闹的贡献,后来逐步维护越来越重要、越来越多的代码,甚至是负责整个程序。在一个鼓励代码共享的软件文化中,这是一种很自然的项目演化方式。   徐亮在开源社区的经历也遵循着同样的演化路径。从一开始因为兴趣入圈、负责翻译工作,到后来成为Ubuntu、Debian资深官方开放人员,甚至把开源变成一份全职工作,今年已经是徐亮与开源结缘的第 12
458 0
|
机器学习/深度学习 算法 NoSQL
阿里为你精选各大技术领域100+本技术好书和思维导图,建议收藏!!!
程序员不止需要阅读技术书籍,更需要阅读更多其他领域的书籍,比如如何思考,如何阅读,如何管理时间和提供工作效率的书籍,在程序员不断精进的路上,需要更多书籍的陪伴。不管你是入门,自学编程还是已经在工作,相信书籍都会帮助到你