一个高级 PHP 工程师所应该具备的

初次接触PHP,就为他的美所折服,于是一发不可收拾。

很多面试,很多人员能力要求都有“PHP高级工程师的字眼”,如果您真心喜欢PHP,并且您刚起步,那么我简单说说一个PHP高级工程师所应该具备的,希望给初级或已经达到中级的PHP工程师一些帮助。

一、平静的心态
和所有程序员一样,要写一手好的程序,没有好的心态是不行的。
遇事不可急躁,不可轻言放弃。
在 程序开发过程中,尤其是初中级程序员,写出的程序或架构会遇到很多问题,其中一些问题比较弱智,而有些问题根本没有碰到过,于是不可太过急躁,应该逐个排 查问题的最初源泉,将其干掉。急躁的心态去开发系统是对项目的一种不负责。急躁会让人学会将就,让人学会逃避。而我个人北京两年的简单生活,给我其中一个 最大的历练也就是:我的心态更加平静了。
相信,这样的心态也会有助于你其他方面的处事能力。
为什么将心态列入其中,我是想说明:他不同于销售的职能,需要很大激情澎湃,而是需要静静的思考。

二、一套烂熟于心的问题解决思路
曾经有位程序开发的同事在QQ签名中写到:每解决一个bug, 就给自己一个提升。的确,没有真正解决过无数的bug或问题的程序员,谈不上专家,谈不上高级程序员。而一个高级程序员正是从这种解决问题的过程中不断的 历练自己,形成一套烂熟于心的问题解决思路,要自己强大的。
我也简单说说PHP程序员成长过程中经常遇到的一些问题,如果你一个也没遇到或很少遇到,那么您就是两个极端的人:要么初级入门,要么高级了,哈哈。
1,编码问题
2,PHP和SQL数据库执行效率问题
3,Session和Cookie域和加密解析问题
4,程序的执行顺序问题
5,程序编写的多环境适用问题
6,分类的构建和结构设计问题
7,字符串处理问题:正则表达式处理或简单PHP字符串处理函数来处理
8,各种模板引擎的编写局限性问题
9,PHP和web端数据交互问题(如ajax,接口调用等)

三、过硬的PHP基础知识
没有过硬的PHP基础知识,哪怕心态再好,问题解决的能力再强,也只能纸上谈兵。
过硬的基础知识会让你在项目开发过程中游刃有余。
我也简单说说哪些属于PHP工程师所应具备的基础知识(其实这些在招聘需求中很常见):
1,语法规则,这个不说了,这个不会,就没入门,赶紧买本书或找个网站补补
2,MYSQL各种sql语句的写法,增删改查基本的不说了,in(),union,left(),left join,as,replace,alter table,where的字段排序,各种索引建立的方法要特别熟悉
3, 会自己搭建LAMP环境和WAMP环境,用集成软件一键式安装的不算。开发程序,对于自己开发的环境构建结构都不清楚,怎么排查问题?所以至少要会用对立 的msi文件来安装自己需要的开发环境。安装3-5遍成功,这个算还行,还得会安装各种扩展,配置apache服务,知道各种参数设置的地方以及知道怎么 设置各种参数;会linux操作系统的基本命令。
4,熟悉web方面的其他程序,因为PHP不是一个完全独立的东西,他是一个和其他语言和要素配 合来完成一个项目的,如果对其他语言和要素不太熟悉,在团队协作过程中会非常吃力。这些其他要素包 括:html,javascript,jquery,xml,http协议,正则表达式等

四、综合的互联网应用及项目管理知识和素养

1,见识广博,擅于学习
只顾自己专研,不看看、学学人家的做法,会像井底之蛙,难以看到广阔的天空的;所以,不要只顾着天天编程,学会抽点时间去看看一些大型开源系统的架构思路,以及大型商务网站的构建方式。向他们学习,补充自己的不足。
比如至少该晓得不同类型的开源系统有哪些吧,比如Uchome,dede,phpcms,wordpress,discuz,帝国等等
看多了,你也会总结发现一些常规性的思路,比如缓存的机制,比如模板机制,比如静态页面生成等等。

