如何为Java面试准备项目经验_java项目经验面试-程序员宅基地

技术标签: 面试  java  程序人生  

1 提出问题

应届生朋友或Java程序员在找Java方面的工作时,一定会需要准备Java项目经验,但事实上不少求职者,是没有项目经验,或者只具有开源社区等的学习项目经验,这样的话,就很有可能在面试时无法有效地证明自己在Java方面的能力。

其实对一些有真实java开发经验的程序员也存在类似问题,比如他们在日常工作中只是做增删改查的活,而所应聘岗位需要具备分布式组件等高阶技能,那么怎么通过项目来证明相关技能的实践技能呢?本文就将围绕Java面试,讲述准备项目经验的问题。

2 对项目经验的常见误解

第一,混淆商业项目和学习项目。

面试官关心的,只是商业项目经验。有些公司在招聘时,还有java方面要3年经验等条件,此时如果无法证明足量的商业项目经验,不过面试的可能性很大。

商业项目是指用来挣钱的项目,比如在软件公司里做的,或者跟朋友一起创业做的项目,或者是自己兼职帮人做的项目。与之对应的是学习项目,比如课程设计毕业设计项目,或者自己从github上拿下来跑通一个项目,当然培训班给的项目也只能算学习项目。

有些应届生朋友,或者工作几年想转行的朋友,在简历上写了多个学习项目,这样的简历甚至没面试机会。

第二,需要通过商业项目展示技术和亮点,而不是业务。

很多求职者在面试中,会大谈特谈项目的业务逻辑,比如会详细介绍流程,这些面试官不关心,因为没指望求职者入职后做同样的项目。

面试股而是希望通过项目,确认求职者是怎么用spring boot和分布式等技术,以及其他资深技术。

第三,认为一定要运行通一个项目,才能当成是自己的项目。

这种说法存在两个问题,第一,运行通的项目只能算学习项目,面试时不能算,应当尽量把这种项目挖掘成商业项目。第二面试时一定不会要求当场演示项目,求职者只需通过项目场景证明自己熟练使用相关技术即可。

第四,除了本项目用到的技术外,面试时还能把值钱技术嫁接到当前项目。

比如某人虽然有3年java开发经验,由于在小公司,所以只用到了spring boot技术,而下份工作想应聘java高级开发,面试时需要准备分布式组件等技术。

此时大多数求职者的做法是,结合项目说spring boot,外带通过背八股文来证明分布式组件的能力。但这样做就割裂了理论和应用,从而无法证明相关组件的项目实践经验,这样的话,面试时分布式组件这块是无法达标的。

正确的做法是,项目需求不变,比如原来做的是仓库管理系统不变,同时去学redis,dubbo等技术,然后找个项目需求来证明自己用相关技术,甚至还可以以此来证明自己解决过实际问题。

这种准备项目经验的做法跨级提升时,比如初级升高级,高级升架构时,尤为重要,很多人其实就因为这点没做好而无法升级。

3 利用项目,全面展示能力

也就是说,在面试时向面试官有效展示项目经验,这和真实的项目开发是两个方向,如果混为一谈,那么只能以当前技能去参加面试,但面试时更可以通过如下的准备要点,展示出高于当前项目开发能力的水平。

下面就讲一下,如何在面试中充分利用项目,全面展示自己的能力。

要点1 尽量挖掘商业项目经验。

比如应届生可以通过挖掘真实项目经验,在简历上把项目写成是实习项目,或者是帮老师干的真实项目。

如果是转行,之前没有在软件公司里干过,那么如果之前有和朋友一起创业做过java项目,或者自己干过兼职,做过类似外包的java项目,那么需要直接在简历里体现出这点,从而让面试官确认你这是商业项目。

具体好办,就在简历上额外说明下,这个项目是帮哪家公司做的,做了多久,同时别写电商这种看上去就是学习的项目。项目名可以写小些,比如是在小公司里做的维护项目,比如超市管理系统,总之体现出这个项目能挣钱即可。

