当前位置:   article > 正文

2021年后端学习路线书籍-自我进阶之路_快速学习后端php大佬

快速学习后端php大佬

 最近也有不少小伙伴们在公众号发消息问我,如何去学好一门后端语言?怎么才能进阶?在公司如何才能快速的晋级晋升?你作为一个后端是如何学习的呢?

其实我正儿八经的工作也就 4 年多了,但是如果算上大三实习大四工作的话满打满算大概 5 年之久。你会发现自己工作 3 年以后再到 5 年可能会觉得自己学不到东西,很多东西从表面上看你会了,深入一点你基本就回答不上来而且脑海搜索不到任何的相关知识点。小伙伴们问的最多的是下面几个问题(不以语言论英雄):

  1. - 我工作 1年 ,3年, 5年 进入了迷茫期,完全不知道自己要干什么?
  2. - 不知道自己要看什么书籍、视频、文档?
  3. - 学的东西总是用不上,而且经常忘记,需要查阅(百度、谷歌)
  4. - 我发现我有时候还不如公司新来的员工(经验比我低)还菜?
  5. - 更有甚者,工作了三四年觉得自己不如别人,想放弃转行?
  6. 复制代码

实话实说,21年刚开始老早我就想把自己的学习路线以及书单整理下,因为换了工作的原因搁置了。自从最近写了文章之后,常常有朋友会问我,我是后端开发:“我需要看哪些视频、文档、书籍;如何规划自己的职业路线?”。那么我就以自己的成长过程中:学到的知识、看的书籍、以及文档,视频很少看。

学习时间表

这个是问的最多的,主要是因为我很早之前是做PHP语言开发。给大家看下我刚毕业的学习时间

  1. 7:00 起床,因为是租房人多,早起洗漱
  2. 7:30 开始买早餐边吃边去公交站
  3. 7:45 到达公交站,等公交;运气好直接上车,不好下一趟
  4. 8:50 到达公司,接水开电脑开始工作 写代码
  5. 12:00 午睡时间, 看书、看视频(敲代码影响同事休息)
  6. 13:30 下午工作,写代码、需求评审、开会
  7. 18:30 下班,留公司继续学习、看书、动手实现(公司有空调舒服一些)
  8. 20:00 回家、买饭、同学吹水、看书、压马路
  9. 22:00 洗漱、看书、看教学视频
  10. 第二天凌晨2:00 结束学习睡觉
  11. 复制代码

因为要工作的原因,放弃玩游戏的时间(LOL、穿越火线),全部投入到自身的技术提升;技术不好,工作难找,毕业了就不再是一个孩子,而是一个有担当、有承担能力的男人。

前几年做PHP开发 2 年做到高级研发,3 年开始承担面试负责项目等等一系列工作。分享一下我的PHP学习路线:

PS:目前已转使用Lua/Go语言开发高性能项目

初级进阶阶段一

  • 掌握基本Html+Css语法,会用开源UI组件等等(必备,刚毕业一般都要前后端都会)
  • 掌握PHP基础语法、格式、数组函数、语法糖、上传下载、cookie | session配置原理、命名空间
  • 掌握mysql语法使用;会写原生sql、知道sql执行的先后顺序
  • 了解面向对象 | 面向切面的编程思想;(很多老框架是面向过程)
  • 了解redis | memcached基本命令和两者区别
  • 了解使用php框架,Laravel | ThinkPHP
  • 学会使用linux一些基本的命令

学习文档PHP官方文档英文 + 菜鸟教程中文

我非常建议初学者多看官方文档,最原生且可以锻炼英语能力;基本上涵盖了PHP的所有语法知识体系,当时教我的导师只推荐了官方文档手册和给了一个PHP的学习pdf。我自己的做法是:看一遍之后,我会自己写写小项目去使用;也就是要动手进行实践。

thinkphp框架在国内使用率太高了(当时大学时导师推荐学习),所以尽量选择ThinkPHP框架上手学习;之所以不建议使用Laravel入门是因为:语法糖太多、第三方类库太多、而且一些其他强大组件对新手来说难度较大;个人认为laravel稍微有点臃肿。尽量使用框架可以完整自己的个人博客系统。

中级进阶阶段二

