就说说Java初学者求职准备项目的正确方式

news/2024/7/25 3:43:57/文章来源:https://blog.csdn.net/sxeric/article/details/139279744

当下不少Java初学者也知道求职时项目的重要程度,但在简历上写项目和准备面试项目时,真有可能走弯路,这样的话,加重学习负担还是小事,还真有可能导致无法入职。

1 对于在校生和应届生来说,你去跑通个学习项目,甚至包装个项目,其实问题不大,因为对于在校生来说,商业项目经验不是必要条件,不过你求职时,证明自己在公司里实习过,或者能证明帮老师干过能挣钱的项目,这能提升求职的成功率。

2 但对于要以社招身份求职的人来说,商业项目是必选项。比如有人毕业后考研,或者毕业离开学校以后想通过培训班或自学入行,对这些想找Java工作的人来说,第一要在简历上证明自己做过商业项目,否则很难拿面试机会,第二要在面试中证明商业项目的真实性,否则都没资格背面试题。

不过当下,不少Java初学者准备面试项目的方式,可以说是错误的。

1 有人打算把跑通的学习项目写在简历上,甚至打算在面试中以此来展示能力,还有人甚至恨不得在面试现场当场去演示学习项目,但这顶多只能证明自己用过项目综合学习过技术。

再进一步,不少人还煞有介事地收集项目,比如不跑通电商、金融、物流或支付等项目,都不敢去找工作,或者有些人在投简历和面试碰壁以后,归因于项目里包含的技术太简单,于是再去准备含微服务以及各种分布式组件的项目,但实际上,对方公司,其实更关心求职者是否做过商业项目。

2 有人自己感觉没做过商业项目,也知道学习项目和商业项目的差别,但补救措施是“借项目”,比如管认识的人去要项目说明书,对这些人来说,最好能到朋友的公司里,现场跑一遍人家的商业项目,在熟悉业务细节后,以此来作为自己的商业项目。

但事实上,在不演示项目的前提下,面试时用嘴是很难说项目的业务流程,而面试中一般不会有项目演示的环节,再进一步说,一些真正的商业项目,是无法在自己电脑上运行起来的,比如有项目是用Oracle,而且是分布式部署,用到docker+k8s。或者哪怕是一些技术相对简单的项目,也会包含一些组件或包,要在自己电脑上搭建商业项目的运行环境,其实也不大现实。

而实际上,一方面面试官仅会通过项目细节确认求职者是否做过真实项目,另一方面,面试官更会确认技术在项目里的使用情况。即如果求职者打算去了解商业项目业务细节,从打算以此证明商业真实性,这条路走不通。

3 这些求职者往往跑通过一些学习项目,但会凭主观臆断,想象着把分布式锁,微服务等一些所谓的”资深“技术嵌入到学习项目里,以此希望证明自己用过”资深“技术,从而能过面试。这种做法其实效率很不高。

比如你是想说你做的是学习项目,只要是学习项目,那在其中用的技术,哪怕再资深,面试官只能认为你在这方面只是会简单的接口调用。但如果你打算把这个学习项目说成是商业项目,这反而更误事,因为不少初级开发想象中的技术使用场景,其实是错误的,比如真实项目不大会用Redis+lua做分布式锁,甚至都不大会用分布式锁。

4 更有甚者,有些求职者会把一些根本没开发价值的项目写到简历上当成是商业项目。比如你写个外卖或电商,好歹也算有行业背景。但有些求职者写的是博客系统或留言系统或交友平台。这些项目在有经验面试官的眼里,甚至都不会继续往下看,因为没有商业开发价值,所以基本上是学习项目,而且其中包含的技术太简单。

本文不是教大家无中生有地包装项目,毕竟求职得凭诚信,但如果你确实做过商业项目,你就得在简历和面试中掌握足够的技能,别让面试官误认为你这仅仅是学习项目。

先说下,面试官一般怎么确认这是学习项目还商业项目?不大可能让当场演示,只是凭嘴问。

