Recommendations for Academic Learnings
Introduction to CS Course
Code in at least one object oriented programming language
Test Your Code
Develop logical reasoning and knowledge of discrete math
Algorithms and Data Structures
Develop a strong knowledge of operating systems
AI, Compilers 和Cryptography暂略过
Learn Parallel Programming
Recommendations for Non-Academic Learnings
Work on project outsides of the classroom.
Create and maintain a website Build your own server Build a robot
Work on a small piece of a large system, read and understand existing code, track down documentation, and debug things.
Github is a great way to read other people's code or contribute to a project.
Work on project with other programmmers.
Practice your algorithmic knowledge and coding skills.
CodeJam ACM 我补充几个：leetcode, hackrank, codeforces.
Become a Teaching Assistant
Intership experience in software engineering