想找Java岗位,但缺少实际的项目经历?别慌,教你编!
从我近些年做校招面试官的经历来看,大多数的应届生其实都是没有亮眼项目经验的,顶多是课程设计、实验室的水项目等等,顶多还会背些八股文。那怎么办呢?缺少好的项目经历,如何在面试中脱颖而出?答案是,编(bushi)。问题来了,如何“编”的没有违和感呢?
我有个方法,大家看了后照做,一定能超越大多数的竞争者,从而能极大地提升应聘成功的可能。本文以java岗位为例,教你如何从简单无趣的项目中,挖掘出亮点,扩展出丰富的故事,在简历和面试中展现个人能力。
简历
错误示范:本人有X年的Spring Boot项目开发经验。(No!口说无凭,缺少亮点!)
正确示范:
时间:2022年7月到12月,项目名,xx超市的收银系统(小公司维护项目),公司名:xx软件公司
用到技术:Spring boot,mysql,jpa,redis,xml(再加上职位要求上列的技术)
具体工作:1 用Spring boot全栈流程开发了xx模块 2 用sql语句编写了查询xx模块数据的业务 3 用前端css+div+jquery等,编写了xx页面,
亮点:通过看linux日志,排查过xx模块的线上问题,有解决oom问题的经历,有解决过redis缓存穿透问题的经历,有用junit写单元测试的经历。
自我介绍
在得到面试机会以后,应届生如何在面试中充分展示自己的能力以及亮点呢?得靠主动引导,别光等面试官问,因为在校招这种统一的大规模面试中,候选人太多,根本没有义务或精力来主动挖掘求职者的能力。
面试一般会以自我介绍和项目介绍开场,这块你就应当抓住机会,这块你可以这样说。
您好,我叫xx,我大三大四的时候,帮老师做过实习项目,加起来有半年时间(强调你做过实际项目,这很有优势),在实习过程中,有参与社区超市的开发和维护,这个项目是用敏捷开发方式来管理,在其中用到了Spring Boot框架,用JPA连接数据库,前端用过VUE+jquery框架,用Maven+Git管理代码,用jenkins打包,用junit作单元测试,在其中我不仅写代码,还参与过线上问题排查工作,还解决过因没写hashcode方法而导致的问题。
这里请大家务必注意,在介绍项目阶段,别详细说业务细节,因为面试官不关心,你简明扼要指出这个项目里你用过什么技术,同时更要强调你有分析解决实际问题的能力。
项目经历介绍
自我介绍之后应该是介绍项目,甚至有些面试官会连着发问,在之后的项目介绍环节,你更可以紧接上文展示的个人能力,用项目实践经验进一步展示你的技能,比如你可以在这个阶段按条理表达出如下的技能和亮点。
- 这个项目是超市维护项目,我在大三阶段帮实验室老师做的,是个外面公司接的维护项目,大致有什么功能。(说明项目背景)
- 这个项目采了目前流行的微服务架构方案。我们用的是以SpringCloud为核心的,基于Rest风格的微服务架构。在这个项目里,我用到了Spring Cloud全家桶做后台,具体采用了Eureka做服务治理,用Ribbon做负载均衡,用Zuul做网关,用JPA连接MySQL数据库,用RabbitMQ(消息队列)来发送短信,做后台时还用到了Java的集合,异常处理等技术,前端用Vue+Nuxt技术。(介绍项目用到的技术,或者把里面的技术换成你熟悉的技术,改头换面也可)
- 这个项目采用的是敏捷开发模式,我们每天有站会讨论进度,每两周一个开发周期,在其中讨论哪些要做,并在此基础上排任务,周期结束会release,在开发过程中,我不仅写代码,还参与过商品模块的需求讨论,也做过单元和集成测试。(说明你干过的活,并用项目管理方式进一步证实是真实项目)
- 在做这个项目的过程中,我在解决技术问题的时候,看过HashMap和ArrayList快速失效的底层源码,也通过建索引调优过数据库性能,也通过看日志解决过线上问题。(抛出亮点,等面试官来问)
- 这个项目有时候进度会比较紧,我会主动加班开发,并排查线上问题,遇到一些我没接触过的技术,比如Zuul,我会主动查资料,并通过问别人等方式,保证进度保证质量地完成任务。(说明你的责任心,肯加班,肯学习)
提问环节
由于在之前的自我介绍和项目介绍阶段,结合项目抛出了亮点,所以面试官大概率会紧跟着亮点提问,比如问你们项目里是怎么用数据库索引的?
你就可以说,在这个项目的业务流水表里,数据规模比较大,有十万规模,而项目里经常要根据业务流水号来查询,所以我们就对这个字段建了索引。建好索引后,我们会非常小心,以免索引用不到,比如如果对该字段进行左值查询,或者用isnull判断,就用不到索引了。同时,我看过索引的数据结构是b*树。如果后面面试官允许,你可以边画边讲。
或者面试官如果问,你是怎么解决线上问题的?
你也可以说,在短信微服务模块,我们是对接阿里云平台,用RabbitMQ(消息队列) 实现异步的短信发送,但有时候会发现,短信发不出去,通过看linux日志(用vim打开,grep命令搜索),根据异常提示,发现是对同一个手机号发送消息限制一分钟之后才可以再发送验证,然后修改代码就解决问题了。
当然,你在面试前,一定要准备说辞里的调优、源码或看日志解决实际问题的亮点,这些技术本身不难,网上都有现成的,但你这样做,一方面通过项目抛出亮点,另一方面在面试官提问时很好地回答,那么哪怕你平时做项目的开发能力一般,你也能在面试中很好地展示自己的技能和亮点。
总结
要说程序员应届生一点项目经验都没,其实也不大可能,就不说不少程序员应届生能通过实习或兼职等手段得到真实项目经验,同时大多数的程序员应届生一定会在课程设计和毕业设计中开发过项目,再不济也会通过运行通若干学习项目来掌握项目经验。
哪怕应届生朋友是用学习项目积累的经验,也需要写上简历上,也可以按上述方式准备面试说辞,更不用说真正具备商业项目开发经验的应届生了。
要说上文列出的技术有多难,这也未必,spring boot+JPA本身不难,甚至spring cloud也不难,而用索引调优数据库,或解决OOM问题,甚至是在linux里通过日志分析问题的技能或者是一些底层的源码也不难。
但大家如果站在面试官的角度来看,如果应届生把项目经验、技术和上述亮点有机地整合到一起以后,不仅可以通过项目说辞(其实项目说辞也是自己说的,面试官未必会去验证)证明能力,而且还可以结合项目实际业务展示亮点,这一定能很好地向面试官展示自己的能力。
大家也可以对比下,两个能力差不多的应届生,一个按上述方法在面试中用项目展示技能,另一个只能坐等面试官问算法和数据结构来证明自己,孰好孰坏一目了然。
最后
你学会了吗?如果没有,欢迎找我聊聊吧,亲自帮你润色项目!
#Java##项目##简历中的项目经历要怎么写##我的成功项目解析##面试#
#简历中的项目经历要怎么写##我的成功项目解析#