本职:编辑。爱好:写代码。
以前都是找开源程序,乱改,满足需求就行。
后来痛定思痛,系统深入学习一下,因为接触PHP较多,就入了PHP。
目前混编水平,正努力学习MVC,类与对象等。
比较迷茫。好像需要学的东西太多了。
那么,成为一名合格的PHP工程师,需要点亮哪些技能树?
当然啦,核心肯定是信念:PHP是最好的语言,没有之一。 这个我相信的。
谢谢大家,给点意见。
2
cvmax OP @Sunyanzi 厉害。按你说的这个,我是可以出去混饭吃了。 不过我自己不太愿意,哈哈,写的代码太烂,自己看不下去。
技能树是不是应该这样,都熟悉,但是有一块是偏重的,作为主要的发展/职业方向 ? |
5
csensix 2015-04-30 15:47:24 +08:00 1
我得经验是,掌握一些能够应付日常开发的技能,再根据实际工作业务需求慢慢接触更深层的功能,或者不能说更深,而是更广泛的知识。当然 MVC 很流行,可以规范我们的开发。但是,有时候 MVC 框架也是限制自己最大限度发挥的枷锁。
这是一个仁者见仁智者见智的问题了。 |
6
raincious 2015-04-30 15:49:04 +08:00 1
PHP这玩意极其简单的,入门很快。而MVC这套也不难,只是把现有的项目按照功能分为三块。所以找个小框架比如Slim练练很快就能掌握。
其他方面就是PHP的各种语法和用法,以及各种坑了。这个就在平时实践的时候多做测试,慢慢也能补全/绕过。 |
7
cvmax OP @csensix 我现在可以做点小东西。做过一个小型选修课系统,还做一个微信的第三方网页投票功能。
现在准备重复造轮子,自己写一个简单的CMS。 在做这个选修课系统和投票功能的过程中,我就感觉到现在的混编实在不行啊,扩展、后期维护,基本不可能。过段时间去修改功能,自己都转晕了。所以才开始了解MVC |
9
csensix 2015-04-30 16:04:17 +08:00 1
@cvmax 虽然我觉得很多框架用起来有很多限制(个人不太喜欢用框架),但是它们的一些思想还是可以借鉴的,比如 数据与页面分离。我的做法是找到一些用起来顺手的模块,或者说类库,平时就用合适的类库完成特定的任务。比如模板我用Smarty,数据库用ezSQL。
|
10
tini19 2015-04-30 16:04:59 +08:00 1
1、随时被打断的技能
2、2天之内赶出来一个企业站的技巧 3、同事间用QQ传php文件进行合作开发的技巧 4、bug fix的时候通讯靠吼的技巧 |
12
ibolee 2015-04-30 17:02:17 +08:00 via Android
边学边做。
|
13
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。 最好了解一门编译型语言,了解操作系统系统,不要局限自己,一条腿也许能站住,但走不远。 最后,理论知识一定要认真学习,好的基础能让你走的更远。 共勉。 |
14
darkbluever 2015-04-30 17:11:43 +08:00 1
个人认为一个优秀的PHP工程师的知识结构应该大致覆盖下面几点:
前端。至少了解HTML、CSS、JS,这些是web前端的基础。一般会有专门的前端工程师负责,但是PHP工程师如果有大致的了解会更方便交流与合作。 PHP。PHP基础语法,常用扩展。PHP内核,PHP扩展开发。 数据库。MySQL查询性能优化,索引的选择和优化,复制(主从,主主等不同拓扑),伸缩性与高可用性(MySQL集群,数据分区,分表,负载均衡),备份恢复与容灾等。 服务器。Nginx与Apache的基本配置与优化。Linux系统日常使用。 WEB系统体系结构。web系统拓扑,服务器并发处理,负载均衡,缓存设计,数据分发与同步,分布式缓存,分布式存储,性能监控等。了解主流浏览器的特性(安全策略,缓存,工作原理等)。 WEB安全。xss,csrf,sql注入,认证与会话管理 ,加密解密等。 基础理论知识。计算机体系结构,计算机系统原理,计算机网络,数据结构与算法,设计模式。 对技术的热情。关注开源项目。关注新技术。keep walking。 最好了解一门编译型语言,了解操作系统系统,不要局限自己,一条腿也许能站住,但走不远。 最后,理论知识一定要认真学习,好的基础能让你走的更远。 共勉。 |
15
darkbluever 2015-04-30 17:12:20 +08:00
重排版了才发现之前的不能删……
|
16
knightlhs 2015-04-30 17:13:17 +08:00
@darkbluever 不能删是 V2EX 的特色
|
17
jarlyyn 2015-04-30 17:14:15 +08:00
学点其他语言开发web,体会php为你做了什么。
|
18
Oleg 2015-04-30 17:15:02 +08:00 1
|
19
darkbluever 2015-04-30 17:31:49 +08:00
@knightlhs 好吧,就像直面人生的骑砍
|
20
jookr 2015-04-30 18:09:46 +08:00 1
可以参考我这贴 从拉钩网采集的 3290 份 php 程序员招聘信息统计出的技能关键词排行榜
https://www.v2ex.com/t/175821#reply28 |
21
neilwong 2015-04-30 20:16:17 +08:00 via iPhone 1
单纯php这门语言的话,太容易见底了。等到深度差不多,广度带来的提升才是最大的,单纯php工程师的话,前端老三样:js,css,html。后端老三样:nginx,mysql,php。这六样系统学一遍就能算php工程师了。延伸出来的正则,node,linux,shell,ps,react native,git等等,按会用再精的原则来。楼主加油
|
22
haiyang416 2015-04-30 20:23:39 +08:00 via Android
我的感悟是一定要点亮 "c " 技能,越高越好。
|
23
imn1 2015-04-30 20:28:40 +08:00
先搞清楚请假条怎么写~
|
24
domino 2015-05-01 06:25:48 +08:00
|
25
wdlth 2015-05-01 14:53:43 +08:00 1
你得知道PHP各版本之前的区别,特别是新版本中被废弃的部分。
|
26
cvmax OP @Sunyanzi 大神,这段时间实在搞不懂MVC...就是无法把自己以前的小项目改造成MVC模式。 有什么好的办法学习MVC么 相关书籍也可以
|
27
Sunyanzi 2015-05-05 18:33:37 +08:00 1
@cvmax 一个传统的 MVC 模型大概只要不到五十行代码 ...
最后出来的 URL 类似 /index.php?controller=foo&action=bar&custom=baz 这样 ... 于是 ... 所谓的搞不懂 MVC 或者说无法改造 ... 你觉得难点何在或者为什么无法改造 ..? |
29
cvmax OP @Sunyanzi 我能不能理解为: 1、把有变化的地方封装起来,传参数进去处理。后期修改方便。2、通过 URL 传过来的参数,C 处理,分发给对应的 M,M 处理完数据,再丢给 C 处理,分发给对应的 V 显示?
|
30
zehuicn 2015-05-11 11:59:22 +08:00 1
跟楼主一样,我虽然很多年前就开始玩网站,到现在也有很多网站,都是用开源的,比如Discuz、wordpress。。。HTML代码略知一二,PHP不太懂。。。今年春节节后开始也是痛定思痛,正儿八经地自学起来了,从HTML、CSS、PHP、MYSQL、MVC、框架/类、bootstrap、smarty等等,还没学完,现在自己可以做些模板、简单的PHP CMS。要学的东西好多,我现在是哪里不会学哪里,然后自己弄个小项目不断用新学的知识完善。
最近睡觉做梦都在写代码了。。。 |