【项目】如何在面试中介绍自己的项目经验(附如何解决未知的问题成长路线)
【项目】如何在面试中介绍自己的项目经验(附如何解决未知的问题&成长路线)
文章目录
- 1、为什么要准备项目介绍?
- 2、如何准备一份好的项目介绍?
- 3、如何回答项目提问?
- 4、如何避免低级错误?
- 5、如何通过引导补充亮点?
- 附:如何解决未知的问题 & 工作能力成长路线
全文总结:
1、总结两句话,第一,面试前一定要准备,第二,本文给出是的方法,不是教条,大家需要按本文给出的方向结合自己的项目背景做准备。
2、当大家介绍好项目背景后,面试才刚刚开始,哪怕你说得再好,哪怕你把问题引导到你准备的范围里,这也得应付Java Web(比如Spring MVC,ORM等)、Java Core(多线程、集合、JDBC等)和数据库等方面的问题。
3、如果引导不好,你根本没机会展示自己的能力。这就是本文给出的方法价值所在。这些方法和说辞不是拍脑袋想出来的,而是从面试上百个候选人的经历中抽取出来的,其中有不少血泪,也有不少人成功的途径,这篇文章多少对大家(尤其是经验不满3年的初级程序员)有帮助。
1、为什么要准备项目介绍?
在面试时,经过寒暄后,一般面试官会让介绍项目经验 。
常见的问法是,说下你最近的(或最拿得出手的)一个项目。
不少候选人对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段或技术等方面和简历上的不匹配,这样就会造成如下的后果。
- 1、第一印象就不好了,至少会感觉该候选人表述能力不强。
- 2、一般来说,面试官会根据候选人介绍的项目背景来提问题,假设面试时会问10个问题,那么至少有5个问题会根据候选人所介绍的项目
1、在面试前准备项目描述,别害怕,因为面试官什么都不知道
面试官是人,不是神,拿到你的简历的时候,是没法核实你的项目细节的(一般公司会到录用后,用背景调查的方式来核实)。更何况,你做的项目是以月为单位算的,而面试官最多用30分钟来从你的简历上了解你的项目经验,所以你对项目的熟悉程度要远远超过面试官,所以你一点也不用紧张。如果你的工作经验比面试官还丰富的话,甚至还可以控制整个面试流程(笔者在面试方面成精后也经常干这种事情,大家一定也能行)。
你 | 面试官 | |
---|---|---|
对你以前的项目和技能 | 很了解 | 只能听你说,只能根据你说的内容做出判断 |
在面试过程中的职责 | 在很短的时间内防守成功即可 | 如果找不出漏洞,就只能算你以前做过 |
准备时间 | 面试前你有充足的时间准备 | 一般在面试前用30分钟阅读你的简历 |
沟通过程 | 你可以出错,但别出关键性的错误 | 不会太为难你,除非你太差 |
技巧 | 你有足够的技巧,也可以从网上找到足够多的面试题 | 其实就问些通用的有规律的问题 |
2、既然面试官无法了解你的底细,那么他们怎么来验证你的项目经验和技术? 下面总结了一些常用的提问方式。
提问方式 | 目的 |
---|---|
让你描述工作经验和项目(极有可能是最近的),看看你说的是否和简历上一致 | 看你是否真的做过这些项目 |
看你简历上项目里用到的技术,比如框架、数据库,然后针对这些技术提些基本问题 | 还是验证你是否做过项目,同时看你是否了解这些技术,为进一步提问做准备 |
针对某个项目,不断深入地问一些技术上的问题,或者从不同侧面问一些技术实现,看你前后回答里面是否有矛盾 | 深入核实你的项目细节 |
针对某技术,问些项目里一定会遇到的问题,比如候选人说做过数据库,那么就会问索引方面的问题 | 通过这类问题,核实候选人是否真的有过项目经验(或者还仅仅是学习经验) |
2、如何准备一份好的项目介绍?
1、准备项目的各种细节,一旦被问倒了,就说明你没做过
一般来说,在面试前,大家应当准备项目描述的说辞,自信些,因为这部分你说了算,流利些,因为你经过充分准备后,可以知道你要说些什么。而且这些是你实际的项目经验(不是学习经验,也不是培训经验),那么一旦让面试官感觉你都说不上来,那么可信度就很低了。
不少人是拘泥于“项目里做了什么业务,以及代码实现的细节”,这就相当于把后继提问权直接交给面试官。下表列出了一些不好的回答方式。
回答方式 | 后果 |
---|---|
我在XX软件公司做了XX门户网站项目,这个项目做到了XX功能,具体是XX和XX模块,各模块做了XX功能,客户是XX,最后这个项目挣了XX钱 | 直接打断,因为业务需求我不需要了解,我会直接问他项目里的技术 |
(需要招聘一个Java后端开发,会Spring MVC)最近一个项目我是用C#(或其他非Java技术)实现的,实现了……或者我最近做的不是开发,而是测试……或者我最近的项目没有用到Spring MVC | 提问,你最近用到SSH技术的项目是什么时候,然后在评语上写:最近XX时间没接触过SSH |
在毕业设计的时候(或者在读书的时候,在学习的时候,在XX培训学校,在XX实训课程中),…… | 直接打断,提问你这个是否是商业项目,如果不是,你有没有其他的商业经验。如果没商业项目经验,除非是校招,否则就直接结束面试 |
描述项目时,一些关键要素(比如公司、时间、所用技术等)和简历上的不匹配 | 我们会深究这个不一致的情况,如果是简历造假,那么可能直接中断面试,如果真的是笔误,那么就需要提供合理的解释 |
2、在避免上述不好的回答的同时,大家可以按下表所给出的要素准备项目介绍。
如果可以,也请大家准备一下用英语描述。其实刚毕业的学生,或者工作经验较少的人,英语能力都差不多,但你说了,这就是质的进步。
要素 | 样式 |
---|---|
控制在1分钟里面,讲出项目基本情况,比如项目名称,背景,给哪个客户做,完成了基本的事情,做了多久,项目规模多大,用到哪些技术,数据库用什么,然后酌情简单说一下模块。重点突出背景,技术,数据库和其他和技术有关的信息。 | 我在XX公司做了XX外汇保证金交易平台,客户是XX银行,主要完成了挂盘,实盘成交,保证金杠杆成交等功能,数据库是Oracle,前台用到JS等技术,后台用到Java的SSH,几个人做了X个月。不需要详细描述各功能模块,不需要说太多和业务有关但和技术无关的。如果面试官感兴趣,等他问。 |
要主动说出你做了哪些事情,这部分的描述一定需要和你的技术背景一致。 | 我做了外汇实盘交易系统,挂单成交系统,XXX模块,做了X个月 |
描述你在项目里的角色 | 我主要是做了开发,但在开发前,我在项目经理的带领下参与了业务调研,数据库设计等工作,后期我参与了测试和部署工作。 |
可以描述用到的技术细节,特别是你用到的技术细节,这部分尤其要注意,你说出口的,一定要知道,因为面试官后面就根据这个问的。你如果做了5个模块,宁可只说你能熟练说上口的2个。 | 用到了Java里面的集合,JDBC,…等技术,用到了Spring MVC等框架,用技术连接数据库。 |
这部分你风险自己承担,如果可以,不露声色说出一些热门的要素,比如Linux,大数据,大访问压力等。但一旦你说了,面试官就会直接问细节。 | 这个系统里,部署在Linux上,每天要处理的数据量是XX,要求是在4小时,1G内存是的情况下处理完5千万条数据。平均访客是每分钟XXX。 |
3、如何回答项目提问?
1、项目介绍
你觉得你解决的比较有成就感的事情是什么?
-
项目中遇到的最大的困难是什么,怎么解决的,学到了什么?
-
讲一下项目怎么实现的。调研原理,实现功能。
-
有没有遇到什么困难,学习领域知识也能算困难?你遇到过的最困难的事情是什么,你是怎么解决的。
-
你觉得遇到的最大的挑战是什么?
-
描述一个自己比较得意的项目?
为了整合 xxx 业务(S),我承担 xxx 角色,具体负责 xxx (T)。做了 xxx 事情(A),最后产生了 xxx 结果
-
讲讲项目的亮点?
由于项目 xxx 原因(S),我需要进行 xxx 改进(T),然后进行了 xxx 处理(A),最后产出了 xxx 结果,数据对比为 xxx
-
遵循 STAR 法则进行回答,整体这样下来,会显得你很有思考力,且具有行动力,可以给企业创造出价值,这也是面试官评定候选人最关键的指标之一。
- S:背景是什么
- T:目标是什么
- A:面临的问题有哪些,采取了哪些行动
- R:结果如何
标准答案
Q: 在项目中遇到的最大的技术挑战是什么,你是如何解决的?
1.不用担心聊的太细太具体,因为每一个需要解决的技术问题都有非常复杂的实操因素,反而可以通过详尽的沟通体现你确实局别解决问题的能力。
2.有逻辑地讲你是如何一步步解决问题的,可以用时间、空间等不同的顺序框架来拆解,例如最常用的时间顺序:"首先,针对xxx,我进行了xxx;其次,我对xxx进行了xxxx升级。Q:如果需要快速学习一门新的技术或者语言/如果有个项目项目使用了你没有用过的语言或者技术,你将怎么完成?
1.请教身边的前辈、同事该学的重点,学习的经验。制定短期目标和任务;
2.善用搜索引擎查询资料,边看理论,边上手实操;
3.每阶段做学习和review,改进弱项,不断调整偏差Q: 请介绍一下你过去做过的最成功案例/遇到的最大的挑战
1.先介绍事件的大致背景,当时团队遇到的最大的难题是什么;
2.面对这一问题,我是怎么从哪几个方面思考的,做了哪些事情;
3.最后获得了什么结果,要说得很具体。如“单日增粉3000、日均销售额增长35%”
其实这类问题,是在写简历的环节就可以完全准备好的: 按照JD要求,用 超级简历 公式:动词 + 工作内容 +方法 + 结果 来修改你的具体经历,让简历上亮点更明显,HR才会抓着你的优势去跟进提问
2、复盘总结
实习压力大吗?对自己成长满意吗?你实习期间最大的成长是啥?学到啥了?
-
如何面对工作中的压力?
一般来说,当有很多事情需要处理时,我并不会感到压力陡增。但如果其中有对我很重要的事,或者这件事在进行时有很多不确定因素时,我会感到有压力。
这时,我会想一些办法让自己先冷静下来。接下来我会去分析问题所在,下一步要如何做,以及需要谁的帮助。
举个小例子。
ST:之前我在帮助XXX,遇到过一些问题。我第一次XXX怎么了,此时XXX,面对这样的状况,我一下子压力倍增。
A1:我首先想到的是查看XXX,重新准备需要多长时间,以及如果超过截止时间是否有回旋余地。
A2:之后,我联系了XXX,询问如果XXXX会有什么问题,了解到XXX,在此期间更新材料必须提交至XXXX否则会有XXXX风险。
A3:面对这样的情况,我首先申请用XXXX,同时联系XXXX,请她XXXX。为了确保能XXXXXX,我写邮件给对方说明XXXXX,并请求优先处理。
R:最终,经过三方的努力,按时完成了XXXX。
-
对自己成长满意吗?
专业知识上:我学会了XXX的使用。
解决问题的能力:【经验的可复制性】、【能力的可迁移性】,问题识别能力和方案制定/工具生产能力。
工作习惯:通过对工作的总结提炼梳理成文,更加系统的构建自己的知识体系,通过对问题的深入思考梳理成文
-
学到了什么?
与他人交流,突破自身局限,接受众人审视,通过不同视角回答以下问题:
- 造成这样的结果的关键因素有哪些;
- 这些决定性因素是否可以复制/避免;
- 做对了什么?有哪些是亮点?
- 做错了什么?有哪些待改进?
- 你有没有新的思路和做法?
项目复盘以及收获?
- 你觉得之前做的项目还有优化的余地吗,怎么优化(有的,主要看具体需求,比如高并发高可用)
- 项目复盘以及收获?(团队合作上,当过组长组员,协调,配合。 知识技能上,什么不会学什么。)
- 项目遇到事故或者 bug 怎么办?怎么改进?(比如说XXX服务挂了,现场临时组织XXX调试和容灾部署,压力测试临时崩了,修bug和问题)
3、实现细节
- 让你的项目和八股都拥有高性能与高并发,加一点点安全和实现xx需求
- 项目亮点: 新技术,复杂业务的思路,对业务的理解(产品),
- 困难挑战:在XX阶段,遇到了XX问题。调研了XX,XX,发现了XX问题。结合业务特征,采用了XX方案。取得了XX成绩” (价值,意义)。
- 跨域访问,数据库设计,跨端访问,数据持久化,数据安全,token,页面缓存session。 参考
如何防止重复提交:在表单提交阶段,发现了重复点击的问题,巴啦啦~~~
控制请求先后顺序:promise背的很熟,实践的问题也可以套用进去
数据解析以及页面缓存:复杂的数据你如何解析的,页面缓存比如keep-alive。浏览器的缓存,背过的八股文写上去,面试官就有题目问你了,然后你回答的很流利,满分路由懒加载:各种方式都对比一遍
前端的存储方案
断网处理
页面加载的时候发现页面空白
中后台业务组件的封装
数据持久化问题
性能优化中图片是怎么处理的“你这个模块怎么实现的?”
“我这样,这样,再这样。”
“你这样的过程中用到了哪些东西?”
“我用到了这个,这个和那个。”
“详细讲一下这个东西。”
“这个是用来干这事的,在干的过程中要注意,这里,这里和那里。”
“如果已经出现了这里的问题有什么决的方式?”
“这里出现的问题,要这样这样解决。”
“为什么这样,这样可以解决?”
“因为它是这样这样实现的,我这样这样可以避免出现问题。”
“那这样这样的过程中,会出现那样那样的问题吗?”说一下你这个数据库字段为啥是这样设计的,存储结构为啥是这样的,能不能用其他数据结构来存,这样会不会有性能问题,如果有性能问题你打算怎么解决。
4、如何避免低级错误?
1、面试前,你一定要准备,一定要有自信,但也要避免如下的一些情况。
要避免的情况 | 正确的做法 | 原因 |
---|---|---|
回答很简单。问什么答什么,往往就用一句话回答 | 把你知道的都说出来,重点突出你知道的思想,框架 | 问:你SSH用过吗?答:用过。问:在什么项目里用到?答:一个保险项目问:你做了哪方面的事情?答:开发我直接不问了 |
说得太流利 | 适当停顿,边思考边说 | 让面试官感觉你在背准备的东西,这样后面问题就很难 |
项目介绍时什么都说, | 就说些刚才让准备的一些,而且要有逻辑地说 | 会让面试官感觉你思路太乱 |
别太多介绍技术细节,就说你熟悉的技术 | 技术面点到为止,等面试官来问 | 你说到的所有技术要点,都可能会被深问。面试官一般会有自己的面试节奏,如果你在介绍时就太多说技术细节,很有可能被打断,从而没法说出你准备好的亮点。 |
2、一旦有低级错误,可能会直接出局
错误类型 | 导致的后果 |
---|---|
前后矛盾,后面的回答无法证明你的项目描述,比如一开始说用到了Spring MVC,后面没法说出最基本的实现,比如不知道Spring有哪些类,或者没法说出项目的细节。 | 我会怀疑这个项目的真实性,我就会进一步问:数据库用什么,数据量多少?多少人做了多少时间,一旦再出现明显漏洞,比如一个小项目用到非常多的时间,那么就不仅仅是技术问题,而是在面试过程中企图“蒙混过关”的性质了。 |
项目里一定会用到的基本概念性问题都回答不上,Spring的依赖注入概念是什么,怎么用的,或者Hibernate的一对多怎么实现 | 一旦被我发现概念不知道,我就会通过更多问题确认,如果被我确认很弱,这就相当严重,因为技术能力差和技术没用过是两个截然不同的状况,技术没用过会导致直接出局。 |
面试时说出的工作经验和简历上的不一致 | 我会直接怀疑简历是编的,我会让候选人解释,即使是说简历写错了,我也会问比较深入的问题来核实他的技能和能力。 |
简历上的技能描述和回答出来的明显不一致,比如明明是只会简单的Linux,但吹得天花乱坠 | 我会通过一些比较深的问题核实其他技能,找出其他方面吹嘘的水分。所以建议,你可以适当夸张,但别过分,比如你在项目里没搭建框架但平时学习时搭建过,你可以写“XX项目的框架是你搭建的”,但你不能说你是一个架构师,非常了解项目的底层。 |
让面试官感觉你不稳定,很浮躁,比如说话不庄重,或者面试时打扮非常不正规,就穿背心来。 | 即使你技术再好,这个会可能导致你直接出局。我对油嘴滑舌的候选人一般会直接写上不好的评语,这样很难过后面项目经理的面试。我还遇到一个人,简历上工作是半年一换,我问他为什么经常换,他直接说是待遇问题,这个人我是直接Fail掉。 |
明说不能加班,不能出差 | 其实虽然有这一问,但公司里未必真的会加班会出差。但听到这类回答,说明这个人不能承受大压力的工作,或者责任心不强,大多数公司是不会要这种人的。 |
3、你可以引导,但不能自说自话
- 我面试的时候,也会遇到些有准备的人,其实如果你真的想应聘的话,一定要事先准备,这点我能理解,甚至赞同,你只要别露出太明显的痕迹,我不会写上“似乎有准备,没法考察真实技能”这种话,更何况未必每个面试官都能感觉出你准备过。 但你不能凭着有准备而太强势,毕竟面试是面试官主导的。
- 我遇到个别面试的人,他们说话太多,一般会主动扩展,比如我问他数据库用什么,他不仅回答数据库是什么,自己做了什么,甚至顺便会把大数据处理技术都说出来。
- 其实过犹不及,我就会重点考察你说的每个细节,因为我怀疑你说的都是你从网上看的,而不是你项目中用到的,我甚至会直接威胁:“你先和我说实话这个技术你真在项目里用到,我后面会重点考察,一旦被认为你项目里没做,这个性质就是蒙混过关了”,往往这些人会主动坦白。
- 不过话说回来,他如果仅仅说,数据量比较大,但点到为止,不继续说后面的话,我就会深入去问,他自然有机会表达。同时请注意,一般在面试过程中,一旦你亮出加分点,但面试官没接嘴,这个加分点可能就不是项目必备的,也不是他所关注的,当前你就可以别再说了,或者等到你提问题的时候再说。
5、如何通过引导补充亮点?
1、准备些加分点,在介绍时有意提到,但别说全
- 在做项目介绍的时候,你可以穿插说出一些你的亮点,但请记得,不论在介绍项目还是在回答问题,你当前的职责不是说明亮点而是介绍项目,一旦你详细说,可能会让面试官感觉你跑题了。
- 所以这时你可以一笔带过,比如你可以说,“我们的项目对数据要求比较大,忙的时候平均每小时要处理几十万条数据”,这样就可以把面试官引入“大数据”的方向。
- 你在面试前可以根据职位的需求,准备好这种“一笔带过”的话。比如这个职位的需求点是Spring MVC框架,大数据高并发,要有数据库调优经验,那么介绍以往项目时,你就最好突出这些方面你的实际技能。
- 再给大家举个例子,比如Java虚拟机内存管理和数据库优化是绝大多数项目都要遇到的两大问题,大家都可以在叙述项目经验时说,在这个项目里,我们需要考虑内存因素,因为我们的代码只允许在2G内存环境中运行,而且对数据库性能要求比较高,所以我们经常要监控优化内存和数据库里的SQL语句。这样当面试官深入提问时,就能抛出自己准备好的虚拟机内存优化和数据库优化方面的说辞。
- 实在不行,你也可以说**“我除了做开发,也做了了解需求,测试和部署的工作,因为这个项目人手比较少,压力比较大”**,这样你也能展示你有过独挡一面的经历。
- 我在面试过程中,一旦听到有亮点,就会等到他说好当前问题后,顺口去问,一般技术面试最多办半小时,你把时间用在回答准备好的问题点上的时候,被问其他问题的时间就会少了。
2、不露痕迹地说出面试官爱听的话
关键点 | 说辞 |
---|---|
能考虑到代码的扩展性,有参与框架设计的意识 | 我的项目XX保险项目,用到SSH技术,数据库是Oracle,(这个是铺垫),开发的时候,我会先和项目经理一起设计框架,并参与了框架的构建,连接数据库的时候,我们用到了DAO,这样做的理由是,把SQL语句封装到DAO层,一旦要扩展功能模块,就可以不用做太多的改动。 |
有调优意识,能通过监控发现问题点,然后解决 | 在开发阶段,我就注意到内存的性能问题和SQL运行的时间问题,在压力测试阶段,我会通过xx工具来监控内存和数据库,发现待提升的代码点,然后通过查资料来优化。最后等项目上线后,我们会部署监控系统,一旦发现内存和数据库问题,我们会第一时间解决。 |
动手能力很强,肯干活,会的东西比较多,团队合作精神比较好 | 在项目里,我不仅要做开发的工作,而且需要自己测试,需要自己根据一些日志的输出到数据库或Java端去debug,当我开好一个模块时,需要自己部署到Linux上测试。或者,一旦遇到问题,如果是业务方面的,我会及时和项目经理沟通,如果是技术方面的,我会自己查资料,如果是测试方面的,我会及时和测试的人沟通。 |
责任心比较强,能适应大压力的环境 | 被问“你如果在项目里遇到问题怎么办?”回答:遇到问题我先查资料,如果实在没法解决,不会拖,会及时问相关的人,即使加班,也会在规定的时间内解决。 |
有主见,能不断探索新的知识 | 在项目里,我会在保证进度的前提下和项目经理说我的想法,提出我的解决方案。在开发过程中,我会先思考一下,用一种比较好的方式,比如效率最高的方法实现。另外你要找机会说出:平时我会不断看一些新技术(比如大数据Hadoop),会不断深入了解一些框架和技术的实现底层。 |
3、一定要主动,面试官没有义务挖掘你的亮点
- 我去面试人家的时候,往往会特别提问:**你项目里有什么亮点?**或者你作为应聘者,有什么其他加分项能帮你成功应聘到这个岗位。即使这样问,还有些人直接说没有。
- 我这样问已经是处于角色错位了,作为面试者,应当主动说出,而不是等着问,但请注意,说的时候要有技巧,找机会说,通常是找一些开放性的问题说。
- 比如:在这个项目里用到了什么技术?你除了说一些基本的技术,比如Spring MVC,Hibernate,还有数据库方面的常规技术时,还得说,用到了Java内存管理,这样能减少对虚拟机内存的压力,或者说用到了大数据处理技术等。也就是说,得找一切机会说出你拿得出手的而且当前也非常热门的技术。
- 或者找个相关的问题做扩展性说明,比如被问到:你有没有用到过一对多和多对多?你除了说基本知识点以外,还可以说,一般我还会根据需求适当地设置cascade和inverse关键字,随后通过一个实际的案例来说明合理设计对你项目的帮助,这样就能延伸性地说明你的技能了。相反如果你不说,面试话一定会认为你只会简单的一对一和一对多操作。
- 面试的时候,如果候选人回答问题很简单,有一说一,不会扩展,或者用非常吝啬的语句来回答我的问题,那么我一般会给机会让他们深入讲述(但我不敢保证不是每个面试官都会深入提问),如果回答再简洁,那么也会很吝啬地给出好的评语。
- 记住:面试官不是你的亲戚,面试官很忙,能挖掘出你的亮点的面试官很少,而说出你的亮点是你的义务。
- 我在面试别人过程中,根据不同的情况一般会给出如下的评语。
- 1 回答很简答,但回答里能证明出他对框架等技术确实是做过,我会在评语里些“对框架了解一般,不知道一些深层次的知识(我都问了多次了你都回答很简答,那么对不起了,我只能这么写,或许你确实技术很强,那也没办法,谁让你不肯说呢?)”,同时会加一句**“表达能力很一般,沟通能力不强”**,这样即使他通过技术面试,后面的面试他也会很吃力。
- 2 回答很简单,通过回答我没法验证他是在项目里做过这个技术,还是仅仅在平时学习中学过这个技术。我就会写“在简历中说用过XX技术,但对某些细节说不上来,没法看出在项目里用到这个技术”,如果这个技术是职务必需点,那么他通过面试的可能性就非常小。
- 3 回答很简单,而且只通过嗯啊之类的虚词回答,经过提醒还这样,我会敷衍几句结束面试,直接写**“技术很薄弱,没法通过面试”**。
- 4 虽然通过回答能很好地展示自己的技能,但逻辑调理不清晰,那么我会让他通过技术面试,但会写上**“技能很好,但表达能力一般(或有待提高)**,请后继面试经理斟酌”。这样通过后继综合面试的机会就一般了,毕竟综合面试会着重考察表达能力交往能力等非技术因素
- 不管怎样,一旦回答简单,不主动说出你的擅长点,或没有条理很清楚地说出你的亮点,就算我让你通过面试,也不会写上“框架细节了解比较深,数据库应用比较熟练”等之类的好评语,你即使通过技术和后面的综合面试,工资也是比较低的。
参考资料:1,《 Java Web轻量级开发面试教程》,《Java核心技术及面试指南》
附:如何解决未知的问题 & 工作能力成长路线
如何解决未知的问题?(STAR)——科研与实际工作能力的一部分
在学校里,尤其是本科阶段,我们总是不断地学习知识和技能,而需要解决的问题,就是考试,所以只需要记忆就行了。但是读研读博过程中的科研,以及现实生活工作中需要解决的问题,往往却都是未知的。
- 弄清楚问题到底是什么?
- 背景是什么,场景是什么,你的角色是什么?
- 困扰你的难点有哪些,可以列出来,逐个突破。
- 有什么特殊的地方可以针对性的优化(比如算法竞赛中的特殊数据,小的数据范围)
- 提出想法?
- 自己的想法。
- 查资料,问别人。
- 理论与实验 验证
- 理论验证成本低,思路推导,公式推导
- 实验验证成本高,写代码或尝试
- 当前的结论与成果
- 用相关的指标,客观数据,体现出自己的技术水平。
- 成长收获与未来
- 展望将来的研究计划和展望
- 个人能力的提升情况,比如学到了什么技能?
- 模式化,有哪些东西是可以复用的,以后的场景可以接着用。
工作能力成长路线
-
1、萌新,指导下完成常规工作。
- 在受到指导的情况下,为明确且简单的开发问题提供解决方案和设计,并按照规定的工作流程进行常规工作。以达到既定目标为目标完成任务。具备完成工作所需的基础知识和技能,能够解决常见的专业问题。
-
2、有经验,把事情做有效。
- 干好简单的事,独立做好明确的事,把事情做得有效。
- 在有限的指导下,能够完成指定的开发任务,并对交付结果的质量承担责任。
- 能够独立完成复杂的设计和开发任务,合理选择适合的方案,并能主动发现和反馈问题。在高质量完成复杂开发的同时,效率也有显著提升。
- 能够独立设计和开发复杂模块,选择合适的方案并进行创新,同时能够进行短期规划。能够准确定位和识别问题,并高效、高质量地完成任务目标,同时能够提出改善和优化现有方案的思路。
- 具备工作方向所需的基础知识,能够运用现有的工具和资源完成任务。了解工作方向上的业务经典解决方案,并能熟练应用相关技术方案。熟练掌握完成工作所需的知识和技能,初步应用相关体系和流程。
- 对工作方向的框架、原理和适用场景有一定了解,了解业界最佳解决方案,并能合理选择技术。初步应用相关体系和流程,能够发现流程中存在的问题。进行最优的技术选型。精通应用体系和流程,能够解决较为明确的复杂问题。
-
3、贡献者,常规事务独当一面 & 确定的事尽在掌握。(1001+)
- 以高效和高质量完成需求开发为目标,同时超出预期结果。可以独立或与他人合作完成任务,负责策划、推动和解决较复杂项目或功能模块的问题。
- 在复杂系统中,能够发现业务痛点,并提出全局优化的解决方案,满足系统、业务和问题需求,并能主导攻关。同时能够制定中短期规划,有节奏有章法地高效、高质量地完成需求迭代和系统开发,超出预期结果。在解决一定影响范围的复杂问题上推动流程优化和效率提升。
- 具备专业深度,了解工作技术方向上的主流解决方案,并能清楚地分析其适用性和局限性。对专业领域的具体问题有独立判断能力,能提出有效的解决方案。
- 在相关领域中具备专业精深度,熟悉优秀实践,能指导新人,具备系统性思考和业务设计能力,能够从策略理解到目标拆解和执行达成,追求卓越。
-
4、主导者,统筹规划 & 运筹帷幄
- 在大型复杂项目中,具备领导能力,能够负责方案设计、评审,并制定中长期规划。能够有效解决和规避业务,对业务结果产生直接影响。
- 在实施过程中,积极发掘和协调内外部资源,高效地实现目标。在专业领域拥有全面的业务知识,能够领导和组织他人完成大型项目,推动资源整合和协同,高效地实现目标,对业务结果结果产生直接贡献。
- 具备专业深度,能够综合思考,对技术领域有广泛而深入的理解,紧跟业界的最新动态和趋势。能够结合业务需求,对核心部分进行优化或定制,以满足未来的业务需求。
-
5、领域专家,攻克瓶颈 & 破局未来(1100+)
- 解决长期未能解决的复杂问题,在大型复杂系统中,以创新的方式解决瓶颈问题,对业务结果的达成做出重大贡献,并能合理应对和规避业务。提出的解决方案达到业内水平,整体提升所处领域的专业水平。
- 具备对行业和专业领域深入、广泛、高度的理解,掌握专业领域内的最新动态和趋势,并积极主动地进行探索,能够进行全局和前瞻性思考。通过沉淀的工具方法深入了解事务本质,或者创造并制定新的流程体系。
- 解决公司面临的最具挑战性的问题,以长远的眼光为基础,提供具有颠覆性的解决方案,帮助公司在中长期内建立竞争优势,实现显著的业务和经营突破。
相关文章:

