PHP学习规划


为了不盲目学习,让学习路线更清晰,良好的分配学习时间,在这里对PHP做一个简单的学习规划。


阶段一:基础阶段

熟悉LAMP / LNMP / WAMP,能够完成基本的环境安装,简单的配置维护;能完成小型系统的PHP开发,或者在中型系统中支持某个PHP模块的开发。

1.PHP:
熟悉基本的语法数组、字符串、数据库、Socket、XML、GG/ImageMgk图片处理等;熟练使用一两个PHP框架(ThinkPHP、Yil、Zendframework等);了解MVC运行机制,能快速学习一个MVC框架,知道一些不同PHP框架的区别;知道开发工程文件目录,养成良好的编程习惯、能担任小型系统的开发,中型系统中某个模块的开发工作。

2.Linux:
了解常用的命令,管理员操作,知道vim编辑器,能够写一写简单的shell脚本,知道基本的服务配置。

3.Apache/Nginx:
了解常用的和PHP搭配的服务器,能梳理安装配置环境,知道基本的核心配置选项,基本配置操作,让服务器能正常工作。

4.MySQL:
能够自己搭建MySQL,了解InnoDB和MyISAM两个引擎的区别;熟练MySQL的常用操作,访问控制、权限、备份恢复等;能手工编译搭建一个MySQL数据库,配置好编码等能稳定正常的运行。熟练phpMyAdmin或任意一种MySQL管理维护工具。

5.前端:
了解一下HTML/CSS/JS等相关知识,知道web标准,div+css的页面模式;了解一些JavaScript知识,JS框架(如jQuery)。


阶段二:中级

能快读完成常规配置,能快速定位解决大部分开发问题;能承担中型系统的架构与开发工作。

1.php:
熟练掌握PHP常用语法、函数;熟悉PHP的面向对象编程,能在开发中熟练使用常规的设计模式;熟悉PHP常用库,能够使用常用的PHP库今夕项目开发。

2.Linux:
熟练使用Linux命令行操作,能对MySQL和Apache进行优化以提升网站性能;能够配置小型服务器集群(双服务器or三服务器);能够今夕Linux系统安全配置、日志管理。


3.MySQL/MongoDB:
熟练掌握MysSQL语句,知道MySQL性能瓶颈原因和解决方法;知道InnoDB/MyISAM索引存储结构,知道InnoDB事务处理机制,知道常规SQL优化。同时了解一下NoSQL中的代表MongoDB,了解和MySQL的差别,能适当使用mongo进行开发。

4.Redis/Memcached:
此时我们会涉及到一些缓存处理,需要了解基本的缓存,知道Memcached和Redis的区别和应用场景,了解他们的工作原理、机制。

5.前端:
熟悉场景的同喜标准,熟悉基本的HTTP协议(协议代码200/300/400/500),能更具手册写出符合通信标准的程序;学习一些前端框架(jQuery/Bootstrap/RequireJS/YUI等),同时深入学习JavaScript编程,闭包、Dom等。

6.系统设计:
此时我们能够设计部分中型系统的网站架构、数据库、基本的PHP框架选型;性能测试排查,完成网站的开发维护工作;拥有自己的代码库,可以在项目中进行复用;能对项目中的难点和新技术进行攻关。


阶段三:高级

除了基本的PHP业务开发,还能解决大部分深入复杂的技术问题,能完成大中型系统的设计开发;选择自己专业的方向深入研究(如MySQL\php\Redis等)

1.php:
精通PHP语法、函数、有自己专注的方向;了解主流框架的优缺点,方便项目中做技术选型,对大部分框架能迅速上手并使用;对php工作机制有一定了解,包括php-fpm工作机制,对zend引擎有一定了解,对php内部机制打部分核心数据结构(基础类型、Array、Object)实现有一定了解,对核心基础结构(zval\hashtable\gc)有深入学习了解;能够进行一些php扩展开发,熟悉php和Apache/Nginx不同的同喜交互方式细节;有自己的代码库,和自己熟悉精通的某些公用类库。

2.Linux:
熟练操作、维护、优化Linux,能够编写负责的shell脚本来协助完成备份、自动化处理、监控等工作;能够优化配置服务器集群;能够进行不停机维护升级等等

3.MySQL/MongoDB
精通SQL语句,除了基本的SQL优化还能完成一些负责操作,如大批量数据导入导出,更改表结构、增删索引字段等高危操作;对事务、主从、分区等有一定的理解和应用;对备份技术有更摄入的了解,灾备还原、冷热备份、多IDC备份等。

4.前端:
深入了解HTTP协议,各个细致特殊协议代码背后的原因(如302静态文件缓存了,502nginx后面php挂了之类的);除了前端的各种框架应用整合能力,还可以自己尝试开发一些类似jQuery的前端框架,或者开发一个富翁编辑器等。

5.其他领域的学习:
此时已经有了一些语言方面的积累,可以尝试学习不同的编程语言如:Python、Ruby、Java、C++等等,除了本身领域内的知识,也可以根据自己的兴趣爱好学习一起其他方面的知识比如:分布式、云计算、语言识别、移动开发等等。


技术学习到PHP中级程序员后就需要选择发展方向进行分化了,根据不同的公司性质、自己的兴趣爱好等,所需要学习的技能也不同,要精通所有的东西是不可能的,所以选择自己擅长的技术深入学习吧。


参考:http://www.devstore.cn/essay/essayInfo/6520.html


2017-04-19

你可能感兴趣的:(PHP学习规划)