document.writeln("");

手机app软件开发定制_手机app软件开发定制_最近集中面试JAVA开发有感,提点建议

文章正文
2021-04-02 02:43

  近期因为数据中台的基础框架已经完成,手机app软件开发定制_手机app软件开发定制_开始策划完成林业,农业多个子业务系统,所以对JAVA及全栈开发有很急切的需求。我密集面试了若干位Java后端的候选人,工作经验在1到10年间,新老程序员都有用武之地

  我们一般来说,对超过5年的工程师就不进行标准面试题的考察,app软件开发定制外包_app软件开发定制外包_而转向工作方法,系统架构的考察,经验低于3年的则会回答一些标准的技术题。

  但现实情况是,大多数人可能面试前没准备,或准备方法不得当。要知道,我们平时干活更偏重于业务,东莞软件开发定制_东莞软件开发定制_不可能大量接触到算法,数据结构,底层代码这类面试必问的问题点,换句话说,面试准备点和平时工作要点匹配度很小。

  作为面试官,我只能根据候选人的回答来决定面试结果。不过,软件开发网软件定制开发_软件开发网软件定制开发_与人方便自己方便,所以我在本文里,将通过一些常用的问题来介绍面试的准备技巧。大家在看后一定会感叹:只要方法得当,准备面试第一不难,第二用的时间也不会太多。

  对于3年以下的工程师,我的标准其实不复杂:

  第一能干活(前端后端全栈工作能做是最好的),软件开发定制的公司_软件开发定制的公司_第二Java基础要好(所以优选1,2本科班毕业的工程师),第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面的。

  框架是重点,但别让人感觉你只会山寨别人的代码

  在面试前,我会阅读简历以查看候选人在框架方面的项目经验,定制系统软件开发_定制系统软件开发_在候选人的项目介绍的环节,我也会着重关注候选人最近的框架经验,目前比较热门的是SpringBoot SpringCloud Vue。

  一般工作在5年内的候选人,大多仅仅是能“山寨”别人的代码,也就是说能在现有框架的基础上,照着别人写的流程,重庆定制软件开发_重庆定制软件开发_扩展出新的功能模块。比如要写个股票挂单的功能模块,是会模仿现有的下单流程,然后从前端到后端再到数据库,依样画葫芦写一遍,最多把功能相关的代码点改掉。其实我们每个人都这样过来的,但在面试时,手机软件开发定制_手机软件开发定制_如果你仅仅表现出这样的能力,就和大多数人的水平差不多了,在这点就没法体现出你的优势了。

  我们知道,大多数项目都会有痛点。比如数据库性能差,或者业务模块比较复杂,并发量比较高,合肥定制软件开发_合肥定制软件开发_用Spring MVC里的Controller无法满足跳转的需求。所以我一般还会主动问:你除了依照现有框架写业务代码时,还做了哪些改动?

  我听到的回答有:增加了Redis缓存,以避免频繁调用一些不变的数据。或者,在MyBitas的xml里,select语句where条件有is null,即这个值有就增加一个where条件,定制oa软件开发_定制oa软件开发_对此,会对任何一个where增加一个不带isnull的查询条件,以免该语句当传入参数都是null时,做全表扫描。或者,干脆说,后端异步返回的数据量很大,时间很长,我在项目里就调大了异步返回的最大时间,或者对返回信息做了压缩处理,以增加网络传输性能。

  对于这个问题,我只关心回答符不符逻辑,我不在乎听到什么回答。一般只要答对,我就会给出“在框架层面有自己的体会,有一定的了解”,否则,我就只会给出“只能在项目经理带领下编写框架代码,对框架本身了解不多”。

  适当了解些分布式

  此外,在描述项目里框架技术时,下面我列些大家可以准备的分布式技术。

  

  这方面,你可以准备如下的技能。

  1、SQL高级方面,比如group by, having,左连接,子查询(带in),行转列等高级用法。

  2、建表方面,你可以考虑下,你项目是用三范式还是反范式,理由是什么?

  3、尤其是优化,你可以准备下如何通过执行计划查看SQL语句改进点的方式,或者其它能改善SQL性能的方式(比如建索引等)。

  4、如果你感觉有能力,还可以准备些MySQL集群,MyCAT分库分表的技能。比如通过LVS+Keepalived实现MySQL负载均衡,MyCAT的配置方式。同样,如果可以,也看些相关的底层代码。

  哪怕你在前三点表现一般,那么至少也能超越将近一般的候选人,尤其当你在SQL优化方面表现非常好,那么你在面试高级开发时,数据库层面一定是达标的,如果你连第四点也回答非常好,那么恭喜你,你在数据库方面的能力甚至达到了初级架构的级别。

  Java核心方面,围绕数据结构和性能优化准备面试题

  Java核心这块,网上的面试题很多,不过在此之外,大家还应当着重关注集合(即数据结构)和多线程并发这两块,在此基础上,大家可以准备些设计模式和虚拟机的说辞。

  下一个话题再进行描述

文章评论