产品官网 a>
首页 a>
问答 a>
专栏 a>
话题 a>
商城 a>
标签库 a>
视频教程 a>
首页
问题库
资讯专栏
问答专家
标签库
课程中心
NEW
发布
提问题
发文章
程序
php高级程序员所要掌握的技能?
财富值49
2016-08-19 07:22
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
3799
10
4
PHP高级程序员所要掌握的技能?
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
×
付费偷看金额在0.1-10元之间
确定
10条回答
╬══透明乆
- 爱情到底是什么滋味?真让人难于捉摸!
1楼-- · 2016-08-19 08:03
很多工作几年的php开发者都会有这样的迷茫,php开发多了,无外乎“增删改查调接口”,真的是这样吗?
实际上开发者除了把自己当成php程序员,更应该关注php以外的东西,将自己定位于能熟练使用php搭建系统的工程师。
我认为高级php工程师可以往几个方向去发展:
1.深度方向
一个工程师要往高阶发展,必须同时强化几个技术能力:
设计能力:懂得如何利用分层、面向对象、设计模式等设计组织代码
编码能力:熟悉php语法特性,知道怎么用一两行代码代替初级开发者十几上百行代码。
工程能力:学会如何快速构建工程,学会如何构建可读、可扩展性的工程,学会如何避免埋坑给后人,学会如何与人协作维护工程,学会如何保证工程质量,学会如何权衡利弊,学会如何在困难面前妥协。
抽象能力:初级开发者通常会等到逻辑重复时再抽象封装(甚至怕拖进度或者懒惰而放弃),而高级开发者通常一开始写出的逻辑就为了以后的重用,并且深知一开始多付出的思考设计时间最终都会因为复用得到回报。很多开发框架就是一步步抽象/埋坑/优化而来的。
架构能力:一个业务系统如何划分模块,模块之间如何协作通信,每个模块的技术选型如何做,系统细节如何规避问题等等。
优化能力:学会如何评估、分析、提升系统性能。优化途径很多,产品功能优化、业务逻辑优化、基础技术优化、操作系统底层硬件的优化等等。
2.广度方向
php开发基本上离不开操作系统、存储、缓存、网络、webserver等等配套设施,因此这也是高阶必备技能。一旦业务系统出问题了,必须要能快速定位解决(不一定自己解决,但要知道找到哪个负责人来解决)。
比如存储mysql,高级开发者会懂得利用索引、利用分表分库提高查询性能,懂得负载均衡和灾备提高性能提高可靠性(虽然是DBA的工作,但了解了有助于出问题时排查)
比如缓存,高级开发者懂得如何有效且最大限度利用缓存系统提高应用性能。
比如http,初级开发者往往只懂得http网络请求就只一去一回两个包,高级开发者会去深究网络七层模型、会深究http请求的各个环节(DNS、三次握手等等)
比如web前端,学习如何依靠浏览器缓存、CDN缓存、压缩代码、合并文件等等提高前端性能,学习如何进行前端安全攻防。
3,软素质
懂得团队管理,项目管理,沟通技巧等等。(有空再展开)
以上观点同样适用于其他语言的开发者。
加载中...
- 莪想看你的笑容,你的笑有着温暖人心的魔力。
2楼-- · 2016-08-19 08:10
这个问题我思考过,并且还在思考
对你的水平不了解,但是可以大概的给些建议
1. 看一个自己喜欢的源码,搞清楚是怎么运转的,大的看不了可以看一些小型的
2. 拓展广度,操作系统,数据结构,网络原理。
3. 服务器编程接触一些,php不光可以搞web
这些会增加你的底气。
我自己在思考的几个方向
1.根据自己的经验写一个自己用起来比较舒服的框架,当然不限于web,也可以是服务器编程方面的。
2.往c语言方面发展
3.用php搞些数据挖掘,类似python 的用途
加载中...
datrun
- 有一些记忆、始终在脑海最深刻的地方、
3楼-- · 2016-08-19 08:03
正好Yii是我最熟悉的php框架,这个问题我想回答下。
你用的CRUD,是用gii生成的吗?操作数据库是用的是ActiveRecord吗?grid用的是zii库的CGridView吗?
这里面其实有很多可以思考的问题,比如
gii是一个module,它的源码是如何定制components的?它只用一个密码来管理user的权限,它是如何替换掉你用的WebUser的?
用ActiveRecord进行CRUD的时候,它和DAO的性能差距有多大?它的性能都损耗在了哪里?如何弥补?它与cache如何结合使用达到最优?
用ActiveRecord进行CRUD的时候 ,如何使用after save、after find、after delete这些event以优化代码?再深入一点,event和behavior是如何结合的?
CGridView的ajax部分是如何写的? CGridView的filter(就是头部下面那一栏的筛选框)在什么情况下才会出现? 深入一点, CGridView的column如何深度定制?
还有一些别的问题,也可以思考
你写的js,是如何和Yii结合起来的?是用的Yii::app()->clientScript吗?是用的registerScriptFile或registerScript方法吗?它们又是如何向view插入script标签的?Yii在这块是如何优化的?
Yii用AssetManager来管理私有的css js文件,这东西用的时候有什么不方便的地方吗?如何优化?
再问得大一点,一个request,Yii完整的处理步骤是什么,涉及了多少个class?
抛开Yii,也有很多问题可以思考
前台的js效果,是否够用就好?稍微长一点的js代码,是不是也应该考虑一下可维护性?
很多js效果,都是重复重复再重复,我们是不是有办法将他们模块化,提高可重用性呢?
用jQuery插件的时候,是否会遇到有相互依赖的插件?有没有用js就能处理依赖问题的办法?嗯哼,js loader?哪个loader比较好用?seajs?
再问个无聊的问题,js css有没有『时髦』的技术呢?coffee script?less?nodejs?咱有必要玩一玩吗?
好吧,其实我想说的就是,『高级程序员』之类不过就一头衔,有人觉得你是,你就是,但它根本不能作为你技能水平的标杆。
我也不觉得一个程序员有什么一定要掌握的技能,我只知道『
一个个解决每天所能见到所能想到的问题,这本身就是对自己最好的提高
』。
加载中...
╬══透明乆
- 爱情到底是什么滋味?真让人难于捉摸!
4楼-- · 2016-08-19 08:18
我的看法:其实没有所谓的高级,把一个一个bug解决,一个一个功能实现就好了(最好可以用不同的方法),能力就自然上去了吧
加载中...
忙碌 2oz-Ⅱ
- 你有没有喜欢一个人喜欢到只想把自己锁在房里,一边听伤感音乐一边哭?
5楼-- · 2016-08-19 08:06
初级程序员不要考虑薪资问题,如果当前公司做的项目技术含量很高(数据量大,访问量大)别想其它,好好想想怎么把当前的项目做的更好,如果当前项目不行,想办法找相对好一点的公司,程序员有了本事工资自然不是问题。
加载中...
吾丨十三
- 双眼紧闭,头晕目眩却只想被你拥抱、。
6楼-- · 2016-08-19 08:04
可以尝试着用yii开发一个小网站,加深自己所学的,然后激发更大的兴趣,我就参照了知乎的样式结合yii,开发了一个类似班级论坛的系统
加载中...
伱灬不懂
- 真爱就是两个长得像猪一样的人,还生怕对方被别人抢走了。
7楼-- · 2016-08-19 08:16
建议在以下三个层次做深入学习,
第一个层次是
PHP技术的深度学习
:如PHP字符串、数组、文件和PHP的高级特性以及PHP运行原理等;
第二个层次是
Web技术的深度拓展
:如深入Http协议、Linux技术、Web服务器技术、前端JS技术、MySQL和NoSQL技术等;
第三个层次是
编程思想和能力的拓展
:如数据结构和算法设计、设计模式、好代码的原则和技巧、大规模网站开发技术等。
参考 :
http://www.
sijiaomao.com/course.ht
m
加载中...
wjliuleidian
- 单曲循环旳是莪对你旳爱。
8楼-- · 2016-08-19 08:07
yii是个不错的框架 现在都yii2了,只用过yii1
加载中...
忙碌 2oz-Ⅱ
- 你有没有喜欢一个人喜欢到只想把自己锁在房里,一边听伤感音乐一边哭?
9楼-- · 2016-08-19 08:01
我倒是比赞同什么这个那个的。。 化繁为简吧。。。PHP 代码的特性 感觉不适合 过深的对象化
所以我有时候 不太喜欢 什么 路由机制。。什么框架。。。
一个高级程序员 应该是能解决 业务上的所有有必要解决的问题
这些问题 并不是 怎么对象化 怎么路由机制 又或什么这个那个机制
高级PHP 程序员 应该更注重实用化。。至少会一个LINUX 上的软件 来解决问题
当然如果会C就可以 修改PHP 以及修改LINUX 软件。。
加载中...
吾丨十三
- 双眼紧闭,头晕目眩却只想被你拥抱、。
10楼-- · 2016-08-19 08:18
一个用PHP很多年(1999年开始自学)的屌丝给你一些小建议:
(前提是假设你往web方向发展)
1、PHP运行环境可以非常熟练的搭建,环境问题也可以很容易判别。
这个绝对不是用yum ,apt-get可以学会的;数年以来,我都是 make 环境的,不下1000次。环境一般涉及 Nginx、PHP、MySQL、memcached、radis、sphinx 以及 PHP的扩展。可能比较费时间,就把交女朋友、约炮的时间拿来学这个吧。
2、开源的PHP项目多阅读
我用心阅读过比如 discuz、phpwind、Yii 等。时间不够同上。
一般什么模块划分、业务抽象、代码风格、解耦都能在里面看到一些(不是系统性学习,而是潜移默化的影响);如果你够好奇、有刨根问底的精神,会有很大进步。
3、空的时候看看设计模式、软件工程、重构相关的书
有兴趣就看下去,没兴趣就换一本看;全部都没兴趣就换行业。
以上搞定,差不多可以有自己的技术方向了。
加载中...
一周热门
更多
>
相关问题
富翁时代技能卡怎么合成出高级卡的几率高?
3 个回答
php四个月培训能完全掌握吗,中专学历!这方面学历重要吗?有没...
0 个回答
php高级阶段需要学习什么?
0 个回答
高级程序设置语言不在依赖机器,而对面向过程对不对?
0 个回答
计算机程序设计高级语言中,只能出险0和1两个字符?
0 个回答
如何学习移动后端
0 个回答
JS 寄生组合继承 《JS高级程序设计 第3版》P173页是否可以表述得更好
1 个回答
在js高级程序设计书上,控制台上出现Uncaught ReferenceError: bind is
2 个回答
在js高级程序设计书上,控制台上出现Uncaught ReferenceError: bind is
1 个回答
相关文章
php培训内容有人了解吗?
0个评论
程序员抄袭代码现象普遍, 却能拿到年薪30万, 你怎么看?
0个评论
whatsnsV4正式运营,推荐码云下载,用过的都说好
3个评论
温州一家四口30年捐600多万做公益 平时省吃俭用
0个评论
whatsns建站问答系统宝塔面板中nginx伪静态规则设置
0个评论
whatsns百度小程序天级推送,周级推送,信息流素材推送插件
1个评论
三个人,三段故事,一窥东风日产领先半步的秘密
0个评论
付费问答系统操作指南
0个评论
whatsns开发简介
0个评论
盲人诈骗盲人钱财 谎称能办按摩医师资格证
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
程序
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
付费偷看金额在0.1-10元之间
实际上开发者除了把自己当成php程序员,更应该关注php以外的东西,将自己定位于能熟练使用php搭建系统的工程师。
我认为高级php工程师可以往几个方向去发展:
1.深度方向
一个工程师要往高阶发展,必须同时强化几个技术能力:
2.广度方向
php开发基本上离不开操作系统、存储、缓存、网络、webserver等等配套设施,因此这也是高阶必备技能。一旦业务系统出问题了,必须要能快速定位解决(不一定自己解决,但要知道找到哪个负责人来解决)。
比如存储mysql,高级开发者会懂得利用索引、利用分表分库提高查询性能,懂得负载均衡和灾备提高性能提高可靠性(虽然是DBA的工作,但了解了有助于出问题时排查)
比如缓存,高级开发者懂得如何有效且最大限度利用缓存系统提高应用性能。
比如http,初级开发者往往只懂得http网络请求就只一去一回两个包,高级开发者会去深究网络七层模型、会深究http请求的各个环节(DNS、三次握手等等)
比如web前端,学习如何依靠浏览器缓存、CDN缓存、压缩代码、合并文件等等提高前端性能,学习如何进行前端安全攻防。
3,软素质
懂得团队管理,项目管理,沟通技巧等等。(有空再展开)
以上观点同样适用于其他语言的开发者。
对你的水平不了解,但是可以大概的给些建议
1. 看一个自己喜欢的源码,搞清楚是怎么运转的,大的看不了可以看一些小型的
2. 拓展广度,操作系统,数据结构,网络原理。
3. 服务器编程接触一些,php不光可以搞web
这些会增加你的底气。
我自己在思考的几个方向
1.根据自己的经验写一个自己用起来比较舒服的框架,当然不限于web,也可以是服务器编程方面的。
2.往c语言方面发展
3.用php搞些数据挖掘,类似python 的用途
你用的CRUD,是用gii生成的吗?操作数据库是用的是ActiveRecord吗?grid用的是zii库的CGridView吗?
这里面其实有很多可以思考的问题,比如
- gii是一个module,它的源码是如何定制components的?它只用一个密码来管理user的权限,它是如何替换掉你用的WebUser的?
- 用ActiveRecord进行CRUD的时候,它和DAO的性能差距有多大?它的性能都损耗在了哪里?如何弥补?它与cache如何结合使用达到最优?
- 用ActiveRecord进行CRUD的时候 ,如何使用after save、after find、after delete这些event以优化代码?再深入一点,event和behavior是如何结合的?
- CGridView的ajax部分是如何写的? CGridView的filter(就是头部下面那一栏的筛选框)在什么情况下才会出现? 深入一点, CGridView的column如何深度定制?
还有一些别的问题,也可以思考抛开Yii,也有很多问题可以思考
好吧,其实我想说的就是,『高级程序员』之类不过就一头衔,有人觉得你是,你就是,但它根本不能作为你技能水平的标杆。
我也不觉得一个程序员有什么一定要掌握的技能,我只知道『一个个解决每天所能见到所能想到的问题,这本身就是对自己最好的提高』。
第一个层次是PHP技术的深度学习:如PHP字符串、数组、文件和PHP的高级特性以及PHP运行原理等;
第二个层次是Web技术的深度拓展:如深入Http协议、Linux技术、Web服务器技术、前端JS技术、MySQL和NoSQL技术等;
第三个层次是编程思想和能力的拓展:如数据结构和算法设计、设计模式、好代码的原则和技巧、大规模网站开发技术等。
参考 :http://www.sijiaomao.com/course.htm
所以我有时候 不太喜欢 什么 路由机制。。什么框架。。。
一个高级程序员 应该是能解决 业务上的所有有必要解决的问题
这些问题 并不是 怎么对象化 怎么路由机制 又或什么这个那个机制
高级PHP 程序员 应该更注重实用化。。至少会一个LINUX 上的软件 来解决问题
当然如果会C就可以 修改PHP 以及修改LINUX 软件。。
(前提是假设你往web方向发展)
1、PHP运行环境可以非常熟练的搭建,环境问题也可以很容易判别。
这个绝对不是用yum ,apt-get可以学会的;数年以来,我都是 make 环境的,不下1000次。环境一般涉及 Nginx、PHP、MySQL、memcached、radis、sphinx 以及 PHP的扩展。可能比较费时间,就把交女朋友、约炮的时间拿来学这个吧。
2、开源的PHP项目多阅读
我用心阅读过比如 discuz、phpwind、Yii 等。时间不够同上。
一般什么模块划分、业务抽象、代码风格、解耦都能在里面看到一些(不是系统性学习,而是潜移默化的影响);如果你够好奇、有刨根问底的精神,会有很大进步。
3、空的时候看看设计模式、软件工程、重构相关的书
有兴趣就看下去,没兴趣就换一本看;全部都没兴趣就换行业。
以上搞定,差不多可以有自己的技术方向了。
一周热门 更多>