要点2 优先准备能证明是商业项目的说辞。

我在面试时发现,不少求职者大谈特谈nacos,redis等组件在项目里的用法,但项目一问,项目是从github上找的,或者是培训班里做的,那么这个项目就会被认为是学习项目,皮之不存毛将焉附,学习项目上附带的技术,也不能被当成真正在项目里用到的技术。

更何况,比如某个职位需要2年java开发经验,到后来你的项目被当成学习项目,那么可能“项目开发年限”这个硬指标都达不到,后面就无需再面试了。这块要准备?

  • 项目是在什么公司里做的,因为公司里做的一定的商业项目。

  • 项目组有多少人,几个开发几个测试?你做个哪些模块?数据表用到哪些?这些是做了商业项目才能知道的细节。

  • 项目用到敏捷管理模式,用到git和maven等管理工具,这些工具学习项目未必会用。

  • 项目如何打包部署到linux上?除了开发以外,测试是怎么做的?而测试和部署等要素学习项目是不具备了。

  • 当然,同时要准备项目里用到的技术,比如redis,mysql,spring boot等。

这里切记,尤其是应届生和中途转行的求职者,一定要优先准备上述说辞,先在面试中把项目证明成商业项目,后面再讲技术讲亮点,而不能靠说项目业务来证明这是商业项目,再说一遍,面试官对之前项目的业务不关心,一定是得通过上文提到的各种细节来证明是商业项目。

要点3 再结合项目说技术,优先准备基本面技术。

其实要证明是商业项目这不难,准备好以后,这些话可能1,2分钟就能说好,在此基础上再展示自己在项目里用到的技术,原因很简单,只有在项目里用到的技术才能算有实践经验。

这里准备技术时,优先要准备基本面,即用spring boot做增删改查的技能,再具体点讲,可以通过项目里的一个业务,比如商品查询,说下spring boot+jpa的一个流程。

这里说得极端一点,如果某应届生事实上没有任何商业项目经验,但跑通一个spring boot的流程,同时包装出一个商业项目。此时只要商业项目的细节能说清楚,也能结合一个流程讲清楚spring boot开发,甚至都不要跑通某个spring boot项目,这照样能证明自己的商业项目开发经验。

当然这种做法不提倡,但反过来讲,某人虽然跑通某个github上找到的spring boot项目,也理解了其中相关技术,但忽视学习项目和商业项目的差别,那么留个面试官的印象只能是做过学习项目,没商业项目的经验,这样过面试的难度甚至会高于前者包装简历的求职者。

要点4 为每个值钱技术,找个项目业务的落脚点。

在准备好商业方面的相关说辞后,需要用其中的需求点和业务点来说明技术的使用情况,这里的值钱技术包括用索引或缓存进行数据库调优,JVM方面的OOM问题排查,用dubbo,kafka等组件解决高并发问题,或者是限流熔断等高并发措施。

这方面怎么准备呢?以redis缓存为例,哪怕你项目里没用过Redis,也可以为redis找个业务落脚点,比如查询库存信息太频繁影响性能,所以用redis缓存。然后第一层说业务,即用redis里的list等数据结构缓存库存信息,第二层说用法,你项目里怎么配redis,用到哪些api,第三层说解决过的问题,即解决过redis缓存穿透等问题,如果可以,再准备些redis集群和底层数据结构等说辞。

类似的,面试前可以准备的java方面的亮点太多,分布式组件,微服务,云开发等都可以准备。甚至你都可以找个人家分析排查解决的问题,比如是OOM问题的经历,然后挂靠在你的业务项目上,把人家的业务迁移到你项目中,这样也能展示你的能力。

当然这里要注意,当你说好相关技术,比如redis后,面试官一定会问Redis本身的问题,比如底层数据结构等,这方面你就可以通过背redis等方面的八股文来准备这方面的细节问题。

