找实习应该怎么准备项目?
造轮子应该怎么造?
面试应该怎么聊?
一篇文章为大家排忧解难, 帮大家写好简历, 做好项目, 提升就业竞争力
项目准备
简历上如何写项目
最近收到最多的提问就是, 简历上应该写什么项目, 应该准备什么项目, 项目经历怎么写到简历上.
如果你简历上没有实习经历
-
简历就写一个业务项目一个轮子项目.
如果你有一段实习经历
-
那就先写你实习的项目, 再写一个业务项目和一个轮子项目.
如果你有两段以上的实习经历
-
那就写2个实习经历项目+一个轮子项目.
业务项目与轮子项目
什么是业务项目
-
就是外卖商城, 博客等等针对具体业务的项目.
什么是轮子项目
-
轮子项目就是手写RPC, 手写Spring这种. -
写到简历上的时候, 给轮子项目改个名, 不要在简历上写miniSpring, 手写Spring这种. -
你起个其他名, 它叫Spring, 你叫summary.
轮子项目
写轮子项目要注意什么
如果你写了轮子项目, 那么把轮子项目的底层原理八股文也要学习了解, 保证自己能答得上来轮子项目相关的问题.
如果写了轮子而且八股都能答个八九不离十, 其实是很加分的,比业务项目含金量要高.
最好是能够说出, 你写的轮子项目和现有的轮子有什么优劣, 你比它强在哪儿.
项目亮点
面试官可能会问什么? 轮子项目的亮点该怎么找?
面试官可能会问
-
我看你手写了summary, 我们已经有Spring了, 为什么还要写summart -
那么你的summary和我们用的spring有什么优劣, 你比它强在哪儿.
如果你只是答
-
我是为了学习造轮子, 那就显得平庸了. 所以你要答你的优点. -
有多同学就在想, 我自己写的能有啥优势 -
我就只是跟着视频敲代码. 如果你只是机械地跟着视频写代码, 然后只是把视频中的内容搬到简历上 -
这是一种思维上的懒惰. 你找不到工作, 活该!
如何回答面试官的问题
那如果面试官问了这个问题, 怎么答呢
-
首先, 要如实说, 我写summary这个轮子, 有两方面的原因 -
一方面是学习, 通过造这个轮子, 我了解Spring的A原理, B原理, C原理.
如果你说了这句话, 这就是引导面试官后续问你spring A原理, B原理, C原理. 你是不是就可以提前了解Spring的A原理, B原理, C原理. 面试就成了开卷了.
-
另一方面, 我的这个轮子, 针对某个具体场景, 做了优化和改进. -
首先Spring太重了, 我的summary更加轻量级. -
Spring在某个场景某个问题会有一些缺点, 我通过什么样的方式, 解决了这个问题. -
当然了我的这个summary也在哪些方面有问题, 后续会参考spring或者参考Vert.x等其他框架的哪些点进行改进.
有人在想, 你说你的summary比spring更轻量级这个很合理, 因为本来spring就包罗万象很重.
但是你说spring在具体的场景有缺点, 还要改进. 我不知道有什么缺点, 不知道怎么改进呀
所以这就是要你自己学习的地方. 很多同学的思维是很懒惰的, 就想找一个课程, 跟着写完代码, 然后把课程里的东西搬到简历上, 从来没想过自己拓展优化.
那我直接来说一个spring的缺点, 不知道spring的spi机制大家有了解过吗
-
java自己有spi, spring做了改进, spring有spi. -
spring spi也有缺点, dubbo的spi做了改进, 解决了这些问题. -
那你直接去了解dubbo的spi, 然后给抄过来就可以了.
又有人说了, 你说的spi机制太复杂了. 我都听不懂你在说啥. 有没有简单的改进
-
有. -
比如说, springboot项目中, 要配置跨域, 要么用注解, 要么写代码 -
那我能不能手写springmvc, 里面新增一个功能, 可以写配置来实现跨域, 写配置放行某些请求.
有没有人觉得spring mvc有些注解, 用起来不是很方便, Controller层, 一般用 @RestController
注解把这个类注入容器并让类中的请求返回json, @RequestMapping
用来定义路径.
-
那我手写springmvc的时候, 能不能提供一个新注解, 把这两个结合起来, 叫 @MappingRestController
-
这个注解来融合 @RestController
和@RequestMapping
既能将对象注入容器, 又能定义路径.
我们的常用的一些轮子, 为了更加通用, 所以在一些具体场景不会做专门优化.
-
那我在自己造轮子, 就针对某个场景造轮子, 针对某个场景做优化. -
你可以多观察一下, 常用框架在某些具体场景一定有很多地方是用起来不舒服, 不方便的. -
我们在造轮子的时候, 只要做一点小小的改进就能成为简历上的亮点. -
大家思维一定不要懒惰, 不要想着, 我看完课程自己不思考直接搬到简历上就行了, 一定要有自己的思考点.
项目的本质
有人一定又在想, 那我只改进一小点, 面试官会觉得我好吗?
-
首先你是造了一个轮子的, 造轮子你已经做了很多事情了 -
是在造了轮子的基础上改进了一个小点, 不是说你只做了这个小点.
其次, 面试官看你项目的本质是什么? 是看你项目更新颖吗?
-
他不是看谁的项目更新颖, 是看谁项目有更多的亮点, 有更多可讨论挖掘之处. -
他不会说看到你的项目哇, 好新颖, 好厉害, 人工作这么多年了啥牛鬼蛇神的项目没见过. -
面试官是通过项目中的亮点技术点, 以及和你面试交流的过程, 看到你的学习能力和对项目的思考. -
他是要招你这个人进来, 他是通过项目看到背后的你身上的一些东西, 然后去评估你和这个岗位的匹配度,你和他们的需求的匹配度. -
这才是本质.
总结
这一期讲轮子项目, 下一期会重点聊业务项目. 我做的项目亮点系列, 也会继续更新, 让大家能有更多的项目亮点写在简历上, 引发大家更多思考. 后面还会去聊怎么写简历, 面试的本质是在干什么, 面试官到底想招什么样的人.