作为一名合格的 PHP 工程师,需要点亮哪些技能树?

2015-04-30 15:17:59 +08:00
 cvmax

本职:编辑。爱好:写代码。
以前都是找开源程序,乱改,满足需求就行。
后来痛定思痛,系统深入学习一下,因为接触PHP较多,就入了PHP。
目前混编水平,正努力学习MVC,类与对象等。
比较迷茫。好像需要学的东西太多了。
那么,成为一名合格的PHP工程师,需要点亮哪些技能树?
当然啦,核心肯定是信念:PHP是最好的语言,没有之一。 这个我相信的。
谢谢大家,给点意见。

8091 次点击
所在节点    PHP
32 条回复
Sunyanzi
2015-04-30 15:29:43 +08:00
我来自卖自夸啦 ... /t/148063#reply25 ...
cvmax
2015-04-30 15:35:45 +08:00
@Sunyanzi 厉害。按你说的这个,我是可以出去混饭吃了。 不过我自己不太愿意,哈哈,写的代码太烂,自己看不下去。
技能树是不是应该这样,都熟悉,但是有一块是偏重的,作为主要的发展/职业方向 ?
laoyuan
2015-04-30 15:42:10 +08:00
《PHP 之道》 /t/185957
raincious
2015-04-30 15:43:48 +08:00
@Sunyanzi

这答案已经全了,唯一能补充的就是熟练拼写 serialize 和 unserialize ……
csensix
2015-04-30 15:47:24 +08:00
我得经验是,掌握一些能够应付日常开发的技能,再根据实际工作业务需求慢慢接触更深层的功能,或者不能说更深,而是更广泛的知识。当然 MVC 很流行,可以规范我们的开发。但是,有时候 MVC 框架也是限制自己最大限度发挥的枷锁。

这是一个仁者见仁智者见智的问题了。
raincious
2015-04-30 15:49:04 +08:00
PHP这玩意极其简单的,入门很快。而MVC这套也不难,只是把现有的项目按照功能分为三块。所以找个小框架比如Slim练练很快就能掌握。

其他方面就是PHP的各种语法和用法,以及各种坑了。这个就在平时实践的时候多做测试,慢慢也能补全/绕过。
cvmax
2015-04-30 15:58:36 +08:00
@csensix 我现在可以做点小东西。做过一个小型选修课系统,还做一个微信的第三方网页投票功能。
现在准备重复造轮子,自己写一个简单的CMS。

在做这个选修课系统和投票功能的过程中,我就感觉到现在的混编实在不行啊,扩展、后期维护,基本不可能。过段时间去修改功能,自己都转晕了。所以才开始了解MVC
cvmax
2015-04-30 15:59:37 +08:00
@raincious 恩。入门的确很快。第一个混编作品,看了一遍简单的w3c教程就开始做了。现在慢慢补全各种坑吧...
csensix
2015-04-30 16:04:17 +08:00
@cvmax 虽然我觉得很多框架用起来有很多限制(个人不太喜欢用框架),但是它们的一些思想还是可以借鉴的,比如 数据与页面分离。我的做法是找到一些用起来顺手的模块,或者说类库,平时就用合适的类库完成特定的任务。比如模板我用Smarty,数据库用ezSQL。
tini19
2015-04-30 16:04:59 +08:00
1、随时被打断的技能
2、2天之内赶出来一个企业站的技巧
3、同事间用QQ传php文件进行合作开发的技巧
4、bug fix的时候通讯靠吼的技巧
cvmax
2015-04-30 16:18:43 +08:00
@csensix 谢谢。 好多还不懂。学习任务相当重
ibolee
2015-04-30 17:02:17 +08:00
边学边做。
darkbluever
2015-04-30 17:11:02 +08:00
个人认为一个优秀的PHP工程师的知识结构应该大致覆盖下面几点:
前端。至少了解HTML、CSS、JS,这些是web前端的基础。一般会有专门的前端工程师负责,但是PHP工程师如果有大致的了解会更方便交流与合作。
PHP。PHP基础语法,常用扩展。PHP内核,PHP扩展开发。
数据库。MySQL查询性能优化,索引的选择和优化,复制(主从,主主等不同拓扑),伸缩性与高可用性(MySQL集群,数据分区,分表,负载均衡),备份恢复与容灾等。
服务器。Nginx与Apache的基本配置与优化。Linux系统日常使用。
WEB系统体系结构。web系统拓扑,服务器并发处理,负载均衡,缓存设计,数据分发与同步,分布式缓存,分布式存储,性能监控等。了解主流浏览器的特性(安全策略,缓存,工作原理等)。
WEB安全。xss,csrf,sql注入,认证与会话管理 ,加密解密等。
基础理论知识。计算机体系结构,计算机系统原理,计算机网络,数据结构与算法,设计模式。
对技术的热情。关注开源项目。关注新技术。keep walking。

最好了解一门编译型语言,了解操作系统系统,不要局限自己,一条腿也许能站住,但走不远。
最后,理论知识一定要认真学习,好的基础能让你走的更远。
共勉。
darkbluever
2015-04-30 17:11:43 +08:00
个人认为一个优秀的PHP工程师的知识结构应该大致覆盖下面几点:

前端。至少了解HTML、CSS、JS,这些是web前端的基础。一般会有专门的前端工程师负责,但是PHP工程师如果有大致的了解会更方便交流与合作。

PHP。PHP基础语法,常用扩展。PHP内核,PHP扩展开发。

数据库。MySQL查询性能优化,索引的选择和优化,复制(主从,主主等不同拓扑),伸缩性与高可用性(MySQL集群,数据分区,分表,负载均衡),备份恢复与容灾等。

服务器。Nginx与Apache的基本配置与优化。Linux系统日常使用。

WEB系统体系结构。web系统拓扑,服务器并发处理,负载均衡,缓存设计,数据分发与同步,分布式缓存,分布式存储,性能监控等。了解主流浏览器的特性(安全策略,缓存,工作原理等)。

WEB安全。xss,csrf,sql注入,认证与会话管理 ,加密解密等。

基础理论知识。计算机体系结构,计算机系统原理,计算机网络,数据结构与算法,设计模式。

对技术的热情。关注开源项目。关注新技术。keep walking。



最好了解一门编译型语言,了解操作系统系统,不要局限自己,一条腿也许能站住,但走不远。
最后,理论知识一定要认真学习,好的基础能让你走的更远。
共勉。
darkbluever
2015-04-30 17:12:20 +08:00
重排版了才发现之前的不能删……
knightlhs
2015-04-30 17:13:17 +08:00
@darkbluever 不能删是 V2EX 的特色
jarlyyn
2015-04-30 17:14:15 +08:00
学点其他语言开发web,体会php为你做了什么。
Oleg
2015-04-30 17:15:02 +08:00
darkbluever
2015-04-30 17:31:49 +08:00
@knightlhs 好吧,就像直面人生的骑砍
jookr
2015-04-30 18:09:46 +08:00
可以参考我这贴 从拉钩网采集的 3290 份 php 程序员招聘信息统计出的技能关键词排行榜
https://www.v2ex.com/t/175821#reply28

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/187530

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX