Suggestions for Computer Science Students
I stumbled on the web and found a list of suggestions for CS students from Google (in Chinese). It is written by several senior Google China engineers. Here I would not translate the whole document, but highlight some of the points.
1. Practice the fundamentals. Don’t spend all your efforts on popular languages and tools, and the skills listed in the job advertisements. Instead, master your skills in statistics, computing, database, operating systems, computer architecture, computer networks, and discrete mathematics. Try to solve problems in Donald Knuth’s “Art of Programming”. If you can solve most of the problems, your skills in computing is not bad.
This is what many professors emphasize on. Many students are concerned about actual tools such as programming in C/Java, using Crystal reports and mastering certain IDEs. After reading this paragraph, I am more convinced that the CS fundamentals are more important than learning how to use actual tools.
2. Seek more challenges. Experience in programming can reinforce your knowledge. Try to accumulate the experience of writing 100,000 lines of code when you are in 4th year.
Argh! I know some CS students who got their degree without knowing how to program. I have also talked to some CS undergrads who are afraid of programming.
4. Don’t forget about mathematics. Math is mental gymnastics in your brain. Math is everywhere. If you are particularly interested in math-intensive tasks, such as video and image processing, you need these skills as your tools.
“Gymnastics” is the wording used in the paragraph. Anyone thought of a better analogy familiar to English-speaking people? (Ok, thanks for those who responded. I have updated the translation.)
7. Work strategically. Try to find meaningful and interesting summer job or part-time job if it does not affect your schoolwork. Go find a place that pays attention to programming. Working with a good boss, your code will be used by clients. Don’t rush to become a boss. Your goal must be to learn from other people. When you are working or finding a job, don’t only look at benefits and the job title. Pick an environment that encourages learning, a company that is willing to train employees,and a company that regard you as an important person. Last but not least, pick a good boss.
That’s why GSoC was established! “Flip bits, not burgers.” I have heard CS grads flipping burgers, sort mail in a post office, selling computer hardware etc.
I don’t necessary agree with the “company that do programming” part (if I understand the original text properly). Instead, I should say that “know your client so that your code will be used.”