绝知此事须躬行。
为何写这篇文章。因为搜面试题搜到一篇# PHP高级工程师面试题
。看了看,有的会有的不会。想到自己也或多或少看过一些资料,故整理一下。
以下表中,资料列出的就够了。大都足以回答上面的面试题中的问题。
技能 | 资料 | 思考 |
---|---|---|
php内核篇 | 《PHP7内核剖析》《PHP 7底层设计与源码实现》《PHP 7底层设计与源码实现》视频 | 尽量看细点。php7较之php5怎么节省内存的。比如php7 zvalue中复杂类型的用指针操作,也就是存个指针。php7快在哪里,小到string用了柔性数组,大到ast吧。这些话是我面试后的反思。我当时只是回答结构体设计不同。 |
php框架篇 | 《深入 Laravel 核心 》《BAT资深工程师由浅入深分析Tp5&Tp6底层源码》 | 自己用啥框架就找啥吧。 |
php安全篇 | 《PHP安全之道》 | |
设计模式篇 | 《大话设计模式》《Head First 设计模式》 | 可以结合框架看,这两本趣味性读物。你可以把书中代码用php写一遍。 |
mysql篇 | 《mysql实战45讲》 | 当然有的点不一定专栏有。比如问你B+树几层高。《MySQL技术内幕:InnoDB存储引擎》书中有提到过。但不一定准。网上有人做实验。但肯定不会差多少。不然慢死了。 |
redis篇 | 《Redis 5设计与源码分析》《Redis深度历险核心原理与应用实践》贴近实战,也给了很多思路 | |
网络篇 | 《网络编程实战》若有时间可把书中的c代码抄一遍《nginx核心100讲》nginx把网络知识应用淋漓尽致《趣谈网络协议》 | |
数据结构算法篇 | 《玩转算法系列--玩转数据结构更适合0算法基础入门到进阶(java版)》可用php码一遍《算法与数据结构-综合提升C++版(快速应对面试)》《玩转算法面试 从真题到思维全面提升算法思维》《数据结构与算法之美》《算法面试通关40讲》 | 刘宇波为什么我列三个课。一课认知数据结构。一课为刷题。另一课,跟java有重合内容。但里面的排序讲的很好。快排四种写法:递归、单路、双路、三路。如果还想看关于数据结构的应用。拉勾上有《数据结构精讲:从原理到实战》,这里面有个时间轮的设计,面经里有人提到自己面试被问到。故我说下这个专栏。算法的资料,知识大都会重合。但是有的人讲的易理解。比如刘宇波。 |
linux篇 | 《Linux性能优化实战》 | |
架构篇 | 《从零开始学架构》《高并发系统设计40问》《从0开始学微服务》《Service Mesh实践指南》《微服务架构核心20讲》《后端技术面试38讲》《分布式技术原理与算法解析》 | 不多列举了,设计架构的资料,大都有同质化的东西。 |
golang篇 | 《Go语言学习笔记》有剖析内核的部分《Go并发编程实战》《Go语言高级编程》《Go语言从入门到实战》其中四讲性能调优可看看 | 不一一列举了。有的资料,基础讲的好,有的书网络讲的好,有的实战讲的好 |
中间件篇 | 《OpenResty从入门到实战》《Kafka核心技术与实战》 | 项目中过啥就看啥, ZooKeeper比如看《ZooKeeper实战与源码剖析》 。elasticsearch看过龙果学院《Elasticsearch顶尖高手系列-快速入门篇》觉得还可以,没看完,当时也只是解决搜索慢的问题。 |
软技能篇 | 《重构 改善既有代码的设计》 | 就不列举了。我不晓得面试会不问。想必有很多资料讲敏捷、xx倍工作、DDD。我没有过多关注过这些。极客专栏里面有些专栏,简单的部分看过。也是怎么写好代码啥的。 |
特别关注 LNMPR学习笔记,好未来的技术合集(有针对swoole、golang、nginx等源码的剖析)。