合格PHP工程师的知识结构 (转载)

工作有些年头了,从学校开始自学ASP,偶然因为PHP一个功能爱上它(ASP上传代码要写好多,PHP基本几行就搞定了),从此走上了 ”拍黄片“ 之路。结合这几年的工作经验,说说我对PHP工程师知识结构的理解

PHP的运行环境

连环境都搞不起来,就是你有多么喜欢PHP,那也是白搭,开始我们大多会使用集成环境软件例如xampp,wamp。随着知识的增加慢慢要学会自己搭建运行环境,例如 Linux(Ubuntu/Centos),Apache/Nginx,Mysql,Redis/Memcached,PHP-FPM

基础知识

  • PHP编程:变量、常量、字符串、数组、控制结构、数据库、类、继承、多态、Cookie、Session
  • MYSQL命令:INSERT、UPDATE、DELETE、SELECT、GROUP、COUNT、JOIN、索引

有了PHP基础之后,第一个输出就是 Hello World 请举手(感觉好神奇)
问:OPCODE 是什么东西?

前端知识

如果你认为PHP是后端开发工程师,那么你就错了,最起码目前我接触的PHP工程师对于前端知识掌握的也是非常深的

  • CSS :不要求达到美工级别的切图,看得懂会改就行,会用Debug准确定位排错
  • JS:最起码表单验证,Jquery会使用吧
  • 前端框架:bootstrap或者foundation 最起码你的熟悉一个

PHP扩展

在最开始使用PHP的过程,可能完全不是扩展是什么玩意,我是知道了Memcache之后才知道原来有扩展这个概念,对于PHP扩展最基本的要求是先要学会安装和加载,更高的要求是了解扩展的结构并实现一个简单扩展,给大家推荐一个网站PHP扩展开发及内核应用

Web安全

SQL注入、验证码、刷新提交、漏洞扫描、DOS攻击、跨域攻击、XSS 这些都要了解下,并学会基本的防御手段,你一定会碰到这些破坏的

高性能Mysql

下雨天PHP和Mysql很配哦,对于数据库的要求,开始是会使用基本语句就行(增删改查),其次要有能力写高效语句优化数据库、分库分表的策略、主从架构,最后需要了解索引的原理,推荐大家看一本书叫做 "高性能Mysql"

MVC框架

会使用某个框架这是最低要求了,现在那个商业公司不用框架了。希望大家可以理解MVC模式,最终可以自己实现一个简单的MVC框架

  1. MVC模式介绍
  2. 视图
  3. 控制器
  4. 模型
  5. 模块和操作
  6. 主入口文件
  7. MVC模式应用

服务器知识

随着了解的越来越多,发现Linux知识是必不可少的,就像七巧板,总差那么一块。对于Linux的知识要求 我觉得以 “鸟哥的私房菜” 这本书 作为要求吧。

版本控制

做研发的版本控制很重要,因为这个牵扯到顺利持续集成的进度,最开始使用的是SVN,后续换到了Git,墙裂推荐大家都要学习Git,因为目前Git已经是研发的一个基本要求了

缓存

缓存在目前互联网的网站使用频率非常之高,后端主要是大量使用在缓存数据库结果集,减轻数据库的压力,目前主流的有Memcache 和Redis。前端大部分使用CDN,对静态资源使用CDN可以加载更快。无论前后哪端,都是为了给用户更好的体验
问:Memcache 和 Redis 有什么区别?

大流量

我所接触过的最大请求量是千万级别的(每天),使用的架构基本都是分布式的做法,例如负载均衡

高并发

高并发目前比较流行,经常看到某某秒杀活动,关于高并发需要了解常用的几种解决方案

学会使用IDE

不管你用什么IDE,请选择一款适合自己的,这能大大提高你的开发效率,个人墙裂推荐PHPStorm

学会搜索

好多人都喜欢问别人这个什么问题呀,遇到的问题我建议都先搜索,只有认真确认过的确找不到解决办法在找人问了。没有思考和尝试哪有成长了

应该会的功能

不是说会了这些功能,你就天下无敌,应该是基本要求了

  • 登录、注册 模块
  • 上传模块
  • 图像验证码模块
  • 手机验证码模块
  • 支付系统
  • 订单系统
  • 统计模块
  • 级联刷选
  • 微信公众号开发(最好是认证的服务号)
  • 商城库存并发控制

一下子就想了这么多,后续想到了再补,请大家多多指教。

其实编程使用什么语言不重要,最重要的是思想,编程的思路。当时这个的前提是你实现了很多功能,此时已经是任凭你需求千变万化,哥心中已有解决方案

有一句话希望大家一起共勉:学无止境,学海无涯

相关标签:PHP职场生活

本文原创发布于慕课网 ,转载请注明出处,谢谢合作!

作者: 编_程_浪_子 
链接:http://www.imooc.com/article/17994
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作!

时间: 2024-08-13 21:02:57

合格PHP工程师的知识结构 (转载)的相关文章

我想做一个合格的工程师

我想吐槽下,在新公司经过三个月的试用期,前两天终于完成了转正答辩,其实答辩就是两个我们项目组的两个项目经理(一个项目经理马上要离任了,另外一个新来的两个月,继任前者作为项目经理.),还有一个人事的同事.连一个部门经理或者稍大点的领导都没有参与我的答辩.感觉答辩的意义都没有了,但是巨坑的是,新项目经理说“有木有打算培训班学习想法”,“对数据库的应用要学习学习”,我想这不是赤裸裸讽刺我基础太差么?其实我确实来这家公司之前,没有用过MVC,这个能力也学稍弱与这个项目经理.但是我可以讲,我的其他能力绝对