php进阶

  • 掌握常用设计模式理念、代码规范
  • 掌握PHP常用的扩展实现原理和使用
  • 掌握PHP反射原理与使用
  • 熟悉使用正则表达式
  • 学会debug断点调试+做日志查询报错
  • 了解php-fpm概念和运行过程,学会对其调优
  • 熟悉http协议、tcp/ip协议
  • 熟悉composer安装第三方库,并且自己可以写一个类库
  • 学会使用swool+php编写聊天功能
  • 学会只用Fiddler、Charles、Whistle其中一个接口抓包工具

mysql进阶

  • 掌握mysql原生命令写法,不要过渡依赖工具创建表修改字段操作
  • 学会使用slow_log查看慢日志、explain关键分析sql性能,知道怎么调整sql语句,达到最优
  • 掌握mysql事务(原子性、隔离性、一致性、持久性)语法和实现原理
  • 了解mysql悲观锁乐观锁行锁表锁
  • 掌握索引,索引分类(主键、唯一、二级、全文、组合)、回表索引覆盖索引下推最左匹配原则
  • 熟悉mysql的常用配置项,如何配置主从同步集群原理

redis进阶

  • 掌握redis数据结构使用场景
  • 掌握消息队列发布订阅管道stream使用
  • 了解redis的事务AOFRDB原理和机制
  • 了解redis的主从模式哨兵模式集群分布式缓存

linux进阶

  • 学会自己能完整的部署一套lamp环境,且能运行自己博客系统
  • 掌握常用的文本分析工具:awkwcgrepsedsort、uniq等等命令
  • 学会编写shell脚本
  • 掌握查看资源进程相关命令:pstop、netstat、df -h、free -h等等命令
  • 掌握nginx的配置项含义,知道每一项是用来干什么的

高级进阶阶段三

php进阶

  • 拥有快速开发项目解决问题的能力,能带领小团队开发项目(管理能力)
  • 掌握高并发高可用高性能
  • 掌握nginx负载均衡原理、DNS轮询、l4、l7;正向代理反向代理、nginx高可用
  • 熟悉使用多进程进行项目编程
  • 熟悉socket编程,了解多路复用技术(select、poll、epoll);了解IO模型原理
  • 熟悉swool框架,在新项目可以使用swool作为主导
  • 掌握消息队列使用:kafkarabbitmqrocketmq其中之一,能够处理上亿级别消息,知道如何对消息队列进行监控,异常处理,且能够通过消息队列异步解耦项目功能
  • 熟悉elasticsearch搜索引擎,并且能够应用到项目上
  • 熟悉elk日志搜集系统整体的流程和来龙去脉
  • 尝试可以使用c进行编写php扩展
  • 精力充足的情况下学习其他语言:java、golang、python、lua、大数据,对他们要有一定了解或者能使用起来

mysql进阶

  • 索引调优,大表性能分析
  • 掌握分库分表方法:水平、垂直
  • 掌握主主、主从集群配置,知道如何解决主从的延迟问题
  • 对索引的实现、事务隔离的机制有一定的了解
  • 了解mysq的脏读幻读不可重复读
  • 熟悉mysql触发器、视图、存储过程的使用
  • 熟悉开源的mysql中间件和阿里的canal增量数据同步

redis进阶

  • 熟练使用redis的管道技术事务处理、分布式锁消息队列
  • 掌握一些冷门指令:bitmap(位图)、pub/sub(发布订阅)、Geohash实现原理、Stream(消息队列MQ)
  • 掌握redis+lua实现原子操作和脚本复用功能
  • 掌握redis集群部署哨兵模式实现,知道是怎么一回事
  • 了解AOF(Append Only File)日志RDB快照实现原理与算法
  • 可以试着去看redis源码(可惜,我没有看完)

下面是我相关redis文章:

linux进阶

  • 掌握nginx各种配置:配置https负载均衡正向代理反向代理;最重要的是openresty的配置nginx+lua
  • 掌握vim编辑器的命令和快捷键、crontab定时器
  • 熟悉文件管理权限配置用户配置软硬链接
  • 常用的命令一定到牢记:cat、more、lsof、tail、less等等
  • 了解编译原理、makefile、进程、信号知识点
  • 熟悉rpc的配置部署

PHP书籍

《深入PHP面向对象、模式与实践》

第三版:豆瓣评分8.2

作者是Matt Zandstra 从事互联网应用开发十余年,目前是雅虎公司工程师。这本书是在我在毕业不到一年我就买了,大概看了有5遍以上,整体给我的感觉就是内容比较细腻,基本上是循环渐进。内容主要为4个部分:面向对象、设计模式、企业模式和最佳实践;面向对象和设计模式可能会稍微好点,但是后面部分就会有点差强人意。不过总体来说想深入了解的,还是值得一买,毕竟不是很贵。

