一个优秀的php程序员必须具备的7种能力,你的能力在哪里?

php 程序员应具有什么样的能力,才能更好的完成工作,才会有更好的发展方向呢?在中国我想你不会写一辈子代码的,那样不可能,过了黄金期,你又怎么办呢?

php 能力

1、了解阶段,你能写一些代码,因为那是在手册和 google 的帮助下,你才完成的。变量乱定义,N 多函数不知道,做起事来很慢,想到什么写什么,代码写的比较乱,后期维护很麻烦。

2、熟悉阶段,经常查函数,手册估计也看过一,二遍了,常用的函数基本上你都了解了。后 期维护给你带来了不少痛苦,你开始发现自己的代码有很多不足,开始思考如果改进自己的代码,如何站在项目的角度来规划自己的代码,而不是想到什么写什么, 知道如何来减少冗余代码,使你的代码清晰,知道什么样的代码写出来让人看着舒服,基本的代码规范,已经形成。为了提高自己,会特意的去一些技术性的论坛, 学习研究。

3、很熟悉阶段,这个阶段,我想你已经从面向过程进入了面向对象。个人觉得面向对象的最大好处就是,能使整个项目功能化,模块化, 后期维护,改版,升级就很方便了。没有面向对象的时候,不也一样开发吗.这个时期,你已经研究过了一种或者几种框架,结合自己的实际项目经验,在脑子里已 经能形成自己的一个框架,这个框架是最适合你的。并且能够将这个框架运用到实际的开发中去,以提高自己的开发效率。如果你刚写代码的时候,就有人能约束你按 OOP 的思想去写代码的话,那你就遇到贵人了。当不好的代码习惯养成时,在想改就不那么容易了。

数据库能力

用 php 来做项目的话,用 mysql 是最多的了,其次是 pgsql。因为他们二个是免费的。哈哈,以 mysql 为例!

1、了解阶段,知道 mysql 是什么,能写一些简单的 sql 语句,能设计简单的表,知道如何使用数据库管理工具(如:phpmyadmin)

2、熟悉阶段,知道如何才能写出高效率的 sql 语句,了解索引原理,知道如何创建索引, 会写一些储存过程,触发器等,能通过各种手段来分析,测试数据库,例如:利用 mysqlslap 来进行压力测试,通来 explain 来分析 sql 语句,通 过开启慢查询来分析哪些 sql 语句真正影响 mysql 的运行,能利用 dbdesigner4,mysql workbench 为设计数据库,能在命令状态下,查询,分析 mysql 环境变量,来分析 mysql 的运行状态等等

3、很熟悉阶段,对于各有种存储引擎的原理非常熟悉,知道通过修改配置文件来,使存储引 擎达到最优化,知道如何来优化数据库的最大连接数,知道怎么样来优化 mysql 的 I/o 瓶颈,为了项目的需要,向 mysql 数据库增加存储引擎或者插件, 知道如何搭建数据库集群,并监控数据库的运行状态等等

html,css 能力

php 是脚本语言,我们用 php 大多数情况下是用来做网站的,慨然是网站,那肯定是离不开 html,css。

1,了解阶段,知道 html 标签是干什么用的,通过网络和手册能自主的写一些 html,知道 css 是怎么回事,能在 html 中写一些简单的 style 等

2,熟悉阶段,能利用 css 来能设计一些简单的布局,可以将 css 单独的写成文件,熟悉 css 的语法规则,以及继承性等

3,很熟悉阶段,能够设计出很好的 CSS,并且管理好这些 CSS 文件,尽量减少冗余代码。知道如何写出有利于搜索引擎搜索的代码,例如:title,h1,h2 权重比较高的。

对于 php 程序员来说,并不一定要你去设计页面,但是给你一个页面,你要知道如何来修改 CSS 文件,html 就不要说了肯定要掌握的。

js 能力

如果提高用户体验,是一个网站能留住人的重要标志。这个就要用到 JS 了。

1,了解阶段,了解 JS 的基本语法,知道如何去调试这些程序,能写一些简单 function 等

2,熟悉阶段,对 JS 的语法,函数,正则等已经熟悉了,能利用 js 来写一些特效,并且发 现用 JS 写特效,是比较累人的一件事,开始尝试 jquery,prototype,并对 jquery,prototype 基本语法有所解,个人反对不学 JS,直接入手 jquery,prototype 这样的 JS 框架。

3,很熟悉阶段,在框架的帮助下,能熟练的用 OOP 的思想的来写代码,而不是一个个 function 累加,熟练运用 jquery,prototype 的 ajax,或者是网上一些 ajax 框架,如(ajaxrequest),不在直接写 active 控件了。能够利用网络资源,来完成各种特效。

对于大型公司来说一般都是有 js 程序员的,小公司基本上没有,要么交给程序员来做,要么 交给美工来做。美工一般都不是程序员,也没有编程基础,所以学 JS 比较吃力,但是学 jquery 比较容易的,因为 css 对 html 进行控制的方法,和 jquery 对 html 的控制方法基本上差不多(css,jquery 的相同之处),所以有好多公司把特效交给美工来做。

apache 等能力

个人觉得,到目前为止,跑 php 的话用 apache 的人还是最多,前段时间好多网站在吵 NGINX 有多么多么的好,能比 apache 好 10 倍,我觉得还是亲自尝试一下比较好。以 apache 为例

1,了解阶段,不管是 linux 下,还是 windows 下,能够安装配置 apache,知道如何添加 php 添加模块,如果面试官问你,apache 为什么能解释 php 代码,你怎么回答呢。对 apache 的基本配置有所了解,对于启动中遇到的问题能够解决等

2,熟悉阶段,知道如何向 apache 中添加新的模块,如果如何进行 url 重写,防盗链,进行 IP 限制等

3,很熟悉阶段,知道如何利用 apache 来缓存图片,能利用 apache 来做负载均衡,并且知道利用 ab 命令来进行压力,通过工具对日志分析,经过分析来对 apache 进行优化,知道如何搭建多个虚拟主机;对 apahce 的常用模块都有实际操作经验等

对 apache 进行监控和维护,一般是运维人员或者是项目经理来做的,个人觉得最好还是了解一点,因为这样你才不会那么容易被忽悠,对于自己将来的转型也是非常有必要的。

linux 系统

为什么要掌握 linux 系统呢?用 php 写的网站大多数运行在 linux 或者 freebsd 下的,掌握 linux 系统对自己将来的发展还是比较有好处的。在 linux 下,不用担心中毒的问题,linux 下的病毒很少,也不用担心,XX 和 XXX 扫描你的硬盘了。

1,熟悉阶段,会装 linux 系统,对系统的常用命令能够熟练运用等

2,运用阶段,在 linux 系统下,能够安装配置 apache,php,mysql,svn,memcache,squid,lvs 等一些 web 项目必要的工具,能够通过日志分析其状态等。对 shell 要有所了解,并能够写一些简单的 shell 脚本等。

这也是一点非常重要的能力

沟通能力这一点非常重要,并且被越来越多的人所忽视,其实做程序员挺杯具的,跟电脑打交道的时间最多,也许是因为这样吧,沟通的时候是比较费劲的,也有可能是被程序的严谨性束缚了大脑,说出来的话太专业,可能其他人听不懂的。所以平时多和他人交流,特别是跟非技术人员多勾通,多站在对方的角度来思想问题,这样的话,我想沟通起来会容易很多。

4 条评论

发表评论

*