张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件,👉戳此立抢👈

PHP工程师怎样自我突破

工程师人生 2018-10-11 09:36 次阅读
身边有几个做PHP开发的朋友,因为面试,也接触到不少的PHP工程师,他们常疑虑自己将来在技术上的成长与发展,我常给他们一些建议,希望他们能破突自己,有更好的发展。 PHP工程师面临成长瓶颈 先明确我所指的PHP工程题,是指毕业工作后,主要以PHP进行WEB系统的开发,没有使用其他语言工作过。工作经验大概在3~4年,普通的WEB系统(百万级访问,千成级数据以内或业务逻辑不是特别复杂)开发起基本得心应手,没有什么问题。但他们会这样的物点: 除了PHP不使用其它的语言,可能会点shell 脚本。 对PHP的掌握不精(很多PHP手册都没有看完,库除外) 知识面比较窄(面对需求,除开使用PHP和mysql ,不知道其它的解决办法) PHP代码以过程为主,认为面向对象的实现太绕,看不懂 这些PHPer 在遇到需要高性能,处理高并发,大量数据的项目或业务逻辑比较复杂(系统需要解决多领域业务的问题)时,缺少思路。不能分析问题的本质,技术判断力比较差,对于问题较快能找出临时的解决办法,但常常在不断临时性的解决办法中,系统和自己一步步走向崩溃。那怎么提高自己呢?怎么可以挑战难度更高的系统? PHP工程师怎样自我突破 更高的挑战在那里? 结合我自己的经验,我列出一些具体挑战,让大家先有个感性的认识。 高性能系统的挑战在哪里? 如何选择WEB服务器?要不要使用fast-cgi 模式 要不要使用反向代理服务?选择全内存缓存还是硬盘缓存? 是否需要负载均衡?是基于应用层,还是网络层? 如何保证高可靠性? 你的PHP代码性能如何,使用优化工具后怎么样? 性能瓶颈在那里? 是否需要写成C的扩展? 用户访问有什么特点,是读多还是写多?是否需要读写分离? 数据如何存储?写入速度和读出速度如何? 数据增涨访问速读如何变化? 如何使用缓存? 怎么样考虑失效?数据的一致性怎么保证? 高复杂性系统的挑战在哪里? 能否识别业务所对应的领域?是一个还是多个? 能否合理对业务进行抽象,在业务规则变化能以很小的代价实现? 数据的一致性、安全性可否保证? 是否撑握了面向对象的分析和设计的方法 当我所列出的问题,你都能肯定的回答,我想在技术上你基本已经可能成为架构师了。如何你还不能回答,你需要在以下几个方向加强。 怎么样提高,突破瓶颈 如何你还不能回答,你需要在以下几个方向加强: 分析你所使用的技术其原理和背后运行的机制,这样可以提高你的技术判断力,提高你技术方案选择的正确性; 学习大学期间重要的知识, 操作系统原理,数据结构和算法。知道你以前学习都是为了考试,但现在你需要为自己学习,让自己知其所以然。 重新开始学习C语言,虽然你在大学已经学过。这不仅是因为你可能需要写PHP扩展,而且还因为,在做C的应用中,有一个时刻关心性能、内存控制、变量生命周期、数据结构和算法的环境。 学习面向对象的分析与设计,它是解决复杂问题的有效的方法。学习抽象,它是解决复杂问题的唯一之道。 “这么多的东西怎么学,这得学多久呀” ? 如果你努力的话,有较好的规划,估计需要1~2年的时间,怎么学习的问题,我们后续再谈。 (注:下面是原文作者左文建分享的学习方法) 学习建议 如何有效的学习是一个大问题。 自己有些实践但很零散,不好总结。昨天晚上睡觉前,突然想到了RUP的核心,“以架构为中心,用例驱动,迭代开发”,借用这个思想,关于有效的学习的方法,可以这样来表述: 以原理、模型或机制为中心,任务驱动,迭代学习 有点抽象, 举个例子来说明如何学习。 目的: 学习如何提高处理性能。 可迭代驱动的任务: 通过IP找到所在地域。 这是WEB应用常见的任务,IP数据库是10左右万行的记录。 第一次迭代: 不考虑性能的情况下实现功能(通过PHP来实现) 因为无法直接通过KEY(IP)进行查找地域,所以直接放到数据或通过关联数组这种简单的方法都是不行的。思路还是先把数据进行排序,然后再进行查找 1. 如何通过IP查找? 已序的数据,二分查找是最快的。 2. 如何排序?用库函数sort当然 是可以,但是即然是学习,那还是自己实现快速排序吧。 学习目标: 排序算法,查找算法 PHPer 数据结构和算法基础比较差,平时也没有这方面的任务,自己也不学习,因此这方面的知识很缺乏。但是,编程解决的问题,最终都会归结到数据结构和对这种数据结构操作的算法。如果数据结构算法常在心中,那遇到问题就能清晰认识到它内在的结构,解决方法就会自然产生。 第二次迭代:优化数据的加载与排序 如果做到第一步,那基本上还是不可用,因为数据每次都需要的加载和排序,这样太耗时间。 解决的思路是,数据一次加载排序后,放到每个PHP进程能访问到的地方。 放到memcache 这是大家容易想到问题。其实放到共享内存(EA等加速器都支持)中是更快的方式,因为memcache还多了网络操作。 数据是整体放入到共享内存,还是分块放入,如何测试性能? 如何分析瓶颈所在(xdebug)? 在这些问题的驱动下你会学习到 学习目标: 检测、定位、优化PHP性能的方法; PHP实现结构对性能的影响。 第三次迭代: 编写PHP的扩展 性能还是上不去,不得不进入C/C++的世界了,不过从此你将不只是PHPer 而服务端的全能型工程师,当然这对没有做过C/C++的同学挑战是巨大的。 我这里无法再简单来说如何学习C/C++ ,可以参看 《PHP程序员学习C++》 学习目标:C/C++的学习,PHP扩展的编写 怎么确定需要学习的机制和原理呢? 怎么找到驱动学习任务呢? 我对需要学习的东西,都没有什么概念,怎么回答以上的两个问题? 从这个技术的定位来找出需要学习的重点,即它怎么做到(机制)的和它为什么能这样做到 (模型或原理) 列出这个技术最常见的应用,做为学习的任务,从简到难进行实践。 假如我需要学习Javascript ,我对于HTML,CSS有点感性认识 首要我了解到,JS 是WEB领域的动态语言,主要解决网页的动态交互的。 那我要学习的要点如下: JS如何与HTML 进行交互 (机制) JS的动态特性在那里,与其它动态语言有何区别?(语言模型) 如果完全自学,找到需要学习的要点(机制、模型、原理) 设定学习任务的确不是那么容易把握。如果找到一个有经验的人来指导你或加一个学习型的团队,那学习的速度的确会大大提高。 最后,我想说的是: PHP因为简单而使用,但不能因为它的简单而限制我们成长!
收藏 人收藏
分享:

评论

相关推荐

PHP语法基础与数据库详细讲解

第一章:WEB开发架构入门主要详细介绍了WAMP架构下PHP的各个套件的使用,以及如何搭建PHP开发环境,并且写出第一个
发表于 12-20 00:00 25209次 阅读
PHP语法基础与数据库详细讲解

如何在win7下搭建PHP环境详细教程免费下载

这两天刚装好Windows 7,碰巧前段时间有朋友问我Windows下如何安装搭建PHP环境,所以打....
发表于 04-24 17:14 3次 阅读
如何在win7下搭建PHP环境详细教程免费下载

PHP基础学习知识点汇总免费下载

本文档的主要内容详细介绍的是PHP基础学习知识点汇总免费下载。
发表于 04-24 16:45 5次 阅读
PHP基础学习知识点汇总免费下载

嵌入式工程师的真实现状,月薪8千or年薪40万?

一名一线企业嵌入式软件工程师的笔者,想通过自己的实际经历理性地评论当今嵌入式行业的真实状况。 嵌入式的定义和举例分析 ...
发表于 04-24 09:52 181次 阅读
嵌入式工程师的真实现状,月薪8千or年薪40万?

怎样成为优秀的嵌入式linux工程师

目前,Linux作为嵌入式系统的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、....
的头像 工程师人生 发表于 04-24 09:47 144次 阅读
怎样成为优秀的嵌入式linux工程师

