谈谈新手如何学习PHP


Posted in PHP onDecember 14, 2006

文章开头就列举了那么多联系方式,难免会让大家感觉有点AD的意味,但是不容质疑的是,默默的确有那么丁点的表现欲^_^,虽然有时候过于细致会被人说婆妈,但是幸好这种细致对于编程来说,还是蛮有益的
    从默默自己向别人问怎么学PHP开始,到后来不少人又来问默默怎么学PHP,不管默默是新手,还是老鸟,似乎总是感觉摸不出一条清晰的脉络来,不过,默默既然学会了PHP,那么我走的这条路或多或少的有一定借鉴性。
    PHP的背景恐怕就不用默默赘言了,我相信大家选择一种语言,并不是看它的背景和悠久历史,更重要的是看它的实用性,华而不实的语言哪怕是再辉煌的历史,也毕将步向没落,可喜的是PHP经受住了考验,也因此,它确实是一种值得学习的语言。
    默默一直是听从别人的经验长大的,也因此在前辈们的经验里让默默少走了许多的弯路,更快的步入了正规,在此向那些我至尽不知道其名字的前辈们道声谢谢,在 默默的眼里,帮助不分大小,只要是帮助,总会让默默的心里暖融融的,我想,前辈们帮助我,并不是为了得到我的一句谢谢,更多的是出于一种责任感和对默默的 期望,所以我想,只有学好PHP,才能对得起前辈们的汗水。
    正如我所说的,默默也终于感觉到了一种责任感,默默不知道自己的经验到底能帮助新手多少,但是默默明白,现在到了履行责任的时候了,我有必要把自己的经验告诉给所有希望学好PHP的人,只有这样才能让中国的PHP不断的进步,不断的发展,在世界上占据一席之地。
    默默学习PHP的这段期间,感觉国内的PHP环境越来越成熟,规范也在逐渐的健全,PHPCHINA的成立,标志着与官方直接挂钩的PHP机构在中国正式落户了,在此献上迟到的掌声!
    好的,切入正题:
    我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话:
    默默的文章不会对您的学习起到实质性的作用,您能否成功,还得靠自己的,坚持,坚持,再坚持,就是步入成功的不二法门。
    我先把我自己学习PHP的过程做一下概括:
        (1)熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性达到熟悉程度
        (2)理解动态语言的概念,运做机制,熟悉PHP语法
        (3)学习如何将PHP与HTML结合起来完成简单动态页面
        (4)接触MYSQL,开始设计数据库程序
        (5)不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板
        (6)完成一个功能齐全的动态站点

    我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单,即使是小吃部的烧饼也不是一下子就会做成的。
    我先解释一下我的学习思路。
    首先,理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。
    在学习HTML中我想边学边做是最有效的方式,当然这一方式对于学习PHP同样是最有效的。
    HTML中的任何元素都要亲自实践,只有明白了什么元素会起到什么效果之后,你才会记忆深刻,而一味的啃书,绝对是不行的,我想大部分新手之所以觉得概念难学,大部分是一个字“懒”,懒是阻止进步的最大敌人,所以克服掉懒的习惯,才能更快的学好一样东西
    也许您在学习PHP的时候只想尽快的开发一个网站,也就会想我做网站,干嘛要学什么网页这些小儿科?不难看出,眼高手低的新手不在少数,这种思想无疑于建造空中楼阁,你不建地基,何来的房顶呢?
    OK,掌握静态网页的制作技术是学习开发网站的先决条件,这一点就讲到这里,因为这篇文章不是教程文章,也就不对技术进行深入的刨析了。
    我假设你目前已经可以完成一个静态页面了,当然,做的好看难看是另外一说,默默的第一个网页也没好看到哪去,但是“孩子”再丑,咱们做“爹妈”的也不能嫌弃不是?这毕竟是咱的成果。
    那么咱们就开始学习动态语言的概念吧,刚一接触动态语言,可能很多人都会蒙了,怎么这乱七八糟的东西,在网页里显示的时候却是另外一码事?其实这并不算乱 七八糟,你写的HTML代码不也一样是一堆堆的字符吗?毕竟,代码并不是作为直接输出的,而是经过处理的,说白了,HTML是经过HTML解析器,而 PHP当然也就通过PHP解析器了,跟学习HTML一样的道理,想让任何的解析器完成操作,就必须使用它们专用的语法结构,所以PHP长相奇怪也就不足为奇了。
    对于PHP的理解是新手最难迈过的一道门槛,不过你应该感到幸运的是PHP已经最大极限的为了新手而努力了,如果你学过其他的语言,也许会觉得PHP的确相当的简单,但是如果你之前什么都没学过,那么阿弥陀佛,硬着头皮琢磨吧。
    书过三遍自然熟,这个简单的道理告诉我们,即使你理解不了PHP,但是也必须先跟它混个脸熟,看,一遍遍的看,看的同时一边琢磨,一边按照它所教的打代码,即使你搞不清楚那些代码到底是干嘛的,但是起码你应该找找感觉。
    在一段挣扎之后,聪明的你,显然已经逐渐的开悟了,慢慢的理解了编程的概念,那么祝贺你,你已经迈出了成功的第一步。
    搞清楚HTML和PHP的概念,那么PHP和HTML混合编程应该不成问题,在这期间,你完全可以让PHP给你算算 一加一等于几,然后在浏览器输出,不要觉得幼稚,这的确是跟阿波罗登月一样,你打的是一小段代码,但是对于你的编程之路,可是迈出了一大步啊!兴奋吧?但 是不得不再给你泼点冷水,您还是菜鸟一个。
    高兴一段时间就必须继续努力了,接下来就是学习数据库了,MYSQL可算是PHP的黄金搭档了,不过,虽然话是这么说,你也可能恨不得把MYSQL给生吞活剥了,因为这一行一列的东东简直让自己头晕目眩。
    头晕归头晕,目眩归目眩,你不可能吃饭的时候咬了自己一下舌头就从此不吃饭了不是?放下畏惧,继续努力,咱们是来征服它的,而不是被它征服的,振奋起来吧同志。
    在一番搏斗之后,你终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。
    学会了PHP和数据库的你,无疑是左手拿着MOTOLOLA右手拿着NOKIA,要多潇洒,有多潇洒,哈哈,终于学会了,但是可能这个时候,又会有人不经意的拍拍肩膀对你说:哥们,别高兴的太早,你还是菜鸟,离学会还差着一大截呢!
    等到你发奋努力的学会了用PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。
    这个时候的你也许是这种状态:
        你会HTML吗?会,我能编好几个大表格排板的网页啦!
        你会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦!
        你会MYSQL吗?会,我会把我的信息在数据库里插入删除啦
    那,接下来你该怎么做呢?我觉得,小试一下身手,大概是没问题了,那么交给你个任务,做个留言本吧,这和HELLO WORLD有一比啊!^_^,同是新手面临的第一道关。
    花了一段时间,你终于学会把表单的数据插入数据库,然后显示出来了,应该说一个程序的雏形已经诞生了。
    但是,你可能瞅瞅东,看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?
    不要急,可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的PHP手册在身上,时不时的摸出来看看,记得,去WC也不能放过(^2^)。
    再有条件的话,买本书看看吧,《PHP+MYSQL WEB开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-)
    巩固了自己的知识,熟悉了PHP和MYSQL开发的要领之后,再回头看你写的那个留言本,你也许会怀疑那真的是你写的吗?当然,如果屋里还有鬼的话,也许是它写的-_-
    这个时候,你的留言本应该加入注册以及分页功能了,而如果你更强的话,UI(用户界面)也可以加强,完成之后,感觉是不是特有成就感?不管怎么样,咱好歹 是写了一个动态网站程序了,放在自己的网站上耍耍吧,让好朋友来看看,嘿,看咱写的多棒,然后再在网上宣传一下。
    几天之后你再打开留言本,哎?哇,一下弹出N多页面!很明显,你的留言本并没有做好安全防范,被人用JS代码小小的耍了一下,我很同情你这个时候的感受,但是没有别的办法了,继续努力吧!
    你发奋努力,熟悉了安全方面的问题,然后又设计了一些程序,感觉还不错。
    那么接下来,这就算学会啦?NO,NO,NO,还早呢,你至尽还没碰过OOP之类的吧?模板呢?
    恩,学!加紧学呀学,学会了这些之后,你又学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后...
    总而言之,你绝对不会发现你全部都学会了,一些真正的强人总会搞出新玩意来丢给你,你不学就落后了,也印证了前人的经验,果然是学无止境啊!
    我想通过我的一番YY,你也应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^
    看完之后你发现,罗嗦这么多,对我一点用处没有啊,我知道该怎么学,但是我想如何才能更快的学,一周速成,啊不,24小时速成那种,默默你有没?
    我.......我没有,但是2分钟之内把你扁进医院里,我倒是有把握-_-
    学东西,永远不要妄想有速成这一说,告诉你了一个方式,但是缺少努力这一环节,那也是白搭。