1 如果你在简历上写明这个项目的网址或APP名,那面试官真可能现场打开去验证,但这种情况下,基本能验证这个项目不真实。因为网址或app看到的一般是前端页面,而java做的是后端接口,真正的后端调用,是无法用前端效果去演示的,你现场又不可能演示用postman调用接口。

相反如果求职者说,这个项目是xx系统,客户是电信或某公司或某事业单位的部门,已经安装在客户的服务器上,是内部系统,从外网无法访问,面试官基本会信,因为很多情况就这样。如果求职者说,我最近做的项目,我离职时还没上线,这时面试官会警惕,因为求职者此时属于不打自招,在面试官无法确认是否上线的前提下,主动心虚说这没上线,意味着这个项目有可能是包装的。

2 项目角度面试官会从公司背景、客户、项目业务背景、项目开发细节和是否上线等情况,确认项目的真实性。

具体会问,这个项目你是在什么公司里做的?如果你说是跟着老师做或和朋友一起创业,这勉强能说得过,但如果你说是自己做的,这段时间不在公司,那么这属于学习项目。或者会问,客户是谁,是否上线?一般商业项目,哪怕安装在客户内部服务器,外面看不到,而且初级开发没参与上线的过程,也不知道上线细节,但项目为了挣钱,一般总会上线。

至于业务细节,面试官一般会问,这个项目包含哪些模块,你做过哪些模块,用过哪些数据表,数据表的数据量是多少?这里请大家记住,面试官不是你之前项目的具体使用者,不会详细问流程,比如你做的是客户数据插入,面试官不会问,你第一步如何检查数据,第二步如何传递数据,第三步插入到什么数据表等细节。

3 技术角度,面试官会问,你在项目里用过哪些技术,做过哪些事情。对在校生或初级开发来说,面试官的期望是,用spring boot做过增删改查的开发,用mybatis连过数据库,用过基本的事务,日志和单元测试等基本功能,做过基本的测试,解决过基本的技术问题。当然最好是在项目里解决过数据库或OOM问题,用过微服务等资深技术。

这块,如果求职者还说,用过redis或微服务,面试官也会问,你项目里是怎么用redis和微服务的,这块如果求职者只是在学习项目里用过,或者是想把学习项目里得到的经验嵌入到真实项目,一般回答的内容和真实项目的场景严重不同。比如会说用过redis+lua的分布式锁,但大多数真实项目其实不会用到分布式锁。

4 会问项目里解决过的实际问题,或者就着求职者说用过的技术,问技术细节。这块如果求职者的项目是包装的,那么基本上说不上解决过哪些问题,或者说出来的业务细节听上去像错了。

除了上文提到的分布式锁以外,一些零项目经验的求职者还会说,项目里用过分布式事务,但事实上连分布式事务和单机版事务的差别也搞不清楚。或者会说,项目没有高并发,但依然会用微服务和分库分表或其它分布式组件。

上文的叙述其实和“准备项目”的方法无关,但一些初学者看了,一定能知道,其实自己准备Java项目的方法,真可能是自欺欺人,在此基础上,大家也就更能理解下文提到的准备Java项目的方法。

1 结合公司场景,尤其是小公司场景,证明这是用于挣钱以及能够挣钱的项目。

首先你的项目一定是在公司里做的,比如大四实习了3个月,那么你需要在简历上说明,这3个月在什么公司,做了什么项目。或者退而求其次,这个项目是帮实验室老师做的,也是挣钱的项目。相反,如果做这个项目的时间段没有公司背景,那么大概率会被认为是学习项目。

同时,小公司所做项目的特点是,工期短,一般不会超过半年,不会自研,也不会做大公司的竞品。比如不会自研个电商平台,也不会做个外卖系统,原因好理解,哪怕做出来,功能再完善,也没法和大公司的竞争。所以在小公司里做的项目,真可能是xx管理系统。这里为了说明这个确实是商业项目,可以说明下这个项目的客户。

