如何正确的学习PHP?
1.确立目标
我们都知道做事情要定个目标,看似简单,但实际大部分人做事无成果的原因恰恰就是这一步没做好。
建议大家在确立目标时,借鉴”SMART”原则——Specific(具体的), Measurable(可衡量的),Achievable(可达到的),Realistic(切合实际的),and Timed(合时宜的)。
我在初学PHP时,给自己定的目标很明确:学习PHP的基本知识,并通过开发一款CMS建站系统来验证学习效果。
2.拆分任务
我们通过逆向分解,将目标拆分成具体的可执行任务。这个过程其实就是将目标细分整理成具体的小目标或问题,然后将其关联到一个个可执行的任务,目的是完成目标或解决问题。
完成我的目标,需要具体学习哪些知识,完成哪些事项呢?首先,学习PHP之前基本的HTML,CSS,JS等前端基础还是有必要的。然后学习PHP的基本语法,文件、图片、错误等处理机制,还有与mysql数据库的一些操作,以及会话控制、协议、MVC设计模式等。
梳理之后,目标就会被分解成一个个需要完成的具体任务。这里我借助任务管理工具,将需要做的任务都罗列出来,方便后面执行跟踪。
3.搜集知识资源
学习过程中必然少不了各种学习资料,在搜集知识资源时主要侧重三方面:书籍、官方文档和网络技术文章。
首先我找的是PHP的官方手册,这是必备学习工具,内容既权威又全面。其次书籍到现在买得较多,对于初学者,不建议“书海战术”,个人觉得“手册+一本书+一台电脑”足矣。
其实很多入门书籍都是基于PHP手册编写的,千篇一律,所以建议初学者学习PHP时要研读手册,每段实例代码都上手操作并理解透彻。这里为初学者推荐几本个人觉得还不错的书以供参考:
《PHP编程(第三版)》
《PHP和MySQL Web开发(原书第4版)》
《深入PHP:面向对象、模式与实践(第3版)》
除此之外,平时也会在CSDN、掘金、博客园等IT技术门户里查阅一些php技术相关的“干货”。
对于知识资源的搜集,还是要提醒大家注意一点,切勿做“收藏控”。很多朋友对于书籍、各种教程、网络文章等资源,购买了下载了收藏了,然后,就没有然后了,最终真的沦落为“收藏品”。而我们真正要做的是要把知识“收藏”并沉淀到我们脑子里。
4.分配自身资源
其实就是时间管理。我们的时间、精力等各方面资源有限,所有的知识不可能平均分配有限资源。对于我们搜集的知识资源,要分清主次,然后使用不同的时间管理策略进行学习。
前面梳理了一些需要执行的学习任务,并整理了大量的学习资源,这一步要做的就是将这些任务、资源结合自身的实际情况,合理规划分配时间精力。
5.勤学
学习效率与效果取决于执行力。之前文章介绍过学习中的一些方法论,这里我简要地介绍一下学习PHP时的大体过程。
a.快速泛读
如果你有一定语言基础,比如我之前学过C和前端技术,再学起PHP来上手就相对快一些。基本的语法知识可以先快速过一遍,像数组、字符串、图片等处理函数、对象接口、正则匹配等可以后面慢慢积累、深入。
b.深入解读
由浅入深地沉淀每个知识点。正如前面所讲,建议先从PHP手册入手,将每个知识点理解清楚,一定要将每一段实例代码亲手敲一遍(手懒是永远都学不会任何一门语言的)。一遍不懂就多敲几遍,不仅要明白怎么用,还要理解为什么这样设计,否则对于基本知识浮于表面,只会为后面学习挖下坑。
c.问题攻读
在学习过程中你必然会遇到各种问题,先查阅资料或谷歌来解决。如果遇到以现有知识层面难以解决的问题,可以先记下,或许后面会柳暗花明或找他人帮助。
这一步学习的正确姿势其实就是“做任务,刷副本,打怪升级,加技能点”。
6.建立知识体系
不要以为这一步可有可无,建立知识体系有助于帮我们理清各个概念和知识点之间的关联,逐渐形成系统的知识体系。在web开发里,我们知道任何一门技术都不是孤立的,你要学习很多知识,所以你在学习PHP时会发现,从PHP这个点会延伸出多条知识链,从而系统地形成一个知识体系。
7.好问
基于前面问题攻读后还有未解决的问题,就要求教他人获取帮助了。提问也是一门艺术,这仍是一个学习交流的过程,而不是让别人去解决原本你该解决的问题。
向别人提问求助时,要将问题的来龙去脉讲清楚,如怎么引起的,自己尝试做了哪些操作等等。这些年在众多技术交流社群和平台,见过很多奇葩的提问方式,这里列几个,与大家共勉。
a.直抛结果型
直接甩出一张截图或错误提醒,并附上一句:怎么解决?怎么破?跪求科普……
b.不懂就问型
不动脑,不动手,碰到问题就问。这种选手即便帮他解决了问题,他也学不到东西。
c.懒人型
与前者类似,但更滑稽可笑,看到这种问题我个人向来直接无视。比如“这个问题是这样操作么?”,“我这样整对不对?”,“是点这里么?”……
8.分享复述
其实即便不提“费曼技巧”,我们很多人在学习时都会用到分享复述这个方法。无论是演讲、录视频、还是像我此刻这样写文章,其实都是在向他人阐述自己对知识的理解和观点,然后大家会给自己一些反馈,比如你的错误、问题,接着自己再回归到知识里完善不缺“漏洞”,如此迭代学习。