Programmer Development Guide and programmer Guide

Source: Internet
Author: User

Programmer Development Guide and programmer Guide

A solid foundation in computer science is an important condition for a successful software engineer. This Guide provides programming knowledge learning paths for students who want to enter academic and non-academic fields. You may use this guide to select a course, but ensure that you study the professional course to complete graduation. The online resources provided in this Guide cannot replace your college courses...

Instructions for use:

1. Please use this Guide according to your actual situation.

2. In addition to the Guide, there may still be many other things to learn.

3. After learning the content of this Guide, you cannot guarantee that you can get a job from Google.

4. This Guide will be updated or changed as needed.

You can follow "Google Students" on Google + to learn additional skills, resources, or development content that other Students are interested in.

Recommended courses for academic research

CS Course getting started

Online Resources: Udacity-intro to CS course and Coursera-Computer Science 101.

Use at least one object-oriented programming language encoding: C ++, Java, or Python

Beginner online resources: 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

Intermediate online resources: Udacity's Design of Computer Programs, Coursera-Learn to Program: Crafting Quality Code, Coursera-Programming Languages, Brown University-Introduction to Programming Languages

Learn other programming languages

For example: Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme.

Online Resources: w3school.com-HTML Tutorial, CodeAcademy.com

Test code

Learn how to capture bugs, create tests, and crack your software.

Online Resources: Udacity-Software Testing Methods, Udacity-Software Debugging

Not only to test the code, but also to test their own development of application vulnerabilities, learn to use the tool http://t.cn/8F3RM1V

Learning logical reasoning and discrete mathematics content

Online Resources: MIT Mathematics for Computer Science, Coursera-Introduction to Logic, Coursera-Linear and Discrete Optimization, Coursera-Probabilistic Graphical Models, Coursera-Game Theory

Learning logical algorithms and data structures

Learn Basic Data Types (stacks, queues, and packages), sorting algorithms (fast sorting, Merge Sorting, and heap sorting), data structures (Binary Search Tree, red/black tree, and hash table) and Big O problems.

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

Learn operating system knowledge

Online Resource: computing UC Berkeley Computer Science 162

Artificial Intelligence

Online Resources: Stanford University-Introduction to Robotics, Natural Language Processing, Machine Learning

Learn how to build a compiler

Online Resource: Coursera-Compilers

Encryption

Online Resources: Coursera-Cryptography, Udacity-Applied Cryptography, http://t.cn/zQ6JvmN

Learning parallel programming

Online Resource: Coursera-Heterogeneous Parallel Programming


Non-academic course recommendations

Projects outside the classroom

Build and maintain websites, build your own servers, and build robots.

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

A small part of a large operating system

For example, you can read and understand the existing code library, trace documents, and perform debugging. Github is a good place to read and learn other people's code or submit projects.

Online Resources: Github, Kiln

Partners with other programmers

It helps you improve your team's Communication and Cooperation skills and learn from other team members what you don't have.

Practice algorithm knowledge and programming skills

Contact your algorithm knowledge through a Programming competition, such as CodeJam or ACM's International Collegiate Programming Contest.

Online Resources: CodeJam, ACM ICPC

Learn 10Big coding principles: Http://t.cn/RzSNLMo

Become Ta

Consolidate your knowledge by teaching students.

Software Engineering Practice

Apply for an internship before the internship starts. In the United States, students are offered internships between 5 and 9 months in the summer, but applications will be made available several months in advance.

Online Resources: google.com/jobs

 

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.