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. 管理生 ...
随机推荐
- python基础实例
1.在Python 语言中,对象是通过引用传递的.在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量. 如:x=1 1这个整形对象被创建,然后将这个对象的引 ...
- python 文件格式为 txt 转换成 csv 格式
1 txt 文件的读取 open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=Tr ...
- iOS学习之库
一.什么是库 库是程序代码的集合,是共享程序代码的一种方式. 二.库的分类 根据源代码的公开情况,库可以分为2种类型. 1.开源库 公开源代码,能看到具体实现. 比如,SDWebImage.AFNet ...
- foreach使用和函数
2016-04-25 一.foreach( 对集合每个元素的引用 in 集合 ) { } int[] a = new int[5]{1,2,3,4,5}; foreach( int b in a ) ...
- ETL应用:一种一次获取一个平台接口文件的方法
ETL应用场景中,若对端接口文件未能提供,任务会处于循环等待,直到对端提供为止,该方法极大的消耗了系统资源.为此想到了一种方法,一次获取一个平台的文件,实现思路如下: 1.第一次获取对端平台提供目录下 ...
- Windos Server 2008 Tomcat 安装
web服务:apache-tomcat-7.0.75环境:jdk-7u80-windows-i586 1.安装jdk环境包 2.配置环境变量--> 环境变量--> 新建W --> 变 ...
- easy_install
一 setuptools 和easy_install setuptools:setuptools 是一组由PEAK(Python Enterprise Application Kit)开发的 Pyth ...
- 20145240 《Java程序设计》第十周学习总结
20145240 <Java程序设计>第十周学习总结 教材学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. 程序员所作的事情就是把数据发送到指定的位置 ...
- 大话设计模式之PHP篇 - 单例模式
在编写PHP代码的时候,经常使用new关键字实例化一个对象,比如 <?php Class Database { } $db = new Database; 这是最常规的实例化操作方法,像数据库操 ...
- ANSI C和POSIX
简单的说 ANSI C:标准C API(对应fopen) POSIX:方便在Linux下运行的C API(对应open)