多说一句,比如在小公司里做的仓库管理系统,卖给了当地某公司,这是可行的,或者说,做了某政府部门的社区管理系统,同时说清楚,在哪里上线,这也可信,毕竟有些小公司能接到此类项目。但如果说,某小公司做了健康管理平台或留言系统,这种项目是没客户要买,所以挣不到钱。

2 说清楚项目组人数,开发细节和已经上线等细节。

比如你说,在项目里用过Maven, Git,技术上用过postman发请求做测试,这些组件和工具一般学习项目是用不到的,甚至有些培训班在讲课时也未必用到,但真实项目大概率会用到。

具体你说出,我们项目组是6个人,1个项目经理,1个前端,剩下的是后端开发,用Maven管项目,用git管代码,用postman发请求测试后端接口,我参与了xx等模块,开发了5个月,当然再进一步,你更可以说,这个项目开发完成后,是项目经理到客户现场去上线。那么对方公司听下来,就认为你掌握了这些只有商业项目里有的技术,能进一步确信你做过真实项目。

3 业务方面,通过“对数据表的增删改查”来证明。

很多Java初学者不知道说明项目业务的方法,其实这真可以说是“会者不难”。比如你做的是一个政府的社区信息管理平台,已经在某个社区上线,你就可以说,在这个项目里,你做过了信息管理模块、办理业务的明细模块,社区工作人员管理模块等业务模块,这些业务模块一听就属于这个系统,当然你不能说,这个系统里还包含了商品展示模块,因为这个模块从业务角度,不大可能属于“社区信息管理系统”。

而对于每个模块,你只需要说,其中是对数据表的增删改查,比如业务明细模块是对业务明细表的增删改查,你做的是后端,是用spring boot的控制器+service+repo,根据前端发来的请求url以及参数,对数据表进行操作并返回数据。

至于具体的业务细节,比如参数如何检查,请求如何处理,发生异常时如何返回数据,这些面试官不关心,你真不用讲,也不用准备。说句不该说的话,比如有人通过若依等系统跑通一个项目,然后用这个办法说业务流程,同时为这个项目准备一个公司场景,虽然这种做法不提倡,但面试官真很难发现,或者说也不想发现。

4 通过技术的使用细节,有取有舍准备面试说辞。

这块建议是分层次准备,第一个层次是准备日志、事务、junit、swagger、AOP和Mybatis的细节说辞,第二个层次是在第一个层次的基础上,外加redis和kafka等分布式组件的说辞,第三个层次是在此基础上,再外加微服务方面的说辞。

比如Java项目经验不多,自认为Java基础也一般,这里应该通过第一个层次,至少先证明自己的商业项目经验,并以此证明自己会用Spring boot框架做增删改查,这样就有一定的概率面试成,而且面成的概率远大于让面试官感觉你只做过学习项目。但如果相反,你连商业项目经验和基本的spring boot做增删改查的说辞都没准备好,在此基础上就去卷微服务和分布式组件,那么面试官真会认为,你连基本增删改查也不会。

而准备技术使用细节的做法是,通过接口和参数说明,比如你如何证明你用过junit?就说用过@test注解,用AssertEquals方法对比数据,其实就可以了。如何证明用过AOP?用过@Pointcut注解,同时用@Aspect注解,再说下业务场景,是把哪两个业务通过AOP整合到一起。

需要说明的是,如果能力一般,项目经验也不多,别去准备高并发技能,因为大概率准备不好。这里高并发的技能包括Redis+lua的限流或秒杀或分布式锁等,还是这句话,一层层准备,先准备基本的增删改查,准备好以后再准备分布式或微服务组件,这样其实对应届生来说,真就可以了。

5 解决实际问题的方法一般是,看日志解决。

比如你被问到,解决过哪些实际问题,你如果不会说数据库索引调优等高级问题,你真可以说,用postman发请求,发现问题,然后看日志,根据异常信息,排查过空指针或参数不对的问题。