【项目】如何在面试中介绍自己的项目经验(附如何解决未知的问题成长路线)
【项目】如何在面试中介绍自己的项目经验(附如何解决未知的问题&成长路线) 文章目录 1、为什么要准备项目介绍?2、如何准备一份好的项目介绍?3、如何回答项目提问?4、如何避免低级错误?5、如何通过引导…...

解决Selenium元素拖拽不生效Bug
前几天在使用Selenium进行元素拖拽操作时,发现Selenium自带的元素拖拽方法(dragAndDrop())不生效,网上的回答也是五花八门,比较混乱,尝试了以下几种方法均无法解决。 方案1:通过dragAndDrop()方…...

提示工程中的10个设计模式
我们可以将提示词定义为向大型语言模型(Large Language Model,LLM)提供的一个查询或一组指令,这些指令随后使模型能够维持一定程度的自定义或增强,以改进其功能并影响其输出。我们可以通过提供细节、规则和指导来引出更有针对性的输出&#x…...

提高网站安全性,漏洞扫描能带来什么帮助
随着互联网的蓬勃发展,网站已经成为人们获取信息、交流思想、开展业务的重要平台。然而,与之伴随的是日益严重的网络安全问题,包括恶意攻击、数据泄露、隐私侵犯等。 为了保障网站的安全性,提前做好网站的安全检测非常有必要&…...

