>
Home

登龙(DLonng)

选择大于努力

学生时代,代码要从 0 写起,拒绝拷贝!


版权声明:本文为 DLonng 原创文章,可以随意转载,但必须在明确位置注明出处!

我的学生时代暂时结束了,回顾自己一路上的自学计算机的经历,cd 我总结了一个重要的学习方法:编程项目(模块),一定(最好)要自己从 0 开始写起!为什么呢?

因为只有你自己从 0 开始写出来的东西,你才能真正理解它,这个过程需要经过你的头脑风暴,这跟把别人的代码看懂完全是两回事!但很多人当做一回事。当你能够自己从 0 开始写出一个小项目的代码,你会发现在这个过程中你一直在思考创造,在主动的学习与运用,而不是被动的吸收于消化。这也是大学课程设计,毕业设计这些实践课存在的必要性。

自己从 0 开始写意味着创造,即使是重复造轮子,在学生时代那也是值得的,但是很多同学就是觉得做别人做过的东西没有意义,殊不知经过时间考验的经典代码才是精华,万变不离其中!

我平常观察身边的同学朋友,大部分做项目都是去网上搜索代码,然后修修改改就完工了,并且觉得好简单,完全没有难度,但是真的简单吗?还是自己太肤浅了呢?我平常写东西对自己的要求是比较严格的,只要是以学习为目的,能够自己从 0 开始写起的我都尽量自己写,不管是算法还是一些模块的逻辑代码。

就拿大家都需要完成的毕业设计来说,许多同学都把它当成工作中的任务,要以最快的速度来完成,于是乎网上有的东西自己就不动手实现了,看了代码之后觉得也就那样,很简单,要是我自己写肯定也能写出来。于是到最后,代码自己写的少的可怜,老师答辩一问到关键点就回答不上来。其实老师答辩的目的之一就是检验到底是不是你自己完成的,自己写的东西一些细节和 Bug 的产生和解决都是有来由的,简单的拷贝别人的代码,只看到了结果,却忽视了整个思考并创造的过程,而恰恰这个过程才是最重要的,能力的提高是需要经历这些过程的。

比如我的毕业设计 10000+ 行代码都是我自己 2 个月一点一点写出来的,没有一行拷贝,一路上碰到了很多难题,但最后都自己解决了,自身的能力也提高了很多。假如我要速度的话,那些代码到网上拷贝拷贝,2 - 3 个星期估计就搞定了,但那样也就失去意义了。

你要知道你是为你自己而学习,不是为了别人,躲得了初一躲不过面试,对自己要求严格点,没有坏处。

有些同学说从 0 开始重复造轮子,浪费时间,我只要理解了,能会用就行了。但其实不然,又没叫你从 0 开始造个火箭,能浪费你多少时间?而且整个过程并不浪费时间,比你去学习那些所谓的新技术要有用的多。在学生时间有充足的时间去从 0 开始写点东西,等到以后工作了大部分反而大部分都是用别人的框架代码,那时候你想用自己写的,还要问问领导答不答应呢。

总之,就计算机编程而言,要想真正的提高编程能力,解决问题的能力,是需要一次或者多次从 0 开始创造的过程的,这也是很多同学所缺少的特质。至于你从 0 开始创造什么项目(模块),这我就不好下定论了,你要根据你的兴趣爱好和方向来选择,从简单到复杂,争取创造成功再进行下一个,这样才能获得成就感,以此来正向激励自己。比如就定个目标:毕业设计从 0 开始自己创造,自己全程手写代码!别看这个目标,90% 的同学都做不到的。

相信我,这真的不简单,因为「创新」真的很难,那些经典代码都是经过多少前人的修改才定下来的,现如今只要求你能理解,并且独立写出来,难度已经很小了。但是可惜许多同学都太过于浮躁,把握不到学习的本质,错失了许多提高自己的机会。

最后送你一句:勿以浮沙筑高台!

本文原创首发于微信公号「登龙」,分享机器学习、算法编程、Python、机器人技术等原创文章,扫码即可关注

DLonng at 07/17/18