本文目录一览:
高级PHP工程师应该具备哪些技能
可是呢? 一个成功PHP高级开发工程师,不仅需要精通PHP开发,数据库设计建模,服务器架构,还需要熟悉各种系统结构,如文章系统、图片系统、人力资源管理系统、楼市系统、电子商务系统、广告公告系统、流量统计系统、企业自动建站系统、留言问答系统、BBS、博客等,最重要的工程要有一定的项目实战经验。 1、熟练使用PHP+MYSQL编程,熟悉HTML , Div, CSS, JavaScript, Smarty模板技术;常用设计模式必须掌握,设计模式是前辈的总结、经验; 2、、熟悉主流PHP框架,熟悉网站开发的流程; 3、有良好的编程习惯,良好的沟通能力,具有较强的分析、解决问题能力;能自主完成模块开发; 4、html/css必须会,不要求你会切会div+css,但是至少要知道,因为php是一种嵌入html中使用的语言; 5、熟悉Linux 开发环境;linux不需要会,会的话肯定更好,一般公司都有专门服务器管理人员的。
什么是PHP高级工程师
关键词PHP、高级、系统架构设计、OOP、网络协议、沟通、Linux定义以前或现在以PHP为主要开发语言,具有若干年以上工作经验,对OOP有深入认知,掌握各种网络通讯协议,熟练掌握数据库及WEB其它相关知识 能够独立完成可扩展系统架构设计的工程师具体来说,需要具备以下技能:精通PHP 是精通哦深入了解面向对象的思想,熟悉常见设计模式熟悉*nix系统,最好对其内核有一些研究对某一数据库有十分深入的认识,熟练掌握关系数据库理论熟悉HTTP、TCP/IP等网络通讯协议精通构架设计的理论、实践和工具,并掌握多种参考构架、主要的可重用构架机制和模式良好的代码风格,清晰的编程思路其它说明学历 学历在各大公司都有明确要求,一般都是本科及其以上,也许有其它相当牛的不在此要求限制之列,但是毕竟这只是少数,要过HR那关,可能得特批。C/C++ 在招聘高级工程师时,一般都会有对这块的要求,但是都是以具有相关经验者优先出现文档 包括项目中的设计文档,在编码期间的注释能力等,这个属于基本要求英文读写能力 至少要熟练的文档阅读能力,至于英语的口头表述,只有极个别公司或外企需要算法和数据结构 强烈建议具备,这属于基本功之一;不是每个公司都会要求,如果公司不要求,也算是亮点之一软件工程 有些公司要求有相应的软件工程思想,或者有项目管理经验,这与招聘的公司岗位相关沟通能力 具备良好的沟通能力和理解能力,有良好的团队合作能力,这个应该属于基本要求之一分布式系统 这个一般属于附加分项,但至少有使用分布式缓存或数据库的经验。网络编程 部分公司有要求,但是在面试的时候应该都是会问的,所以这个也属于必备技能之一优化 数据库优化,代码优化等,这个应该属于面试必备知识点,但这与经验有较大关系业内的名气 blog/出书/演讲/开源项目/…个人感想思考所有的能力和要求,发现PHP高级工程师与PHP其实没有多大关系,关键在于程序员 (programmer)整个知识体系的构建。 无论是从操作系统、协议、数据库等硬性要求,还是从文档、英文、沟通等软件要求来看,这不仅仅是一个PHP程序员, 它所要表达的是后面五个字:高级工程师。 当达到一定的层次,做技术需要追求广度和深度,有自己的特长,有一个完善的知识体系。语言只是一门工具,不应该局限于一门语言,但必须精通一门语言。 没有万能的语言,每种语言都有其存在的意义,或者说都有其适用场景,选择最合适的语言,这也是项目开始时需要规划的内容之一。以上的内容纯属个人想法,如有雷同,不胜荣幸!
php高级工程师 具备什么技能
高级php工程师可以往几个方向去发展:
1.深度方向
一个工程师要往高阶发展,必须同时强化几个技术能力:
设计能力:懂得如何利用分层、面向对象、设计模式等设计组织代码
编码能力:熟悉php语法特性,知道怎么用一两行代码代替初级开发者十几上百行代码。
工程能力:学会如何快速构建工程,学会如何构建可读、可扩展性的工程,学会如何避免埋坑给后人,学会如何与人协作维护工程,学会如何保证工程质量,学会如何权衡利弊,学会如何在困难面前妥协。
抽象能力:初级开发者通常会等到逻辑重复时再抽象封装(甚至怕拖进度或者懒惰而放弃),而高级开发者通常一开始写出的逻辑就为了以后的重用,并且深知一开始多付出的思考设计时间最终都会因为复用得到回报。很多开发框架就是一步步抽象/埋坑/优化而来的。
架构能力:一个业务系统如何划分模块,模块之间如何协作通信,每个模块的技术选型如何做,系统细节如何规避问题等等。
优化能力:学会如何评估、分析、提升系统性能。优化途径很多,产品功能优化、业务逻辑优化、基础技术优化、操作系统底层硬件的优化等等。
2.广度方向
php开发基本上离不开操作系统、存储、缓存、网络、webserver等等配套设施,因此这也是高阶必备技能。一旦业务系统出问题了,必须要能快速定位解决(不一定自己解决,但要知道找到哪个负责人来解决)。
比如存储mysql,高级开发者会懂得利用索引、利用分表分库提高查询性能,懂得负载均衡和灾备提高性能提高可靠性(虽然是DBA的工作,但了解了有助于出问题时排查)
比如缓存,高级开发者懂得如何有效且最大限度利用缓存系统提高应用性能。
比如http,初级开发者往往只懂得http网络请求就只一去一回两个包,高级开发者会去深究网络七层模型、会深究http请求的各个环节(DNS、三次握手等等)
比如web前端,学习如何依靠浏览器缓存、CDN缓存、压缩代码、合并文件等等提高前端性能,学习如何进行前端安全攻防。
3,软素质
懂得团队管理,项目管理,沟通技巧等等。