不要再使用 @Builder 注解了!有深坑呀!
曾经,我在《千万不要再随便使用 lombok 的 Builder 了!》 一文中提到 Builder 注解的其中一个大坑会导致默认值失效! 最近阅读了 《Oh !! Stop using Builder》 发现 Builder 的问题还不止一个,Builder 会让人误以为是遵循构建器…...

《UE5_C++多人TPS完整教程》学习笔记31 ——《P32 角色移动(Character Movement)》
本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P32 角色移动(Character Movement)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者&…...

怎么使用jwt,token以及redis进行续期?
怎么使用jwt,token以及redis进行续期? 什么是jwt? 什么是token? 结合 JWT、Token 和 Redis 进行续期的一般步骤: 生成 JWT: 用户登录成功后,服务器生成一个 JWT,并返回给客户端。 import io.jsonwebtok…...

AI日报:北大Open Sora视频生成更强了;文心一言可以定制你自己的声音;天工 SkyMusic即将免费开放;
🤖📱💼AI应用 北大Open Sora视频生成更强了!时长可达10秒,分辨率更高 【AiBase提要:】 ⭐️ Open-Sora-Plan v1.0.0模型发布 显著提升视频生成质量和文本控制能力 ⭐️ 支持华为昇腾910b芯片,提升运行效率和质量。 ⭐…...