要点5 如果可以,准备些项目部署或运维方面的说辞。

这块包括,如何用maven打spring boot包,然后部署到linux再启动的流程,也包括如何在linux上搭建mysql和redis集群,以及搭建nginx ,redis或dubbo等分布式组件或集群的经验。

这块是加分项,但这部分的部署和运维方面的技能,甚至去面试架构师都能用到,更何况仅仅去面试java高级开发或初级开发。

而且,应届生或转行做java的程序员,就用“用Maven打包spring boot项目”和“到linux上部署运行spring boot项目”的说辞,能很好地证明自己的项目是商业项目,因为学习项目不会做这些。

4 会者不难

上述准备java项目的动作难吗?不难。

1 没有要求运行通java项目,仅仅要求掌握spring boot开发流程,或相关技术的使用技巧。

2 准备商业项目的细节,这方面想周全就行,未必要费很多时间,可能顶多用2,3天参详就行了。

3 归纳总结值钱技术,并为相关值钱技术准备个业务落脚点,这块可能就是针对的点多些,但每个技术或解决过的问题准备起来,可以参考现有资料或人家的解决方法。

4 准备好了,顶多再通过若干场面试检验说辞即可,当然尽量去参加小公司的面试去检验说辞。

5 盘点准备好项目说辞的收益

如果按本文说给出的方法准备,能得到哪些收益呢?

1 能证明是商业项目,从而至少能得到面试机会,相反如果简历上只列出学习项目或干脆不列项目,估计连面试的机会都没。

2 其实面试中大多数求职者只是结合项目说技术,但你不仅能结合项目说技术,而且还能全面展示亮点和解决过的问题,虽然你真正的项目开发经验可能未必比人家强,但你在面试中的表现一定优于人家。

3 能结合项目证明分布式组件或微服务组件等值钱技术的项目开发经验,从而能有效地实现职级跨越,比如能高效从初级开发升级到高级开发,高效从高级开发升级到架构。

但说到底,上述准备要点由于是直接面向面试,所以抛弃了很多无效动作,比如去调通项目,去准备项目业务方面的说辞,所以操作起来反而比较高效,可能整个准备流程顶多需要2个月,甚至更短,也就是说,本文多少能帮助到各位想找工作的Java程序员朋友。

最后祝广大程序员朋友都能找到心仪的工作,同时在技能和薪资方面实现双丰收,也请大家多多点赞我的文章。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sxeric/article/details/125076925

智能推荐

JWT(Json Web Token)实现无状态登录_无状态token登录-程序员宅基地

文章浏览阅读685次。1.1.什么是有状态?有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。例如登录:用户登录后,我们把登录者的信息保存在服务端session中,并且给用户一个cookie值,记录对应的session。然后下次请求,用户携带cookie值来,我们就能识别到对应session,从而找到用户的信息。缺点是什么?服务端保存大量数据,增加服务端压力 服务端保存用户状态,无法进行水平扩展 客户端请求依赖服务.._无状态token登录

SDUT OJ逆置正整数-程序员宅基地

文章浏览阅读293次。SDUT OnlineJudge#include<iostream>using namespace std;int main(){int a,b,c,d;cin>>a;b=a%10;c=a/10%10;d=a/100%10;int key[3];key[0]=b;key[1]=c;key[2]=d;for(int i = 0;i<3;i++){ if(key[i]!=0) { cout<<key[i.

年终奖盲区_年终奖盲区表-程序员宅基地

文章浏览阅读2.2k次。年终奖采用的平均每月的收入来评定缴税级数的,速算扣除数也按照月份计算出来,但是最终减去的也是一个月的速算扣除数。为什么这么做呢,这样的收的税更多啊,年终也是一个月的收入,凭什么减去12*速算扣除数了?这个霸道(不要脸)的说法,我们只能合理避免的这些跨级的区域了,那具体是那些区域呢?可以参考下面的表格:年终奖一列标红的一对便是盲区的上下线,发放年终奖的数额一定一定要避免这个区域,不然公司多花了钱..._年终奖盲区表