但是有一点我可以给你保证的就是,你学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。
    不过语法好学,但是怎么用语法来实现每个人都有每个人的方式,几乎是各有千秋。然而借鉴别人成功的代码,绝对是有益无害,因此,多看那些经过千锤百炼凝出来的经典代码,是进阶的最好方法。
    讲了这么多,无非是想说:学习PHP不仅要掌握方法,更多的是付出汗水, 我不希望看到中途放弃的人,相信自己,相信自己的选择,更要相信自己的能力,如果自己想放弃,暴力一点的话,就自己抽自己一个嘴巴,然后大吼:别人可以, 我为什么就不可以?(是不是有点阎罗教练的味道,默默的确是电影看多了,抽嘴巴是会痛的,各位其实明白这个道理了就行了)
    另外要叮嘱各位的是,抵御诱惑,ASP/PHP/JSP/.NET的对比也许会让你无所适从,你也许学了一半PHP,又开始打C#的主意,或者有人说JAVA很强,这个时候的你绝对不能动摇,哪怕你真想学,也得学会了PHP。然后再学,见异思迁是最不可取的, 狗熊掰玉米就是这个道理,如果经常中途放弃,只能是一无所获,还浪费了N多的时间和经历,得不偿失,最重要的是,你会被别人瞧不起,没有人会喜欢和见异思 迁的人交朋友,因为这种人太不安分,太不可靠,因此,你必须要强迫自己完成自己的目标,哪怕可能会很难受,也得坚持,毅力就是这么锻炼出来的。

