一个优秀的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 脚本等。

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

沟通能力这一点非常重要,并且被越来越多的人所忽视,其实做程序员挺杯具的,根电脑打交道的时间 是最多,也许是因为这样吧,勾通的时候,是比较费劲的,也有可能是被程序的严谨性束缚了大脑,说出来的话,太专业,可能其他人听不懂的。所以平时多和他人 交流,特别是跟非技术人员多勾通,多站在对方的角度来思想问题,这样的话,我想勾通起来会容易很多。 沈唁志|一个PHPer的成长之路! 原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:一个优秀的php程序员必须具备的7种能力,你的能力在哪里?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

如何云化你的 Windows 应用?

AWS AppStream是一项新的亚马逊服务,它可实现Windows应用的云化,可将操作系统扩展至各种计算机和移动设备。今天,服务最实用的用例是将提供简单的游...

36670
来自专栏企鹅号快讯

CRM重构之——微服务设计导读(一)

在介入正题前,想谈一下如何阅读,因为技术类的文章虽好,但需要一定的门槛,而且会比较枯燥,读后可能很快就会忘记读了什么,只记得读过。 导读 阅 带着兴趣 带着兴趣...

29990
来自专栏Java架构

微服务下的数据架构什么是微服务?微服务的优势更好的灵活性和可扩展性更容易的规模化微服务的技术特点微服务的数据设计考量一库一服还是一库多服混合持久化 vs. 多模数据库微服务扩展你的数据动态模式支持及快

61760
来自专栏Python小白进阶之旅

什么时候Python也成了黑客必备的语言?大牛的告诉我竟是这样

36530
来自专栏程序你好

混合持久化让微服务如虎添翼

13230
来自专栏企鹅号快讯

小程序入口移到微信主页面,你玩了小游戏没有?

昨天下午3点多,微信公众平台又发出炸裂消息:小程序功能升级,6.6.1版本微信在主界面新增了小程序任务栏的功能。小程序菜单进行了升级,并提供小程序间快速切换的功...

49570
来自专栏知晓程序

收藏级!小程序 10 大最强推广攻略,助你获取微信亿级流量 | 晓运营

16420
来自专栏java思维导图

微服务开发中的数据架构设计

微服务是当前非常流行的技术框架,通过服务的小型化、原子化以及分布式架构的弹性伸缩和高可用性,可以实现业务之间的松耦合、业务的灵活调整组合以及系统的高可用性。为业...

26420
来自专栏云加头条

做弹性的云—腾讯云弹性伸缩

现如今,云计算已成为IT领域标配,甚至有趋势作为基础服务成为未来IT领域的水和电。当业务规模蓬勃增长,面对数以万计的请求量,庞大的业务流量,高并发的数据访问量,...

86510
来自专栏挖掘大数据

国家电网推进全业务数据中心建设

2016年10 月9 日,习近平总书记在中共中央政治局第三十六次集体学习时强调,要深刻认识互联网在国家管理和社会治理中的作用,以推行电子政务、建设新型智慧城市等...

52700

扫码关注云+社区

领取腾讯云代金券