摘要:虽然有了十全的计划,但如何高效率去记住上面那么多东西是一个大问题,看看我是怎么做的。
前言
前一篇文章讲述了我在三月份毫无准备就去面试的后果,一开始心态真的爆炸,但是又不服气,一想到每次回来后家人朋友问我面试结果的期待脸,越觉得必须付出的行动来证明自己了。
面经传送门:一个1年工作经验的PHP程序员是如何被面试官虐的?
下面是我花费两个星期做的准备,主要分三部分:
有计划——计划好每天要复习的知识模块(内容较多)
高效率——从整体到细节,着重把知识点“手写”到自己的电脑记录本
优简历——展示你的项目亮点,难点
下面的文章和网站链接我都会注明出处,如果有问题请联系我,我会及时修改或撤销有计划
反思:为什么好多知识看过后不能记住,面试一紧张更加想不起?一方面自己没有深入学习,另一方面复习过程杂乱,和写代码一个道理,如果你的业务逻辑和其他乱七八糟的都放在控制器上,代码一多你要调用某个方法可能就会让你抓狂,所以一般采取controller和server分层,同理,我们最好提前做好计划,分种类,分层次来学习。
复习前如果很迷茫,可以网上Google一下面试知识点,看到的无非都是操作系统,计算机网络,数据结构,mysql,设计模式,Linux,Redis,再者根据你所学语言方面的知识和简历,例如我求职PHP,简历上有写Larvel框架,那就再加PHP基础,框架Laravel,服务器nginx。第一天:操作系统
如果你是科班出身,那应该对操作系统不陌生,至少在高校里面是学过这门课程的。但估计很多人像我一样,后悔没去好好学这门课,或者工作上用不上就抛弃它了(PHP更是如此),我要说的是操作系统很重要,就以我面试了几家公司来说,基本如果你答出操作系统相关知识点基本都是加分的。
进程和线程的概念,以及两者的区别
什么是上下文切换
多进程和多线程各自的优势(可以Google一下有关php-fpm和nginx进程)
进程通信方式
进程基本状态
抢占式调度和非抢占式调度
进程线程同步,死锁
理解协程
附加帮助我整理这些知识的网站和博客文章:
小土刀的面试刷题笔记——操作系统
并发技术·笔试面试知识整理
这里推荐有精力的朋友可以看下《Linux高性能服务器编程》,粗略看下8,9,10,13,14章,以及《深入理解计算机系统》的第1章和第12章,我就是结合这两本书,记住并理解简单的知识点,后续我还要花时间去深入阅读。第二天:计算机网络
计算机网络可以说是大多数程序员需要学习的大课程,特别是PHPer这些web打交道的程序员。当然,计算机网络太底层的东西很枯燥很难懂,我只针对一些比较常见,比较基础的知识面来学习。
计算机网络体系包括TCP/IP体系结构,五层协议体系结构
TCP,UDP
三次握手,四次握手(过程要熟悉,能清晰描述)
TCP协议如何保证可靠传输(包括重传,流量控制,拥塞控制,定时器等知识点要了解)
附加帮助我整理这些知识的网站和博客文章:
小土刀的面试刷题笔记——网络
TCP协议·笔试面试知识整理
复习完这些基础的知识后,试着要去了解稍微底层一点的东西,因为很多面试官喜欢由浅入深地问,如果能答出一两点基本都是加分的
推荐一篇很好的文章,仔细读完会有很大的收获:
TCP 的那些事儿(上)
第三天:数据结构很多人在大学里面都学过这门课程,也是很多程序员的启蒙课程,自然很重要,(大学唯一一次挂科就是它了。。。)
从事PHP工作的朋友应该都用不上它,所以这也是一个很容易被忽视的基础知识点,自然有很多大公司面试的时候很注重这方面的基础,特别是应届毕业生。我复习这方面的知识是重新翻开我大学的课本,把其中比较重要的东西手写几遍。
我不久前面试过一家要我手写链表,结果早就忘了,没写出来
队列,循环队列,栈,单链表等,要理解,最好多手写几遍
树和图,着重复习二叉树方面的知识,例如前中后遍历;B树,B+树,红黑树最好要了解一下
排序算法,冒泡排序必须很熟悉,其他几种常见的算法:简单选择排序,直接插入排序,快速排序也要知道
冒泡排序可以了解下如何优化改进,有些面试官会问,如果答不出他会提示你怎么做,考察你的思考能力
关于数据结构的参考资料基本Google一下就有很多(顺便说下,21世纪程序员还是少用某度),大学的课程书是最好的,一般大学的数据结构都是面向学生的,还是很基础,很好理解的。
第四天:数据库mysql说实话,我觉得绝大多数程序员都是在CURD,学那么多东西很大方面也是为了辅助最后的curd。所以数据库知识的重要性毋庸置疑,后面我打算买本《高性能MySQL》来提升自己这方面的能力。
基础的增删改查操作
存储引擎MyISAM和InnoDB
理解索引数据结构,即B+树方面的知识 参考:InnoDB索引实现·MySQL索引背后的数据结构及算法原理·看云
mysql语句优化,着重索引优化,explain查看索引情况 参考:Mysql索引优化
事务四大特性
隔离级别
脏读,不可重复读,幻读
了解共享锁,排他锁,死锁
了解主从复制原理,分库分表
第五天:nginx和PHP-fpmnginx和php-fpm应该算是PHP程序员接触比较多,但是可能没有去深入了解过,有些面试官喜欢结合nginx,php-fpm和操作系统进程方面的知识来考察。
日常用到的nginx配置语法,常用的变量
nginx常见的参数优化 参考:Nginx高并发下的优化
nginx负载均衡,访问控制,防盗链,设置静态文件过期时间等
php-fpm工作流程
php-fpm进程管理(静态和动态)
可以Google了解下php-fpm和nginx各自的进程管理模式,参考文章:Nginx内部有使用多线程吗?
面试过程可能会问到网站负载低,访问慢怎么排查,参考:论坛偶尔出现负载低但是访问很慢排查思路
第六天:redis工作项目不大,用到redis的地方并不多,所以一直也没去学习redis,但是从面试情况看来,被问到redis的概率还是很大的,毕竟这款基于内存的数据库功能强大,市场占用率很高。
与memcached的区别
5种基本的数据结构以及各自的使用场景,最好能结合自己项目来描述
持久化,RDB和AOF 参考: 面试中经常被问到的 Redis 持久化与恢复
如何与mysql保持数据一致 参考:Redis和mysql数据怎么保持数据一致的?
第七天:Laravel由于我自己是一直用Laravel框架开发的,简历里面的项目也多处标明Larvel,所以这里就介绍Larvel相关的知识,你对哪个框架熟悉就去做相应的复习,基本Google和手册都有。
Laravel生命周期
什么是服务容器,服务提供器,Facade门面
依赖注入
中间件,异常处理,ORM等手册上的知识
第八天:设计模式看一个人的代码水平,可以从是否灵活使用设计模式看出来的。写代码也是一门艺术,好的代码低耦合,易扩展,设计模式的理解和使用也决定了你的代码水平。这里推荐一本《大话设计模式》,目前我只看了一点点,对于我这样的菜鸟觉得还不错,后面需抽点时间好好看看。
六大原则,着重理解,最好能清晰口述
结合你的项目经验描述几个设计模式。常见的有单例,三大工厂,观察者,策略等
有一次面试官问我简单工厂模式是不是符合六大原则之一开闭原则?我答不出来,随便选了个符合。。。实际简单工厂是不符合开闭原则的,这就涉及到你开闭原则的理解。第九天:PHP内核基础知识
真正要读懂PHP内核的人应该很少,大多数人都没时间和精力去研究底层,毕竟PHP一直以开发效率高著称,只要底层有人写好给广大程序员用就好了。确实是这样,但是我记得有个面试过我的大佬跟我说,很多东西不要只会用,要多想想为什么可以这样用,PHP语言我觉得也是一样,虽然现在能力有限,但我可以提前把一些比较基础,容易理解的底层知识学习一下,这不也是一种自我提升?面试的时候你也可以拿出来炫一下,说错也没关系,至少你展示出你的好学,你的认知层面。
PHP的生命周期和zend引擎
变量存储结构
写时复制和引用
参考文章:
深入理解PHP内核
PHP内核剖析
第十天:根据你的简历内容做复习面试都是拿着你的简历来问问题的,你的简历内容会直接影响面试内容的走向,所以简历写完还要做响应的复习。
我的简历有涉及rabbitMQ,elasticsearch等知识,我就对其进行简单的复习。
另外很重要的一点:提前想好怎么描述你做过的项目,其中遇到什么问题,怎么解决,尽量把你好的一面展示出来,这些都可以提前写下了的,好记性不如烂笔头,下面第二部分会说到。
高效率复习的内容实在是太多了,单单写上一部分内容都快把我的键盘打烂,手写断了。虽然有了十全的计划,但如何高效率去记住上面那么多东西是一个大问题,看看我是怎么做的。
例如第一天复习操作系统的知识,我是早上Google了一下有关操作系统的面试知识点,然后打开几个标签页,选取内容比较齐全的。所谓“好记性不如烂笔头”,没有烂笔头,只有烂键盘,所以我选择把这些知识点一一整理到自己的电脑上,自己平时有写博客,用markdown比较多(推荐Typora),所以每天就用一个md文件把知识整理下来,基本都是手打的,很少复制黏贴。这样做,一方面让自己印象深刻,另一方面锻炼自己摘取核心内容,描述能力,这也是我能写下这么多内容的原因。
每天晚上计划好明天的复习内容,可以选择睡前回顾今天学习的知识,也可以在第二天早上回顾一遍
最好选择一个安静的地方,能让你认真学习的环境,我由于提交了离职申请需要一个月才能走,交接项目也很快,所以每天都在公司有计划的复习(远离手机)
总之,真想要离职,找一份好工作,必须对自己狠一点,找到心仪的工作再好好去放松几天。其实有不少人一直在埋怨大环境不好,确实是,但有何用,想为自己菜,自己不努力找一个借口?王小波说的好:人的一切痛苦,本质上都是对自己无能的愤怒。当然运气也很重要,保持乐观,别轻易放弃。
优简历简历不用多说,就是很重要,怎么写?其实我也是参考一篇文章的:我本以为你们会写简历
概括一下:
基本的,用PDF格式,个人信息写完整,别写精通
技能亮点,围绕 熟悉 , 有所 , 掌握 , 了解 , 有一定心得 等
不要这样:
熟悉PHP , 熟悉YiiLavarel框架 ( 复制粘贴 , CURD , 就是干! )
熟悉Linux使用 , 可以搭建XXXX环境 ( 会敲cd , ls命令 , 会apt install nginx )
熟悉git或svn版本管理的使用 ( 会git push , 会git pull )
熟悉MySQL以及对数据库的优化 ( 会select update 和 delete , 会添加索引 )
熟悉Redis或Memcache的使用 ( 会set key , 会get key )
最好这样:
PHP : 熟悉PHP语法 , 熟悉PHP面向对象 , 可以根据业务逻辑结合合适的设计模式 . 熟悉PHP SPL标准库 , 对PHP的一些高级用法有所心得体验 , 诸如pcntl多进程模块 , socket模块 . 对SWOOLE所有涉猎 , 有一些自己的积累和经验 . 对于底层 , ZendVM如何如何 。
Redis : 熟悉Redis常用数据结构的使用 , 可结合业务场景选择合适的数据结构 . 熟悉Redis集群 , 对集群实现方案原理有一定掌握 , 对于市面常用的集中集群方案的优缺点比较了解 . 对于底层 , 对Redis SET等底层数据结构的实现有所掌握。
一定要写项目亮点和难点
大多数人都是这么写的 : 负责用户登录注册模块 , 后台管理 , 多角色权限控制 , 负责广告业务模块的管理和筛查(太普通,太泛了)
亮点 . 你觉得这个项目中哪一部分值得自豪或学到新东西了 . 比如项目中用到ECDH , 使用了MySQL中间件等等。
难点 . 你觉得这个项目哪一部分当时难了你几天 , 然后你通过自己努力解决了以及解决方案是什么。
总结面试并不简单,不要太轻敌,做好准备,打好基础是关键。毫无准备就去投简历面试大多是浪费时间,甚至浪费进入好公司的机会。还是那句话程序员应该脚踏实地,不要眼高手低,用实际行动证明自己。
我是即将入职广州一家游戏公司PHP开发岗位的程序员,2018年毕业,毕业到现在确实收获了不少,也让我看清自己,需要恶补的知识还有很多很多。欢迎大家关注我的个人博客https://zgxxx.github.io/,比较简陋,还是希望能和万千大神交流技术问题,一起成长。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/31227.html
摘要:写在前面的话最近互联网朋友圈充斥着一股恐慌的气息。本人作为一名,万不敢称资深,只是呆过几年大型央企和大型互联网企业,聊有一点自己的看法罢了。如果不放心,以一周为期,对展示在面前的机会进行初步分级。也可以略高于期望,以此探一探对方的反应。 showImg(https://segmentfault.com/img/bVblxeY?w=1008&h=298); 写在前面的话 最近互联网朋...
摘要:新一代的选择,每个人选择不同,人生道路历程也不同。尤其是与人沟通还有更多点击续集泥瓦匠想做一个与众不同的技术匠 本文阅读大约 3 分钟。谢谢你读到这篇文章 喝了最后一口百事可乐,想到它的 slogan:新一代的选择。新一代的选择,每个人选择不同,人生道路历程也不同。就像我刚毕业的时候,毕业选择不一样,现在就不一样了 没毕业前,报名医科大读书,但因为色弱被调剂到信管专业。这就是被选择了,...
摘要:准备不充分第一轮不过第一家,广州琶洲一家环境超级好,福利也不错,主营美颜的公司,这也是我最感遗憾的一次面试机会。主要是第一轮面试第一个问题的种数据类型,只答了一个。 前言 首先需要说明的一点,本人只是一个毕业一年,只有一年工作经验的普通PHPer,能力有限,这篇文章只是将我这几周来的感受和体验分享出来,希望能给许多像我一样,或者互联网行业的新手带来一些收获,当然哪里说的不对或不足还是希...
摘要:拿到秋招的同学,如确定入职需与用人单位签署三方协议,以保证双方的利益不受损失。当然每个岗位所要求的侧重点不同,但却百变不离其宗。方法论要想达成某个目标都有其特定的方法论,学习技术也不例外,掌握适当的学习方法才能事半功倍。 写在前面的话 笔者从17年的2月份开始准备春招,其中遇到不少坑,也意识到自己走过的弯路。故写了这篇文章总结一番,本文适合主动学习的,对自己要学的课程不明确的,对面试有...
摘要:拿到秋招的同学,如确定入职需与用人单位签署三方协议,以保证双方的利益不受损失。当然每个岗位所要求的侧重点不同,但却百变不离其宗。方法论要想达成某个目标都有其特定的方法论,学习技术也不例外,掌握适当的学习方法才能事半功倍。 写在前面的话 笔者从17年的2月份开始准备春招,其中遇到不少坑,也意识到自己走过的弯路。故写了这篇文章总结一番,本文适合主动学习的,对自己要学的课程不明确的,对面试有...
阅读 3756·2023-04-25 16:32
阅读 2107·2021-09-28 09:36
阅读 2020·2021-09-06 15:02
阅读 645·2021-09-02 15:21
阅读 902·2019-08-30 15:56
阅读 3492·2019-08-30 15:45
阅读 1696·2019-08-30 13:09
阅读 356·2019-08-29 16:05