通过上述方法,你大概率能证明项目的真实性,看到这里,不少初学者会发现,其实面试准备项目的方法和你自己原先想象的不同,而且也简单,毕竟这是从面试的角度来证明,而不是从学习的角度来证明。

当然具体操作的时候还有很多细节,相关内容本人也有如下的文章,这里就不再重复讲述了。

java零项目经验,找工作前该如何准备项目?面试时又该怎么说?-CSDN博客文章浏览阅读828次,点赞23次,收藏12次。本人在做Java技术面试官的时候,发现了一种不怎么好的倾向:不少求职者,尤其是Java初级开发的求职者,会认为面试准备就是背八股文和准备算法,这本身没错,面试前也该充分准备这方面的问题,但更要准备项目。1 在校招阶段,由于大多数应届生是没有商业项目经验的,所以对校招面试官来说,只能退而求其次,通过学习项目、八股文和算法题来选人,但话说回来,校招过程中如果能展示商业项目经验,一定能对其它竞争者形成碾压性的优势。https://blog.csdn.net/sxeric/article/details/138585808?spm=1001.2014.3001.5501说说真实Java项目的开发流程,以及面试前的项目准备说辞 - 知乎介绍项目是必不可少的Java面试环节,求职者需要借此证明自己真实Java项目的经验,如果再做的好的话,需要借此展开自己的亮点说辞。 不过之前如果只有学习项目经验,比如是自己跑通一个项目,或者是在培训班里通过…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/574240101计算机专业毕业的你,是如何提前准备找工作的? - 知乎其它方面不说,就说java方面,技术层面,可以简单归纳成,跑通spring boot学习项目+准备项目说辞=过面试…icon-default.png?t=N7T8https://www.zhihu.com/question/376509250/answer/3346701471

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1053763.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pillow学习3

Pillow库中,图像的模式代表了图像的颜色空间。以下是一些常见的图像模式及其含义: L(灰度图):L模式表示图像是灰度图像,每个像素用8位表示(范围为0-255),0表示黑色&#…

idea的project structure下project [lauguage ]()level 没有java的sdk17选项如何导入

idea的project structure下project lauguage level 没有java的sdk17选项如何导入 别导入了,需要升级idea版本。idea中没有project language level没有17如何添加 - CSDN文库 别听这文章瞎扯淡 2021版本就是没有,直接卸载升级到最新版本就可以了。没办法…

qmt量化交易策略小白学习笔记第8期【qmt编程之获取股票资金流向数据--内置Python】

qmt编程之获取股票资金流向数据 qmt更加详细的教程方法,会持续慢慢梳理。 也可找寻博主的历史文章,搜索关键词查看解决方案 ! 感谢关注,需免费开通量化回测与咨询实盘权限,可以和博主联系! 获取股票资金…

云服务器平台AutoDL--基本介绍与使用感受

因为课程作业需要复现DreamBooth,找了几个教程之后,发现了AutoDL这个好东西,芜湖~ 相关概念 以下回答来自于ChatGPT。 云计算平台:云服务器平台是提供按需计算资源和服务的在线平台,通常包括存储、处理能力、数据库、…

微服务架构下的‘黑带’安全大师:Spring Cloud Security全攻略!

深入探讨了微服务间的安全通信、安全策略设计以及面对经典安全问题的应对策略。无论你是微服务的新手还是资深开发者,都能在本文中找到提升安全功力的秘籍。让我们一起成为微服务架构下的‘黑带’安全大师! 文章目录 1. 引言微服务安全挑战与重要性Sprin…

链表mark

什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。…

JRebel 激活及使用

插件下载 JRebel and XRebel - IntelliJ IDEs Plugin | Marketplace 从磁盘安装下载的插件 windows下载激活服务 Releases ilanyu/ReverseProxy GitHub mac没有对应版本,需要Docker搭建本地激活服务 docker pull qierkang/golang-reverseproxy docker run -d -…

Steamdeck使用Windows系统游玩雪地奔驰时闪退问题解决方法

