我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > 我是一个优秀的软件工程师,我不是一个优秀的编译器
总共48086条微博

动态微博

查看: 1534|回复: 0

我是一个优秀的软件工程师,我不是一个优秀的编译器

[复制链接]

326

主题

72

听众

999

金钱

实习版主

该用户从未签到

优秀版主

跳转到指定楼层
楼主
发表于 2014-03-07 08:46:47 |只看该作者 |倒序浏览
最近我接到一个面试电话,被问了许多java的问题。这样的面试很平常,大部分的问题也都是标准问题:
" h! u4 K( t+ d' z) T5 [5 ?● 什么是多态?
9 k% W" L3 M0 @8 q' O4 K' g! y● List和Set有什么区别?你什么时候用List,什么时候用Set?! O' m2 [; s( m2 z% v( M
● 什么情况下你会遇见死锁?
3 t5 B& F) W+ [0 S● 强类型和弱类型有什么区别?
3 {, {- ^& H  Z. Z" A6 @; `2 n
这些算是很合理的问题。我不喜欢那个多态的问题,因为它和大部分的面向对象语言以及继承紧密相关,而当我们覆盖和重载一个方法时,我们是不会意识到“哦!这实际上是一个多态!”而我会想“什么是继承,我什么时候应该用继承”,而这才是面向对象语言的关键。但是这是我个人的观点,可能会有其他不同观点。
, [: X$ ~9 b- w% F% A强类型和弱类型的那一题有点不寻常,因为他实际上指的是类型检查而不是类型强度。当我说C是一种弱静态,Java是强静态,Python是强动态时,他有点迷糊(我认为JavaScript是弱动态,但我并没有说出来)。
+ N2 X% Q" ~( }8 x6 b6 x
接下来的是一些细枝末节的问题:
9 g" S: r4 b+ w+ A+ Y
● List在哪个包中?  t6 k% h) D5 r- j/ y
● File在哪个包中?
( P$ J$ u% D0 n/ l$ w● 你要继承的时候用什么关键字?
(我们也会经常遇见一些标准问题“你5年内想成为什么样的人?”等等)

2 M% A3 U4 A. C2 `/ r" d$ C  }0 nRuss Olsen提到了问细枝末节问题的结果:
0 k& B6 ~2 E4 J# W3 N$ y除了不能告诉你许多信息以外,问细枝末节的问题会付出两种代价:首先会占用你真正可以用来了解一个人的时间,你可以利用这些时间来了解这个人是否足够聪明,是否有合适的背景,是否合适你的团队。其次,这种类型的问题有可能会剔除掉那些真正聪明的,你真正想雇佣的人呢。

6 ]3 f- C9 V" B& H* z1 H* Q5 z
我现在列出这些细枝末节的问题,我认为还会引发一个结果:问这样的问题剔除掉那些真正合适的人之外,剩下的人将会错误的人选。
5 C; s. q7 _. [; Q1 Z/ I
一个好的工程师在设计和创造系统的时候是抽象性的思维的,他们会想象算法,组件,工程性的设计。他们不需要知道语言的所有细节,尤其是当他们使用IDE时,IDE可以帮他们完成(我使用Eclipse:我输入List,然后输入control+空格,IDE会自动帮我载入java.util.List)。我能分辨出我需要哪个包,这比我能记住它们的名字更重要。
- z$ |6 D2 |2 y
类似的,更重要的是我能告诉你什么时候我应该使用继承,什么时候应该使用多态,而不是仅仅记住概念。
$ P5 j9 b8 Z: f" {总体而言:用Google 5秒钟可以找到答案的问题不是好问题。我最喜欢的电话面试问题是“你最喜欢的语言是哪一种?”然后接着是“它的弱点是什么?”
1 g5 B5 e4 x5 P8 d% m1 E/ l) |
然而很多面试和考试测试的都是为了看你能否很好的取代编译器而设置的。甚至Java认证考试都只关注在语言的语法和编译上的问题,而不是测试实际编程的能力和实际设计系统个能力。

( U! r) ?: p% q, i" R我是一个优秀的软件工程师,我不是一个优秀的编译器。我不能看了一段代码后就告诉你它有问题,它不会获取ClassNotFoundException,现代的编译器会告诉我问题的所在。即使不是马上知道,但当我编译的时候我会知道。这么说我就过于依赖IDE?也许吧,但这不是什么坏事,因为在办公室里我们还是要用到这些工具。$ M. Z8 `; @, G( x1 `  ~: _& D  h& f
一句话:找一个合适团队的人选时,不要纠结于细枝末节的问题。

科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表