PHP程序员的技术成长规划.docx
《PHP程序员的技术成长规划.docx》由会员分享,可在线阅读,更多相关《PHP程序员的技术成长规划.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、PHP程序员的技术成长规划 在PHP程序员的技术成长规划上看到,很实际,从低段位到到高段位都有。 PHP程序员的技术成长规划 根据了解的许多PHP/LNMP程序员的发展轨迹,结合个人阅历体会,抽象出许多程序员对将来的迷漫,特殊对技术学习的盲目和慌乱,简洁梳理了这个每个阶段PHP程序员的技术要求,来帮助许多PHP程序做比照设定学习成长目标。 本文根据目前主流技术做了一个基本的梳理,整个是假设PHP程序员不是基础特别扎实的状况进行的设定,并且全部设定都特别详细明确清楚,可能会让人觉得不适,请理解仅代表一家之言。(将来技术改变不在探讨范围) 第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞
2、娴熟(核心是安装配置基本操作) 目标:能够完成基本的LNMP系统安装,简洁配置维护;能够做基本的简洁系统的PHP开发;能够在PHP中型系统中支持某个PHP功能模块的开发。 时间:完成本阶段的时间因人而异,有的成长快半年一年就过了,成长慢的两三年也有。 1.Linux: 基本吩咐、操作、启动、基本服务配置(包括rpm安装文件,各种服务配置等);会写简洁的shell 脚本和awk/sed 脚本吩咐等。 2.Nginx: 做到能够安装配置nginx+php,知道基本的nginx核心配置选项,知道 server/fastcgi_pa/acce_log 等基础配置,目标是能够让nginx+php_fpm
3、顺当工作。 3.MySQL: 会自己搭建mysql,知道基本的mysql配置选项;知道innodb和myisam的区分,知道针对InnoDB和MyISAM两个引擎的不同 配置选项;知道基本的两个引擎的差异和选择上面的区分;能够纯手工编译搭建一个MySQL数据库并且配置好编码等正常稳定运行;核心主旨是能够搭建一个可 运行的MySQL数据库。 4.PHP: 基本语法数组、字符串、数据库、XML、Socket、GD/ImageMgk图片处理等等;熟识各种跟MySQL操作链接的api(mysql /mysqli/PDO),知道各种编码问题的解决;知道常规娴熟运用的PHP框架(ThinkPHP、Zend
4、framework、Yii、Yaf 等);了解基本MVC的运行机制和为什么这么做,略微知道不同的PHP框架之间的区分;能够快速学习一个MVC框架。能够知道开发工程中的文件书目组织,有基本的良好的代码结构和风格,能够完成小系统的开发和中型系统中某个模块的开发工作。 5.前端: 假如条件时间允许,可以适当学习下 HTML/CSS/JS 等相关学问,知道什么web标准,div+c的web/wap页面模式,知道 HTML5和HTML4的区分;了解一些基本的前端只是和JS框架(jQuery之类的);了解一些基本的JavaScript编程学问;(本项不是必需 项,假如有时间,略微了解一下是可以的,不过不建
5、议作为重点,除非个人有剧烈爱好) 6.系统设计: 能够完成小型系统的基本设计,包括简洁的数据库设计,能够完成基本的:阅读器 - Nginx+PHP - 数据库 架构的设计开发工作;能够支撑每天几十万到数百万流量网站的开发维护工作; 其次阶段:提高阶段 (中级PHP程序员) 重点:提高针对LNMP的技能,能够更全面的对LNMP有娴熟的应用。 目标:能够随时随地搭建好LNMP环境,快速完成常规配置;能够追查解决大部分遇到的开发和线上环境的问题;能够独立担当中型系统的构架和开发工作;能够在大型系统中担当某个中型模块的开发工作; 1.Linux: 在第一阶段的基础上面,能够流畅的运用Shell脚原来完
6、成许多自动化的工作;awk/sed/perl 也操作的不错,能够完成许多文本处理和数 据统计等工作;基本能够安装大部分非特别的Linux程序(包括各种库、包、第三方依靠等等,比如MongoDB/Redis/Sphinx /Luncene/SVN之类的);了解基本的Linux服务,知道如何查看Linux的性能指标数据,知道基本的Linux下面的问题跟踪等。 2.Nginx: 在第一阶段的基础上面,了解困难一些的Nginx配置;包括 多核配置、events、proxy_pa,sendfile/tcp_*配置, 知道超时等相关配置和性能影响;知道nginx除了web server,还能够担当代理服务
7、器、反向静态服务器等配置;知道基本的nginx配置调优; 知道如何配置权限、编译一个nginx扩展到nginx;知道基本的nginx运行原理(master/worker机制,epoll),知道为什么 nginx性能比apache性能好等学问; 3.MySQL/MongoDB: 在第一阶段的基础上面,在MySQL开发方面,驾驭许多小技巧,包括常规SQL优化(group by/order by/rand优化等); 除了能够搭建MySQL,还能够冷热备份MySQL数据,还知道影响innodb/myisam性能的配置选项(比如key_buffer /query_cache/sort_buffer/in
8、nodb_buffer_pool_size /innodb_flush_log_at_trx_commit等),也知道这些选项配置成为多少值合适;另外也了解一些特别的配置选项,比如 知道 如何搭建mysql主从同步的环境,知道各个binlog_format的区分; 知道MySQL的性能追查,包括slow_log/explain等,还 能够知道基本的索引建立处理等学问;原理方面了解基本的MySQL的架构(Server+存储引擎),知道基本的InnoDB/MyISAM索引存储结构 和不同(聚簇索引,B树);知道基本的InnoDB事务处理机制;了解大部分MySQL异样状况的处理方案(或者知道哪儿找到
9、处理方案)。条件允许的情 况,建议了解一下NoSQL的代表MongoDB数据库,顺便对比跟MySQL的差别,同事能够在合适的应用场景平安谨慎的运用MongoDB,知道基本 的PHP与MongoDB的结合开发。 4.Redis/Memcached: 在大部分中型系统里面肯定会涉及到缓存处理,所以肯定要了解基本的缓存;知道Memcached和Redis的异同和应用场景,能够独立安 装 Redis/Memcached,了解Memcahed的一些基本特性和限制,比如最大的value值,知道PHP跟他们的运用结合;Redis了解 基本工作原理和运用,了解常规的数据类型,知道什么场景应用什么类型,了解Re
10、dis的事务等等。原理部分,能够也许了解Memcached的内存结构 (slab机制),redis就了解常用数据类型底层实现存储结构(SDS/链表/SkipList/HashTable)等等,顺便了解一下Redis 的事务、RDB、AOF等机制更好 5.PHP: 除了第一阶段的实力,安装配置方面能够随意安装PHP和各种第三方扩展的编译安装配置;了解php-fpm的大部安排置选项和含义(如 max_requests/max_children/request_terminate_timeout之类的影响性能的配置),知道mod_php /fastcgi的区分;在PHP方面已经能够娴熟各种基础技术,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 程序员 技术 成长 规划
限制150内