本图谱适用于初级到中级PHP开发工程师学习借鉴,建议准备面试前自行参照,查缺补漏。
本文转载自:https://blog.csdn.net/dream_successor/article/details/79730270
停了一个多月没写技术文档,主要是因为本人最近离职了,当然现在回来了,也就说明有了新的工作着落了。
作为一个工作两年的程序员,能在深圳知名企业找到工作,一定程度上也能把你从离职前的失意转为自信和动力,毕竟跳槽总是不易的。
乔布斯说过:那些看似在生命中没有关联、微不足道的事情就像一个个散落在各地的珍珠,当我的人生向前展望时我不会把它们都串联起来。但是等到我回顾人生时,我必须相信这些片断会在未来的某一天串连起来,突然有一天让我豁然开朗。
是的,回头看看自己学过的和总结过的东西,平时并没有太大用处,但是等到离职跳槽的时候,和很多厉害的面试官交流起来,也发现某些技术知识和自己曾经写过的是那么的类似。而我在经过了一个多月没写文章之后,也会感觉到不习惯,可见,习惯的力量是多么可怕,一个好的习惯有时候真的能改变人的一生。
今天不讲具体技术细节,就谈谈最近面试过程中遇到的很多自己平时没有关注到的问题,也总结一下企业考核一个程序员必备的一些技能点。
一、技术知识积累
作为参与工作一定年限的程序员,最重要的就是静下心来把遇到的和遗漏的知识点记录下来,做好学习和总结的准备。
学习方面,除了看书上网查资料之外,实践也是非常重要的一点,很多不懂的或者不明白的点,可以本地或者云服务器自己动手搞搞demo,很快就能让你印象深刻了,这些实践尝试也可以通过GitHub来记录。
总结方面,相信很多程序员都有写技术博客的习惯,我也有,但是不多。个人感觉最方便的还是用上各种云笔记软件,这样效率很高,也可以在平时比较方便地查看,闲下来的时候可以像刷微博刷知乎一样去刷自己记录过的笔记。
以下我个人总结了PHP程序员在职场中最需要的技能树,这也是最近求职中个人总结出来的知识点,主要分为4个层面来梳理知识,也就是我们常用的LNMP或者LAMP架构。
1、Linux知识点
Linux系统知识最重要的考核点是在于系统瓶颈和故障的排查能力,也就是要熟练掌握各种常用系统指令,并在出现问题的时候有个清晰的处理思路,当然这些是需要在日常工作中通过实践积累出来的。
2、Web服务器知识
Web服务器方面,主流的也就是Nginx和Apache了,花点心思详读一些关于这两种服务器的实现原理的资料,也就很容易能理解两者的区别和应用场景了,当然,个人认为自己去搭建一个web服务器是最快能吃透服务器应用方法的途径。
3、PHP知识点
PHP,个人认为是一门入门门槛很低的语言,基本语法和使用都能在工作中烂熟于心,然而,工作之余还是有必要重新审视一下自己的代码,做做重构或者了解一些设计模式,总之,语言不难,多思考才是进步的第一步,多了解别的主流框架,多看看别人的代码,这些无疑都是有益的。
4、存储组件的掌握
对于存储DB,别以为只有DBA才需要懂,对于一个能独当一面的程序员,对MySQL、NoSQL类数据库的掌握也是必不可少的。建议可以在工作中多想想性能问题,MySQL的语句性能、索引覆盖率等等都是调优手段,这也是一项非常重要的能力。
二、从项目中突出解决问题的能力
一个企业在招人的时候,除了要看应聘者的技术知识积累之外,有一点很看重的是处理突发问题的能力。不仅仅涉及到服务器的故障处理,还涉及到项目立项的技术方案变更、项目里程碑延期、团队协作出现意外等等情况。这也是我们需要非常关注的一个问题,所以我们在做每一件事的时候需要多思考,万一发生突发情况有什么应对措施,这样久而久之就能积累了很多经验了。
这项能力很大程度上体现在简历中,一般简历里面写了自己项目经历的,都要把自己解决问题能力的这一面尽可能的表现出来。一直以来的应试教育都是让我们学什么用什么,但是社会上最需要的人是能够在出现没遇到过的问题的时候,主动学习相关知识并解决问题的人。
总之还是那句话,学会在工作积累经验,而不是一个经验用N年。
三、个人职业发展方向的规划
程序员的发展方向,现在看来主流的是两种,分别是技术岗-业务代码编写-技术管理-架构师,还有转项目经理-技术经理的管理岗。
我的看法是,不要埋头于处理业务逻辑,多想想自己想干什么,想往技术岗发展的,选一门技术领域,深入专研为优先。想往管理岗发展的,就要对留意当今变化发展迅速的业务场景,往风口方向发展,这样积累到的经验往往比别人多几倍。
四、其他
对于一个技术人来讲,技术专研是主业,业务的整个流水流程也是非常重要的,能从技术入手,通过技术手段改善业务的程序员,才是当今热门抢手的程序员,这也是我最近的感悟。希望这次分享,能把我的一些想法提出来跟更多人交流,而不是一味的获取各种观点信息,不然我们往往会因为获取的观点太多而忘了自己的观点,共勉。