编程学习的武功心法

 

学武功,先学心法...



本文是连载文章。这个系列会从认知,学习,编程,职业这么几个角度来分享我对工程师的学习成长之路经验和思考。

这是认知部分的第二篇文章。

上一篇文章中,我们一起聊了一些对于编程这个行当的认知。今天就来说一说该如何来学习编程这件事儿。

学武功,先学心法,再学招式。练好了内功,再练外功。学习也是如此。根基打的好,做起来才能事半功倍。学习编程,从练,学,教这三件事儿开始,层层递进,循环往复。

拳不离口,曲不离手, 换成行业术语就是 Talk is cheap,show me the code. 老祖宗说的好,一天不练手脚慢,两天不练丢一半,三天不练门外汉。虽然有点夸张,但是充分的说明的实践的重要性,对于编程来说就是敲代码。

为什么要不断的实践才能提升功力?这里有两个层次,一是提升肌肉记忆力。由书本知识到Coding输出,表面上看上去好像没有多大差别,实际上这中间有着不小的鸿沟。你看的懂,不代表能写出来,这中间是需要练习来进行强化的。对陌生内容的接受先要通过最简单的记忆来固化到大脑中,才能进行下一步的升华,对编程来说不是去背书,是通过敲代码,来完成这个记忆的过程。通过反复练习重复的内容,把知识固化成肌肉的本能,尽量缩短反应时间,直到成为下意识的行为。

二是加强思维敏感度,对相似,相关的问题多次练习后,能够逐步养成对这一类问题的敏感度。在没解决过这类问题之前,你需要花不少时间去查资料,思考对应的解决方法,再多次解决之后,就能够把这类问题的解决方式变成直觉的反应,一看到类似的问题,就大概有个思路该去如何干。

三人行必有我师,按这个比例来算,在编程技术里,这个“老师”就相当多了。自己学,始终会遇到一个问题,就是不知道做的到底如何。所以除了自己学习以外,我们也需要向别人学。最直接的方式,就是去学习优秀的源码。在Github上,各种编程技术相关的优秀开源项目,都是非常好的学习资料。

源码里可以学习的东西很多,最重要的我们要关注解决问题的方式。很多人上来就直接开始从第一个文件开始看,看着看着就开始发现,越来越复杂,越来越混乱,看不下去。因为没有一条主线把你所看的东西关联起来,你看的内容其实是用来解决不同的问题,糅杂在一起当然容易混乱。在我们开始学习源码的时候,要围绕着主线索-这个开源项目解决的问题-来按图索骥的进行分析,查看其解决问题的方式。

明白了别人的解决方式,也要对比看自己解决方式,如果不使用这种方法,让你自己来做,你会如何来做?你做的这种方法和它比较有什么优缺点?为什么你没有想到用这种方法来解决问题?缺失了哪些知识点?这样才能不断给自己升级。

传道受业解惑,学习最怕的一种情况就是You don't know that you don't know--不知其不知。我们在学习时会有自己的固定视角,好处就是能够帮助我们用习惯的思维方式快速解决问题,坏处在于我们无法跳出自己的视角来看问题。这时候再通过我们自己是不太容易解决这个问题的。

教授别人我们所习得知识能够帮助我们暴露思维的死角。当你以为你知道的时候,往往别人的一个提问就能够打破你的自以为,让你从其他的角度来认知到之前习得的内容。这时你的见解就会因为这些问题而得到不断的完善,补充。在教授过程中,你会加深理解,在别人的提问中你会产生新的感悟。

上篇文章:虽然都是编程,但这些岗位做的事都不一样...

 

严肃,认真的学习社区



长按关注获取更多实战内容


    关注 CalfCircle


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册