通过毕设,研究生课程大作业,有以下几点感悟:
1.编程语言起码要掌握(C/c++ JAVA)。
因为研究生(未进入)程序员工作阶段,发论文为主要工作。最重要的事情是将别人论文中的算法快速实现,将自己的思想实现。两种思路对比,才能得出自己的思路的优点,适用范围,等等诸如此类。所以采用一些稳定的开源代码是一条捷径。但是由于C++和JAVA各擅所长,比如JAVA比C++适合网络编程,而C++与脚本语言python,matlab等的接口稳定,更适合大规模计算的混合编程。所以不同的开源代码,可能采用不同的语言实现,这就要求我们多懂几门语言,但是时间是有限的,所以能精通C++是个比较不错的选择。
2.看书:看书要有目的性,不要像大学上课那样,一本书从头看到尾,比如花个10天半个月看《C++ Primer》再开始做老师布置的课题——黄瓜菜都凉了。由于本科以经有了一定的编程基础,所以正确的方法是单刀直入,比如我知道了我的程序中要使用泛型中的vector和map,就没有必要把泛型那部分全部看完,就看这两章就行,当然可能会出现有些符号不清楚的地方。这里提供个好方法:经典书籍一定要电子版和纸板都有,不要怕花钱买纸板图书,毕竟还是纸板的东西看起来更舒服,更易于查找,阅读书中某章遇到不清楚概念或术语的地方,用电子版关键词搜索定位后,在用纸板阅读。也就是说一本书不是一口气看完的,每次都看和目前研究相关的关键部分,然后不断反复翻阅此书,不断扩充,这样的效果远比一口气看完书,什么都没记住好很多,而且这样做具有温故而知新的效果
其次,买了书不要觉得心疼就全部看完,以为这样可以减少内疚感。(毕竟一本书 百十来块大洋的)其实你只要看了三分之一,这本书就是物有所值的。
上面说的是看工程技术类书籍,下面说下看数学类,专业类的书籍。同上面一样,快速定位是必要的,已经知道的知识点没有必要再读一遍(这点看提高类的英文类书籍尤其重要)。比如我从寒假自学统计看的是《统计推断》这本书的英文版,结果到现在还没看完,原因在于本科的时侯《概率与数理统计》+研究生的《随机过程》已经覆盖了大部分知识点,我看书却一直在这部分知识点打转转,新东西(EM,回归,核方法)还是没学到,而这些都是马上要用到的。还有就是看《算法导论》至今为止看了8章,之所以裹足不前,因为一直在拘泥于算法复杂度的计算,而且一直计算不对,其实完全没有必要这样,笼统上知道算法思想,哪种算法适用哪种场合就足以应付应用了。
工程计术类书籍,和数学算法类书籍另一个不同点就在于数学类书籍,如果有时间,就要连推理证明也要亲自做一下。
另外一点需要注意的就是不要像干活一样,做个作业就是一个大活,大活干完就emptyness了。不知道自己该做什么,要一直保持一个稳定的心态。连续编程序时间不要超过3个小时,否则后面的时间里效率也不会高