十年磨一剑

今天在网上看了一篇关于c++的文章,题目是《21天教你学会c++》(avast报为恶意URL,不过当时是手机看到,希望手机没事啊……)。

在书店里经常会找到《30天学会孟加拉语》《21天学会office》……之类的书籍,但是如果真的那么简单的话,那不是全世界都是计算机专家、某某语言学家、某某专家……了吗?那我们还交钱在学校学习个什么啊?不是作孽吗?有钱没地方花啊?

In short,所谓的21天学会c++是不现实的,是根本就不可能的啊。在短短的21天时间里,你所能够做的就只是把书通读或者精读一遍,然而在这21天里,是无法跟有经验的程序员一起共事并从中学习的,也无法掌握c++编程环境的。书中所谓的精通只是表面上的,而非深入的理解。英国诗人Alexander Pop说过:“a little learning is dangerous thing。”可以翻译作“一知半解是危险的事情”。在这有限的几天里,能够做到只是了解c++的基本语法,如果你有例如VB、Java之类的语言基础的话,会快点。

Alan Perlis曾经说过:“A language that dosen't affect the way you think about programming,is not worth knowing”,这句话大概可以翻译成“如果一门语言无法影响你的编程思想就不值得你去学习”,虽然有时不得不学习c++已完成任务,但那只是为了完成任务,而不是学习编程,这段短短的几天时间里是不够学习如何编程的。

一些研究者的研究表明,在许多的领域中,都需要花费大约十年左右的时间才能够培养出专业技能,例如篮球、游泳、绘画等等。莫扎特,世界著名的音乐家,他在四岁时就显示出了很强的音乐天赋,在他成功的写出世界级的音乐前,他仍然用了超过13年的时间……这种例子还有很多,就不列举了。

英国诗人Samuel Johnson说过:“Excellence in any department can be attained only by the labor of a lifttime;it is not to be purchased at a lesser price”中文意思大概是说“要在任何领域获得卓越的成就都必须通过一生的努力,哪怕是稍微低一点的代价也是换不来的”

再来说说中国学家,在古代有个诗人写了首诗“十年磨一剑,霜刃未曾试。今日把示君,谁有不平事?”后来将“十年磨一剑”用作比喻刻苦磨练,还有更夸张的“台上一分钟,台下十年功”……

并不是看看书就能编好程序的,即使你看的是《c专家编程》之类的经典书籍也是于事无补的,要成为优秀的程序员最好做到以下几点(纯属照搬):

1.对编程感兴趣。只有这样才能在十几年的时间里重复枯燥的探索。

2.与其他程序员交谈,看别人的程序。这比任何书籍或训练课程都有效。

3.编程。毫无顾忌、放心大胆的编程吧,只有实践才是最好的老师。

4.最好能通过大学甚至考研来入门或加深对此领域的理解。

5.与其他程序员共同完成项目或接手别人的项目。学会合作与理解别人的编程思想。

6.学会多种语言。一门支持类抽象的语言,一门支持=函数抽象的语言,一门支持语法抽象的语言,一门支持说明性规约的语言,    一门支持协程的语言,一门支持并行处理的语言。

7.“计算机科学”包含“计算机”这个词。

8.尝试参与到一项语言标准化工作中。

9.拥有尽快从语言标准化工作中抽身的良好判断能力。

虽说并不是真正的学会,但通过书籍还是能学习到不少好处的,所以依旧鼓励买书看书……

你可能感兴趣的:(十年磨一剑)