售前工程师的岗位职责

负责组织制定系统集成项目的技术方案编写、标书的准备、讲解及用户答疑等工作;
的头像 工程师人生 发表于 04-24 09:41 105次 阅读
售前工程师的岗位职责

工程师应该怎么写简历

招聘者每天要看成百上千份简历,也许在每份简历上花的时间不到5分钟。如果才能从许多简历中跳出来,吸引招....
的头像 工程师人生 发表于 04-23 16:45 184次 阅读
工程师应该怎么写简历

30份技术干货,攻城狮想要了解的全在这儿!

这是一份攻城狮不能拒绝的福利!30份技术干货, 涉及Iot产业发展、5G、工业物联网、智能可穿戴、智慧城市等领域精细划分 由微...
发表于 04-23 09:36 212次 阅读
30份技术干货,攻城狮想要了解的全在这儿!

java高级工程师的要求有哪些

从事java后端开发4年及以上,具有根据业务需求进行独立设计的能力
的头像 工程师人生 发表于 04-22 16:47 195次 阅读
java高级工程师的要求有哪些

什么是高级工程师

最近和很多认为自己是高级工程师的程序员聊过,发现了一个很显著的问题,大家以为自己会ssh,会点小模块....
的头像 工程师人生 发表于 04-22 16:42 177次 阅读
什么是高级工程师

成为JAVA高级工程师需要学哪些知识

至少要精通多门开源技术吧,研究过struts\spring等的源码。
的头像 工程师人生 发表于 04-22 16:32 199次 阅读
成为JAVA高级工程师需要学哪些知识

谈谈国外的工程师们怎样工作的?

外国工程师年纪都很大,曾有人表示先后与40多位外国工程师共事过。只有2位小于30岁。绝大部分是中年人....
的头像 电源研发精英圈 发表于 04-22 16:30 281次 阅读
谈谈国外的工程师们怎样工作的?

项目管理工程师的职责及权利

项目管理工程师是项目团队的领导者,其所担负的责任就是领导团队能够准时、优质的完成项目的全部工作,从而....
的头像 工程师人生 发表于 04-19 15:34 178次 阅读
项目管理工程师的职责及权利

PHP教程之CSS的详细资料简介

