前言
今天在 segmentfault 看到一片文章,写的挺不错的。里面所涉猎的技术我都会都狩猎过,但限于工作及其他因素不能面面据到。至此
我都没弄懂,基于木桶原则的话,我的短版在哪?我觉得我望哪瞅哪都是短版?额...
以下为转文章原文 By:张友林
PHP程序员要月薪上万,技术需要达到什么水平?
这是一个经常被初级程序员问到的一个问题。如果你问公司的HR,人家会告诉你,你的薪资取决于于公司的薪酬制度,以及你在公司的位置。。。,所以啊,你懂的,小伙子好好干,继续加班吧。
这是可耻的忽悠, 我们广大程序员都是追求技术进步的有为青年,程序员的薪资水平要掌握在自己手中。
咱们先来说说PHP程序员技能树吧。要月薪上万,你要掌握的技能还真不少。
HTML/CSS/JavaScript 这些就不必说了,入门级WEB开发程序员都要掌握的。
其次说说PHP编程能力,精通PHP语法,掌握常用的函数,熟悉PHP5下的OOP应用,熟练使用缓存,掌握一些设计模式等等。这个是基础。再高级一点,你要会这些:对PHP运行机制的理解;对系统资源的调用交互理解;关健性能的优化能力。以及有过OOP架构设计经验,熟悉设计模式、UML,熟悉PHP对象运行机制,内存管理等
MySQL技能也是必不可少的。还是先从基本的来说,你要知道用PHP连接数据库;懂得写一些简单的SQL;建一些简单的索引;懂得用工具简单操作一下数据库(增删改库表结构数据等等)。进阶一点呢,你要懂得在开发应用上设计数据库,建立一些有效的索引,用explain分析SQL性能,压力测试等等。再往上呢,你要深入了解数据库索引、存储引擎原理以及运行机制,能有效地构建高性能可扩展的数据库结构/架构,有效地优化数据库性能配置并加以调试,分析数据库运行状态。再往上呢,再往上先不说了。
再说说操作系统应用能力,WEB开发不只是会写代码就行的。操作系统应用也是必备技能。需要广泛且扎实的基础理论,而对于开发者来说,熟悉基本的命令操作,对WEB相关服务的安装、配置、优化能力需要具备。
说到这,已经把很多程序员打回原形了。天啊,要到这么高的水平,原来我以为我很牛,现在才发现我太菜了。
还没完呢,作为一个PHP程序员,没有大型网站工作经验,怎么好意思出来混呢。PHP开发下的缓存应用(memcache、APC等);session处理方案;熟悉负载均衡;熟悉PHP数据连接池应用;了解PHP编程性能优化。这些只有在大访问量网站工作才能接触到。这些只是小菜,你还要掌握分布式缓存及缓存性能优化、熟悉存储系统、文件系统、数据库,开发可扩展平台。能结合负载均衡合理布置流量,对PHP运行性能进行监控与分析等。
不说了,再说下去连我自己都没信心了。不过呢,大家要往这个方向努力。FaceBook只招全栈工程师,现在大家知道为什么了吧,你掌握了上面说的,你就是一个全栈工程师了。
总结一下,PHP程序员要月薪上万,还是要求比较高的。 那个C++,JAVA程序员,可以专精某一技术。但是做Web开发的人,就得往全栈工程师这个方向发展。
[ 自己想说的话 ]
昨天又在网给自己买了两本书《算法(第四版)》/《代码整洁之道》,加上几个月一月一本,够我啃过这一年了吧?
年前到现在一直都趴在研究前台框架bootstrap
上面,然后也是昨天,项目老大问我:最近的自己在学习什么?我托口而出:bootstrap
!我靠~ 我现在还记得,当时他脸都黑了。我知道他肯定想不到我一后端的,屁颠屁颠玩到前端去了。
我歉意的说:我对自己的职业规划是全栈工程师,所以想什么都去研究什么都不想落下。
其实,我内心是纠结的。因为我现在所学习的东西无法有价值的运用至项目中去,不仅仅是自己是后端的身份,还因为项目组中有专业的前端/美工。而我仅仅还只能做些拖拽bootstrap
框架中,别人写好的组件到处德瑟~糊弄那些不懂行的可以,专业人士就算了,还不如扎扎实实的去研究CSS/JavaScript底层的东西。
我喜欢去学习新的技术,但这些还不够。人有不是机器,学多了总会忘。所以通常都是两条路~
广:横线发展,这种比较耗费时间。要么面面具备,要么什么都不会
深:专精一本,做一门技术中资深的专家。根据一万小时的定律,这个应该是不难实现的。
其实,人活着要点目标。有了目标就什么都不用怕,只要朝着好的方向一步一步向前进即可... (前提是不能提前阵亡..)