我非常喜欢雪地奔驰这款游戏,买sd的一部分也是为了它。可在我打开这个游戏时,游戏发生闪退问题。查阅了网络各个途径,基本没有解决方法。因此我自己分析终于解决该问题。以下是我解决问题的思路,仅供记录参考: 游戏在崩…

第97天:权限提升-Web 权限权限划分源码后台中间件第三方数据库等

前置知识 具体有哪些权限需要我们了解掌握的 后台权限,网站权限,数据库权限,接口权限,系统权限,域控权限等 以上常见权限获取方法简要归类说明 后台权限:SQL 注入,数据库备份泄露,默认或弱口…

[LLM-Agent]万字长文深度解析规划框架:HuggingGPT

HuggingGPT是一个结合了ChatGPT和Hugging Face平台上的各种专家模型,以解决复杂的AI任务,可以认为他是一种结合任务规划和工具调用两种Agent工作流的框架。它的工作流程主要分为以下几个步骤: 任务规划:使用ChatGPT分析用户的请求…

Vue:快速上手

一、简介 Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,…

selenium 学习笔记(一)

pip的安装 新建一个txt curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 把上面的代码复制进去后,把后缀名改为.bat然后双击运行 当前目录会出现一个这个文件 然后在命令行pyhon get-pip.py等它下好就可以了selenium安装 需要安装到工程目…

Halcon 极坐标转换图像

一、概述 先看效果 将圆形的用极坐标转换成矩性然后再进行识别或者其他缺陷检测,最后在还圆到原图中 二、原理: halcon 圆环类缺陷检测的一种方法(极坐标变换法)_halcon缺口检测-CSDN博客 图像极坐标变换与反变换(…

C# 泛型函数

1.非约束 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace MyGeneirc {public class GeneircMethod{/// <summary>/// 泛型方法解决&#xff0c;一个方法&#xff0c;满足不同参数类型…

C++算术运算和自增自减运算

一 引言 表示运算的符号称为运算符。 算术运算&#xff1b; 比较运算&#xff1b; 逻辑运算&#xff1b; 位运算&#xff1b; 1 算术运算 算术运算包括加、减、乘、除、乘方、指数、对数、三角函数、求余函数&#xff0c;这些都是算术运算。 C中用、-、*、/、%分别表示加、减…

Linux——多线程(一)

一、线程的概念 1.1线程概念 教材中的概念&#xff1a; (有问题?) 线程是进程内部的一个执行分支&#xff0c;线程是CPU调度的基本单位 之前我们讲的进程&#xff1a; 加载到内存中的程序&#x…

重学java 49 List接口

但逢良辰&#xff0c;顺颂时宜 —— 24.5.28 一、List接口 1.概述: 是collection接口的子接口 2.常见的实现类: ArrayList LinkedList Vector 二、List集合下的实现类 1.ArrayList集合的使用及源码分析 1.概述 ArrayList是List接口的实现类 2.特点 a.元素有序 —> 按照什么顺…

简单随机数据算法

文章目录 一&#xff0c;需求概述二&#xff0c;实现代码三、测试代码四、测试结果五、源码传送六、效果演示 一&#xff0c;需求概述 系统启动时&#xff0c;读取一组图片数据&#xff0c;通过接口返回给前台&#xff0c;要求&#xff1a; 图片随机相邻图片不重复 二&#…

Node.js和npm常用命令

一、Node.js简介 Node.js是一个免费、开源、跨平台的JavaScript运行时环境&#xff0c;允许开发人员创建服务器、web应用程序、命令行工具和脚本。 点击查看node.js中文官网 点击查看node.js英文官网 二、npm简介 npm(Node Package Manager)是Node.js的软件包管理器&#xff0…

三层交换机基本配置,动态路由链接

<Huawei>system-view //进入系统视图[Huawei]undo info-center enable //关日志[Huawei]vlan batch 2 3 //创建vlan2与3[Huawei]display vlan //检查[Huawei]interface GigabitEthernet 0/0/2 //进2口[Huawei-GigabitEthernet0/0/2]port link-type access //配置…