即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

番外 —— Java 的那些开发者

微信 MacTalk 10℃ 0评论

年初的时候我悍然宣布要为 Java 写个系列,结果只写了区区两篇:Java 故事 和 高斯林的创业敏感,还是蜻蜓点水,未曾展开。后续经常有读者问起:卖桃侠,Java 故事的大坑,您老准备啥时候填呢?年轻的时候遇到这种问题,我总会面红耳赤、无地自容。后来遇到了月更侠-哦-应该是季更侠(如果他这个季度更新一篇的话)二爷邱岳,在他的行为模式影响下,我的心理素质慢慢好到了令人发指的程度,现在遇到这种质询,我常常是微微一笑,不置一词。

这种现象持续到了前些日子, Airbnb 的朱赟(Angela)博士发来微信质问:Java 系列怎么还不写?我实在看不过去了写了个番外篇,你看能不能用。

我当时的心情只能用「如获至宝」四个字来形容……结果呢,我的「番内」还未重新开张,人家的番外已经写完发给我了。关于朱赟博士,她的介绍请参考我之前写过的「神童的世界你不懂」。这是一个横扫 Google、Facebook 公司 Offer 的奇女子,自然,Oracle 的 Offer 也不在话下,文章记述了她在求学和求职过程中接触到的 Java 语言、Java 开发者和 Oracle 的面试者,写得非常有意思。

我很喜欢读 Angela 写的技术杂谈,由于其深厚的技术功底和科研经历,很多东西写得既深入浅出,又纵横开阖,视角宏大,读来非常过瘾。早期作品里面会夹杂很多类似英文的语法,读着味道很怪,现下写了一段时间,已经完全恢复了中文写作的习惯,推荐阅读。

文章内容稍长,我会分成两篇推送。


我的博士其实做过两个领域。刚刚进入 Rice 的时候其实进的是程序语言设计组。组里当时有两个教授,分别做两个领域。一个叫 Walid Taha,主要研究领域是 type system 和嵌入式系统的程序语言设计的。另一个是 Robert Cartwright,但是他喜欢大家叫他 Corky,主要研究的是和 Java 相关的,包括 Java 的理论和实现等。

Corky 教授的研究项目中,有一个叫做 DrJava 的项目。DrJava 是一个轻量级的 Java 开发环境。主要是给在校学生用的,它提供了一个很简单直观的交互界面,并且提供了可以交互式 evaluate Java 代码等功能。DrJava 在美国大学里有很多人使用,目前已经超过两百万的下载量。在此之上还有很多引申的项目,比如支持 task level 并行的 Java 版本 Habanero Java 以及他的开发环境 DrHJ。

Corky 是个典型的美国教授,与生俱来的花白卷发,清癯的脸庞上一双眼睛炯炯有神,高挺的鼻梁。常年都是和学生一样的T恤牛仔加运动鞋。出入的时候背上总是背着一个蓝灰色的电脑包。当他不谈学术的时候,你会觉得他有着与年龄不相称的单纯和童真。会和一群学生一起吃系里免费的披萨和点心,也会和其他教授一起站在系里走廊上聊天和哈哈大笑。然而一旦你和他讨论起 Java,他就变得格外的自信和涛涛不绝。对 Java 深入的理解让每次和他的对话都颇有收益。偶尔聊到什么引起他深思的,那副眼神又一下子变得深邃无比,好像透过他的眼睛你都能看到他脑海里无数的符号和字母正激烈翻腾着。

Corky 也是典型的研究做的好,但是课程不是那么受待见的一类教授。我听过他的程序语言的课,绝对的独一无二。他是准备 slides 的,上课一开始就打开 slides,然后就开始侃,但是最多,他能跟着 slides 讲两页,最多三页,你就发现他随着自己对 Java 的热爱,开始发散的跟你聊到和 slides 开始脱节,如果这时候有人举手问一些问题,那就可以扯的更远了。所以很经常的一幕,就是他一转身,发现投影仪上已经是电脑的屏保了。或者是已经下课了,才发现该讲的因为各种发散而没能讲完。好在他发的课程讲义是极好的,所以课后自己总能补起来。我倒是很喜欢他的课,因为每次从他那总能听到很多 Java 相关的很有意思的知识点和趣事,而那些,是书上学不到的。

虽然我的导师是 Walid,但是因为是同一个语言组,所以平时的研讨班都在一起。也就有了很多的机会和 Corky 一起讨论各种程序语言的特性和实现。也是在那个时候对 Java 语言有了很多比较深层的了解。

三年后我的硕士论文是独立的实现了一个程序设计语言,包括它的解释编译和用户界面。这个语言主要用于机器人系统的嵌入式编程和仿真。曾经在一家石油公司的井下控制系统开发中被使用。然而因着我的导师的离开和种种其他,我博士的后三年就转了另一个导师做生物信息学的数据分析和建模。

因着有过程序设计语言的研究经验,博士毕业找工作的时候,也投了份简历在 Oracle 的 Java 语言开发组。也因着有过这样相应的背景,我也很顺利地拿到了去 Sun Java 的 Java Core Libraries 开发小组的 onsite 面试机会。

