think in java interview-高级开发人员面试宝典(一)
“生死六重门”
无论你是在职,非在职,高级工程师,工程师,架构师,如果你正在面试阶段,请看完此文!
相信这篇文章对你的职业生涯和阶值观会造成重大的改变!
如果你是一名PM或者是管理者正在物色合适的开发人选,那么我相信这篇文章同样会在在你考虑如何挑选技术型人材上给你带来重大的帮助。
本系列不适合想去应聘PM,管理路线的人士!!!
作为一名技术型人材由其是程序员,用什么可以恒量自己是否合格或者我们怎么去恒量一个程序员是否质深、是否合格?
比如说:他可以适合一般的软件工程师岗位,还是适合高级工程师岗位,还是架构师、系统分析员这样的岗位呢?
作为一名JAVA开发人员来说,JAVA涉及到的面太广了,我们就拿企业级开发人员即J2EE开发人员的基本功来说事吧!
在面试前先问自己5个问题:
1. 我想要什么
2. 我会什么
3. 目前的市场需要什么
4. 目前我还缺什么
5. 如何去补缺
一个J2EE高级开发人员需要具备些什么技能?
或许你会说:我会SSH,我会工作流,我会JQuery, ExtJS,我参加过数个大型项目,我带过5,6个人的队,我有SCJP, SCEA证书,我工作经验达5年。
我会告诉你,其实你是Nothing,Nothing!!!
我这个Nothing的前提是指好的公司,好的项目组招人时的要求!!为什么这么说?
这样告诉你吧,越是好的公司,越是好的项目组在招开发人员时他们面的东西越是底层。
本人结合以前在公司负责JAVA开发人员的招聘与策划,和对新进JAVA人员的培训经验即自己本身近10年来50多次的面试经历总结,发觉:
越是工作年限长的人,技术越是倒退
尤其到了3年,5年,7年的工作经验的高级开发工程师群体们,往往发现自己在择业上碰到了一个瓶劲,上不上去,跳槽时工资能涨个1000,2000已经到顶了,几乎不太可能达到他们本身期望的的30%-50%的涨幅。这些原因主要源自于”基础”。
大部分人基础全忘了,或者以前做过几年程序,但是后面转向管理,TL等角色后,平时开发的时间下降到只占到本身工作的30-50%这样的量了;
或者有很多一批人,或者由于工作、项目等其它的原因,没有接触过一些正规的,系统化的知识;
或者平时不善于总结,只求我用技术时就google, copy & paste,忘记了代码基本功了;
您别不信,来,我们就来试一下
不许查网络,你现在就处在面试官面前,面试官问你这么一个问题:
面试官: 你有没有平时自己覆写过hashcode, equals两个方法?
回答:我写过的(可能很多人以前用的是eclipse或者是myeclipse里的自动生成器
面试官:怎么写?
回答 :。。。。。。(大致讲出来什么原理)
面试官:你为什么要覆写hashcode & equals方法
回答:(如果准备过的人能够回答的出这个问题)
面试官:如果说两个对象equals它们的hashcode是否一定相同?如果两个对象的hascode相同它们一定equals吗?
回答:70%以上的人会挂在这个问题上
面试官:你知道在写hashcode时为什么要使用一个31这样的数,我用100,11,17是不是一样呢?有什么不一样的地方呢?
到此为之,基本都挂了(如果在没有网络的情况下)
你看到这边或许会说:come one,有eclipse代码生成器,这个没必要。
OK,我们再来:
面试官:Oracle中的index有bitmap, btree两种索引,请比较它们
回答:70-80说自己Oracle用了3,4年的人首先就不知道这个bitmap和btree是什么,更无从谈起比较了
以上两道问题,可以作为一个面试官判断你是否在一直写代码和是否真正熟悉oracle的标准,可能因为这两道题,你就挂了,面试官不愿意再和你谈下去了。
真的,这两道问题其实基础了不能再基础了,就和你不会1+1=2一样,你说“我熟练掌握四则运算”是一个道理。
记住,越是好的公司,越是好的项目,面试的问题就越是底层,IBM, eBay, HP, 百度,MS,1号店,阿里巴巴,Oracle,starcite等都是这样。
一般,一个高级JAVA开发人员的面试,其实是分成3个部分
一、基础考核
二、J2EE相关知识和框架以及J2EE相关性能调优等的考核
三、综合考核,即给你1-2个CASE,让你说说你的设计和想法
其中,最难过的就是这个基础。
这个基础中,其实再可以分为四个部分的考核:
第一部分:笔试,45-60分钟笔试卷,基本都是多选
第二部分:SQL部分,一般是数据库基础,SQL统计函数等的写法是肯定逃不掉的
第三部分:然后是1-2道的问答类也可以是设计模式方面的题
第四部分:放入一道智力题(ebay, Oracle, MS, 百度)很喜欢干这种勾当
有的公司也会把这四部分都放在笔试题里,有的则会加上多线程,算法变成6道问答直接让面试者在面试时给面试者一些白纸,然后就此一问一答。
像一些外资类公司,会加入一道"电话面试“关,一般在30分钟,过了电话面试再去他们公司本部,然后就是3轮的f2f的面试,最后再和主管谈,HR谈,一般6轮面试是需要的。
这边请记住,这6轮面试9成的可能性都是全英语面试。。。。。。
很多搞IT的,首先英语本身没有重视,有的不能够很好的交流,基础又丢了不少,那基本这样的面试都会被挂,这也是为什么有些人总觉得这些大公司怎么怎么好,怎么怎么难进!
其实不然,掌握了技窍,要通过这样的面试,易入反掌,因为你发觉吗,一般人都是伤在基础部分的面试,这关过了基本后面都很好过的,所以我们把基础部分4个部分的面试,即:
JAVA基础+SQL+设计模式+2EE+算法+智力题,总结成”6道题“,别看看这些都是基础,如果真的让你处在面试官面前时,你不能查GOOGLE,没有eclipse,相信90%的人都会挂掉。
这”6道题“其实就是考核一个高级开发人员是否真正适合高级开发人员岗位的标准,也是一个真正做技术的人必须要具备的能力,没有了这个基础,你的一切,你的工作经验,你的简历再漂亮,也都是浮云。
有些人会说,我能达这6个部分的50%左右的能力,有些人能达到70%,那有些面试官就会觉得:这个人我可以用了,只是招进来后砍砍价吧。
试问,你愿意被人砍价吗?对吧,被人砍掉2-3K,你不疯了,如果你工资本身就4,50万被砍个2,3K也无所谓,大部分人都是5K冲8K,更多的是8K冲13,15或者是12,15想冲20k的人,那么,我告诉你,你就必须,对,是必须这”6道题“至少,这边看清了哦,是至少能够回答到90%,如果是英语面试你还要准备全英语面试哦!!!
那么,我们说为什么一个企业要这么去考核一个开发人员呢?
首先,对于企业来说,招一个高级开发人员,是不容易的,中国人,做什么都喜欢一哄面起,96年房地产发展时,短短1,2年内到处都是房地产公司,设计所,设计公司,CAD盛行一时。
2000年初,IT开始盛行,这个更猛,到处都是IT公司,都是IT人员,学个IT就高档了,学个IT就高技术了,搞得连在6层楼居民住宅中租个2室户也能开个IT公司了。
从业人数一庞大,就造成了鱼龙混杂,层次参差不齐。
于是SSH满天飞,大有
“练好STRUTS,HIBERNATE,SPRING,货卖帝王家”的感觉,嘿嘿,你别不喜爱看,现在的市场还真TMD的是这个样。
但是,事实摆在那边,你要想进一个好的公司,要被一个好的项目组,你的工作想要有价值,可以学到真正知识、煅练到能力的项目、TEAM中去,你就得过这6道关,所以,无论你觉得现在如何,或者觉得不爱看我写的这些或者觉得“我这样挺好呗”,但你就是不能否认这6道关是摆在那边的,它是你提高一个层次的拦路虎,不打掉它,你永远上升不了。
啊。。。或许这就是许多人到了后来选择走管理的道路的原因吧,这也或许是中国的IT至所以还停留在初级阶段的原因吧,唉。。。中国式的一夜暴富梦想充斥着搞IT人们的头脑,建筑在沙滩上的城堡总有一天会倒塌。。。。。。
come on MAN!! 又来了,老套了,不好意思,发发牢骚。
下面我们就要讲如何来过这六道关,一道道我们来过,任何一个以技术为终生目标的开发人员,这些基础,其实不是通过看了我这篇文章,您临终抱一下佛脚就可以抱得出的,我告诉你,抱不出的,就算你死记硬背了我在这系列文章中提到的近百道例题,你如果不是真正把它们做为你一直需要修练的基本功的话你到头来还是要露馅的。
这就和我上面用1+1=2都不知道何谈四则运算是一个道理,这就和练武功一样,奇材很少,所有人都是从练马步开始的。
下面我们将慢慢来谈“面经”。
我这一阵超忙,小孩小照顾起来不易,工作上又是做的研发,没有时间概念,如果更新不及时,还往大家抱歉!
think in java interview-高级开发人员面试宝典(一)的更多相关文章
- [置顶] think in java interview-高级开发人员面试宝典(二)
从现在开始,以样题的方式一一列出各种面试题以及点评,考虑到我在前文中说的,对于一些大型的外资型公司,你将会面临全程英语面试,因此我在文章中也会出现许多全英语样题. 这些题目来自于各个真实的公司,公司名 ...
- [置顶] think in java interview-高级开发人员面试宝典(一)
“生死六重门” 无论你是在职,非在职,高级工程师,工程师,架构师,如果你正在面试阶段,请看完此文! 相信这篇文章对你的职业生涯和阶值观会造成重大的改变! 如果你是一名PM或者是管理者正在物色合适的开发 ...
- [置顶] think in java interview-高级开发人员面试宝典代码示例
下载资源地址为: http://download.csdn.net/detail/lifetragedy/6379755 这是think in java interview中的代码示例,包括JAVA基 ...
- [置顶] think in java interview-高级开发人员面试宝典(八)
面经出了7套,收到许多读者的Email,有许多人说了,这些基础知识是不是为了后面进一步的”通向架构师的道路“做准备的? 对的,你们没有猜错,就是这样的,我一直在酝酿后面的”通向架构师的道路“如何开章. ...
- [置顶] think in java interview-高级开发人员面试宝典(三)
收集自Oracle公司的10次(60道)电话面试全部问答(英语) Q: What environment variables do I need to set on my machine in ord ...
- [置顶] think in java interview-高级开发人员面试宝典(七)
上两周研发任务太紧了,所以担搁了一下,我们继续我们的面试之旅. 下面是一个基于图书系统的15道SQL问答,供大家参考 问题描述:本题用到下面三个关系表:CARD 借书卡. CNO 卡号,N ...
- .NET方向高级开发人员面试时应该事先考虑的问题
(澄清一下,我发帖的目的不是用来专门给人评价这些问题的好坏的,实际上我所在 的公司就考察这些问题.而能够基本上答出来的可以说百里挑一.如果各位觉得这些问题很简单,那么基本上在.NET面试环节就没有什么 ...
- Java高级开发工程师面试笔记
最近在复习面试相关的知识点,然后做笔记,后期(大概在2018.02.01)会分享给大家,尽自己最大的努力做到最好,还希望到时候大家能给予建议和补充 ----------------2018.03.05 ...
- 近期Java高级开发岗面试总结
原文出处:公众号:编程大道 作者:walking 近期Java高级开发岗面试总结 哈喽大家好,我是walking,这是我的公众号:编程大道. 很久没和大家见面了,文章更新的速度略有延后.这个公众号断断 ...
随机推荐
- redis集群管理--sentinel
什么是sentinel? Sentinel(哨兵)是用于监控redis集群中Master状态的工具,是Redis 的高可用性解决方案,sentinel哨兵模式已经被集成在redis2.4之后的版本中. ...
- django+channels+dephne实现websockrt部署
当你的django项目中使用channels增加了websocket功能的时候,在使用runserver命令启动时,既可以访问http请求,又可以访问websocket请求.但是当你使用uWSGI+n ...
- 第3.3节 强大的Python列表
一. 列表切片操作补充 列表切片支持所有序列切片的方法,以倒序切片和步长大于1的情况再举例验证一下: l=[1,2,3,4,5] l[::2] #结果[1, 3, 5] l[-1::2] #结果[5] ...
- PyQt(Python+Qt)学习随笔:QLineEdit行编辑器功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 QLineEdit部件是一个单行文本编辑器,支持撤消和重做. ...
- PyQt(Python+Qt)学习随笔:QTableWidgetItem项操作相关的flags、isSelected、checkState方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget中项操作相关的属性包括是否可用.是否可选中.是否可编辑.是否可复选.是否选中 ...
- 题解-CF1239D Catowice City
CF1239D Catowice City 有 \(n\) 个人和 \(n\) 只猫.有 \(m\) 对人猫友谊,即第 \(u_i\) 个人认识第 \(v_i\) 只猫,保证第 \(i\) 个人和第 ...
- elasticsearch的基本了解
以下内容参考官方文档https://www.elastic.co/guide/en/elasticsearch/reference/7.2/elasticsearch-intro.html 使用的学 ...
- Pytest 学习(二十五)- 解决pytest参数化测试标题都一样问题
前言 使用参数化测试化后,allure的报告如下显示: 源代码如下: # -*- coding: utf-8 -*- # @Time : 2020/12/13 17:27 # @Author : lo ...
- WindowsPhone8.1 开发-- 二维码扫描
随着 WinRT 8.1 API 的发布,Windows 8.1 和 Windows Phone 8.1 (基于 WinRT) 应用程序的开发模型经历了戏剧性的收敛性.与一些特定于平台的考虑,我们现在 ...
- CMake将生成的可执行文件保存到其他目录
在运行一些程序的时候,我们一般会把数据文件放在其他位置.而当在修改程序时,需要不断的修改代码,编译,执行.每次编译之后,都得将可执行文件复制到数据文件的目录. 这一问题有两种解决方法,一是直接在数据目 ...