中级PHP程序员的进阶之路

越来越多的人进入开发这个圈子,踏上码农这个不归路。根据这些年在开发圈子总结的LNMP程序猿发展轨迹,结合个人经验体会,简单梳理了中级阶段PHP程序员的技术要求,来帮助很多PHP程序员做对照设定学习成长目标。

中级PHP程序员

重点:提高针对LNMP的技能,能够更全面的对LNMP有熟练的应用。

目标:能够随时随地搭建好LNMP环境,快速完成常规配置;能够追查解决大部分遇到的开发和线上环境的问题;能够独立承担中型系统的构架和开发工作;能够在大型系统中承担某个中型模块的开发工作;

Linux:

在初级阶段的基础上面,能够流畅的使用Shell脚本来完成很多自动化的工作;awk/sed/perl

也操作的不错,能够完成很多文本处理和数据统计等工作;基本能够安装大部分非特殊的Linux程序(包括各种库、包、第三方依赖等等,比如Redis/Sphinx/xunsearch/SVN/Git之类的);了解基本的Linux服务,知道如何查看Linux的性能指标数据,知道基本的Linux下面的问题跟踪等。

Nginx:

在初级阶段的基础上面,了解复杂一些的Nginx配置;包括多核配置、events、proxypass,sendfile/tcp*配置,知道超时等相关配置和性能影响;知道nginx除了web server,还能够承担代理服务器、反向静态服务器等配置;知道基本的nginx配置调优;知道如何配置权限、编译一个nginx扩展到nginx;知道基本的nginx运行原理(master/worker机制,epoll),知道为什么nginx性能比apache性能好等知识;

MySQL/redis:

在初级阶段的基础上面,在MySQL开发方面,掌握很多小技巧,包括常规SQL优化(group by/orderby/rand优化等);除了能够搭建MySQL,还能够冷热备份MySQL数据,还知道影响innodb/myisam性能的配置选项(比如key_buffer/query_cache/sort_buffer/innodb_buffer_pool_size/innodb_flush_log_at_trx_commit等),也知道这些选项配置成为多少值合适;另外也了解一些特殊的配置选项,比如知道如何搭建mysql主从同步的环境,知道各个binlog_format的区别;知道MySQL的性能追查,包括slow_log/explain等,还能够知道基本的索引建立处理等知识;原理方面了解基本的MySQL的架构(Server+存储引擎),知道基本的InnoDB/MyISAM索引存储结构和不同(聚簇索引,B树);知道基本的InnoDB事务处理机制;了解大部分MySQL异常情况的处理方案(或者知道哪儿找到处理方案)。

Redis/Memcached:

在大部分中型系统里面一定会涉及到缓存处理,所以一定要了解基本的缓存;知道Memcached和Redis的异同和应用场景,能够独立安装

Redis/Memcached,了解Memcahed的一些基本特性和限制,比如最大的value值,知道PHP跟他们的使用结合;Redis了解基本工作原理和使用,了解常规的数据类型,知道什么场景应用什么类型,了解Redis的事务等等。原理部分,能够大概了解Memcached的内存结构(slab机制),redis就了解常用数据类型底层实现存储结构(SDS/链表/SkipList/HashTable)等等,顺便了解一下Redis的事务、RDB、AOF等机制更好

PHP:

除了初级阶段的能力,安装配置方面能够随意安装PHP和各种第三方扩展的编译安装配置;了解php-fpm的大部分配置选项和含义(如max_requests/max_children/request_terminate_timeout之类的影响性能的配置),知道mod_php/fastcgi的区别;在PHP方面已经能够熟练各种基础技术,还包括各种深入些的PHP,包括对PHP面向对象的深入理解/SPL/语法层面的特殊特性比如反射之类的;在框架方面已经阅读过最少一个以上常规PHP

MVC框架的代码了,知道基本PHP框架内部实现机制和设计思想;在PHP开发中已经能够熟练使用常规的设计模式来应用开发(抽象工厂/单例/观察者/命令链/策略/适配器等模式);建议开发自己的PHP

MVC框架来充分让开发自由化,让自己深入理解MVC模式,也让自己能够在业务项目开发里快速升级;熟悉PHP的各种代码优化方法,熟悉大部分PHP安全方面问题的解决处理;熟悉基本的PHP执行的机制原理(Zend引擎/扩展基本工作机制);

C/C++:

开始涉猎一定的C/C++语言,能够写基本的C/C++代码,对基本的C/C++语法熟悉(指针、数组操作、字符串、常规标准API)和数据结构(链表、树、哈希、队列)有一定的熟悉下;对Linux下面的C语言开发有基本的了解概念,会简单的makefile文件编写,能够使用简单的GCC/GDB的程序编译简单调试工作;对基本的网络编程有大概了解。(本项是为了向更高层次打下基础)

web前端(本项不做重点学习,除非对前端有兴趣):

在初级阶段的基础上面,熟悉基本的HTTP协议(协议代码200/300/400/500,基本的HTTP交互头);条件允许,可以在深入写出稍微优雅的HTML+CSS+JavaScript,或者能够大致简单使用某些前端框架(jQuery/YUI/ExtJS/RequireJS/BootStrap之类);如果条件允许,可以深入学习JavaScript编程,比如闭包机制、DOM处理;再深入些可以读读jQuery源码做深入学习。

系统设计:

能够设计大部分中型系统的网站架构、数据库、基本PHP框架选型;性能测试排查处理等;能够完成类似:浏览器 -> CDN(Squid)

-> Nginx+PHP -> 缓存 ->

数据库结构网站的基本设计开发维护;能够支撑每天数百万到千万流量基本网站的开发维护工作。

如果你已经决定要学好PHP,找一家靠谱的培训机构,将会让你的学习过程事半功倍。

“年度最受信赖职业教育品牌”千锋教育,一直秉承“用良心做教育”的理念,同期在校学员5000余人,合作院校超500所,合作企业超10000家。全国有十三个校区。数十位总监级专家讲师全职授课,200余位业内强师全程面授。

“中国教育集团领先品牌”千锋教育,关注学员和企业的双向需求,每年为企业输出20000+计算机精英,毕业学员占据全国移动互联网培训人才一半以上的份额。毕业学员平均薪资也是全行业最高。

“年度最具影响力IT教育机构”千锋教育PHP课程的教学老师,全部来自央企及上市公司,平均从业经验5年以上。而且千锋教育的老师实行淘汰制,学生进行匿名投票。留下来的都是经过学生投票检验过的名师;

千锋教育的PHP课程采用实战教学和分阶教学模式。课程内容紧贴名企需求,以实战传授理论,不谈虚的,只教真的。千锋教育力求将学员打造成具备完美职场竞争力的精英。千锋教育也是学员项目敢上线的唯一机构。

千锋教育PHP培训班毕业学员,其平均年薪相比行业平均年薪,足足高出五万。

学PHP,首选千锋教育。千锋教育力造IT培训领导品牌,学员百分之九十以上都是大专以上学生,力求为你营造最优质的学习环境。

千锋教育现更有0学费入学、 2周免费试听、跨学科周末班限时免费送活动, 一次报名,学习双技能,如同打了五折。欢迎你前来咨询,试听。

���6��

    原文作者:摩洛哥的日光
    原文地址: https://www.jianshu.com/p/d3225461116b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