学习编程的一些感想
今天在微信里看到韩食君写的一篇推文,觉得挺有感觉的,内容如下:
因为亲身接触过,所以我一直都觉得,很多普通本科的培养方式是有问题的。问题主要在于两点:第一,很多东西都讲个囫囵吞枣,大部分老师上课没有激情,内容平铺直叙,草草而过,学生分不清重点要点,学起来没有方向而且很吃力;第二,课程设置杂而浅,什么都讲一点,什么都作要求,不管技术是否过时,不管学生自身的规划方向,到最后学生可能好像什么都懂一点,其实什么都不懂。
我个人认为学编程应该“从上到下,再从下到上”,什么意思?
首先从上到下,是先从最上层学起,比如一开始你可以利用html写一个能够看得到页面,通过改变样式和布局,你能够直观感受到你做到了什么;比如写一个最简单的python爬虫,你可以快速获取你想要的数据。这些都是作为初学者能够真切感受到的,他们会因此感受到成就感,觉得编程好神奇,很酷。这样才会有很强的学习动力,接下来渐渐去了解下层的东西,比如浏览器是如何渲染的、网络是如何通信的、程序是如何运行的等等问题。
接着从下到上,知道了程序运行的原理后,可以开始写一些稍微复杂一点的应用,此时即使出现一些bug,你也大致会有一个查找问题的方向,不至于两眼一抹黑。若能够通过自己的努力解决问题,那更是成就感爆棚,学下去的信心也会逐步提升。如此“从上到下,从下到上”反复多个阶段,你的编程能力也就会慢慢得到提升。
所以我认为学编程,主导性是很重要的,即不能被学校课程牵着鼻子走,要有自己的规划。很多东西,不在你的规划清单上,那么水一水就过去了,不要让自己那么痛苦。举个例子,我主要是想学习Java生态的,那么在学校的.NET课,就没有什么听的必要的,要么不去了,做自己的事,要么去了也可以看自己的书。
你的问题是,有些不变通。或许是当局者迷,旁观者清吧。
比如,学习C++,“我拿起一本书,从头读,反复读,尽量记住自己读过的内容。”学习语言,我觉得读五遍不如写一遍,程序里都是细节,细节都是魔鬼,而这些光看书是很难看出来的。在初学阶段,哪怕最简单的代码,自己写一遍也许都会带来很大的收获。
“真正把一门语言学透,我想最好选择了一门语言,不管市场对它的需求,一直作为一种储蓄学、练下去。”把一门语言学透固然有道理,但如果你是为了从事这行,那又是何苦呢?好像有点自己和自己过不去。在学习上,死磕是一种重要的品质,但还是那句话,选择比努力重要,否则越努力,越落后。
“一位学长要求我写出一个爬取图片的爬虫,我选择使用C++语言,失败。”在这次失败经历后,你选择了加大力度学习C++,但有没有从什么语言适合做什么事这个角度去考虑呢?就如上文说的“从上到下”,先把一件事实现,涨涨自信,再去深究细节和原理。否则你很可能堕入学习的深渊里,不知所向,出不来了。
其实在学校真的有这种感觉,因为自己所在的学校一所普通的二A学校,能做的还是要靠自己不断的努力,并且是要找对方向的努力。不要想着跟着学校课程走,学校里的课程真的太杂了,这些课程的目的只是领你入门,在这些课程或者之外的课程里面寻找自己感兴趣的,然后再深耕,不要想着面面俱到(当然除了一些大神),这或许也是学校设置这么杂的课的原因吧。。。。