学分大的课全考完了,今天继续把以前的博客从csdn搬到了这里,然后全部搬完了。看到以前的博客,感觉第一遍学习时很多东西仅仅停留在掌握上,认识还不够深刻。就比如之前写的迷宫生成的程序,这学期末有个老师的班上也布置了这个作业,我看到我们班上有个选这个老师的课的同学,他的算法和我的略有不同(直接挖迷宫,不假设有“小房子”)。用他的算法生成的迷宫只有一条通向终点的路径,用我的方法可以有一条以上的路径。但我暑假写这个程序时却没思考过如何生成只有一个到终点的路径的迷宫。还有动态规划,以前也理解的很浅。现在看看一些以前写的代码,感觉就一烂字。
这学期自学了一点8086汇编,还写了一个安卓的播放器app,再后来又在写一个linux下的小工具。后来因为一些事情,原先的计划就都停下了。这学期一直没更博客。虽然大二很忙吧,但是也可以采取先挖个坑,以后再填上的办法嘛!
再回头来说对所学东西的认识这个问题。我现在觉得掌握和会用只是学东西的第一步。照着网上或教科书上的教程写个东西,或是用用别人的轮子,这都不算什么。我觉得能把书上东西弄懂,自己还会变通使用才行。用别人的轮子,自己还能修改,甚至别人把你的修改合并进来,那才算厉害。
还有学校开的专业基础课要学好。学好不全是指考试好,而是对学了什么,能用到哪里清清楚楚。实践才是最主要的。考试毕竟和实用还有很大差距。不过一般到了能用的水平,考试也就不会太差了。学校的课程虽然实践性不强,但是所学都是计算机科学的基础,只可惜这些课程大多也只讲授最基本的内容。我觉得对计算机本身构造的理解和算法的设计能力是在学校期间应该非常注意培养。简言之就是:底层+算法。如果对科研有兴趣的话还应该额外看一些数学和算法方面的书。计算机是门实用的学问,任何离开实际去学习的方法都是不可取的。最好的学习方法就是多动手。学习时多把书上看不明白的地方自己实现一遍,自己有好的想法也要实现一遍。以后工作的话估计很忙,能自由支配的学习时间可能不会很多。
另外,自己要培养自己的工程能力。说实话我现在做的还很糟糕,因为目前还没有项目经验(自己写的小玩意儿不算)。不过这不着急,毕竟上学期和这学期还在打基础,而且其实这个学期也做了一些准备工作了。下学期我看看有什么好的机会,要争取参加。