PHP 相关文章推荐
删除无限分类并同时删除它下面的所有子分类的方法
Aug 08 PHP
用PHP实现 上一篇、下一篇的代码
Sep 29 PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 PHP
php的declare控制符和ticks教程(附示例)
Mar 21 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
Jun 12 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
简单了解WordPress开发中update_option()函数的用法
Jan 11 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
Feb 22 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
Sep 23 PHP
php创建类并调用的实例方法
Sep 25 PHP
PHP实现简易用户登录系统
Jul 10 PHP
php基础知识:类与对象(5) static
Dec 13 #PHP
php基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 #PHP
php基础知识:类与对象(3) 构造函数和析构函数
Dec 13 #PHP
php基础知识:类与对象(2) 自动加载对象
Dec 13 #PHP
php基础知识:类与对象(1)
Dec 13 #PHP
php基础知识:函数基础知识
Dec 13 #PHP
php基础知识:控制结构
Dec 13 #PHP
You might like
php在项目中寻找代码的坏味道(综艺命名)
2012/07/19 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
把input初始值不写value的具体实现方法
2013/07/04 Javascript
js截取字符串的两种方法及区别详解
2013/11/05 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
jquery对Json的各种遍历方法总结(必看篇)
2016/09/29 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
React实现全选功能
2020/08/25 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
[56:35]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第一局
2016/03/06 DOTA
python模拟enum枚举类型的方法小结
2015/04/30 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
Pytorch之Variable的用法
2019/12/31 Python
浅析Python 多行匹配模式
2020/07/24 Python
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
临床医学专业求职信
2014/08/08 职场文书
幼儿园小班个人总结
2015/02/12 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书
法定代表人资格证明书
2015/06/18 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python