为PHP初学者的8点有效建议


Posted in PHP onNovember 20, 2010

学习一门新语言可能会是一件很艰巨的任务,最好的办法就是借鉴前辈的经验已达到事半功倍,下面就是为PHP新手们准备的一些经验餐( 笔者也还是新手)。

如果你是个PHP开发者,无论是新手还是高手,笔者都希望你能在此讨论下自己对PHP的想法或者技巧。

1. 从OOP开始

Naramore是SourceForge员工以及PHPWomen.org的创办人。对于初学者,她建议在学PHP之前先了解清楚OOP(Object-Oriented Programming)即面向对象编程思想。

“如果你来自非高科技行业,很有必要花一些时间去学习软件开发的基础流程。例如面向对象程序设计、测试驱动开发、版本控制、 调试、设计模式等。”

“如果你已经尝试过了但无法解决问题,不要害怕开口问人。很多PHP社区的气氛都是非常友好的,并且提供了大量初学者可用得上 的资源,这些都你来说都会大有帮助的。找一个适合自己的稳定的社区,一个本地用户组或一个开源项目社区,或者是一个freenode上的相关 IRC聊天频道。”

2. 随时Google

Casey创立了一个软件商店,并且在unconference流程方面做了很多研究。

他的建议是在PHP社区找到自己的位置以及遵循“发问前先Google一下”。

“马上找到一个用户组加入,全世界有很多聪明的人聚集一起聊天、开拓思路、互相帮助的PHP群。”

“记住,在提问之前先尝试在google上搜索。没人喜欢懒惰的人。”

3. 加入开源项目

Leonard 在运营一家爱尔兰软件公司echolibre,同时还是CloudSplit(一个云计算分析服务)的联合创始人。和他的很多同龄人一样,他建 议应该积极尝试加入开源项目,即使你是个新手。

“通过参加开源项目你有机会看到那些源代码,并可以向资深的前辈学习。”

“帮助开源项目团队做一些事,例如寻找和记录重复性的bug这样的耗时任务,他们会对你心存感激。当我们想要雇用开发人员时, 如果他曾经参与过OSS项目,我们会更多地考虑他对公司的潜在贡献。”

4. 想了就做

Lornajane 他在网上的身份Mitchell更为出名,是一个PHP顾问、开发者、作家和演说家。

她给出了一句简短的建议:想了就做。

“PHP是一种非常易懂、可以进行快速开发的语言。想知道一件事是否可行的最佳方法就是去做这件事。”

“任何人都可以用PHP编程。低门槛意味着会有很多糟糕的PHP作品。但很多糟糕的PHP作品却是非常有用的,即使它看起来并不漂亮 。我个人认为如果你能用PHP解决问题,就大胆去实行,即便做出来的东西可能并不完美。”

5. 避免编码倦怠

Cornutt 运营PHPDeveloper.org和Joind.in,他从1998年开始一直在使用PHP。他给PHP初学者的建议是千万不要产生编码疲劳和倦怠。

“我认为新手PHP开发人员很容易陷入一种不堪重负的境地...初学者往往是对语言有兴趣,但总是被一种“能运行即可” 的心态误导,以至事倍功半。”

“试图找到一位导师来引导你进行这些初步的学习步骤。当你真正去同他人沟通时,会发现世界很多不同的东西。IRC是一个很好的 选择,但找一个牛人做老师肯定是最佳选择。"

“PHP开发也是一种需要磨练的技能,没人可以在一夜之间变成一名高手。”

6. 选择一个好用的编码器

Turner 从1996年开始一直在做web相关工作和参加开源项目。他运营PHPKitchen.com,最近还杀入Seedcamp决赛。

他给了新手PHP开发人员一个非常好的建议,可以节省时间,写出更好的代码,并帮助维持你对编码的兴趣。

“阅读经验丰富的开发者的代码,你总会发现一些更好、更简洁的方式算法。不要重新发明轮子,使用库可以避免自己编写重复的代 码。"

“确保你的代码是人类可读的,如果你的代码6个月后连你自己也看不懂了,你让合作的其他开发者如何去看?"

“尽量简化接口,写简单的代码难度更大,不过,良好的重构会为维护节省大量的时间和头痛。"

“最后,了解一些杰出的程序员以及他们如何多年保持对编程艺术的热情。”

7. 了解测试驱动开发、封装和代码控制

Herbert 从1999年一直玩PHP至今,他对Gentoo Linux作出很大的贡献。

对于PHP初学者,他说“学习测试驱动开发和封装。一旦你熟悉它,你代码会写的更快,而且继承你代码的人肯定会感谢你”。

“学会代码控制,这是必经之路。”

他还表示,PHP一个最大的优势是有大量的在线免费文档,不用像学其他某些语言一样,跑到街上的书店去买教程。

8. 了解安全问题

Maclean 是来自苏格兰的PHP和Python开发者。

他说:“正因为PHP易用性强,所以有很多人都在使用,但我们必须想想那些初学者在用它做些什么。没必要什么都从头开始写起, 适当地选择使用框架是个很好的开始。”

“另外要做的是了解有关安全的问题。PHP曾经在安全性上臭名远扬,就是因为易用性带来的副作用。我们必须学会避开这些问题。

PHP 相关文章推荐
PHP无限分类的类
Jan 02 PHP
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
smarty的保留变量问题
Oct 23 PHP
php 图片加水印与上传图片加水印php类
May 12 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
基于PHP 面向对象之成员方法详解
May 04 PHP
PHP递归删除目录几个代码实例
Apr 21 PHP
php连接与操作PostgreSQL数据库的方法
Dec 25 PHP
PHP针对字符串开头和结尾的判断方法
Jul 11 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
Dec 15 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
Apr 07 PHP
PHP程序员最常犯的11个MySQL错误小结
Nov 20 #PHP
Windows 下的 PHP-PEAR 安装方法
Nov 20 #PHP
整理的9个实用的PHP库简介和下载
Nov 09 #PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
Nov 02 #PHP
在PHP中使用curl_init函数的说明
Nov 02 #PHP
php运行出现Call to undefined function curl_init()的解决方法
Nov 02 #PHP
《PHP编程最快明白》第八讲:php启发和小结
Nov 01 #PHP
You might like
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
点击隐藏页面左栏或右栏实现js代码
2013/04/01 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
网页防止tab键的使用快速解决方法
2013/11/07 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
jQuery简单动画变换效果实例分析
2016/07/04 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
2017/09/18 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
利用Electron简单撸一个Markdown编辑器的方法
2019/06/10 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
python实现下载文件的三种方法
2017/02/09 Python
python正则表达式面试题解答
2020/04/28 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
Python常用特殊方法实例总结
2019/03/22 Python
Python实现快速排序的方法详解
2019/10/25 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
师范应届生教师求职信
2013/11/05 职场文书
上课睡觉检讨书
2014/01/28 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
学历证明样本
2015/06/16 职场文书
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android