程序员2

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 程序员2

第2阶段:中级PHP程序员

重点:提高针对LNMP的技能,能够更全面的对LNMP有熟练的应用。
目标:能够随时随地搭建好LNMP环境,快速完成常规配置;能够追查解决大部分遇到的开发和线上环境的问题;能够独立承担中型系统的构架和开发工作;能够在大型系统中承担某个中型模块的开发工作;

  1. Linux:

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

  1. Nginx:

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

  1. MySQL/redis:

在第一阶段的基础上面,在MySQL开发方面,掌握很多小技巧,包括常规SQL优化(group by/order by/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异常情况的处理方案(或者知道哪儿找到处理方案)。

  1. Redis/Memcached:

在大部分中型系统里面一定会涉及到缓存处理,所以一定要了解基本的缓存;知道Memcached和Redis的异同和应用场景,能够独立安装 Redis/Memcached,了解Memcahed的一些基本特性和限制,比如最大的value值,知道PHP跟他们的使用结合;Redis了解基本工作原理和使用,了解常规的数据类型,知道什么场景应用什么类型,了解Redis的事务等等。原理部分,能够大概了解Memcached的内存结构(slab机制),redis就了解常用数据类型底层实现存储结构(SDS/链表/SkipList/HashTable)等等,顺便了解一下Redis的事务、RDB、AOF等机制更好

  1. 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引擎/扩展基本工作机制);

  1. C/C++:

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

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

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

  1. 系统设计:

能够设计大部分中型系统的网站架构、数据库、基本PHP框架选型;性能测试排查处理等;能够完成类似:浏览器 -> CDN(Squid) -> Nginx+PHP -> 缓存 -> 数据库 结构网站的基本设计开发维护;能够支撑每天数百万到千万流量基本网站的开发维护工作;

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
5月前
|
人工智能 程序员 知识图谱
程序员-你得把自己卖出去
程序员-你得把自己卖出去
|
Java 程序员 数据库
程序员有哪些约定俗成的“码德”
讲述程序员日常开发中应该注意的以及一些不好的习惯
|
程序员 项目管理 微服务
一个程序员的思考
或许,如同传闻所说,程序员这碗饭吃的就是青春,35岁就濒临被辞的风险,甚至于说程序员已然过度饱和,不再有过多机会给予新人入圈。而面对这种现状,作为一位普通二本院校出身的学生,更是没有所谓的学历优势,不过,幸好,学历对于程序员来说并非真正看重的一点,技术力才是正确的关键词,而这,也是我喜欢程序员的理由之一。我明白,这是一个不容易的开始,但也请相信,决不会草草结束。
93 1
|
NoSQL 前端开发 关系型数据库
程序员3
程序员3
117 0
|
分布式计算 安全 Dubbo
如果张东升是个程序员
如果张东升是个程序员
139 0
如果张东升是个程序员
|
算法 程序员
作为一个程序员,如何保持优秀
作为一个程序员,如何保持优秀
119 0
|
架构师 Java 程序员
成为优秀的程序员需要知道的8件事
1. 自我完善 尽量发布可以运行的代码。不要指望 QA 能给你找出所有的程序错误。要经常并且全面深入地测试你的代码,不断找出可以完善的方法。 2. 公平竞争 尝试其他技术、框架、方法和观点。
1026 0
|
架构师 程序员
如果我告诉你,程序员这条路很难走,你还要坚持走下去吗
可能很多人都觉得程序员是个高薪行业,动不动就听见谁月薪几万几万,心里羡慕不已。回头看自己每个月手里可怜的工资条,心里更是烦躁不已,于是乎下定决心一定要像人家一样,月薪几万。
1775 0
|
程序员 PHP
来自一个程序员的内心世界
一入编程深似海,从此再无双休日.在我们行当一直有这么一个民间歌谣。程序猿很辛苦,这是必然的.路漫漫其修远兮,吾将上下而求索。天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身。
1540 0
|
程序员
为什么要选择做一名程序员?
从这篇文章开始准备做一个大学生学编程系列文章,主要帮助一些还在编程路上徘徊的小伙伴,作为一个过来人的身份总结一些编程经验以及心得,在自学的过程中走了很多的弯路,在此通过这个专栏分享给需要编程的小伙伴。
2068 0