保姆级从小白到名厂offer的java学习路线指导教程(2)-- 如何做项目篇
如果你想在校招或者实习中 拿到名厂java岗的 offer, 这是一篇保姆级的从根源上讲解,教你怎么自学java项目以及如何正确描述项目经历 的指导文章 。
我上次发了“
”文章后,收到了很多同学的点赞和收藏,并且有很多同学开始哭着私信我关于项目的问题,也感受到大家被项目这个点折磨的痛苦,我已经有代入感了。总结下来主要是这四个问题:作为一名学生没有项目经历怎么办?选择什么样的项目去做比较好?该怎么找项目?项目经历怎么写?
这四个问题很重要,但是有一个问题比这四个问题更重要,是大家需要 先搞清楚的 一个关键问题 :名厂想要是什么样的实习生或者校招生?
从对方的立场去思考会事半功倍,因为他们想要的才是我们真正需要准备的。
名厂需要实习生或者校招生在短时间内快速上手业务,写代码干活吗?不 存在的, 业务逻辑很复杂,多年工作经验的社招员工刚进公司时也不敢让他们立刻 上手写代码,更不要说是实习生和校招生了。
那名厂为什么要招聘实习生和校招生呢?
毋庸置疑,他们的目的是为了寻找有潜力的学生 ,将来能够在公司里快速成长,成为能够独挡一面的员工,帮助公司解决未来业务发展中可能遇到的问题 。因此他们标准主要有 以下这几条:1. 聪明,喜欢思考,能够解决问题。互联网行业日新月异 ,新业务形式层出不穷,昨天还在说进军 区块链,今天就说要冲击元宇宙了,所以他们需要聪明的人能够快速学习,适应新的业务。 2.基础扎实。实习生是为校招做储备的,一旦你实习期间表现的不错,他们就会给你转正的机会,同样校招生面试中很多的都是基础问题 ,这也是我在“保姆级的从0到名厂offer的java学习路线指导教程 ”中强调的那样,基础能力 属于程序员的内功,是名厂很看重东西 ,因为这是程序员的底蕴,它激决定了程序员的下限,也决定了程序员的上限。校招生是名厂未来 要花很多时间和金钱重点培养的群体,在未来能够在自己的业务条线中独挡一面,所以一定得是潜力好,基础扎实,天花板高的人。
基于以上,我开始来解答问题:
问题1:作为一名学生没有项目经历怎么办?
按道理说作为学生没有项目经历也挺正常的,正常的学生谁有那玩意。但是无奈的是,现在的卷王实在是太多了,和你竞争的人基本上都有实习经历,还有不知道从哪冒出的 优秀项目经历,如果你的项目经历是空的话,在目前的状况下是几乎不 可能拿到名厂的offer的 。所以,如果你没有项目经历的话,你需要做的第一件事 就是认清 到事实,并且解决掉这个问题,让这个问题不再成为属于 你的问题。
问题2:选择什么样的项目比较好?
我在“
”中力 荐知识体系的学习要跟着辅导视频 课程走,因为那样是最高效、效果最好的,但是在做项目的时候我却回避了这个,没有推荐同学们跟着辅导班的视频课程走,为什么呢?因为太俗了。这个“俗 ”的词怎么解释呢?大致的意思就是会让面试官觉得“公司想招聘的是一个未来 可以独挡一面的潜力股,你现在给我看到的却是和那些培训班出来的人一样的东西,把你们俩区分出来看待这件事我很难办啊”。因此,我们一定要意识到面试官对于校招&实习和社招生的招聘角度的 差异性 ,那么对这个问题做解答:
1. 项目不要找培训班的,至少不能是烂大街的,10个人里面不能同时 出现2次 及以上。
2.对于学生来说,公司对你的项目要求不会高,他们更看重的是你对技术和业务层面的思考。所以,像网上经常推荐 出现的“XX电商 ”项目大家千万不要做啊,球球 大家了。 这样的项目是为了给那些直接走社招包装工作经验的人准备的,这类大而全但是不深的项目,和企业招聘实习生和校招生的目的是恰恰相反的。你需要准备的项目是小、精、深的项目,能够体现出你对编程这件事有感兴趣的,有自己对于技术的思考和探索的,是自我 驱动 ,而不是让面试官一看就是为了包装自己简历而做的项目。试想,电商这种超级复杂的架构体系,能有几个公司能够弄明白的,能有几个公司有能力去做的,作为一个学生来说,你是不会有机会接触到这种项目的。
问题3:该怎么找项目?
上面已经说了咱们实习简历上的项目应该找小而精的项目,那么该到哪里去找呢?
方法1:此方法适用于能力较强的同学
首先我们需要学会使用全世界最大的同性交友网站github,github上的有很多项目,但是技术水平参差不齐。首先我们要以github的star数量作为一个标准,不要尝试去挖掘star少的新的项目,不适合初学者。然后我们为了避免落入俗套,我们需要寻找与自己某个领域结合紧密的项目,如果你是通信专业的,可以选择比如音频解析,视频解析相关的,这种专业领域较强的代码首先可以凸显自己的专业性,其次代码量不会非常大,并且代码能力也相对突出,通过对某一个垂直领域的代码库进行深刻的研读,首先可以提高自己的专业水平,其次还可以加入自己的理解,合并一些自己的代码进去,这样就能体现出你对技术的思考性了。
方法2:此方法适用于普通的同学
专业领域的知识其实还是挺难的,不是每个学生都具有能力的,尤其是针对那些非计算机背景专业的同学,比如生物、材料、化学之类的,那么针对这些同学该怎么办呢?其实github上有很多的同学写的毕业设计,建一个博客网站、一个聊天系统等,这些项目和电商相比的有点在于它很常见,你面试的时候可以包装,说是因为自己喜欢计算机,对博客系统和聊天感兴趣然后自写的这么一个项目, 因为这些项目的工作量不大和学习生活比较贴近,对与学生来说是可实现的,面试官的信任感也会高。
以上是两种比较常见的项目方法,我建议是最好一样一个,一个体现你的专业性,一个体验兴趣性。
问题4:项目应该怎么写才能符合面试官的喜好?
对于实习生或者校招生来说,项目的本身不重要,因为面试官也知道你们没有机会接触过商业项目, 重要的是写项目时要体现出你的思考性,你 做项目中遇到了问题,然后用什么技术去解决的,这种写法体现出了你的思考能力,也能突出你做个项目的亮点,让面试官想约你过来聊一聊。技术是为了解决问题,而不是为了用这个技术我才去做这个业务。不要觉得项目太小没得写,做打的项目知识点多,能铺开写。那是因为你还不了解名厂招实习生和校招生的要求是什么,写得多,但是并不能激发面试官的兴趣。小而精的也可以写出能吸引面试官点。 举个例子,随便一个 :
(1)验证码模块: 由于原先 使用session存储会存在分布式 共享问题,针对验证码需频繁访问、性能要求高且无需永久保存的特性,最后 采用Redis存储来解决这个问题。(然后针对这一点,面试官一定会细问原先的session是怎么做的,为什么会存在分布式共享问题?采用 Redis为什么可以解决这个问题,是怎么做的?你这样就 把面试官的问题收缩到很小点上,不至于面试官随意发问而自己没有准备。这个面试前,你一定要去网上搜 “session存储验证码的 分布式共享问题 ,Redis存储验证码的方式和优势”的帖子,把这个几个点看透,当你和面试官交流起来的时候,就是你的表演时刻,体现出你是真的做了,并且还深入思考过。这样的面试结果面试官能不满意吗?)
(2)慢SQL优化: 在测试环境构造了 500万数量级数据, 单表查询速度在20秒, 通过增加索引的方式,提高查询速度在1毫秒以内。
(3)使用AOP拦截器解决 同 一接口处理 不同的业务请求问题, 针对非正常情况做相应的特殊处理,其中未登录状态下请求自动重定向到登录页,同时 保证合法的业务请求 顺利通过。
(4)订单 处理模块 : 定时 任务解决自动扣款的问题,通过Timer建立定时 任务,对预计扣款时间是当天的订单 做扣款和 续订会员处理。
怎么样,看完我写的你还会觉得项目描述难写吗,Redis、AOP、定时任务都是做项目中很常用到的技术,但是经过这样的描写,给面试官的感觉就是不一样了,他会觉得你是一个能解决问题的人,同理项目中的其他技术栈也可以像上面这样这么描写,所以我为什么一直强调实习生要做小而精的项目,因为对于实习生来说足够了,做大项目一边是假,一边是浪费时间,实习生和社招的角度是不一样的,一定要明白这一点。
那网上的视频课还学吗,我的回答是学,但是只要看就行了,找一个和你其中的一个项目比较接近的,你清楚了一个大项目一般会用到什么技术栈、前后端是怎么配合、框架该怎么使用,你的目的是这个,但是这样的项目不能写到简历里面,他是为你做的小、精、深的项目服务的,聊天的过程中让面试官能够知道你不止爱思考、有对技术的思考和探索,而且知识体系宽广,这不就是名厂们想要招的的梦中情生吗,如果是这样你的offer就成了。
只要大家思考对了方法, 其实名厂的offer并不难拿 。如果有小伙伴想要拿到名厂的offer,可以参加我们的「 双名计划」哦,我们的专业就是帮助有需要的同学拿到名厂的offer,全程都是由在名厂工作的老师一对一辅导的,老师非常负责任而且还很有爱。目前,90%以上辅导的同学已经拿到了 美团、 百度、 贝壳、 小红书、 携程、商汤、 货拉拉、阿里、 爱奇艺等名厂offer。