我去面试的时候应该是 2012 年底的样子。当时面的那个小组一共好像只有七八个人的样子。Oracle 的面试大部分是白板和聊天,这和现在比较主流的新互联网公司在面试时需要上机做题无 bug 运行的体验还是很不相同的。如果说普通码工的打扮和着装以舒适休闲为主,那么 Oracle Java 开发组的工程师的着装就更显得随意和不修边幅 —— 起码我见的几个都是。还有一个人印象比较深,上面穿的是公司的免费文化衫,下面是一条不相称的休闲西裤,脚下穿的是一双凉鞋,还没穿袜子。Oracle 是我最早面试的一家公司,所以当时搞不清状况的情况下觉得可能穿的正式点表示一下我的尊重。结果我就穿着一套 Guicci 正装和 Prada 的高跟鞋,华丽丽地出现在他们的 office 里。虽然彼此都装作没在意着装。但是心里面我已经因为自己的糟糕决定,用意念在他们的地板上钻出 100 个地洞了。

好在一谈起技术来,气氛就融洽的多。介绍自己的硕士毕业设计的部分总是容易的,毕竟是自己多少个日夜天天琢磨的事。然后就谈起 Java 新的 library 或版本可能会增加哪些支持。2012年底的时候,Scala 和 Closure 刚刚火起来不太久,Java 还没有对 lambda 的支持。而当时整个 Java team 也正在考虑这件事。话题扯到对 lambda 的实现,就碰巧是我很熟悉的话题,因为我的导师 Walid 主要的语言是各种 functional language,而对 lambda 的实现,也是 functional language 的核心。因此整个面试变得格外融洽,更像大家一起讨论一项技术,也一扫我之前的紧张和尴尬。后来聊天中也意外的发现,他们组中有一个成员,其实也曾经师从 Corky,所以和我也算是一脉相承了。

插叙:朱赟现在有了自己的公众号,嘀嗒嘀嗒,长按二维码关注。

不太意外的,第二天我就收到电话拿到 offer。这也是我整个求职过程中的第一份 offer。后来又拿了几个互联网公司的offer,包括 Google 和 Facebook 等。最后因着各种原因,选择去了 Square。这段 Oracle Java 组的面试经历,也成了记忆长河的一部分,可能也是我此生最近距离的一次接触那些 Java 开发者了。

待续。


点击阅读原文,下载拉勾 App

转载请注明:CodingBlog » 番外 —— Java 的那些开发者

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情
(24)个小伙伴在吐槽
  1. 哥,T3啥时候发布?
    小天2016-05-02 14:21 回复
  2. 二爷真快。
    金融先森👍2016-05-02 14:24 回复
  3. 求一起放出,不过瘾/流泪
    颜路2016-05-02 14:27 回复
  4. 现在流行打赏互通了么
    Smallfly2016-05-02 14:28 回复
  5. (本季会更新的……
    邱岳2016-05-02 14:34 回复
  6. JAVA真是编程语言界的小强,任何年代都少不了它的身影
    夏雨雪2016-05-02 14:37 回复
  7. 感觉…这稿子是几个月前写的吧?我都忘了这事了…还有,我的 lambda 呢?/发呆
    angela2016-05-02 14:37 回复
  8. 看到二爷说会更新,开心。
    简单 - 八戒2016-05-02 14:41 回复
  9. 我到o家面试前hr多次强调,不要着正装。然后我就一次拿到并且接受了offer,而至今仍没有一套西服。
    金辉@Redtea2016-05-02 14:42 回复
  10. 每天都来看,你们几个的留言对话/微笑
    舍璃紫2016-05-02 14:46 回复
  11. 在iPhone6S下,文章里英文字体很漂亮,之前没发现。
    管明LV2016-05-02 14:47 回复
  12. 目前在美国这边上学用的dr java,看错误比较方便,但是写还是用xcode智能些
    eouyu2016-05-02 15:18 回复
  13. 穿凉鞋而没穿袜子是正常的吧?难道中外不同?
    张博2016-05-02 15:21 回复
  14. 地球人注意白富美已经渗透到各领域 甚至编程界
    ღ井井 michelleღ2016-05-02 16:07 回复
  15. 小javaer就来看看,装作看懂的样子然后离开了
    Archer2016-05-02 16:15 回复
  16. 进入Java Core Libraries 开发小组,是不是意味着可以给Core Libraries写源码啦?
    让我们一起哈啤。!2016-05-02 17:18 回复
  17. 我要来挑起世纪大战,PHP是世界上最好的Web开发语言。
    低调的华丽2016-05-02 17:20 回复
  18. 池老师,祝你永远十八,永远年轻,永远热泪盈眶!
    欧阳平2016-05-03 02:58 回复
  19. 想起Coursera上普林斯顿的算法课配套的环境好像就是DrJava
    Uncle Liu2016-05-03 04:13 回复
  20. 为什么java的程序员给我一种“抠脚大汉”的感觉,难道是因为身边的java朋友和 eclipse的粗糙界面的影响/呲牙
    斯樵·杜海涛2016-05-03 05:21 回复
  21. 懂了,以后有需求去找Angela!女神面儿大!
    上铺的 Angela•老王2016-05-03 14:07 回复
  22. 呵呵一直和机器底层打交道比较多一直C到底,java神奇语言有空我也看看。
    hawk2016-05-04 12:00 回复
  23. 同学去面试,着正装,皆被拒,遂着牛仔服,offer到手
    Cribug2016-05-08 16:30 回复
  24. 我很认真的读了赞赏引导语呢
    穎儿2016-11-09 17:23 回复