2,项目解决方案选型
不同需求,用不同的机构和选型。也就是常说的“水来土掩,兵来将挡”,有些架构固然强大,但是用于小型项目也会很吃力,就是杀机不用牛刀。根据需求来选型很重要。
选型不是随口就能定的,需要一个PHP程序员用于良好的储备,个人觉得至少需要以下储备,才具备选型能力:
熟练应用至少一个PHP框架,两-三个PHP开源系统;拥有自己的一套应用系统。

3,良好的项目管理素养
项目不是一直开发过程中,项目也会进入运营期,维护期,这样,具备良好的项目管理素养会使项目更加稳定,可控。
良好的项目管理素养包括:
良好的项目开发及维护习惯,记住:千万别为了一时的省力,造成后面多次的重复劳动。时时提醒自己将工作流程化,流程规划化,规范简单化。
良好的多人合作管理意识:项目不是一个人的,是多人协作的产物,也是服务于大众的,因而,要提升协作意识,让相关人员一同来完善项目。

4,丰富的项目开发应用经验
学理论,去考试或考核是学校里面的事儿,没有项目经验,就像满肚子经文,吐也难吐出。
这就需要实际的项目将自己的知识去学会转化为需求实现。

5,良好的开发规范
代码可读性强:对象,方法,函数的注释;一套成熟的命名规范;
代码冗余度底:程序和文件的重用性大,高内聚,低耦合
执行效率高:用最简单的程序流程实现应用需求,勿扰大弯子
代码安全性好:做一名警惕的程序员,任何有用户输入和上传文件的地方都得额外谨慎,也许一个程序员一时的疏忽就会导致一个系统顷刻间崩溃。

另外,多废话几句,PHP高级工程师,其实对于一个稍微能坚持,并喜欢PHP的来说不太难;难的是学会用工具来实现想法,不管是自己的想法还是他人的需求,学会转化。
这样,不防多了解些互联网发展的趋势,项目开发管理流程等等

