工作快6个月了,大学毕业后在一家创业公司搞php,每天的工作内容很普通,就是在原来的项目上加功能、修bug,成长不过是symfony(一个php框架)、mysql、jquery、bootstrap的熟练度和经验的提升。现在很迷茫,我以后的发展方向是什么?
PHP程序员 => 全栈程序员 => 程序员
从PHP到全栈是很自然的,PHP本身并不是语言里最深的,但是是非常有用的语言。如果逐渐走向全栈,特别是把Javascript捡起来,你的实力会立刻增强至少一倍。
全栈程序员到程序员,这个时候你应该做了八年以上了,不再特别拘泥于用什么语言编程了,因为任何语言,如果需要,都可以在一两个月之内拿起来。
PHP和JS的经历,至少给你下面这些技术的感觉 RDBMS/NoSQL/Caching/HTTP/Queue/Non-Blocking/Event-Driven/Functional/OO/Prototypal/Scalability/MobileWeb ... 从职业回报来说,这是一个相当不错的栈。
PHP程序员也可以成长到很后期的,粗略划分阶段(不一定准确哈,仅供参考):
(1)编写一定量的PHP代码,学习会使用一些框架。
(2)拓展熟悉Mysql、Web服务器Apache/Nginx,Linux和HTTP协议。搞清楚它们之间的通信模式。
(3)学习“设计模式”,写出优美的代码结构,减少累赘和代码重复,在代码后期维护会带来极大的好处。可以适当去看看框架的PHP源码,里面往往有大量设计模式的应用思想。学习对PHP原生语法的深入了解,了解各种PHP拓展在PHP中扮演的作用,PHP优化。
(4)进一步搞清楚PHP和数据库、存储、Web服务器的通信原理(prefork/worker/event MPM,PHP-fpm),阅读PHP内核资料,深入学习Linux原理层。
(5)深入底层路线:深入看下PHP源码(C语言),学习编写PHP拓展。或者走架构师道路,搞清楚Web系统架构(负载均衡、集群部署、容灾保护等),PHP在中间如何将它们连接在一起的。
上面所写的,是PHP程序员的技术发展参考路线,其实,也可以在中间转项目管理,这个就看个人选择了。还有一些PHP程序员,会兼JS开发的,这个也非常常见,并不冲突。
据我理解,php工程师有三条路可走:
一、如果你对技术有很深的兴趣,有潜力成为专家级别的大牛,那就深入技术,了解框架、学习业务能力,走架构师的道路。
二、如果你技术水平一般,仅次于大牛,那就进阶管理,工作三五年,学习管理,作项目经经理,技术总监。
三、如果你有创业想法,愿意冒险,那就积累资金、技术,准备创业,或互联网或其它。
如果你对创造东西感兴趣,就你可以成长为一个 Web 项目经理;
如果你对解决问题感兴趣,你就可以成长为一个 Web 开发全栈小能手;
如果你对 PHP 这门语言感兴趣,你就可以成长为 PHP 内核大牛;
...
你看,发展方向其实还是蛮多的,但你就算知道了还是一样会很迷茫。我经历过这种迷茫,现在也仍然在迷茫。我迷茫的原因是不知道怎么选择才能让我在未来获得更多的收(chao)益(piao)。
也不知道你的迷茫是来自于什么。但如果是跟我一样,那还算幸运,至少没入错行。
不是纯php,不过也是在创业公司,也是2014毕业的。
我非常反感那个贴一张思维导图的答案,看起来似乎很高大上的样子。但其实那些人脑子不思考问题的!真照着这种狗屎路线图去学,你就废了。
要有发展,无非就两个:选好方向;努力往前走。题主是觉得当前做的事情,已经掌握的差不多了,找不到下一个方向。
方向可以从三个方面来找,自己感兴趣的,工作中接触的,行业要求的。比如,工作中虽然不接触linux方面的内容,但是自己感兴趣,也有很多php相关的职位有要求,那就可以去研究捣腾。不过对于毅力不够的人,效率其实不太高。
工作中接触的,可以深入一个方面,比如看syfony的源码,遇到坑的时候,尝试修改一下源码,总之要足够深入,直到你真正handle的住它(而不是停留在用的很溜)。这时候你会发现要你换个框架甚至自己写一个小型的框架,这都是小case。
如果感兴趣、工作接触、行业要求的,重叠在一起。你会发现你学的很快很有效率,幸福感也会爆棚(程序员的幸福感果然很廉价)。但这其实极少。甚至两个方面有叠合都会比较少。
这里我说一次自己的经历,最近我们公司网站项目要大改版。我在原型完成后,跟老大说:框架从yii1.1x改成用yii2,原来没用cdn,现在可以用又拍云。他回复我:yii你自己看着呗,改动不大就用2,cdn不要用又拍云,用七牛云。
然后我说改动不大的…(大家懂的…)。于是现在改版就基于yii2开始了。
所以有想法,还是要多提出来,只要你是一心想做好一个产品(项目),那你和boss的利益点就是相近的(他还要考虑成本,时间)。
其实我老大也不傻,他心里很清楚我想研究新东西,但是这同时对项目本身有好处啊,新版本的框架更好维护,更少漏洞,方方面面都有优化,cdn能让客户更快的打开,对网站是极大的优化。而且他也了解我的性格,知道我这么提出选用哪些方案,肯定会自己用额外的时间去研究捣腾这些方案的内容。
现在项目转用yii2,很多地方不一样了,自己下班周末都在翻看文档,研究源码,为了适应项目,加上对自己版本管理的自信,现在已经修改了不少的框架源码(其实也就百来行…)
以上说的是将自己感兴趣和工作方面结合在一起。当然不是什么情况都可以合。所以还得看情况。
总结一下最简单最容易上手的就是深入现在接触到的内容,如看symfony,jquery源码,再进一步为了更高效率去修改源码。次简单的是深刻思考现在项目的问题和改善,给老大提提方案,比如原来项目放空间或者自己架服务器的,可以摆上青云或阿里云,减轻创业公司的运维压力,这样又能接触新内容。
暂时想到就这么多,现在脑子里最常出现的想法是,我的价值已经超过公司给的钱很多了,但是目前想的还是先做好一件事情,用心去做好产品。跳槽加薪什么的不着急。
公司程序就那么几个人。主要工作有:
1.公司平台后台维护(用的phalcon,多数代码是我写的,一边写一边重构前面翔一般的代码)
2.在destoon,xxcms上做些二次开发(中文分词全文索引,加点小功能,模板贴代码)
3.用wpf结合开源库做了个桌面的管理软件
4.接一些外面的项目,最近就在干pm的工作,写项目需求,画思维导图,做一些演示用的demo
5.老板上个月说“这个软件不错,你给我做个功能差不多的,估个工期吧”,我....
6.软著申请文档也写过五六个了
做的事很杂,总的来说,缺点在于技术较难专精;好处是较锻炼做事的能力,人少事多,有些事情boss不见得想得全面,可是如果能想办法做得比他预期的更好,也挺有成就感的。不管在哪里,都能严格要求自己,将来的路肯定不会差。
网友评论