php程序员应该掌握的技能包
作为一名web开发者来说,不论是php还是java web,就我目前掌握的知识来说,个人认为应该掌握以下几个方面的内容
1 基础的编程语言,这个好像是废话
2 软件设计的思想,如面向对象、mvc、各种设计模式等等
3 web服务器的配置、优化,如apache、nginx
4 关系型数据库,现在mysql比较流行
5 非关系型数据库,如memcache、redis、MongoDB
6 http协议 tcp/ip协议
7 web高并发下的解决方案
8 linux系统,最低要求会写shell
9 掌握一门其他语言(这个在有些人貌似是不必要的,但我觉得还是挺有好处的)
10 正则表达式
11 web前端技术如js div+css(非必要)
上面所说的知识点每一个都值得大书特书,下面我尽我能力详细的罗列,并对每一个技术点写一篇专门的博客做解答
首先是第一点,对自己熟悉语言的理解。这个是基本且是最难的,拿php来说,包括基本函数、内置方法、数组的掌握,底层运行原理的掌握、任意一个框架的构建思想、甚至包括php如何与web服务器的通信原理等等还包括设计其他数据结构和常用技术的知识点,下面开始详细介绍
1 php常用的处理数字、时间、字符串、文件和数组的函数,如果非要说一个标准的话大约要记住50个
2 php的编码规范
3 类中的基础知识(如魔术方法、静态属性、对象赋值、继承、多态等等概念的理解和语法使用)
4 对cookie和session的理解(这个放到http中归类也是可以的)
5 队列的作用及实际使用场景
6 php与web服务器的通信原理(也就是所谓的php-fpm/cgi/fastcgi/sapi这些让人搞不清的概念之间的关系)
7 跨域的解决
8 传值与传引用的区别以及使用场景
9 web安全方面的解决方案
10 php在处理超大数据方面的解决方法(平时我没用到过,面试中经常会问到)
11 重定向
12 try/catch
13 如何捕获服务器异常,如404
14 php的垃圾回收机制
15 路由实现机制
二 关于软件设计思想
这一部分是php技能的升级版,在掌握了任何一门语言的基础语法知识后都不可避免的会设计到架构设计方面的问题,小到一个功能的思路设计大到整个框架底层的实现,这都是我们长期实践和思考得来的宝贵财富,需要我们遵循一定的思想及模式来方便我们工作,如面向对象编程、设计模式等等
1 对面向对象的理解
2 对任意一个成熟框架的底层架构了解
3 尽可能多的掌握设计模式并熟练运用
4 现在力所不能及的软件设计思想,有一次听一个朋友说起过,后来忘了,境界不在一个层次上面,只记得这个名词了,以后在讲解
三 web服务器的优化配置
现在不太懂,以后慢慢补充20171007
四 关系型数据库 -mysql
知识面实在太大,几乎是我力所不能及的,只能是尽我所能的尽可能的罗列
1 数据库三大范式,平时根本不会在意,也就面试的时候可能会用到
2 常用sql语句的熟练掌握(这是基础也是重中之重,比如 limit、having/where 、group by、join、子查询等等的使用 )
3 存储引擎的选用(即异同)
4 对索引的理解(非常非常重要,极其值得大书特书)及常用的sql语句的优化
5 对数据类型的掌握(如int(5)/int(10)的区别,varchar(10)/varchar(100)的区别,我相信这个问题大多数人也是不清楚的,区别是不同的吆)
6 读写分离的延迟解决方案
7 数据穿透的解决方案
8 事务和锁(非常重要)
9 隔离级别(这个平时大部分人不会注意,因为都用默认的,但面试的时候会问到)
10 分库分表
php程序员应该掌握的技能包的更多相关文章
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- Code Review 程序员的寄望与哀伤
一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...
- 传播正能量——做一个快乐的程序员
引子 今天在博客园看到施瓦小辛格的文章我们搞开发的为什么会感觉到累,顿时有感而发.自己本来不擅长写文章,更不擅长写这种非技术性的文章,但是在思绪喷薄之际,还是止不住有很多话要说.针对从客观上说&quo ...
- SQL Server 致程序员(容易忽略的错误)
标签:SQL SERVER/MSSQL/DBA/T-SQL好习惯/数据库/需要注意的地方/程序员/容易犯的错误/遇到的问题 概述 因为每天需要审核程序员发布的SQL语句,所以收集了一些程序员的一些常见 ...
- 就这么漂来漂去---一个毕业三个月的java程序员的裸辞风波
注:这并不是一篇技术文章,而是记录了我这几个月经历的入职,裸辞,找工作的心路历程,简单介绍一个博主的情况,我是16年毕业生,校招进了一家北京的公司,java开发,和很多年轻人一样,干了一段时间,我发现 ...
- 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~
一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...
- 程序员必须要知道的Hadoop的一些事实
程序员必须要知道的Hadoop的一些事实.现如今,Apache Hadoop已经无人不知无人不晓.当年雅虎搜索工程师Doug Cutting开发出这个用以创建分布式计算机环境的开源软...... 1: ...
- [转载]一个标准java程序员的进阶过程
第一阶段:Java程序员 技术名称 内 容 说明 Java语法基础 基本语法.数组.类.继承.多态.抽象类.接口.object对象.常用类(Math\Arrarys\S ...
- 【读书】PHP程序员要读的书目(不断完善中)
本文地址 分享提纲: 1. PHP 2. Linux 3. Apache/Nginx 4. Mysql 5.设计模式/架构 6. 缓存并发 7. 其他语言 8. 代码基础 9. 大前端 10. 管理生 ...
随机推荐
- ansible的主机变量
ansible的主机变量(常用):ansible_ssh_host #用于指定被管理的主机的真实IPansible_ssh_port #用于指定连接到被管理主机的ssh端口号,默认是2 ...
- Altera自带的RAM仿真学习
(1)单口RAM 1.无读使能rden信号的ModelSim功能仿真: 在不使用读使能rden信号的情况下,单口RAM仿真结果表明: 1.写使能wren为高时,写数据操作有效: 2.写使能wren为低 ...
- 使用Compute Engine工具连接Linux VM
Links: Connecting to Linux Instances 内容: 要连接Linux VM实例,必须要有一个SSH(Secure Shell)秘钥.无论何时连接一个LinuxVM实例(通 ...
- JAVA虚拟机(JVM)以及跨平台原理(JDK、JRE、JVM)
相信大家已经了解到Java具有跨平台的特性,可以“一次编译,到处运行”,在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的. 那么,跨平台是怎样实现的呢?这就 ...
- windows下查看静态库和动态库的导出函数
在window下查看动态库的导出函数可以用vs自带的Depends工具: 查看静态库的信息要用命令行来实现: dumpbin /LINKERMEMBER Test.lib > 1 ...
- Dubbo框架入门介绍
背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时,只需一个 ...
- Linux sh远程连接失败 sshd.service启动失败
今天不小心在本机的虚拟机执行了 chmod -R 777 /var 导致/var目录下所有权限全部是777 其中 /var/empty/sshd目录权限必须是744,却被改成了777,致使sh远程连接 ...
- Java技术路线
1.计算机基础: 1.1数据机构基础: 主要学习: 1.向量,链表,栈,队列和堆,词典.熟悉 2.树,二叉搜索树.熟悉 3.图,有向图,无向图,基本概念 4.二叉搜索A,B,C类熟练,9大排序熟悉. ...
- mongodb中的__v字段
"__v"是"versionKey"的简写,当每一个文档由mongoose创建时就会自动添加,代表这该文档的版本,此属性可配置修改,默认为"__v&q ...
- Android系统--Binder系统具体框架分析(一)
Binder系统具体框架分析(一) 一.Binder系统核心框架 1. IPC:Inter-Process Communication, 进程间通信 A进程将数据原原本本发送B进程,主要负责进程间数据 ...