matlab 提取struct结构体中某个字段所有变量的值_matlab读取struct类型数据中的值-程序员宅基地

文章浏览阅读7.5k次,点赞5次,收藏19次。matlab结构体struct字段变量值提取_matlab读取struct类型数据中的值

Android fragment的用法_android reader fragment-程序员宅基地

文章浏览阅读4.8k次。1,什么情况下使用fragment通常用来作为一个activity的用户界面的一部分例如, 一个新闻应用可以在屏幕左侧使用一个fragment来展示一个文章的列表,然后在屏幕右侧使用另一个fragment来展示一篇文章 – 2个fragment并排显示在相同的一个activity中,并且每一个fragment拥有它自己的一套生命周期回调方法,并且处理它们自己的用户输_android reader fragment

FFT of waveIn audio signals-程序员宅基地

文章浏览阅读2.8k次。FFT of waveIn audio signalsBy Aqiruse An article on using the Fast Fourier Transform on audio signals. IntroductionThe Fast Fourier Transform (FFT) allows users to view the spectrum content of _fft of wavein audio signals

随便推点

Awesome Mac:收集的非常全面好用的Mac应用程序、软件以及工具_awesomemac-程序员宅基地

文章浏览阅读5.9k次。https://jaywcjlove.github.io/awesome-mac/ 这个仓库主要是收集非常好用的Mac应用程序、软件以及工具,主要面向开发者和设计师。有这个想法是因为我最近发了一篇较为火爆的涨粉儿微信公众号文章《工具武装的前端开发工程师》,于是建了这么一个仓库,持续更新作为补充,搜集更多好用的软件工具。请Star、Pull Request或者使劲搓它 issu_awesomemac

java前端技术---jquery基础详解_简介java中jquery技术-程序员宅基地

文章浏览阅读616次。一.jquery简介 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互 jQuery 的功能概括1、html 的元素选取2、html的元素操作3、html dom遍历和修改4、js特效和动画效果5、css操作6、html事件操作7、ajax_简介java中jquery技术

Ant Design Table换滚动条的样式_ant design ::-webkit-scrollbar-corner-程序员宅基地

文章浏览阅读1.6w次,点赞5次,收藏19次。我修改的是表格的固定列滚动而产生的滚动条引用Table的组件的css文件中加入下面的样式:.ant-table-body{ &amp;amp;::-webkit-scrollbar { height: 5px; } &amp;amp;::-webkit-scrollbar-thumb { border-radius: 5px; -webkit-box..._ant design ::-webkit-scrollbar-corner

javaWeb毕设分享 健身俱乐部会员管理系统【源码+论文】-程序员宅基地

文章浏览阅读269次。基于JSP的健身俱乐部会员管理系统项目分享:见文末!

论文开题报告怎么写?_开题报告研究难点-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏15次。同学们,是不是又到了一年一度写开题报告的时候呀?是不是还在为不知道论文的开题报告怎么写而苦恼?Take it easy!我带着倾尽我所有开题报告写作经验总结出来的最强保姆级开题报告解说来啦,一定让你脱胎换骨,顺利拿下开题报告这个高塔,你确定还不赶快点赞收藏学起来吗?_开题报告研究难点

原生JS 与 VUE获取父级、子级、兄弟节点的方法 及一些DOM对象的获取_获取子节点的路径 vue-程序员宅基地

文章浏览阅读6k次,点赞4次,收藏17次。原生先获取对象var a = document.getElementById("dom");vue先添加ref <div class="" ref="divBox">获取对象let a = this.$refs.divBox获取父、子、兄弟节点方法var b = a.childNodes; 获取a的全部子节点 var c = a.parentNode; 获取a的父节点var d = a.nextSbiling; 获取a的下一个兄弟节点 var e = a.previ_获取子节点的路径 vue