Go: Google Technology Development Guide: Advice for college students to learn by themselves

Source: Internet
Author: User

Originally from: http://blog.jobbole.com/80621/

Technical Development Guide

To be a successful software engineer, you must have a solid foundation of computer science. This guide provides a self-learning pathway for college students to improve their technical skills in a professional and non-professional way. The reader can learn the courses described in this guide, but in order to graduate normally, please focus on your own professional. The online courses described in this guide are not a substitute for your college courses. But it can be added as a supplement, or as a computer-related introduction.

Instructions for use:

    • Please decide for yourself how to use this guide
    • In addition to what is covered in this guide, if you have anything else you want to learn, go ahead and learn!
    • Even if you have studied everything in this guide, you cannot be sure that you will get Google's job.
    • This guide will be updated or modified at any time, remember to check back anytime.
    • Follow our Google for student account on Google + to get further tips, resources, and other students interested in development.
The recommendation of a preparatory style
    • Introduction to Computer Science

Description: A computer science introduction is the basic content of the introduction of coding.

Online resources: Udacity–intro to CS Course, Coursera–computer Science 101

    • Learn at least one object-oriented programming language: C + +, Java, or Python

Beginner Online Resources: Learn to Program:the Fundamentals, MIT Intro to programming in Java, Google ' s Python Class, coursera–introduction To Python, Python Open Source E-book

Intermediate Online resources: Udacity ' s Design of computer Programs, Coursera–learn to program:crafting quality Code, coursera–programming Lan Guages, Brown university–introduction to programming Languages

    • Learn other programming languages:

Tip: You can choose one or more of these languages--java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell, Lisp, Scheme.

Online resources: w3school.com–html Tutorial, codeacademy.com

    • Test your code

Tip: Learn how to track bugs, create tests, and breakpoints.

Online resources: Udacity–software testing Methods, Udacity–software debugging

    • Develop logical thinking and learn discrete mathematics

Online resources: MIT Mathematics for Computer Science, coursera–introduction to Logic, coursera–linear and discrete optimization, Cou Rsera–probabilistic graphical Models, coursera–game theory

    • Deep understanding of algorithms and data structures

Tip: Learn the basic data types (stacks, queues, and backpacks), sorting algorithms (Quick sort, merge sort, heap sort), data structures (binary search tree, red black tree, hash list), large O notation.

Online resources: MIT Introduction to Algorithms, Coursera Introduction to algorithms part 1& Part 2, List of algorithms, List of Data Structures, book:the algorithm Design Manual

    • Gain insight into operating system knowledge

Online resources: UC Berkeley Computer Science 162

    • Learn AI

Online resources: Stanford university–introduction to robotics, Natural Language processing, machine learning

    • Learn how to build a compiler

Online resources: Coursera–compilers

    • Learning Cryptography

Online resources: coursera–cryptography, udacity–applied cryptography

    • Learn Parallel programming

Online resources:coursera–heterogeneous Parallel Programming

Online resources: coursera–heterogeneous Parallel Programming

Non-study advice
    • Access to projects outside the classroom

Tip: Create and maintain a Web site, build your own server, or build a robot.

Online resources: Apache List of Projects, Google Summer of Code, Google Developer Group

    • Handle a small part of a very large system (code base), read and understand existing code, documentation, and Debug.

Tip: GitHub can be used to read the source code and contribute to a project.

Online resources: Github, Kiln

    • Working together with other developers

Tip: This will help you improve your team's ability to work and learn new things from others.

    • Targeted learning algorithm knowledge and improved coding capabilities

Tip: You can practice algorithmic knowledge in the Codejam or ACM programming contests.

Online resources: Codejam, ACM ICPC

    • Be a teaching assistant to help others

Tip: Helping others can deepen your understanding of the field.

    • Internship experience in software engineering

Note: The internship application should be applied in advance before the commencement of the internship. In the United States, the internship is in the summer (May to September), the application will generally be several months in advance.

Online resources: Google.com/jobs

Go: Google Technology Development Guide: Advice for college students to learn by themselves

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.