作为合格的工程师,这些电路图一辈子都得记住!

作为合格的工程师,这些电路图一辈子都得记住! 时间:2017-11-08 关键字:电路图   放大电路 一. 信号滤波器 1.信号滤波器的作用: 与电源滤波器的区别和相同点: 2.LC 串联和并联电路的阻抗计算,幅频关系和相频关系曲线. 3.画出通频带曲线. 计算谐振频率. 二. 微分和积分电路 1.电路的作用,与滤波器的区别和相同点. 2.微分和积分电路电压变化过程分析,画出电压变化波形图. 3.计算:时间常数,电压变化方程,电阻和电容参数的选择. 三. 共射极放大电路 1.三极管的结构.三极

美好的十年工程师生涯(转载)

首先申明  此文章是我转载过来,以便以后更好的激励自己. http://bbs.21ic.com/icview-623676-1-1.html原文地址       再过几天就是我从业十年的纪念日啦,回首这过去的十年,个中辛酸和快乐只有经历过后才有切肤的体会,有加班的烦劳,有择业的困惑,有面试的尴尬,当然,也有成功的喜悦,但我很庆幸,我用了十年的时间做好了自己的职业定位,也具备了一定的综合实力.这是并不漫长的十年,确是我的生命历程中最美好的十 年,我觉得很值.很想和业内的朋友作分享,如果能消除你初

论合格测试工程师的Coding能力修养

如果说前几年想混进测试圈子还是一个比较easy的事儿的话,那这两年各位会发现情况已经在悄悄得发生变化.对于一个合格的测试工程师来说,掌握一种或多种Coding的能力,业已成为一个不争的事实.        虽然对于Tester来说,软件的业务特性也同样需要重点关注,但作为软件产业的一份子,一个成熟的Tester应该要去关注行业的发展趋势.国内目前的软件产业的发展实际已经被互联网/移动互联网所主导,即我们会默认互联网/移动互联网的行业需求就是产业需求.简单分析一下当下国内互联网/移动互联网公司的现

全栈工程师(文章系转载)

最近国内外都在流行一个词叫Full Stack,中文翻译过来叫全栈工程师,也叫全端工程师.微博上很多专业人士都在讨论全端工程师,有赞有毁的.我对全端工程师的定义是:掌握多种技能,并 能利用多种技能独立完成产品的人.打外比方,全栈工程师就是一个能独立盖一幢10层小洋楼的人,而普通工程师,则是可以和一群人盖一幢摩天大楼的人.至于 要掌握哪些技能,我觉得这个要跟从事的行业与技术方向有关,做互联网的和做软件的是不一样的,即使是做互联网的,后端也可以分为很多种技术流派. 8/2定律在哪都适用,全栈工程师就

怎样成为一个合格的测试工程师

一个测试工程师应该具备的素质我想在很多介绍软件测试的书里已经都列举过了,这里就不在重复,而一个合格的测试工程师和一个测试工程师的最大区别在哪儿?不外乎就在与测试思想.合格就在于他接受到测试任务后所做的第一件事情是想而不是做.合格就在于他将他自己的想法始终贯穿于整个测试中,包括测试设计中,测试执行中,测试分析中. 许多人都会说测试思想是一个空洞的东西,而我也曾经写过或说过太多的例子用以证明它,这里只建议想做合格测试工程师的人去看一本书吧,它的名字是<think in java>,在我眼里,它并不

如何成为一个合格的iphone软件开发工程师

如何成为一个合格的iphone软件开发工程师 软件工程是一门研究用工程化方法构建和维护有效的.实用的和高质量的软件的学科.它涉及到程序设计语言.数据库.软件开发工具.系统平台.标准.设 计模式等方面.在现代社会 中,软件应用于多个方面.典型的软件有电子邮件.嵌入式系统.人机界面.办公套件.操作系统.编译器.数据库.游戏等.同时,各个行业几乎都有计算机软件 的应用.这些应用都促进了经济和社会的发展,也提高了工作和生活效率. 成为一个合格的iPhone软件开发工程师先决条件是学好编程知识,但仅仅这一

淘宝前端工程师:国内WEB前端开发十日谈

转自:http://www.jianshu.com/p/8cf2df3fdbf2 一直想写这篇“十日谈”,聊聊我对Web前端开发的体会,顺便解答下周围不少人的困惑和迷惘.我不打算聊太多技术,我想,通过技术的历练,得到的反思应当更重要. 我一直认为自己是“初级”前端开发工程师,一方面我入道尚浅,只有短短几年,另一方面我自知对技术的钻研并不深入,可能是由于环境的原因,当然最重要的是,我幸运的参与到互联网崛起的浪潮之巅.时势造就了一批技能薄弱但备受追捧的“弄潮者”,这在很大程度上影响我们对“技术本质”

Linux驱动学习步骤(转载)

1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出. 5. 写一完整驱动, 加上read, write, ioctl, polling等各种函数的驱动实现. 在ioctl里完成从用户空间向内核空间传递结构体的实现. 6. 写一bl