文章转载自 开源中国社区[http://www.oschina.net]

时间: 2024-09-22 04:32:24

一个高级 PHP 工程师所应该具备的的相关文章

关于软件工程硕士~ 一个高级软件工程师的象征!!!!!!!!!

问题描述 [热]自主招生签约入学100%通过率工程硕士(MSE)(北京班)[名牌大学,品质保证]南京大学是我国最著名的高等学府之一.近十年来,南京大学在全国高校中的排名一直处于前列.[自主命题.自主考试.自主录取]自主命题.自主考试.自主录取.签约入学.100%通过率![性价比高]双证书制:即在获得国内一流大学软件工程硕士学位的同时,还可获得"高级信息分析师"认证证书.[专业方向]商务智能与商业数据分析.政务信息化[报名条件]本科以上学历[弹性学制][北京班]1.每月一次集中授课,不影

一个女研究生(高级测试工程师)的职业选择

公司选择 终于下定决心要离开,我想去的是重视测试的外企或大公司. 我的逻辑很简单,测试在国内还未获得足够的重视,即使很多公司有测试,也是一些非常表层的测试,只有在规范的公司的测试才做得深入.在长达两个多月的面试和等待中,终于等来了我想要的机会,不过,选择摆在面前的机会,也不是一件轻松的事情. 公司A,是一家具有一百多年历史的外企, 也是在IT行业非常有名的公司,专注于通信领域.这个公司提供给我的机会是高级软件测试工程师,主要负责软件测试,年薪比现在高50%.不过我看重的并不是这个公司提供给我的职

招聘【.Net高级软件工程师】 (上海)

问题描述 公司名:上海扬博网络有限公司城市:上海工资:根据能力而定有意向者请将简历发到recruit@youngbro.com.cn.Net高级软件工程师(2名)职位描述:1.负责对公司业务支持系统的应用平台的升级,及相关软件产品的技术支持:2.负责新应用系统的设计.开发:3.负责对网站开发团队进行协调管理;岗位要求:1.大学本科以上学历,计算机及相关专业毕业,3年以上工作经验(必要条件):2.精通Windows平台下的Web技术开发,具有丰富的项目经验,熟悉ASP.NET,Javascript

Java高级软件工程师面试考纲

当前,市面上有<Java XX宝典>类似的图书,而且图书中的内容都着重在讲解Java最为基础的部分,最严重的是,里面有着大量错误的内容,极具误导性.另外,网上也有各种各样的Java面试题, 很多也是着重在Java语言基础上.实际上,如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网 络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对Java高级开发工程师职位的考核纲要,希望可以帮助到需要的人.

一个页面重构工程师眼中的“用户体验”

中介交易 SEO诊断 淘宝客 云主机 技术大厅 在工业化设计融入人们生活的现今,用户体验一词就常常出现在人们的视线里,随着互联网web2.0时代的到来,大大小小的网站设计中也都开始关注用户体验的方面,对什么是用户体验(百度这四个字,比我写什么解释都好)就不做详细赘述了,相信大家比我了解的更加丰富. 用户体验从产品设计阶段便开始介入进来,如原型设计中交互模式设计.功能实现方式设计都融入了设计人员对用户的关怀,听过这样的一句话:"具有良好用户体验的产品,不仅仅取决于一个有着丰富交互设计经验的产品设计

如何才能成为一个高级的C++程序员

C++这门语言从诞生到今天已经经历了将近30个年头.不可否认,它的学习难度都比其它 语言较高.而它的学习难度,主要来自于它的复杂性.现在C++的使用范围比以前已经少了很多,java.C#.python等语言在很多方面已经可以代替 C++.但是也有很多地方是其他语言完全无法替代的,主要集中在需要运行效率比较高的行业,比如游戏.高效的服务器. 现在学习java.C#等语言的人数远远高于C++,主要是C++的入门门槛太高,可能学习了一段时间后还做不了什么东西,导致信心大受打击,进而放弃. 我想把我自己

招聘C#高级软件工程师

问题描述 汕头蓝博软件有限公司诚聘英才,招聘C#高级软件工程师(1名):1.计算机或相关专业大专以上学历,两年以上软件开发工作经验:2.精通C#,VS2005,熟悉c#常用类库.3.精通SQLServer等主流关系型数据库开发.4.有面向对象的分析.设计和开发经验,熟悉软件开发流程,设计模式,体系结构.5.有较强数据结构.算法的基础:掌握面向对象的开发思想以及常用的设计模式.6.具备很好的理解能力和沟通能力,能够编写相关技术文档.7.勤奋,敬业,责任心强:具备团队协作精神:能够承受较大工作压力:

一个合格的SEO主管需要具备哪些特质

笔者在之前的文章:seo团队:模式决定成败 中详细介绍了目前SEO团的的模式,其实SEO团队中最核心的人物是SEO主管.SEO主管负责了整个SEO团队日常所有优化工作,包括优化方案的制定,网站的页面设计等各项工作.因此一个SEO团队中主管的压力最大.那么一个合格的SEO主管需要具备哪些特质呢? 技能篇 无可厚非,SEO主管需要懂很多知识,其中包括网站程序方面.SEO优化方面等.笔者认为一个合格SEO主管在技能方面必须要"很多略懂,少数精通".SEO主管可谓是"复合型人才&qu

使用javascript实现一个高级组合查询控件(内含初步实现原型)

在很多项目中,特别是信息系统,查询功能占了项目的大部分:同时查询条件的组合要求丰富,因此实现起来变得复杂.一般情况下,我们只会实现有限的条件查询,如一个表的某几个重要的字段或者甚至所有的字段:当然,常规的情况下客户是足够用的,但一些高级的应用,如((字段1>10) or (字段2=5)) and 字段3 is not null) 这种复杂的条件组合,就不一定适合了,通常如果是固定几种组合模式,这样我们还可以在后台用语言(java.c#等)实现,要是条件组合是动态的,那么实现起来就相当麻烦了. 因