替换空格(替换特定字符)
😀前言 在字符串处理中,经常会遇到需要替换特定字符的情况。本文将介绍一道经典的字符串替换问题:将字符串中的空格替换成 “%20”。我们将探讨一种高效的解决方法,通过倒序遍历字符串来实现原地替换,避免额外空间的开…...

ctfshow web入门 php特性 web123--web139
web123 必须传CTF_SHOW,CTF_SHOW.COM 不能有fl0g 在php中变量名字是由数字字母和下划线组成的,所以不论用post还是get传入变量名的时候都将空格、、点、[转换为下划线,但是用一个特性是可以绕过的,就是当[提前出现后,…...

pta L1-002 打印沙漏
L1-002 打印沙漏 分数 20 全屏浏览 切换布局 作者 陈越 单位 浙江大学 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ************ *****所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中…...

【简单讲解下PHP AES加解密示例】
🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...

设计模式总结-外观模式(门面模式)
外观模式 模式动机模式定义模式结构外观模式实例与解析实例一:电源总开关实例二:文件加密 模式动机 引入外观角色之后,用户只需要直接与外观角色交互,用户与子系统之间的复杂关系由外观角色来实现,从而降低了系统的耦…...

LiveGBS流媒体平台GB/T28181常见问题-系统服务日志如何配置日志个数日志路径日志时长web操作日志操如何配置保留天数及过滤
LiveGBS系统服务日志如何配置日志个数日志路径日志时长web操作日志操如何配置保留天数及过滤 1、系统服务日志1.1、日志目录1.2、配置日志文件个数及记录时间1.3、配置日志文件路径 2、Web 操作日志2.1、配置保留天数2.2、配置不记录操作日志2.1.1、不记录所有2.1.2、不记录指定…...

es6:set()和weakset()
一、Map() 1.1 简介 ES6 提供了 Set 数据结构,它类似于数组,但是值是唯一没有重复的。 我们可以通过 new Set()去创建它。 1.2. Set的创建、设置与获取 <script> const set new Set(); console.log(set.add(1)); //Set { 1 } …...

C#仿OutLook的特色窗体设计
目录 1. 资源图片准备 2. 设计流程: (1)用MenuStrip控件设计菜单栏 (2)用ToolStrip控件设计工具栏 (3)用StatusStrip控件设计状态栏 (4)ImageList组件装载树节点图…...

Jmeter的使用
Jmeter的使用 1.Jmeter简介 以下内容来自Jmeter中文网http://www.jmeter.com.cn/jieshao,很好的解释了Jmeter的作用: Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试…...

【蓝桥杯第十届省赛B】(部分详解)
特别数的和 #include <iostream> #include <string> using LLlong long; using namespace std;int main() {LL n;cin >> n;LL cnt 0;for (LL i 1; i < n; i) {string s to_string(i);for (LL j 0; j < s.size(); j) {if (s[j] 2 || s[j] 0 || s…...

计算机研究生规划
一、计算机研究生技术栈 两条腿走路: 左侧工程实践能力:要掌握python编程语言,它和机器学习、神经网络(这两门几乎是必须掌握的技能)的学习有很大关系 右侧学术创新能力 二、编程语言能力提升 左边基础,右边教你写…...

针孔相机、鱼眼相机、全景相机
先进性简述,后续慢慢会补充1. 针孔相机: 针孔相机是一种基于针孔成像原理的传统相机,它使用一个非常小的孔径(即“针孔”)来限制光线进入相机的方式。 这种相机通常具有简单的结构,由一个孔径较小的光学元…...

HTML5+CSS3+JS小实例:圣诞按钮
实例:圣诞按钮 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0&…...

【深度学习基础】
打基础日常记录 CNN基础知识1. 感知机2. DNN 深度神经网络(全连接神经网络)DNN 与感知机的区别DNN特点,全连接神经网络DNN前向传播和反向传播 3. CNN结构【提取特征分类】4. CNN应用于文本 RNN基础1. RNN的本质 词向量模型word2Vec1. 自然语言…...

银行业架构网络BIAN (Banking IndustryArchitecture Network)详细介绍
BIAN ( The Banking Industry Architecture Network) 是一个业界多方协作的非营利性组织,由全球领先银行、技术提供商、顾问和学者组成,定义了一个用以简化和标准化核心银行体系结构的银行技术框架。这一框架基于面向服务的架构 (SOA) 原则,银…...

[尚硅谷 flink] 基于时间的合流——双流联结(Join)
文章目录 8.1 窗口联结(Window Join)8.2 **间隔联结(Interval Join)** 8.1 窗口联结(Window Join) Flink为基于一段时间的双流合并专门提供了一个窗口联结算子,可以定义时间窗口,并…...

怎样恢复已删除的照片?教你3个方法,一键恢复!
很多人喜欢以拍照的形式记录生活,手机里的照片就很容易堆积成山,但当内存不够用时就不得不选择删除。可是这些美好的照片始终是很多人心中抹不去的记忆,那么该怎样恢复已删除的照片呢?下面几招,教你一键恢复࿰…...

植物糖基转移酶数据库-23年-地表最强系列-文献精读-6
pUGTdb: A comprehensive database of plant UDP-dependent glycosyltransferases pUGTdb:植物UDP依赖糖基转移酶的全面数据库 一篇关于植物糖基转移数据库的综述,地表最强,总结的最全面的版本之一,各位看官有推荐请留言评论区~…...

虚拟机打不开
问题 另一个程序已锁定文件的一部分,进程无法访问 打不开磁盘“G:\centeros\hadoop104kl\hadoop100-cl2.vmdk”或它所依赖的某个快照磁盘。 模块“Disk”启动失败。 未能启动虚拟机。 原因 前一次非正常关闭虚拟机导致.lck 文件是VMWare软件的一种磁盘锁文件&…...

MySQL数据库版本为5.5.62,时间戳超出2038年1月19日的解决方案
MySQL数据库版本是 5.5.62,已设置字段的类型为BIGINT,使用FROM_UNIXTIME()函数来转换时间戳,返回NULL。 SELECT FROM_UNIXTIME(1617970800)SELECT FROM_UNIXTIME(2185743121)MySQL数据库版本为5.5.62,已设置字段的类型为BIGINT&a…...

C++20 semaphore(信号量) 详解
头文件在C20中是并发库技术规范(Technical Specification, TS)的一部分。信号量是同步原语,帮助控制多线程程序中对共享资源的访问。头文件提供了标准C方式来使用信号量。 使用环境 Windows:VS中打开项目属性,修改C语…...

【简单讲解下Lisp的学习历程】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...