合格PHP工程师的知识结构
摘自http://www.cnblogs.com/ftx5410/p/7204672.html
一下子就想了这么多,后续想到了再补,请大家多多指教。其实编程使用什么语言不重要,最重要的是思想,编程的思路。
有一句话希望大家一起共勉:学无止境,学海无涯
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框架
- MVC模式介绍
- 视图
- 控制器
- 模型
- 模块和操作
- 主入口文件
- MVC模式应用
服务器知识
随着了解的越来越多,发现Linux知识是必不可少的,就像七巧板,总差那么一块。对于Linux的知识要求 我觉得以 “鸟哥的私房菜” 这本书 作为要求吧。
版本控制
做研发的版本控制很重要,因为这个牵扯到顺利持续集成的进度,最开始使用的是SVN,后续换到了Git,墙裂推荐大家都要学习Git,因为目前Git已经是研发的一个基本要求了
缓存
缓存在目前互联网的网站使用频率非常之高,后端主要是大量使用在缓存数据库结果集,减轻数据库的压力,目前主流的有Memcache 和Redis。前端大部分使用CDN,对静态资源使用CDN可以加载更快。无论前后哪端,都是为了给用户更好的体验
问:Memcache 和 Redis 有什么区别?
大流量
我所接触过的最大请求量是千万级别的(每天),使用的架构基本都是分布式的做法,例如负载均衡
高并发
高并发目前比较流行,经常看到某某秒杀活动,关于高并发需要了解常用的几种解决方案
学会使用IDE
不管你用什么IDE,请选择一款适合自己的,这能大大提高你的开发效率,个人墙裂推荐PHPStorm
学会搜索
好多人都喜欢问别人这个什么问题呀,遇到的问题我建议都先搜索,只有认真确认过的确找不到解决办法在找人问了。没有思考和尝试哪有成长
应该会的功能
不是说会了这些功能,你就天下无敌,应该是基本要求
- 登录、注册 模块
- 上传模块
- 图像验证码模块
- 手机验证码模块
- 支付系统
- 订单系统
- 统计模块
- 级联刷选
- 微信公众号开发(最好是认证的服务号)
- 商城库存并发控制
合格PHP工程师的知识结构的更多相关文章
- 合格PHP工程师的知识结构 (转载)
工作有些年头了,从学校开始自学ASP,偶然因为PHP一个功能爱上它(ASP上传代码要写好多,PHP基本几行就搞定了),从此走上了 ”拍黄片“ 之路.结合这几年的工作经验,说说我对PHP工程师知识结构的 ...
- 【转】合格PHP工程师的知识结构
PHP的运行环境 连环境都搞不起来,就是你有多么喜欢PHP,那也是白搭,开始我们大多会使用集成环境软件例如xampp,wamp.随着知识的增加慢慢要学会自己搭建运行环境,例如 Linux(Ubuntu ...
- 详解一名合格PHP工程师应该具备的基本知识结构
在学习php时的一些小沉淀,供童鞋们欣赏哈.. 1.掌握语言本身的语法,熟悉常用类库是必须的: 2.面向对象最为当今的主流也是必须掌握的: 3.常用设计模式必须掌握,设计模式是前辈的总结.经验: 4. ...
- 数字IC设计工程师的知识结构
刚毕业的时候,我年少轻狂,以为自己已经可以独当一面,庙堂之上所学已经足以应付业界需要.然而在后来的工作过程中,我认识了很多牛人,也从他们身上学到了很多,从中总结了一个IC设计工程师需要具备的知识架构, ...
- 淘宝前端工程师:国内WEB前端开发十日谈
一直想写这篇"十日谈",聊聊我对Web前端开发的体会,顺便解答下周围不少人的困惑和迷惘.我不打算聊太多技术,我想,通过技术的历练,得到的反思应当更重要. 我一直认为自己是" ...
- 腾讯云总监手把手教你,如何成为AI工程师?
作者:朱建平 腾讯云技术总监,腾讯TEG架构平台部专家工程师 1.关于人工智能的若干个错误认知 人工智能是AI工程师的事情,跟我没有什么关系 大数据和机器学习(AI) 是解决问题的一种途径和手段,具有 ...
- Java工程师如何在1个月内做好面试准备?
作者:石杉的架构笔记 写在前面 春节长假转眼已过,即将迎来的是一年一度的金三银四跳槽季. 假如你准备在金三银四跳槽的话,那么作为一个Java工程师,应该如何利用1个月的时间,快速的为即将到来的面试进行 ...
- 【金三银四跳槽季】Java工程师如何在1个月内做好面试准备?
目录 一.写在前面 二.技术广度的快速准备 三.技术深度的快速准备 四.基础功底的快速准备 五.下篇预告 一.写在前面 春节长假转眼已过,即将迎来的是一年一度的金三银四跳槽季. 假如你准备在金三银四跳 ...
- 如何准备算法工程师面试,斩获一线互联网公司机器学习岗offer?
原文:https://zhuanlan.zhihu.com/p/76827460?utm_source=wechat_session&utm_medium=social&utm_oi= ...
随机推荐
- JDBC更新数据实例
在本教程将演示如何在JDBC应用程序中,更新数据库的一个表中数据记录. 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模式的数据库表中更新数据记录. 要执行以下示例, ...
- jpa无外键配置
在用jpa这种orm框架时,有时我们实体对象存在关联关系,但实际的业务场景可能不需要用jpa来控制数据库创建数据表之间的关联约束,这时我们就需要消除掉数据库表与表之间的外键关联.但jpa在处理建立外键 ...
- nginx+Uwsgi+Django总结与分析
配置与调试nginx与uwsgi 參考: 1.uWSGI其三:uWSGI搭配Nginx使用 2.学习VirtualEnv和Nginx+uwsgi用于django项目部署 3.部署备忘 4.nginx+ ...
- powerDesigner生成Html及Word
转载地址:https://blog.csdn.net/zdp072/article/details/51900794 1:点击Reports 2:点击New Reports 3:定义名字,选择简体中文 ...
- Jquery Gritter set position
You can try... //css .gritter-center{ position:fixed; left:33%; right:33%; top:33% } //Javascript $. ...
- MATLAB:读取mat文件中物体的三维坐标,显示三维模型
在MATLAB中建立一个脚本show3Dmat.m文件,编写代码: clc; clear; %%read 3D data load('E:\博士\深度学习与三维重建\代码实现\3DRecGAN\X_Y ...
- 如何解析本地和线上XML文件获取相应的内容
一.使用Dom解析本地XML 1.本地XML文件为:test.xml <?xml version="1.0" encoding="UTF-8"?> ...
- 动态为页面添加CSS样式文件引用
动态为页面添加CSS样式文件引用: if (document.createStyleSheet) { //IE document.createStyleSheet("./Themes/Def ...
- 《HTTP权威指南》学习笔记——HTTP概述
1.HTTP--因特网的多媒体信使 HTTP使用的是可靠的数据传输协议,能确保数据在传输过程中不会损坏或混乱. 2.Web客户端和服务器 Web服务器(HTTP服务器)根据客户端的请求返回服务端的数据 ...
- getIsDebuggable
/* * if set android:debuggable="true" in Manifest, return true. * if set android:debugga ...
