突破PHP学习的迷茫期的内功心法

原创 ningcaichen66 随笔 PHP 220阅读 2017-05-10 17:00:33 举报

许多初学者包括有的学了一两年了的朋友在学习PHP的时候都会有这种感觉:要么无从下手,要么信心不足,看别人的都会,自己写的时候就无从下手,你烦他也烦,大家一起烦...特别是学了几个月的PHP的“入门者”,看似入门,但看似又陷入了另外更多的迷雾之中。

弃之不舍、食之无味、陷入迷茫、进退两难。这其实是面临的第一个瓶颈,也是一条分界线。冲破这条分界线,你就会燃起希望之火,但要冲破,谈何容易。

相信你是跟着某本书或者某套视频一路学习过来的,你也曾经是在不停的练手了,还出现这个问题,说明不单单只是练手这么简单,更重要的是练心。外行人看结果,内行人看过程。我要给的建议是:先练心、再练手;

因为:没有理论指导的实践,是埋头苦干,事倍功半。

因为:没有实践验证的理论,是虚无缥缈,莫名其妙。

其实在PHP领域,很多技术人员往往都只注重“练手”而缺少“练心”,心浮气躁,急于求成是最大的表现。比如很多人只是在背诵面向对象的语法,但很少人去探索“为什么要有面向对象,面向对象是怎么来的,为什么面向对象的语法长相那样?

怎么使用面向对象去开发?”有也只是问了几下,就不了了之。

这样下去就缺乏理论的指导,导致你用面向对象开发或者想用面向对象开发就感觉无从下手。类似的例子还有很多如:单入口的设计,如MVC设计模式。看着别人写程序或者写好的程序酷似行云流水,但自己来写就是无从下手。

这其实就是症状,一种没有强大理论基础支持的症状。这样持续下去是比较危险的,因为会不停的浪费时间在练手上,但是就像南辕北辙,方向反了,再努力只会更加适得其反。

发展下去不但感觉前途渺茫,而且自身的价值可能充其量只是个不会思考的代码工人,发展也受到很大限制。所以,要开始注重“练心”,练“内功”,加强理论基础。

这里说的理论不是看了某本书或者几本书记住几个语法就算过关了,也不是背诵某段概念就算了。而是要在你心底里有一套“属于自己的理论体系”。

当你给一个不懂PHP的老太太讲解PHP领域的时候,你能讲的头头是道。当你要用面向对象的继承的时候,你能告诉自己继承是什么,为什么要继承,这样你才能知道在什么时候去用它。那么,多态,接口也就类似了。

自己能告诉自己这是什么,为什么的时候,你也就会开发了。但要达到这个要求,就要注意许多东西如:不要迷信于某本书,要从多本书上学习,也不要拘泥于看书,还要善于利用多种学习素材,讲究不拘一格的学习方法。

1:学习方法不拘一格

要用一切手段来学习;不要只是看书,因为很多书本身就有可能质量不高,作为新手,你不一定运气那么好。

衡量一本书的好坏,也不是别人说好就好,要看自己看得懂没?看得懂就好。就像经典的一句话“打的赢的就是好功夫”。

然后还有其他的手段,比如你可以在晚上一个安静的地方经常自问自答,这是什么,为什么,这样可以充分的调动你的思维去横向、纵向、综合的去用你所学来思考问题。

2:如何从别人的代码中学习

看代码要看代码的质量,真正值得你关注的是别人的思考方式。而不只是看它能否实现某个功能。其实写代码也是“相由心生”;写出的代码只是外相,思考方式才是让你百尺竿头更进一步的重大素材。

另外即使没实现某个功能的代码也不一定一点用都没有,或许就少那么一点点,那么这些代码也有一定的参考价值。比如:上传图片可以有多种方式来实现,可以自己用h5实现,用uplodify实现,用jcrop实现,用iframe实现,以及其他的方式实现。这些多种实现方式可能你难把所有的都找到,即使找到也有可能是残缺,那你就利用残缺代码来修改,有空了就修改,什么时候修改成功了,你会多前进了一步。

3:充分认识“学了不等于会了”

学了只是手段,学会才是目的,才是提升自我水平的衡量标准。

“学了”只是说给别人听的,“学会”才是说给自己听的。比如:学了正则表达式,但是能用正则表达式自由的写你想要的采集规则吗?所以“学了”和“会了”中间还有很大的差距,需要时间不断的磨练。只有“会了”,才能解决:一看项目不知所云,一看代码无从下手的尴尬局面。

所以,很多时候不是你能力不足而不如别人,是你根本就还没学到功夫,怎么又能和别人去比武呢?因此,不要随便否定自己,可能根本就不客观。

4:要学会透过现象看本质

很多语法的背后其实就是一个游戏的游戏规则,这个真没必要跟它死磕到底。完全是由编译器当时的设计人员而定的。这没有什么对和错之分,只有你写的符合游戏规则与否之别。比如你要学习PHP的面向对象,没必要死纠结为什么叫public而不叫其他单词,为什么叫private,而没叫其他单词等等。

你要学会的不是这个词叫什么,而是为什么要有这个词,有它有什么用?要学它的原因,而不要拘泥于它的表象。因为还有js的面向对象呢,还有以后你可能多学一门语言的面向对象呢,那你到底要学几套面向对象?其实思想是一样的,你要学的就是思想,所以要学会透过现象看本质。这样可以为你的学习减负,大大的减负。

5:多和内力高手交流。

功夫领域里有句话:练武不练功,到头一场空;练功不练气,不如放个屁。内力才是最重要的。

在外行人眼里,只是看你会or不会;至于你学的苦不苦、累不累,别人是不关心的。所以外行人是看结果,内行人,才会看门道的。他们会追求学习的时候是否轻松,思路是否流畅等等这些更深层次的内力心法。所以你要想学到功夫,就要多和内功心法高手交流。

6:平常心

学习是个持久的过程,学会虽然只是一个结果,但是要到这个结果,你不知道要付出多少努力,要反复尝试多少次失败,经历多少次烦躁,其中的酸甜苦辣只有你个人知晓,甚至你越学的高深,能跟说话的人就越少。所以,要有颗平常心,不以物喜,不以己悲。因果循环,付出总有回报的。

心浮气躁是大忌,急于求成酿苦果。

多从基础去弥补,多从理论基础下功夫,理论和实践相结合,有个词叫“水到渠成”。还是要多遵守这些客观规则,它同时也是在保障你的利益。

不要扭曲自己,不要强迫自己,一切顺其自然的学习。做一行爱一行,把PHP当作你的第二生命,当作你的女朋友(如果你是个男的)。美国大战的电影中不对里面都是把枪当作他女朋友吗?这个可以学习一下。热爱她,你就会注重它的质量...她也会对你好感的,你慢慢的就不会那么的陌生,那么的恐怖,很多东西都水到渠成的解开了......

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复