本文档的介绍的是PHP教程之CSS的详细资料简介主要内容包括了:1.DHTML简介,2.何为CSS(....
发表于 04-18 17:04 27次 阅读
PHP教程之CSS的详细资料简介

PHP教程之HTML语言基础的详细资料说明

本文档的主要内容详细介绍的是PHP教程之TML语言基础的详细资料说明包括了:1.了解HTML的一些背....
发表于 04-18 17:04 29次 阅读
PHP教程之HTML语言基础的详细资料说明

PHP教程之PHP与MySQL数据库连接的资料说明

本文档的主要内容详细介绍的是PHP教程之PHP与MySQL数据库连接的资料说明包括了:1.web数据....
发表于 04-18 17:04 36次 阅读
PHP教程之PHP与MySQL数据库连接的资料说明

PHP教程之文件系统和服务器的交互资料说明

本文档的主要内容详细介绍的是PHP教程之文件系统和服务器的交互资料说明包括了:1.文件上传,2.使用....
发表于 04-18 17:04 37次 阅读
PHP教程之文件系统和服务器的交互资料说明

工程师如何培养解决问题的能力

手机响了,是一个实施工程师打过来的,说现场的数据采集不上来,问怎么解决。我问软件的版本,仪器的型号,....
的头像 工程师人生 发表于 04-18 15:48 189次 阅读
工程师如何培养解决问题的能力

爬虫工程师是干什么的 需要掌握哪些技能

互联网是由一个一个的超链接组成的,从一个网页的链接可以跳到另一个网页,在新的网页里,又有很多链接。理....
的头像 工程师人生 发表于 04-18 15:42 209次 阅读
爬虫工程师是干什么的 需要掌握哪些技能

Python爬虫工程师面试时的常见问题

一般面试官的第一个问题八成都是问一下以前做过的项目,所以最好准备两个自己最近写的有些技术
的头像 工程师人生 发表于 04-18 15:36 182次 阅读
Python爬虫工程师面试时的常见问题

一名爬虫工程师的苦与乐

每当数据检查不通过时,就会有点揪心,怕是又出了什么乱子。最可恨的就是网站改版,每次改版,原先设计的系....
的头像 工程师人生 发表于 04-18 15:30 196次 阅读
一名爬虫工程师的苦与乐

如何成为全栈工程师

一个天气应用,干净清爽的界面,天气信息一目了然。它不仅可以精确预测未来 10 天的天气,还可以显示某....
的头像 工程师人生 发表于 04-18 14:38 171次 阅读
如何成为全栈工程师

设计素养对前端工程师的重要性

在很久之前我就说过同样的话,表达过我觉得做为前端工程师而言设计素养的重要性,今天我想聊天为什么我有这....
的头像 工程师人生 发表于 04-17 16:22 191次 阅读
设计素养对前端工程师的重要性

前端工程师需要掌握哪些技能

前端工程师是一个出现了10年左右,而颇受重视则是最近这五六年的事情。受到重视到前端从业人员井喷,也就....
的头像 工程师人生 发表于 04-17 16:03 200次 阅读
前端工程师需要掌握哪些技能

自然语言工程师的岗位要求有哪些

改进推荐算法,提高推荐的精度;
的头像 工程师人生 发表于 04-16 17:23 200次 阅读
自然语言工程师的岗位要求有哪些

java后端工程师的换工作经历总结

我建议是第一是跟语言无关的部分,也就是所谓的基本功。具体也就是我们大学本科里面最头疼的那些东西,数据....
的头像 工程师人生 发表于 04-16 17:18 261次 阅读
java后端工程师的换工作经历总结

前端工程师的简历到底怎么写

其实前端工程师并不少,但很多时候合适的前端工程师难找。可能是由于程序员比较内向,前端工程师都没有把自....
的头像 工程师人生 发表于 04-16 17:08 252次 阅读
前端工程师的简历到底怎么写

一位测试开发工程师的面经总结

等价类划分法:输入的数据划分为有效等价类和无效等价类
的头像 工程师人生 发表于 04-16 17:01 224次 阅读
一位测试开发工程师的面经总结

腾讯测试开发工程师面试经历

了解到过完年回来很多大公司就开始实习生招聘了,我也在开学的时候就投了简历,内推和正式实习生招聘都参加....
的头像 工程师人生 发表于 04-16 16:56 433次 阅读
腾讯测试开发工程师面试经历

Phpstorm本地激活的安装方法详细资料免费下载

本文档的主要内容详细介绍的是Phpstorm本地激活的安装方法详细资料免费下载。
发表于 04-15 17:33 36次 阅读
Phpstorm本地激活的安装方法详细资料免费下载

怎样成为一名优秀的全栈工程师

全栈工程师一词,最早出现于Facebook工程师Calos Bueno的一篇文章 - Full St....
的头像 工程师人生 发表于 04-15 16:25 264次 阅读
怎样成为一名优秀的全栈工程师

区块链工程师的能力需求有哪些

区块链工程师,目前能力需求大概有这些:
的头像 工程师人生 发表于 04-15 16:00 295次 阅读
区块链工程师的能力需求有哪些

优秀的工程师有哪些特质

在我看来,一个工程师是否优秀,潜力如何,主要看有没有如下三个特质:
的头像 工程师人生 发表于 04-13 11:40 759次 阅读
优秀的工程师有哪些特质

作为一位IC设计工程师,该如何保持电路知识不过期不遗忘?

作为电子工程师,特别是电路工程师,如Analog IC, Digital IC Engineer,需要了解到电路、集成电路,数字电路、模拟电路、...
发表于 04-12 17:47 517次 阅读
作为一位IC设计工程师,该如何保持电路知识不过期不遗忘?

怎样才算是一名优秀的Java工程师

当今我国信息化处于发展阶段,数以万计的中小企业继续中高级别Java开发工程师,导致Java开发行业越....
的头像 工程师人生 发表于 04-12 16:42 327次 阅读
怎样才算是一名优秀的Java工程师

成为合格的售前工程师需要具备哪些技能及素质

闲着无事,想想最近被面试和面试别人时各个问题,自己总结了几条作为合格售前工程师需要具备的技能、素质,....
的头像 工程师人生 发表于 04-12 16:04 298次 阅读
成为合格的售前工程师需要具备哪些技能及素质

PHP基础学习知识点详细资料汇总免费下载

本文档的主要内容详细介绍的是PHP基础学习知识点详细资料汇总免费下载。
发表于 04-11 17:43 38次 阅读
PHP基础学习知识点详细资料汇总免费下载

一位工程师的进阶之路

现在, 我工作满7年。 原本的计划, 是在工作满10年的时候, 有更多积累之后, 再来写一些能够帮助....
的头像 工程师人生 发表于 04-11 15:46 245次 阅读
一位工程师的进阶之路

【个人观点】如何成为一名合格的开关电源工程师,需要具备哪些知识?

(1)关于「开关电源工程师需要哪些知识」 以一个简单的Buck变换器的设计为例进行说明。 [图片来自:Erickson R W, Mak...
发表于 04-11 07:30 724次 阅读
【个人观点】如何成为一名合格的开关电源工程师,需要具备哪些知识?

人工智能会取代软件测试工程师吗

近几年,人工智能逐渐兴起,AI 助手、无人驾驶汽车、云端全功能芯片。..在媒体领域,机器人写稿、媒体....
的头像 工程师人生 发表于 04-10 15:40 298次 阅读
人工智能会取代软件测试工程师吗

AI工程师分哪些层次

每一波浪潮的到来,都意味一片无人占领的蓝海,也意味着众多新成长起来的巨头,还意味着什么?大量的技术人....
的头像 工程师人生 发表于 04-10 15:32 487次 阅读
AI工程师分哪些层次

嵌入式软件工程师待遇怎么样 当前企业需要哪些技术

想要了解嵌入式软件开发工程师待遇怎么样,那就先来看一下嵌入式软件工程师发展趋势怎么样,据市场分析,现....
的头像 工程师人生 发表于 04-10 14:57 329次 阅读
嵌入式软件工程师待遇怎么样 当前企业需要哪些技术

人工智能工程师需要具备哪些技能

当你在编程的时候必须能够对以上提到的这些基础知识进行应用、执行、修改或者处理。课后练习、编码竞赛还有....
的头像 工程师人生 发表于 04-09 16:51 753次 阅读
人工智能工程师需要具备哪些技能

怎样成为一名云计算工程师

云计算是一种通过互联网提供与计算相关资源的可扩展的方法。工程学科应用于这个概念则被称为云计算工程,它....
的头像 工程师人生 发表于 04-09 16:47 366次 阅读
怎样成为一名云计算工程师

怎样成为一名异构并行计算工程师

随着深度学习(人工智能)的火热,异构并行计算越来越受到业界的重视。从开始谈深度学习必谈GPU,到谈深....
的头像 工程师人生 发表于 04-09 16:41 357次 阅读
怎样成为一名异构并行计算工程师

高级PHP工程师应具备哪些条件

和所有程序员一样,要写一手好的程序,没有好的心态是不行的。
的头像 工程师人生 发表于 04-09 16:33 336次 阅读
高级PHP工程师应具备哪些条件

作为工程师是否可以一辈子靠技术生存?

我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉得特别想对那些初学JAVA/DOT。NET技术的...
发表于 04-09 16:19 4185次 阅读
作为工程师是否可以一辈子靠技术生存?

日本软件开发工程师的前途

在一些论坛上面经常能够看到一些人,对这个行业的一些不太积极的评价。意思大概都是对日软件开发没有技术含....
的头像 工程师人生 发表于 04-08 16:08 227次 阅读
日本软件开发工程师的前途

JAVA工程师的前途怎么样

Java是门高端计算机编程语言,Java是门称霸世界的编程语言,Java还是门企业级编程语言,当下谷....
的头像 工程师人生 发表于 04-08 15:48 215次 阅读
JAVA工程师的前途怎么样

汇总PCB layout工程师的7个好习惯 你有没有学会?

在有些人看来,PCB layout工程师的工作会有些枯燥无聊,每天对着板子成千上万条走线,各种各样的....
的头像 电小二 发表于 04-06 16:44 440次 阅读
汇总PCB layout工程师的7个好习惯 你有没有学会?

爬虫工程师的价值及入门技巧

大数据时代已到,数据越来越具有价值了,没有数据寸步难行,有了数据好好利用,可以在诸多领域干很多事,比....
的头像 工程师人生 发表于 04-04 16:19 539次 阅读
爬虫工程师的价值及入门技巧

AI工程师和算法工程师在应聘时究竟应该怎么准备

今天我们来讨论 AI 工程师和算法工程师在应聘方面的问题。一起来看看,作为 AI 工程师,在面试一家....
的头像 工程师人生 发表于 04-03 16:24 471次 阅读
AI工程师和算法工程师在应聘时究竟应该怎么准备

Java工程师的岗位职责有哪些

随着电子产业的迅猛发展,Java技术也得到越来越广泛的应用,Java工程师随之也成为受欢迎的IT岗位....
的头像 工程师人生 发表于 04-02 16:15 324次 阅读
Java工程师的岗位职责有哪些

为什么很多JAVA工程师会转行做大数据

JAVA已成为当今市面上最受欢迎的编程软件,对于处于信息高速发达的今天,JAVA技术已经无处不在,手....
的头像 工程师人生 发表于 04-02 16:11 501次 阅读
为什么很多JAVA工程师会转行做大数据

大数据工程师年薪真的能达到30W以上

不知道大家有没有听过这样一句话:Google比你自己更了解你
的头像 工程师人生 发表于 04-02 16:03 714次 阅读
大数据工程师年薪真的能达到30W以上

作为深漂工程师,我在硬件设计这条路的成长经历

以硬件工程师的身份已经工作两年多,回看自己的经历,大学以前,可以用四个字来总结:按部就班。大学以后,也可以用四个字来总结...
发表于 04-02 14:47 712次 阅读
作为深漂工程师,我在硬件设计这条路的成长经历

基于MYSQL,PHP和nginx的部署论坛

LNMP架构的简单应用-----部署论坛
发表于 03-19 16:41 39次 阅读
基于MYSQL,PHP和nginx的部署论坛

基于rdKafKa封装的简单舒适PHP-KafKa拓展

See-KafKa 简单舒适的PHP-KafKa拓展
发表于 03-12 09:59 108次 阅读
基于rdKafKa封装的简单舒适PHP-KafKa拓展

在汽车自动化生产线PLC调试的主要内容?诸如夹具?

推荐课程: 张飞软硬开源,基于STM32 BLDC直流无刷电机驱动器视频套件 ...
发表于 03-11 02:13 450次 阅读
在汽车自动化生产线PLC调试的主要内容?诸如夹具?

工程师们怎么看华为起诉美国政府这件事?

3月7日上午,华为轮值董事长郭平在外媒记者会上宣布,华为已向美国联邦法院提起诉讼,指控美国2019年国防授权法第889条款违反美国...
发表于 03-08 11:26 3951次 阅读
工程师们怎么看华为起诉美国政府这件事?