关于大方向:
对于一个科班生我知道的路有两条:做工程和做研究。
不论做那一种,英语都是先决条件:中文的资料基本都是过时的错误的,译文资料绝大部分都是理解偏颇并且行文别扭的。
做研究这条路听着有些生僻,但要上路还是不难。
首先是兴趣:虽然在我的理解中工程和研究是老死不相往来的两个领域,但还是有些交汇点。比如看算法导论和TAOCP时深入一些[算法导论是本好书,覆盖面广],看看自己对那些涉及组合数学和概率论的算法分析是否感兴趣,研究在我看来也就是类似的思路。
真正做起来,一定要加入团队。原因有三:1).做研究有他的一套方法,前人的引导可以避免不少弯路; 2).学术需要交流才能擦出新的火花; 3).[屏蔽]文有他的游戏规则,一个好的老师很必要。我们学校做科研的老师挺少:计算机有个叫张毅的老师有6篇IEEE TRANS,该是很牛逼的;自动化也不错,做的很用心。至于经验,比如不看conference的文章,比如不看没有数学公式的文章。
至于做工程,建议大家生憋,到sf上跟项目。学校那些工作室现在难免都牵扯到经济利益,做的东西也实在没什么意思。和SMART的人混在一起还是很必要的。211楼1010是个不错的实验室,印象中的曹姓老师很有个性,有兴趣的可以去尝试下。
不论做工程还是学术,严谨都是第一的,还有凡事开始之前想清楚,别闷着头干。
再说一点关于出国的:其实语言能力很无所谓,学术能力才是重点。GT都是扯淡,发IEEE TRANS才是王道,SCI检索其实不难。btw,被新东方这个执着于一己私利的机构掌握了留学的话语权,实在是悲哀。
关于编程:
我理解的编程包含两个方面-系统实现和算法细节。
所谓系统细节,就是针对编译结果的机器代码的控制力-能够区别不同的代码在最终程序的时空表征上的差异。学本事C真的是一个挺好的折衷,逻辑性不差、底层控制力够强。至于基于虚拟机的c#和java,我觉得对于一个科班生而言完全不着调。理由是他们太容易上手了,你的竞争对手甚至包括专科生高中生。
所谓算法细节,无非类似各种排序算法不同情况下的表现。你用语言自带的函数,没问题,但是首先你必须明白其所以然。你知道伪随机rand()是怎么构造的吗,他有多随机,他有什么特性以致某些场合不适用。记住通用性牺牲的永远是效率,而对于一个人,专业是最重要的。framework做的多了,你拿的就少了。
除此之外,LISP是一种锻炼编程思维的好东西-它是一个在逻辑上做到极致的语言,每个元素都有计算通用性和运算封闭性,简直就是阳春白雪。但是学她一定要看SICP。
其他
锻炼身体,技术基本是和强壮成正比的,比如debuganyway同学。
别熬夜,眼下还没有什么值得你这样透支。
看书只看Masterpieces,那些基础的书足够看四年了,记得完成习题,千万不要忽略任何一个细节。
善于批判和怀疑,别人的思想是不能照搬的,要经历至少思考过才算明白。
也许我上面说的都是bullshit呢。
成都这个[屏蔽]地方,各位我先走一步了。