计算机学习的关键点
首先得具备一定的数理逻辑能力,计算机科学是一门非常注重逻辑的学科,也是对错误“零容忍”的学科,是对是错,代码一运行,结果立竿见影。
最好具备一定的英文阅读能力,很多技术都是在更新迭代的,问题的答案可能也就是在变化的,那就要求能阅读官网的文档,了解不同阶段的技术标准。
其次就是还要重在实操,只会推算法,算复杂度依然是不够的,只会那几个标准的模板也是不够的,需要在大量刷题中培养自己的解题和编程能力,可以很快地看懂题目背后蕴含的算法以及如何将自己平时积累的算法模板化用到这个题目之中。
常见学习误区
搞题海战术
重要的不是做题多,而在于做题的效益要高、目的要达到。做题的目的在于检查学 过的知识,方法是否掌握得很好。如果掌握得不准,那么多做题的结果,反而巩固 了你的缺欠,因此,要在准确地把握住基本知识和方法的基础上做一定量的练习是 必要的。
不重视编程和代码排查
写代码的经验来源于实践,特别是来源于观察和实验。要认真观察常见的代码逻辑, 分析输出结果产生的条件和原因。要认真做好上机编程的练习,学会使用论坛,了 解检查错误的基本方法。要通过观察和实践,有意识地提高自己的编程能力。
缺乏自主思考
对于中高难度的题,尢其要在做题后进行一定的“反思”,思考一下本题所用的基础知识,主要针对的 知识点,选用哪些逻辑循环,是否还有别的解法,本题的分析方法与解法,在解其它问题时,是否也用 到过,把它们联系起来,你就会得到更多的经验和教训,更重要的是养成善于思考的好习惯,这将大大 有利于你今后的学习。
没有进行规范的技能形成训练
没有一定量的针对性练习就不能形成技能。另外,无论是作业还是测验,都应把准确性放在第一位,方 法放在第一位,并非一味地去追求速度。
学习计算机的诀窍
多练习,代码写多了,基础能力就提升上去了,对于普通课程的学习,可以看看一些老师课程,课后的题目也要做一下。
竞赛课程的话,可以自己刷刷各种open judge上的题目。国内的题目可以看一下洛谷,noi的题库,国外的可以可以刷一下usaco training或者uva 上的题目。
总的来说,计算机的学习,必须掉够一定的头发,解决够一定数量的bug,才能对题目真正有感觉。我会把每个花了很久才解决的题目仔细复盘,到底是思路不清晰,还是编程不规范,还是说可以通过一些小技巧让程序变得更快更好,总结多了,看到一个题目就有感觉,虽然说不上来为什么想要这样做,但长期培养的感觉会指引自己直接选择一种好的方法。
您觉得计算机竞赛和普通课程的区别在哪里
普通课程,更多是学习一些计算机通识问题,比较宽泛。也可能是某个编程语言的整体性学习,注重学习编程语言的语法特性。同时,普通课程会让大家循序渐进地感受到计算机编程的快乐,以及在编程中,体会到程序设计的艺术和美感。
竞赛课程,强调竞技的方面,通常是作为一种选拔的手段。主要目的是考察学生对数据结构和算法的了解和熟练使用。一般来说,是短时间、高强度的编程对抗,唯一的目标就是把分数拿到,更多地讲究熟练度和技巧,因此会损失一些计算机中实用和优美的东西,但学习哪个课程,要根据自身的发展方向来,什么样的专业需要什么样的技能。
也要了解自己的兴趣所在,有学习能力还不错的学生,在接触竞赛课程一段时间之后就坚持不下去了,原因就是对算法本身不感冒。一般来说,能长期学习竞赛课程的学生多少都对算法有某种特殊的偏爱。