PS:相对 21 年来说,内容稍微过时了点。

Mysql书籍

《高性能mysql》

第三版:豆瓣评分9.3

这本书是在 2016年9月份 某东购买的,内容太细了,也很厚。你读的时候会发现,越往后越深,最后会感觉自己成了一个DBA角色。涵盖知识面比较全,也算是陪伴我两年多的战友了。值得推荐一下

《深入浅出mysql-数据库开发、优化与管理维护》

第二版:豆瓣评分7.6

这本书是我刚毕业10个月的时候同事推荐给我的;零基础学习mysql更友好,前半部分讲解基础知识,后半部分则会深入到底层实现;我看完这本书之后,感觉个人对mysql的认知增加了很多,视图啊、触发器、存储过程等等。可以说这本书带着我闯天下。

PS:不过这本书真的是太厚了,携带不方便,我一般做地铁会看书,但是这本书拿着好沉好重。并且感觉有点过时了。

《mysql是怎样运行的-从根上理解mysql》

豆瓣评分9.4

这本书是我 2021 年年初买的,当时只是在掘金小册上看过,试读了几个章节感觉作者真的是很用心设计本书的章节顺序(因为我不太喜欢读电子版的书籍)所以一直没买小册;但是知道作者出书之后的一个月我就去京东购买了这本书。现已看了三分之二。

作者的写作方式是:从现有的场景引出问题再到解决方案设计,循环渐进的揭开 mysql 的实现细节。很细腻的处理方式,作者会告诉你:”mysql是什么样子?遇到什么问题?如何解决问题“,一步步的道出其原理,是一本不错的书籍。而我在这本书上也学习了很多知识点,很多地方更是豁然开朗的感觉。

Redis书籍

《Redis的设计与实现》

豆瓣评分8.6

这本书大概是 2017 年上半年的时候买的,应该是我第一次买的一本 Redis 相关的书籍,不过很可惜,当时因为没有看完出去玩的时候给弄丢了。对于喜欢弄清楚Redis原理的可以尝试下,里面也有相关的源码解析;算是比较通俗易懂吧。

《Redis深度历险-核心原理与应用实践》

豆瓣评分8.4

这本书是在 2020年8月 买的,比较有意思的是都是在掘金小册看到的,但是我又不喜欢电子版,就去京东搜索看到后买的。作者钱文品,这个名字跟书籍一样,有文有品,外号老钱;接近250页的数据。我已经看了两边了,整体感觉就是作者的初衷不是想写redis的设计与底层,更像是通过实战的场景来告诉你应用。

以至于很多开发者认为这本书差劲、粗俗甚至垃圾;不过萝卜白菜各有所爱,虽然文中大部分都是浅出,但是主体内容还是可以的。

Nginx+Lua书籍

《Nginx+Lua开发实战》

豆瓣评分4.6

这本书在 2020年2月 买的,因为我已经有了nginx+lua基础,买回来一看,好家伙将近600页。

这本书很多人吐槽,说是抄文档充页数、深度不够、更没有实战、太基础的东西。说实话我读了一遍之后确实也有这样的感觉,主要是卖的还特别贵。有基础的lua nginx直接忽略往后看,只能说是一个入门教程,可以带你了解nginx+lua一些相关原理和类库使用。

《OpenResty最佳实践》

《OpenResty 最佳实践书籍Markdown文档》

这个站点由多年的技术积累做成的, lua基础到高阶再到openresty配置,到最后lua的高级类库和nginx_lua使用模块的。推荐学习

Pyton书籍

《Python编程从入门到实践》

豆瓣评分9.1

这本书是在 2018年10月 某东购买的,花了一些时间看了这本书大概看了两遍;因为是刚入门,对于小白还是比较友好的,有python基础知识的朋友就不建议买了;python入门是比较简单的语言。本书籍针对刚入门开发讲解还是很不错的,但是针对当前python现在这个大家庭,这本书稍微有点落后了。

《Python基础教程(第3版)》

豆瓣评分8.2

我并没有买这本书,而是从同事那边借来看的,很遗憾没有看完,因为也是基础教程,所以没太有想看的欲望;就是看起来太枯燥了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/985114
推荐阅读
相关标签